1 package org.enhydra.shark.corbaclient.workflowadmin.worklist; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import java.util.*; 6 7 import javax.swing.*; 8 9 import org.omg.WfBase.*; 10 import org.omg.WorkflowModel.WfResource; 11 import org.enhydra.shark.corbaclient.*; 12 import org.enhydra.shark.corbaclient.workflowadmin.*; 13 import org.enhydra.shark.corbaclient.workflowadmin.user.*; 14 import org.enhydra.shark.corbaclient.workflowadmin.worklist.actions.*; 15 import org.enhydra.shark.corbaclient.worklist.*; 16 17 24 public class WorklistManagement extends ActionPanel { 25 private static Dimension comboFieldDimension=new Dimension(200,20); 26 27 private SharkAdmin workflowAdmin; 28 private Worklist worklist; 29 private JComboBox users; 30 private JLabel isLogged=new JLabel(); 31 private ActionListener usersAL; 33 34 private ArrayList existingUsers=new ArrayList(); 35 36 public WorklistManagement (SharkAdmin wa) { 37 super(); 38 this.workflowAdmin=wa; 40 41 super.init(); 42 43 add(createControlPanel(),BorderLayout.NORTH,0); 44 } 45 46 protected void createActions () { 47 defaultActions=new Action[] { 48 new ReassignWorkitem(this) 49 }; 50 } 51 52 protected Component createCenterComponent () { 53 worklist=new Worklist(workflowAdmin,false); 54 return worklist; 55 } 56 57 public SharkAdmin getWorkflowAdmin () { 58 return workflowAdmin; 59 } 60 61 public Worklist getWorklist () { 62 return worklist; 63 } 64 65 private Component createControlPanel () { 66 JPanel p=new JPanel(); 67 p.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); 68 p.setLayout(new BoxLayout(p,BoxLayout.X_AXIS)); 69 70 p.add(new JLabel(ResourceManager.getLanguageDependentString("SelectUserKey")+": ")); 71 72 users=new JComboBox(); 73 users.setMinimumSize(new Dimension(comboFieldDimension)); 74 users.setMaximumSize(new Dimension(comboFieldDimension)); 75 users.setPreferredSize(new Dimension(comboFieldDimension)); 76 usersAL=new ActionListener() { 77 public void actionPerformed(ActionEvent ae) { 78 WfResource choosen=getResource(users.getSelectedItem()); 79 worklist.setResource(choosen); 80 91 if (choosen==null) { 92 isLogged.setText(""); 93 } else { 94 LoggedUsersManagement lum=workflowAdmin. 95 getUserManagement().getLoggedUsersManagement(); 96 String uname=null; 97 try { 98 uname=choosen.resource_key(); 99 } catch (Exception ex) {} 100 if (lum.isLogged(uname)) { 101 isLogged.setText(" ---> "+ 102 ResourceManager.getLanguageDependentString("LoggedKey")); 103 } else { 104 isLogged.setText(" ---> "+ 105 ResourceManager.getLanguageDependentString("NotLoggedKey")); 106 } 107 } 108 } 109 }; 110 users.addActionListener(usersAL); 111 p.add(users); 112 113 p.add(isLogged); 114 115 JButton reassign=(JButton)BarFactory. 116 createButton(Utils.getUnqualifiedClassName(ReassignWorkitem.class),commands,true); 117 JPanel bp=new JPanel(); 118 bp.setLayout(new BorderLayout()); 119 bp.add(reassign,BorderLayout.EAST); 120 121 p.add(bp); 122 123 return p; 124 } 125 126 public void clear () { 127 existingUsers.clear(); 128 users.removeActionListener(usersAL); 129 users.removeAllItems(); 130 users.addActionListener(usersAL); 131 isLogged.setText(""); 132 worklist.clear(); 133 } 134 135 public synchronized void refresh (boolean mandatoryRefreshing) { 136 if (!(mandatoryRefreshing || isShowing())) return; 137 ArrayList oldEU=new ArrayList(existingUsers); 138 existingUsers.clear(); 139 try { 140 existingUsers=new ArrayList(Arrays.asList(SharkAdmin.getExecAmin().get_sequence_resource(0))); 141 } catch (Exception ex) { 142 ex.printStackTrace(); 143 } 144 145 ArrayList toAdd=new ArrayList(existingUsers); 146 toAdd.removeAll(oldEU); 147 ArrayList toRemove=new ArrayList(oldEU); 148 toRemove.removeAll(existingUsers); 149 150 if (toAdd.size()>0 || toRemove.size()>0) { 151 String toSelectId=null; 153 try { 154 toSelectId=worklist.getResource().resource_key(); 155 } catch (Exception ex) {} 156 157 users.removeActionListener(usersAL); 159 users.removeAllItems(); 161 Iterator it=existingUsers.iterator(); 162 while (it.hasNext()) { 163 WfResource res=(WfResource)it.next(); 164 try { 165 users.addItem(res.resource_key()); 166 } catch (Exception ex) { 167 } 169 } 170 users.setSelectedItem(toSelectId); 171 Object selItem=users.getSelectedItem(); 172 if ((selItem!=null) && (!selItem.equals(toSelectId))) { 173 worklist.setResource(getResource(selItem)); 174 } else { 175 worklist.refresh(); 176 } 177 186 users.addActionListener(usersAL); 188 } else { 189 worklist.refresh(); 190 } 191 } 192 193 private WfResource getResource (Object key) { 194 if (key==null) return null; 195 String un=(String )key; 196 Iterator it=existingUsers.iterator(); 197 while (it.hasNext()) { 198 WfResource res=(WfResource)it.next(); 199 try { 200 if (res.resource_key().equals(un)) { 201 return res; 202 } 203 } catch (Exception ex) { 204 } 206 } 207 return null; 208 } 209 210 } 211 | Popular Tags |