1 7 package org.openharmonise.him.editors.report; 8 9 import java.awt.Color ; 10 import java.awt.Component ; 11 import java.awt.Container ; 12 import java.awt.Dimension ; 13 import java.awt.Font ; 14 import java.awt.LayoutManager ; 15 import java.awt.event.ActionEvent ; 16 import java.awt.event.ActionListener ; 17 18 import javax.swing.JComboBox ; 19 import javax.swing.JLabel ; 20 import javax.swing.JPanel ; 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 38 public class WorkflowStagePanel extends JPanel implements LayoutManager , ActionListener { 39 40 43 private ReportQuery m_reportQuery = null; 44 45 48 private WorkflowStage m_stage = null; 49 50 53 private JComboTree m_workflowCombo = null; 54 55 58 private JComboTree m_workflowStageCombo = null; 59 60 private JLabel m_propLabel = null; 61 62 private JLabel m_valLabel = null; 63 64 private JComboBox m_completedCombo = null; 65 66 private JLabel m_completedLabel = null; 67 68 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 85 private void setup() { 86 this.setLayout(this); 87 String fontName = "Dialog"; 88 int fontSize = 11; 89 Font font = new Font (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 [] sData = new String []{"Yes", "No"}; 113 this.m_completedCombo = new JComboBox (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 sWorkflowPath = this.m_workflowCombo.getPath(); 127 Property workflowProp = PropertyCache.getInstance().getPropertyByPath(sWorkflowPath); 128 Range range = workflowProp.getRange(); 129 String sStagesPath = (String ) ((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 ("Select a workflow"); 138 this.m_propLabel.setFont(font); 139 this.add(this.m_propLabel); 140 141 this.m_valLabel = new JLabel ("Select a stage"); 142 this.m_valLabel.setFont(font); 143 this.add(this.m_valLabel); 144 145 this.m_completedLabel = new JLabel ("Completed"); 146 this.m_completedLabel.setFont(font); 147 this.add(m_completedLabel); 148 } 149 150 155 public WorkflowStage getStage() { 156 return this.m_stage; 157 } 158 159 162 public void layoutContainer(Container 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 193 public void actionPerformed(ActionEvent ae) { 194 if(ae.getActionCommand().equals("WRKFLOW")) { 195 this.remove(this.m_workflowStageCombo); 196 197 String 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 sStagesPath = (String ) ((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 sStagePath = this.m_workflowStageCombo.getPath(); 216 this.m_stage.setStagePath(sStagePath); 217 } else if(ae.getActionCommand().equals("COMPLETED")){ 218 String sCompleted = (String )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 230 public Dimension getPreferredSize() { 231 return new Dimension (430, 35); 232 } 233 234 237 private WorkflowStagePanel() { 238 super(); 239 } 240 241 244 private WorkflowStagePanel(boolean arg0) { 245 super(arg0); 246 } 247 248 251 private WorkflowStagePanel(LayoutManager arg0) { 252 super(arg0); 253 } 254 255 259 private WorkflowStagePanel(LayoutManager arg0, boolean arg1) { 260 super(arg0, arg1); 261 } 262 263 266 public void removeLayoutComponent(Component arg0) { 267 } 268 269 272 public void addLayoutComponent(String arg0, Component arg1) { 273 } 274 275 278 public Dimension minimumLayoutSize(Container arg0) { 279 return this.getPreferredSize(); 280 } 281 282 285 public Dimension preferredLayoutSize(Container arg0) { 286 return this.getPreferredSize(); 287 } 288 289 } 290 | Popular Tags |