KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > command > FormatCommandRemoveSpaceV


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * 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  * FormatCommandRemoveSpaceV.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 JavaDoc;
39 import java.util.Enumeration JavaDoc;
40 import java.util.Iterator JavaDoc;
41 import java.util.Vector JavaDoc;
42
43
44 /**
45  *
46  *
47  */

48 public class FormatCommandRemoveSpaceV extends FormatCommand {
49     int actual_y;
50     int available_height;
51     Band activeBand ;
52     ReportElement bottomElement;
53     Vector JavaDoc myElements = null;
54     Vector JavaDoc bands = null;
55     
56     {
57         operationType = OperationType.EQUALS_SPACE_V;
58     }
59     
60     boolean preCondition(){
61         activeBand = (Band) ((ReportElement) this.getSelectedElements().firstElement()).getBand();
62         int counter = 0;
63         
64         for (Iterator JavaDoc i = this.getSelectedElements().iterator(); i.hasNext(); ) {
65             ReportElement re = (ReportElement) i.next();
66             if (re.getBand() == activeBand) {
67                 counter++;
68             }
69         }
70         return ( counter > 1 );
71         
72     }
73     
74     void preparation(){
75         available_height = 0;
76     }
77     void executeDeeper(){
78         // resetEnumeration();
79
preparation();
80         
81         bands = getBands();
82         
83         for (Iterator JavaDoc h = bands.iterator(); h.hasNext(); ) {
84             Band b = (Band) h.next();
85             Vector JavaDoc bandElements = getBandElements(b);
86             bandElements = sortYX( bandElements.elements());
87             
88             if (bandElements.size()>1) {
89                 ReportElement re = (ReportElement) bandElements.firstElement();
90                 actual_y = re.getPosition().y + re.getHeight() + available_height;
91                 
92                 // the highest element in the band doesn't have to be moved
93
bandElements.removeElement(re);
94                 
95                 processElements(bandElements.elements());
96             }
97         }
98     }
99     
100     public void modify() {
101         re.setPosition(new Point JavaDoc(re.getPosition().x, actual_y) );
102         actual_y += re.getHeight() + available_height;
103     }
104     
105 }
106
Popular Tags