KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > him > editors > report > WorkflowStagePanel


1 /*
2  * (C) Copyright SimulacraMedia 2003. All rights reserved.
3  *
4  * Created on 23-Feb-2004
5  *
6  */

7 package org.openharmonise.him.editors.report;
8
9 import java.awt.Color JavaDoc;
10 import java.awt.Component JavaDoc;
11 import java.awt.Container JavaDoc;
12 import java.awt.Dimension JavaDoc;
13 import java.awt.Font JavaDoc;
14 import java.awt.LayoutManager JavaDoc;
15 import java.awt.event.ActionEvent JavaDoc;
16 import java.awt.event.ActionListener JavaDoc;
17
18 import javax.swing.JComboBox JavaDoc;
19 import javax.swing.JLabel JavaDoc;
20 import javax.swing.JPanel JavaDoc;
21
22 import org.openharmonise.him.*;
23 import org.openharmonise.him.editors.report.rqom.*;
24 import org.openharmonise.him.editors.report.swing.*;
25 import org.openharmonise.him.harmonise.*;
26 import org.openharmonise.vfs.metadata.*;
27 import org.openharmonise.vfs.metadata.range.*;
28 import org.openharmonise.vfs.servers.ServerList;
29
30
31 /**
32  * Panel for the workflow stage field in the report query editor.
33  *
34  * @author Matthew Large
35  * @version $Revision: 1.2 $
36  *
37  */

