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