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: * FormatCommandJoinLeft.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:
39: import java.awt.Point;
40: import java.awt.Rectangle;
41: import java.util.Enumeration;
42: import java.util.Iterator;
43: import java.util.Vector;
44:
45: /**
46: *
47: *
48: */
49: public class FormatCommandJoinLeft extends FormatCommand {
50: int actual_x;
51:
52: {
53: operationType = OperationType.JOIN_LEFT;
54: }
55:
56: void executeDeeper() {
57:
58: Vector bands = getBands();
59:
60: if (bands.size() == 0 && getSelectedElements().size() > 0) {
61: // We are working on a crosstab...
62: Vector myElements = (Vector) getSelectedElements().clone();
63: myElements = sortXY(myElements.elements());
64: actual_x = ((ReportElement) myElements.elementAt(0))
65: .getPosition().x;
66: processElements(getSelectedElements().elements());
67: } else {
68: for (Iterator h = bands.iterator(); h.hasNext();) {
69:
70: Band b = (Band) h.next();
71:
72: Vector myElements = getBandElements(b);
73: myElements = sortXY(myElements.elements());
74:
75: // Repositioning elements...
76: actual_x = ((ReportElement) myElements.elementAt(0))
77: .getPosition().x;
78:
79: // use myELements instead of jrf.getElements()
80: processElements(myElements.elements());
81:
82: }
83: }
84:
85: }
86:
87: public void modify() {
88: re.setPosition(new Point(actual_x, re.getPosition().y));
89: actual_x += re.getWidth();
90:
91: }
92:
93: }
|