1 32 33 package it.businesslogic.ireport.undo; 34 import it.businesslogic.ireport.gui.event.*; 35 import it.businesslogic.ireport.*; 36 import it.businesslogic.ireport.gui.*; 37 import it.businesslogic.ireport.util.*; 38 39 import java.util.*; 40 41 48 public class InsertElementOperation implements it.businesslogic.ireport.UndoOperation { 49 50 53 private ReportElement element = null; 54 55 private JReportFrame jrf = null; 56 private CrosstabReportElement crosstabReportElement = null; 57 58 59 public InsertElementOperation(JReportFrame jrf, CrosstabReportElement crosstabReportElement, ReportElement element) { 60 this.crosstabReportElement = crosstabReportElement; 61 this.element = element; 62 this.jrf = jrf; 63 } 64 65 66 public InsertElementOperation(JReportFrame jrf, ReportElement element) { 67 this(jrf, null, element); 68 } 69 70 public void undo() 71 { 72 if (jrf == null && crosstabReportElement == null) return; 74 if (crosstabReportElement != null) 75 { 76 crosstabReportElement.getElements().remove( element ); 77 jrf.getCrosstabEditor(crosstabReportElement).getPanelEditor().getSelectedElements().remove( element ); 78 jrf.getCrosstabEditor(crosstabReportElement).getPanelEditor().repaint(); 79 } 80 else 81 { 82 jrf.getReport().getElements().remove( element ); 83 jrf.getSelectedElements().remove( element ); 84 if (element instanceof CrosstabReportElement) 85 { 86 jrf.removeCrosstabEditor((CrosstabReportElement)element); 87 } 88 jrf.getReportPanel().repaint(); 89 } 90 jrf.fireReportListenerReportElementsChanged(new ReportElementChangedEvent(jrf, crosstabReportElement, element , ReportElementChangedEvent.REMOVED)); 91 92 } 93 94 public void redo() 95 { 96 if (jrf == null && crosstabReportElement == null) return; 97 if (crosstabReportElement != null) 98 { 99 crosstabReportElement.getElements().addElement( element ); 100 jrf.getCrosstabEditor(crosstabReportElement).getPanelEditor().setSelectedElement( element ); 101 jrf.getCrosstabEditor(crosstabReportElement).getPanelEditor().repaint(); 102 } 103 else 104 { 105 jrf.getReport().getElements().addElement( element ); 106 if (element instanceof CrosstabReportElement) 107 { 108 jrf.addCrosstabEditor((CrosstabReportElement)element); 109 } 110 jrf.setSelectedElement(element); 111 jrf.getReportPanel().repaint(); 112 } 113 jrf.fireReportListenerReportElementsChanged(new ReportElementChangedEvent(jrf, crosstabReportElement, element , ReportElementChangedEvent.ADDED)); 114 } 115 116 public String toString() 117 { 118 return "insert element"; 119 } 120 121 public CrosstabReportElement getCrosstabReportElement() { 122 return crosstabReportElement; 123 } 124 125 public void setCrosstabReportElement(CrosstabReportElement crosstabReportElement) { 126 this.crosstabReportElement = crosstabReportElement; 127 } 128 } 129 130 | Popular Tags |