KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > cmd > NewSubreportCommand


1 package jimm.datavision.gui.cmd;
2 import jimm.datavision.Report;
3 import jimm.datavision.SectionArea;
4 import jimm.datavision.Subreport;
5 import jimm.datavision.Point;
6 import jimm.datavision.field.Field;
7 import jimm.datavision.field.Rectangle;
8 import jimm.datavision.source.sql.Database;
9 import jimm.datavision.source.sql.SubreportDatabase;
10 import jimm.datavision.gui.Designer;
11 import jimm.datavision.gui.FieldWidget;
12 import java.io.File JavaDoc;
13 import java.util.Collection JavaDoc;
14
15 public class NewSubreportCommand extends InsertFieldCommand {
16
17 protected Designer designer;
18 protected Report report;
19 protected Subreport subreport;
20
21 public NewSubreportCommand(Designer designer, Report report, File JavaDoc f,
22                Collection JavaDoc newJoins)
23     throws Exception JavaDoc
24 {
25     super(designer.findSectionWidgetFor(report.getFirstSectionByArea(SectionArea.DETAIL)),
26       "subreport", new Point(0, report.getFirstSectionByArea(SectionArea.DETAIL).getMinHeight()));
27
28     this.designer = designer;
29     this.report = report;
30
31     subreport = new Subreport(report, null);
32     Database db = (Database)report.getDataSource();
33     subreport.setDataSource(new SubreportDatabase(db.getConnection(),
34                           subreport));
35     subreport.read(f);
36     subreport.addAllJoins(newJoins);
37 }
38
39 protected Rectangle initialFieldBounds() {
40     return new Rectangle(insertLoc.getX(),
41              insertLoc.getY() - (int)(Field.DEFAULT_HEIGHT / 2),
42              (double)(Field.DEFAULT_WIDTH * 4),
43              (double)Field.DEFAULT_HEIGHT);
44 }
45
46 protected Object JavaDoc initialFieldValue() {
47     return subreport.getId();
48 }
49
50 protected FieldWidget createFieldWidget(Field f) {
51     return new FieldWidget(null, f);
52 }
53
54 }
55
Popular Tags