1 package jimm.datavision.gui.cmd; 2 import jimm.datavision.*; 3 import jimm.datavision.field.*; 4 import jimm.datavision.gui.Designer; 5 import jimm.datavision.gui.FieldWidget; 6 import jimm.datavision.gui.SectionWidget; 7 8 13 public class AbstractAggregateCommand extends CommandAdapter { 14 15 protected Report report; 16 protected FieldWidget fieldWidget; 17 protected Group group; 18 protected FieldWidget aggregateWidget; 19 protected String functionName; 20 21 31 public AbstractAggregateCommand(Report report, FieldWidget fw, Group group, 32 String functionName, String commandName) 33 { 34 super(commandName); 35 this.report = report; 36 fieldWidget = fw; 37 this.group = group; 38 this.functionName = functionName; 39 } 40 41 public FieldWidget getAggregateWidget() { return aggregateWidget; } 42 43 protected void createAggregate() { 44 Section s = (group == null) ? report.footers().first() 47 : group.footers().first(); 48 49 Field originalField = fieldWidget.getField(); 50 Object id = originalField.getId(); 51 54 AggregateField aggregate = 56 (AggregateField)Field.create(null, report, s, functionName, id, true); 57 aggregate.setGroup(group); 58 59 Format fmt = null; 65 Rectangle bounds = null; 66 if (aggregateWidget == null) { 67 fmt = originalField.getFormat(); 68 fmt = (Format)fmt.clone(); 69 fmt.setBold(true); 70 71 bounds = new Rectangle(originalField.getBounds()); 72 } 73 else { 74 fmt = aggregateWidget.getField().getFormat(); 75 fmt = (Format)fmt.clone(); 76 77 bounds = new Rectangle(aggregateWidget.getField().getBounds()); 78 } 79 aggregate.setFormat(fmt); 80 aggregate.setBounds(bounds); 81 82 s.addField(aggregate); 84 85 SectionWidget sectionWidget = 87 Designer.findWindowFor(report).findSectionWidgetFor(s); 88 89 aggregateWidget = new FieldWidget(null, aggregate); 90 sectionWidget.addField(aggregateWidget); 91 92 sectionWidget.repaint(); 95 } 96 97 protected void deleteAggregate() { 98 java.awt.Component parent = aggregateWidget.getComponent().getParent(); 99 aggregateWidget.doDelete(); 100 parent.repaint(); 101 } 102 103 } 104 | Popular Tags |