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 ; 13 import java.util.Collection ; 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 f, 22 Collection newJoins) 23 throws Exception 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 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 |