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: * FormatCommandDecreaseSpaceH.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: *
44: *
45: */
46: public class FormatCommandDecreaseSpaceH extends FormatCommand {
47: Vector bandElements = null;
48:
49: {
50: operationType = OperationType.DECREASE_SPACE_H;
51: }
52:
53: boolean preCondition() {
54: return (this .getSelectedElements().size() > 1);
55: }
56:
57: void executeDeeper() {
58: Vector bands = getBands(); // bands with selected elements
59: Band b = null;
60: for (Iterator h = bands.iterator(); h.hasNext();) {
61: b = (Band) h.next();
62: bandElements = getBandElements(b);
63: bandElements = sortXY(bandElements.elements());
64: // first element in each band will not be moved.
65: //bandElements.remove(0);
66: processElements(bandElements.elements());
67: }
68: }
69:
70: public void modify() {
71:
72: if (getCurrentElementPosition() > 0) {
73: re
74: .setPosition(new Point(
75: Math
76: .max(
77: re.getPosition().x
78: - (5 * (getCurrentElementPosition())),
79: ((ReportElement) bandElements
80: .elementAt(getCurrentElementPosition() - 1))
81: .getPosition().x),
82: re.getPosition().y));
83: }
84: // Remark of rl: referring to the bandElements variable straight away is perhaps not very nice
85: }
86:
87: }
|