/projects/iReport-3.7.5/ireport-designer/src/com/jaspersoft/ireport/designer/undo/BandChangeUndoableEdit.java
https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 161 lines · 83 code · 27 blank · 51 comment · 8 complexity · ed885e99ef2f12212a8b6769cdd5cf4c MD5 · raw file
- /*
- * iReport - Visual Designer for JasperReports.
- * Copyright (C) 2002 - 2009 Jaspersoft Corporation. All rights reserved.
- * http://www.jaspersoft.com
- *
- * Unless you have purchased a commercial license agreement from Jaspersoft,
- * the following license terms apply:
- *
- * This program is part of iReport.
- *
- * iReport is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * iReport is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with iReport. If not, see <http://www.gnu.org/licenses/>.
- */
- package com.jaspersoft.ireport.designer.undo;
- import com.jaspersoft.ireport.designer.ModelUtils;
- import javax.swing.undo.CannotRedoException;
- import javax.swing.undo.CannotUndoException;
- import net.sf.jasperreports.engine.design.JRDesignBand;
- import net.sf.jasperreports.engine.design.JRDesignElement;
- import net.sf.jasperreports.engine.design.JasperDesign;
- /**
- *
- * @author gtoffoli
- */
- public class BandChangeUndoableEdit extends AggregatedUndoableEdit {
- private JRDesignBand oldBand = null;
- private JRDesignBand newBand = null;
- private JRDesignElement element = null;
- private JasperDesign jasperDesign = null;
- public BandChangeUndoableEdit(JasperDesign jasperDesign,
- JRDesignBand oldBand,
- JRDesignBand newBand,
- JRDesignElement element)
- {
- this.oldBand = oldBand;
- this.newBand = newBand;
- this.element = element;
- this.jasperDesign = jasperDesign;
- }
- @Override
- public void undo() throws CannotUndoException {
- super.undo();
- if (oldBand != null && newBand != oldBand)
- {
- int y1 = ModelUtils.getBandLocation(newBand, getJasperDesign());
- int y0 = ModelUtils.getBandLocation(oldBand, getJasperDesign());
- int deltaBand = y0 - y1;
- // Update element band...
- newBand.getChildren().remove(getElement());
- //oldBand.removeElement(dew.getElement());
- // Update the element coordinates...
- getElement().setElementGroup(oldBand);
- getElement().setY(getElement().getY() - deltaBand);
- oldBand.getChildren().add(getElement());
- newBand.getEventSupport().firePropertyChange(JRDesignBand.PROPERTY_CHILDREN, null, null);
- oldBand.getEventSupport().firePropertyChange(JRDesignBand.PROPERTY_CHILDREN, null, null);
- }
- }
- @Override
- public void redo() throws CannotRedoException {
- super.redo();
- if (newBand != null && newBand != oldBand)
- {
- int y1 = ModelUtils.getBandLocation(newBand, getJasperDesign());
- int y0 = ModelUtils.getBandLocation(oldBand, getJasperDesign());
- int deltaBand = y0 - y1;
- // Update element band...
- oldBand.getChildren().remove(getElement());
- //oldBand.removeElement(dew.getElement());
- // Update the element coordinates...
- getElement().setElementGroup(newBand);
- getElement().setY(getElement().getY() + deltaBand);
- newBand.getChildren().add(getElement());
- newBand.getEventSupport().firePropertyChange(JRDesignBand.PROPERTY_CHILDREN, null, null);
- oldBand.getEventSupport().firePropertyChange(JRDesignBand.PROPERTY_CHILDREN, null, null);
- }
- }
- @Override
- public String getPresentationName() {
- return "Element band change";
- }
- public JasperDesign getJasperDesign() {
- return jasperDesign;
- }
- public void setJasperDesign(JasperDesign jasperDesign) {
- this.jasperDesign = jasperDesign;
- }
- /**
- * @return the oldBand
- */
- public JRDesignBand getOldBand() {
- return oldBand;
- }
- /**
- * @param oldBand the oldBand to set
- */
- public void setOldBand(JRDesignBand oldBand) {
- this.oldBand = oldBand;
- }
- /**
- * @return the newBand
- */
- public JRDesignBand getNewBand() {
- return newBand;
- }
- /**
- * @param newBand the newBand to set
- */
- public void setNewBand(JRDesignBand newBand) {
- this.newBand = newBand;
- }
- /**
- * @return the element
- */
- public JRDesignElement getElement() {
- return element;
- }
- /**
- * @param element the element to set
- */
- public void setElement(JRDesignElement element) {
- this.element = element;
- }
- }