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 import java.awt.*; 39 40 import java.util.*; 41 42 49 public class GroupEmentsOperation implements it.businesslogic.ireport.UndoOperation { 50 51 54 private Vector elements = null; 55 56 private JReportFrame jrf = null; 57 58 private String addedGroup = ""; 59 60 61 public GroupEmentsOperation(JReportFrame jrf) { 62 this.elements = new Vector(); 63 this.jrf = jrf; 64 } 65 66 public void redo() 67 { 68 if (jrf == null) return; 70 Enumeration e = this.getElements().elements(); 71 while ( e.hasMoreElements() ) 72 { 73 PositionedElement pe = (PositionedElement)e.nextElement(); 74 ReportElement element = pe.getElement(); 75 76 element.setElementGroup( getAddedGroup() + ((element.getElementGroup().equals("")) ? "" : ".") + element.getElementGroup() ); 77 78 jrf.getReport().getElements().remove( pe.getOldPosition() ); 80 81 jrf.getReport().getElements().insertElementAt(element, pe.getNewPosition()); 82 jrf.addSelectedElement( element , false); 83 } 84 jrf.fireSelectionChangedEvent(); 85 jrf.getReportPanel().repaint(); 86 } 87 88 public void undo() 89 { 90 if (jrf == null) return; 92 93 jrf.setSelectedElement(null); 94 for (int i= this.getElements().size()-1; i>=0; --i) 95 { 96 PositionedElement pe = (PositionedElement)getElements().get(i); 97 ReportElement element = pe.getElement(); 98 99 if (element.getElementGroup().startsWith(getAddedGroup())) 100 { 101 element.setElementGroup( element.getElementGroup().substring(getAddedGroup().length())); 102 if (element.getElementGroup().startsWith(".")) 103 { 104 element.setElementGroup( element.getElementGroup().substring(1)); 105 } 106 } 107 108 jrf.getReport().getElements().remove( pe.getNewPosition() ); 110 111 jrf.getReport().getElements().insertElementAt(element, pe.getOldPosition()); 112 jrf.addSelectedElement( element , false); 113 114 } 117 jrf.fireSelectionChangedEvent(); 118 jrf.getReportPanel().repaint(); 119 120 } 121 122 public String toString() 123 { 124 return "group element(s)"; 125 } 126 127 134 public java.util.Vector getElements() { 135 return elements; 136 } 137 138 142 public void setElements(java.util.Vector elements) { 143 this.elements = elements; 144 } 145 146 155 public void addElement(ReportElement element, int oldPosition, int newPostion) { 156 157 PositionedElement pe = new PositionedElement(element, oldPosition, newPostion); 158 getElements().add(pe); 159 } 160 161 public String getAddedGroup() { 162 return addedGroup; 163 } 164 165 public void setAddedGroup(String addedGroup) { 166 this.addedGroup = addedGroup; 167 } 168 169 } 170 171 | Popular Tags |