38 public class WorkflowStagePanel extends JPanel JavaDoc implements LayoutManager JavaDoc, ActionListener JavaDoc {
39
40     /**
41      * Report query.
42      */

43     private ReportQuery m_reportQuery = null;
44     
45     /**
46      * Workflow stage.
47      */

48     private WorkflowStage m_stage = null;
49     
50     /**
51      * Workflow selector.
52      */

53     private JComboTree m_workflowCombo = null;
54     
55     /**
56      * Workflow stage selector.
57      */

58     private JComboTree m_workflowStageCombo = null;
59     
60     private JLabel JavaDoc m_propLabel = null;
61     
62     private JLabel JavaDoc m_valLabel = null;
63     
64     private JComboBox JavaDoc m_completedCombo = null;
65     
66     private JLabel JavaDoc m_completedLabel = null;
67     
68     /**
69      * Constructs a new workflow stage panel.
70      *
71      * @param query Report query
72      * @param stage Workflow stage
73      */

74     public WorkflowStagePanel(ReportQuery query, WorkflowStage stage) {
75         super();
76         this.m_stage = stage;
77         this.m_reportQuery = query;
78         this.setup();
79     }
80     
81     /**
82      * Configures this component.
83      *
84      */

85     private void setup() {
86         this.setLayout(this);
87         String JavaDoc fontName = "Dialog";
88         int fontSize = 11;
89         Font JavaDoc font = new Font JavaDoc(fontName, Font.PLAIN, fontSize);
90         
91         this.m_workflowCombo = new JComboTree();
92         this.m_workflowCombo.setActionCommand("WRKFLOW");
93         this.m_workflowCombo.addActionListener(this);
94         this.m_workflowCombo.addCollectionPath(HarmonisePaths.PATH_WORKFLOW_PROPS);
95         this.m_workflowCombo.setAllowClear(false);
96         this.m_workflowCombo.setShowLeafNodes(true);
97         this.m_workflowCombo.setSelectedLeafOnly(true);
98         
99         if(this.m_stage.getPath()!=null) {
100             this.m_workflowCombo.setPath(ServerList.getInstance().getHarmoniseServer().getVFS(), this.m_stage.getPath());
101         }
102         
103         this.add(m_workflowCombo);
104         
105         this.m_workflowStageCombo = new JComboTree();
106         this.m_workflowStageCombo.setActionCommand("STAGE");
107         this.m_workflowStageCombo.setAllowClear(false);
108         this.m_workflowStageCombo.setShowLeafNodes(true);
109         this.m_workflowStageCombo.setSelectedLeafOnly(true);
110         this.m_workflowStageCombo.addActionListener(this);
111         
112         String JavaDoc[] sData = new String JavaDoc[]{"Yes", "No"};
113         this.m_completedCombo = new JComboBox JavaDoc(sData);
114         this.m_completedCombo.addActionListener(this);
115         this.m_completedCombo.setActionCommand("COMPLETED");
116         this.m_completedCombo.setBackground(Color.WHITE);
117         this.m_completedCombo.setFont(font);
118         if(m_stage.isCompleted()){
119             this.m_completedCombo.setSelectedItem("Yes");
120         } else {
121             this.m_completedCombo.setSelectedItem("No");
122         }
123         this.add(m_completedCombo);
124         
125         if(this.m_stage.getPath()!=null && this.m_stage.getStagePath()!=null) {
126             String JavaDoc sWorkflowPath = this.m_workflowCombo.getPath();
127             Property workflowProp = PropertyCache.getInstance().getPropertyByPath(sWorkflowPath);
128             Range range = workflowProp.getRange();
129             String JavaDoc sStagesPath = (String JavaDoc) ((ResourceRange)range).getHREFs().get(0);
130             this.m_workflowStageCombo.addCollectionPath(sStagesPath);
131             
132             this.m_workflowStageCombo.setPath(ServerList.getInstance().getHarmoniseServer().getVFS(), this.m_stage.getStagePath());
133                     
134             this.add(this.m_workflowStageCombo);
135         }
136         
137         this.m_propLabel = new JLabel JavaDoc("Select a workflow");
138         this.m_propLabel.setFont(font);
139         this.add(this.m_propLabel);
140         
141         this.m_valLabel = new JLabel JavaDoc("Select a stage");
142         this.m_valLabel.setFont(font);
143         this.add(this.m_valLabel);
144         
145         this.m_completedLabel = new JLabel JavaDoc("Completed");
146         this.m_completedLabel.setFont(font);
147         this.add(m_completedLabel);
148     }
149     
150     /**
151      * Returns the workflow stage.
152      *
153      * @return Workflow stage
154      */

155     public WorkflowStage getStage() {
156         return this.m_stage;
157     }
158
159     /* (non-Javadoc)
160      * @see java.awt.LayoutManager#layoutContainer(java.awt.Container)
161      */

162     public void layoutContainer(Container JavaDoc arg0) {
163         int nWidth =0;
164         
165         this.m_propLabel.setSize(this.m_propLabel.getPreferredSize());
166         this.m_propLabel.setLocation(nWidth, 0);
167         
168         this.m_workflowCombo.setSize(this.m_workflowCombo.getPreferredSize());
169         this.m_workflowCombo.setLocation(nWidth, 15);
170         
171         nWidth += this.m_workflowCombo.getSize().width + 20;
172         
173         if(this.m_workflowStageCombo.getParent()!=null && this.m_workflowStageCombo.getParent()==this) {
174             this.m_valLabel.setSize(this.m_valLabel.getPreferredSize());
175             this.m_valLabel.setLocation(nWidth, 0);
176         
177             this.m_workflowStageCombo.setSize(this.m_workflowStageCombo.getPreferredSize());
178             this.m_workflowStageCombo.setLocation( nWidth, 15);
179             
180             nWidth += this.m_workflowStageCombo.getSize().width + 10;
181             
182             this.m_completedLabel.setSize(m_completedLabel.getPreferredSize());
183             this.m_completedLabel.setLocation(nWidth, 0);
184             
185             this.m_completedCombo.setSize(this.m_completedCombo.getPreferredSize());
186             this.m_completedCombo.setLocation(nWidth, 15);
187         }
188     }
189
190     /* (non-Javadoc)
191      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
192      */

193     public void actionPerformed(ActionEvent JavaDoc ae) {
194         if(ae.getActionCommand().equals("WRKFLOW")) {
195             this.remove(this.m_workflowStageCombo);
196             
197             String JavaDoc sWorkflowPath = this.m_workflowCombo.getPath();
198             Property workflowProp = PropertyCache.getInstance().getPropertyByPath(sWorkflowPath);
199             Range range = workflowProp.getRange();
200             if(range!=null && range instanceof ResourceRange) {
201                 this.m_workflowStageCombo = new JComboTree();
202                 this.m_workflowStageCombo.setActionCommand("STAGE");
203                 this.m_workflowStageCombo.addActionListener(this);
204                 this.m_workflowStageCombo.setAllowClear(false);
205                 this.m_workflowStageCombo.setShowLeafNodes(true);
206                 this.m_workflowStageCombo.setSelectedLeafOnly(true);
207                 
208                 String JavaDoc sStagesPath = (String JavaDoc) ((ResourceRange)range).getHREFs().get(0);
209                 this.m_workflowStageCombo.addCollectionPath(sStagesPath);
210                 
211                 this.add(this.m_workflowStageCombo);
212                 this.m_stage.setPath(sWorkflowPath);
213             }
214         } else if(ae.getActionCommand().equals("STAGE")) {
215             String JavaDoc sStagePath = this.m_workflowStageCombo.getPath();
216             this.m_stage.setStagePath(sStagePath);
217         } else if(ae.getActionCommand().equals("COMPLETED")){
218             String JavaDoc sCompleted = (String JavaDoc)this.m_completedCombo.getSelectedItem();
219             if(sCompleted.equals("Yes")){
220                 this.m_stage.setCompleted(true);
221             } else {
222                 this.m_stage.setCompleted(false);
223             }
224         }
225     }
226
227     /* (non-Javadoc)
228      * @see java.awt.Component#getPreferredSize()
229      */

230     public Dimension JavaDoc getPreferredSize() {
231         return new Dimension JavaDoc(430, 35);
232     }
233
234     /**
235      *
236      */

237     private WorkflowStagePanel() {
238         super();
239     }
240
241     /**
242      * @param arg0
243      */

244     private WorkflowStagePanel(boolean arg0) {
245         super(arg0);
246     }
247
248     /**
249      * @param arg0
250      */

251     private WorkflowStagePanel(LayoutManager JavaDoc arg0) {
252         super(arg0);
253     }
254
255     /**
256      * @param arg0
257      * @param arg1
258      */

259     private WorkflowStagePanel(LayoutManager JavaDoc arg0, boolean arg1) {
260         super(arg0, arg1);
261     }
262
263     /* (non-Javadoc)
264      * @see java.awt.LayoutManager#removeLayoutComponent(java.awt.Component)
265      */

266     public void removeLayoutComponent(Component JavaDoc arg0) {
267     }
268
269     /* (non-Javadoc)
270      * @see java.awt.LayoutManager#addLayoutComponent(java.lang.String, java.awt.Component)
271      */

272     public void addLayoutComponent(String JavaDoc arg0, Component JavaDoc arg1) {
273     }
274
275     /* (non-Javadoc)
276      * @see java.awt.LayoutManager#minimumLayoutSize(java.awt.Container)
277      */

278     public Dimension JavaDoc minimumLayoutSize(Container JavaDoc arg0) {
279         return this.getPreferredSize();
280     }
281
282     /* (non-Javadoc)
283      * @see java.awt.LayoutManager#preferredLayoutSize(java.awt.Container)
284      */

285     public Dimension JavaDoc preferredLayoutSize(Container JavaDoc arg0) {
286         return this.getPreferredSize();
287     }
288
289 }
290
Popular Tags