01: /*
02: * Copyright (C) 2005 - 2008 JasperSoft Corporation. All rights reserved.
03: * http://www.jaspersoft.com.
04: *
05: * Unless you have purchased a commercial license agreement from JasperSoft,
06: * the following license terms apply:
07: *
08: * This program is free software; you can redistribute it and/or modify
09: * it under the terms of the GNU General Public License version 2 as published by
10: * the Free Software Foundation.
11: *
12: * This program is distributed WITHOUT ANY WARRANTY; and without the
13: * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14: * See the GNU General Public License for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18: * or write to:
19: *
20: * Free Software Foundation, Inc.,
21: * 59 Temple Place - Suite 330,
22: * Boston, MA USA 02111-1307
23: *
24: *
25: *
26: *
27: * FormatCommandMoveToLeftMargin.java
28: *
29: * Created on 9 mei 2005, 21:36
30: *
31: */
32:
33: package it.businesslogic.ireport.gui.command;
34:
35: import it.businesslogic.ireport.Band;
36: import it.businesslogic.ireport.OperationType;
37: import it.businesslogic.ireport.ReportElement;
38: import java.awt.Point;
39: import java.util.Iterator;
40: import java.util.Vector;
41:
42: /**
43: * Move all elements towards to the left margin over a distance depicted
44: * by the distance of the left most element to the left margin
45: *
46: * From the introduction this command the distance of the first element to the left margin had been taken.
47: * This resulted in unwanted behaviour. If the first element was the most right element, then most elements were shifted
48: * left of the left margin.
49: *
50: * Now this is corrected.
51: */
52: public class FormatCommandMoveToLeftMargin extends FormatCommand {
53:
54: {
55: operationType = OperationType.MOVE_TO_LEFT_MARGIN;
56: }
57: int deltaLeft = 0;
58:
59: void executeDeeper() {
60:
61: Vector bands = getBands(); // bands with selected elements
62: for (Iterator h = bands.iterator(); h.hasNext();) {
63: Band b = (Band) h.next();
64: Vector bandElements = getBandElements(b);
65: bandElements = sortXY(bandElements.elements());
66:
67: ReportElement re = (ReportElement) bandElements
68: .elementAt(0);
69: deltaLeft = re.getPosition().x
70: - jrf.getReport().getLeftMargin();
71:
72: processElements(bandElements.elements());
73: }
74:
75: }
76:
77: public void modify() {
78: re.setPosition(new Point(re.getPosition().x + 10 - deltaLeft,
79: re.getPosition().y));
80: }
81:
82: }
|