1 package org.enhydra.shark.corbaclient.workflowadmin.application; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import java.util.*; 6 7 import javax.swing.*; 8 import javax.swing.border.*; 9 import javax.swing.event.*; 10 11 import org.omg.WfBase.*; 12 import org.enhydra.jawe.xml.elements.*; 13 import org.enhydra.shark.corbaclient.*; 14 import org.enhydra.shark.corba.WorkflowService.*; 15 16 23 public class ApplicationMapping extends ActionPanel { 24 25 27 private static Dimension listFieldDimension=new Dimension(400,300); 28 private static Dimension textFieldDimension=new Dimension(300,20); 29 30 31 private JList applications; 32 private JList toolAgents; 33 private JTextField pkgId=new JTextField(); 34 private JTextField procDefId=new JTextField(); 35 private JTextField applicationId=new JTextField(); 36 private JTextField applicationName=new JTextField(); 37 38 private JTextArea taDesc=new JTextArea(); 39 private JTextField username=new JTextField(); 40 private JTextField password=new JPasswordField(); 41 private JTextField appName=new JTextField(); 42 private JTextField appMode=new JTextField(); 43 44 private Collection allApplications; 45 private Map allToolAgents; 46 47 private ApplicationMappingManagement pmm; 48 public ApplicationMapping(ApplicationMappingManagement pmm, 49 Collection allApplications,Map allToolAgents) { 50 this.pmm=pmm; 51 this.allApplications=allApplications; 52 this.allToolAgents=allToolAgents; 53 init(); 54 55 initDialog(pmm.getWindow(),ResourceManager. 56 getLanguageDependentString("DialogCreateApplicationDefinitionToToolAgentMapping"),true,true); 57 58 dialogOKButton.setText(ResourceManager.getLanguageDependentString("ApplyKey")); 59 dialogCancelButton.setText(ResourceManager.getLanguageDependentString("CloseKey")); 60 } 61 62 protected void createActions () {} 63 64 protected Component createCenterComponent (){ 65 pkgId.setEditable(false); 66 procDefId.setEditable(false); 67 applicationId.setEditable(false); 68 applicationName.setEditable(false); 69 taDesc.setEditable(false); 70 71 JScrollPane scrollParam=new JScrollPane(); 72 applications=new JList(allApplications.toArray()); 73 applications.addListSelectionListener(new ListSelectionListener() { 74 public void valueChanged(ListSelectionEvent e) { 75 if (e.getValueIsAdjusting()) { 76 return; 77 } 78 79 JList theList = (JList)e.getSource(); 80 if (theList.isSelectionEmpty()) { 81 pkgId.setText(""); 82 procDefId.setText(""); 83 applicationId.setText(""); 84 } else { 85 Application app = (Application)theList.getSelectedValue(); 86 pkgId.setText(app.getPackage().get("Id").toString()); 87 if (app.getCollection().getOwner() instanceof WorkflowProcess) { 88 procDefId.setText(((WorkflowProcess)app.getCollection().getOwner()).getID()); 89 } else { 90 procDefId.setText(""); 91 } 92 applicationId.setText(app.getID()); 93 applicationName.setText(app.get("Name").toString()); 94 } 95 } 96 }); 97 98 applications.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 99 scrollParam.setViewportView(applications); 100 scrollParam.setMinimumSize(new Dimension(listFieldDimension)); 101 scrollParam.setMaximumSize(new Dimension(listFieldDimension)); 102 scrollParam.setPreferredSize(new Dimension(listFieldDimension)); 103 104 JPanel ap=new JPanel(); 105 Border emptyb=BorderFactory.createEmptyBorder(10,10,10,10); 106 Border inb=BorderFactory.createMatteBorder(1,1,1,1,Color.darkGray); 107 inb=BorderFactory.createTitledBorder(inb, 108 ResourceManager.getLanguageDependentString("SelectApplicationKey")); 109 ap.setBorder(BorderFactory.createCompoundBorder(emptyb,inb)); 110 ap.setLayout(new BoxLayout(ap,BoxLayout.Y_AXIS)); 111 ap.add(scrollParam); 112 113 ap.add(Box.createVerticalGlue()); 114 115 JPanel ap1=new JPanel(); 116 ap1.setLayout(new BoxLayout(ap1,BoxLayout.X_AXIS)); 117 ap1.add(Box.createHorizontalGlue()); 118 ap1.add(new JLabel(ResourceManager.getLanguageDependentString("PackageIdKey")+": ")); 119 pkgId.setMinimumSize(new Dimension(textFieldDimension)); 120 pkgId.setMaximumSize(new Dimension(textFieldDimension)); 121 pkgId.setPreferredSize(new Dimension(textFieldDimension)); 122 ap1.add(pkgId); 123 ap.add(ap1); 124 125 ap1=new JPanel(); 126 ap1.setLayout(new BoxLayout(ap1,BoxLayout.X_AXIS)); 127 ap1.add(Box.createHorizontalGlue()); 128 ap1.add(new JLabel(ResourceManager.getLanguageDependentString("ProcessDefinitionIdKey")+": ")); 129 procDefId.setMinimumSize(new Dimension(textFieldDimension)); 130 procDefId.setMaximumSize(new Dimension(textFieldDimension)); 131 procDefId.setPreferredSize(new Dimension(textFieldDimension)); 132 ap1.add(procDefId); 133 ap.add(ap1); 134 135 ap1=new JPanel(); 136 ap1.setLayout(new BoxLayout(ap1,BoxLayout.X_AXIS)); 137 ap1.add(Box.createHorizontalGlue()); 138 ap1.add(new JLabel(ResourceManager.getLanguageDependentString("ApplicationIdKey")+": ")); 139 applicationId.setMinimumSize(new Dimension(textFieldDimension)); 140 applicationId.setMaximumSize(new Dimension(textFieldDimension)); 141 applicationId.setPreferredSize(new Dimension(textFieldDimension)); 142 ap1.add(applicationId); 143 ap.add(ap1); 144 145 ap1=new JPanel(); 146 ap1.setLayout(new BoxLayout(ap1,BoxLayout.X_AXIS)); 147 ap1.add(Box.createHorizontalGlue()); 148 ap1.add(new JLabel(ResourceManager.getLanguageDependentString("ApplicationNameKey")+": ")); 149 applicationName.setMinimumSize(new Dimension(textFieldDimension)); 150 applicationName.setMaximumSize(new Dimension(textFieldDimension)); 151 applicationName.setPreferredSize(new Dimension(textFieldDimension)); 152 ap1.add(applicationName); 153 ap.add(ap1); 154 155 scrollParam=new JScrollPane(); 156 toolAgents=new JList(new Vector(allToolAgents.keySet())); 157 toolAgents.addListSelectionListener(new ListSelectionListener() { 158 public void valueChanged(ListSelectionEvent e) { 159 if (e.getValueIsAdjusting()) { 160 return; 161 } 162 username.setText(""); 163 password.setText(""); 164 appName.setText(""); 165 appMode.setText(""); 166 taDesc.setText((String )allToolAgents.get(toolAgents.getSelectedValue().toString())); 167 taDesc.getCaret().setDot(0); 168 } 169 }); 170 toolAgents.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 171 scrollParam.setViewportView(toolAgents); 172 scrollParam.setMinimumSize(new Dimension(listFieldDimension)); 173 scrollParam.setMaximumSize(new Dimension(listFieldDimension)); 174 scrollParam.setPreferredSize(new Dimension(listFieldDimension)); 175 JPanel pd=new JPanel(); 176 pd.setLayout(new BoxLayout(pd,BoxLayout.Y_AXIS)); 177 JLabel jl=new JLabel(ResourceManager.getLanguageDependentString("DescriptionKey")+": "); 179 jl.setAlignmentX(Component.LEFT_ALIGNMENT); 180 jl.setAlignmentY(Component.TOP_ALIGNMENT); 181 jl.setHorizontalAlignment(SwingConstants.RIGHT); 182 pd.add(jl); 183 184 JScrollPane jsp=new JScrollPane(); 185 186 taDesc.setTabSize(4); 187 taDesc.setLineWrap(false); 188 taDesc.setWrapStyleWord(false); 189 190 jsp.setViewportView(taDesc); 191 jsp.setMinimumSize(new Dimension(listFieldDimension.width,75)); 192 jsp.setMaximumSize(new Dimension(listFieldDimension.width,75)); 193 jsp.setPreferredSize(new Dimension(listFieldDimension.width,75)); 194 pd.add(jsp); 195 196 JPanel pp=new JPanel(); 197 emptyb=BorderFactory.createEmptyBorder(10,10,10,10); 198 inb=BorderFactory.createMatteBorder(1,1,1,1,Color.darkGray); 199 inb=BorderFactory.createTitledBorder(inb, 200 ResourceManager.getLanguageDependentString("SelectToolAgentKey")); 201 pp.setBorder(BorderFactory.createCompoundBorder(emptyb,inb)); 202 pp.setLayout(new BoxLayout(pp,BoxLayout.Y_AXIS)); 203 pp.add(scrollParam); 204 pp.add(Box.createVerticalStrut(5)); 205 pp.add(pd); 206 pp.add(Box.createVerticalStrut(5)); 207 208 JPanel pp1=new JPanel(); 209 pp1.setLayout(new BoxLayout(pp1,BoxLayout.X_AXIS)); 210 pp1.add(Box.createHorizontalGlue()); 211 pp1.add(new JLabel(ResourceManager.getLanguageDependentString("UsernameKey")+": ")); 212 username.setMinimumSize(new Dimension(textFieldDimension)); 213 username.setMaximumSize(new Dimension(textFieldDimension)); 214 username.setPreferredSize(new Dimension(textFieldDimension)); 215 pp1.add(username); 216 pp.add(pp1); 217 218 pp1=new JPanel(); 219 pp1.setLayout(new BoxLayout(pp1,BoxLayout.X_AXIS)); 220 pp1.add(Box.createHorizontalGlue()); 221 pp1.add(new JLabel(ResourceManager.getLanguageDependentString("PasswordKey")+": ")); 222 password.setMinimumSize(new Dimension(textFieldDimension)); 223 password.setMaximumSize(new Dimension(textFieldDimension)); 224 password.setPreferredSize(new Dimension(textFieldDimension)); 225 pp1.add(password); 226 pp.add(pp1); 227 228 pp1=new JPanel(); 229 pp1.setLayout(new BoxLayout(pp1,BoxLayout.X_AXIS)); 230 pp1.add(Box.createHorizontalGlue()); 231 pp1.add(new JLabel(ResourceManager.getLanguageDependentString("ApplicationNameKey")+": ")); 232 appName.setMinimumSize(new Dimension(textFieldDimension)); 233 appName.setMaximumSize(new Dimension(textFieldDimension)); 234 appName.setPreferredSize(new Dimension(textFieldDimension)); 235 pp1.add(appName); 236 pp.add(pp1); 237 238 pp1=new JPanel(); 239 pp1.setLayout(new BoxLayout(pp1,BoxLayout.X_AXIS)); 240 pp1.add(Box.createHorizontalGlue()); 241 pp1.add(new JLabel(ResourceManager.getLanguageDependentString("ApplicationModeKey")+": ")); 242 appMode.setMinimumSize(new Dimension(textFieldDimension)); 243 appMode.setMaximumSize(new Dimension(textFieldDimension)); 244 appMode.setPreferredSize(new Dimension(textFieldDimension)); 245 pp1.add(appMode); 246 pp.add(pp1); 247 248 JPanel mp=new JPanel(); 249 mp.setBorder(BorderFactory.createEtchedBorder()); 250 mp.setLayout(new BoxLayout(mp,BoxLayout.X_AXIS)); 251 252 mp.add(ap); 253 mp.add(pp); 254 255 return mp; 256 } 257 258 protected void applyChanges () { 259 String packageId; 260 String processDefinitionId; 261 String participantId; 262 String applicationId; 263 String pname=null; 264 265 if (applications.isSelectionEmpty() || toolAgents.isSelectionEmpty()) return; 266 267 Application selApp=(Application)applications.getSelectedValue(); 268 packageId=selApp.getPackage().get("Id").toString(); 269 if (selApp.getCollection().getOwner() instanceof WorkflowProcess) { 270 processDefinitionId=((WorkflowProcess)selApp.getCollection().getOwner()).getID(); 271 } else { 272 processDefinitionId=""; 273 } 274 applicationId=((Application)applications.getSelectedValue()).get("Id").toString(); 275 276 try { 277 pname=(String )toolAgents.getSelectedValue(); 278 } catch (Exception ex){ 279 return; 280 } 281 282 MappingAdministration mm=SharkClient.getMappingAdmin(); 283 ApplicationMap am=null;; 284 try { 285 am=mm.createApplicationMap(); 286 } catch (Exception ex) {} 287 if (am!=null) { 288 am.setPackageId(packageId); 289 am.setProcessDefinitionId(processDefinitionId); 290 am.setApplicationDefinitionId(applicationId); 291 am.setToolAgentClassName(pname); 292 am.setUsername(username.getText()); 293 am.setPassword(password.getText()); 294 am.setApplicationName(appName.getText()); 295 String aM=appMode.getText().trim(); 296 if (aM.length()>0) { 297 try { 298 am.setApplicationMode(Integer.parseInt(aM)); 299 } catch (Exception ex) {} 300 } 301 } 302 try { 303 mm.addApplicationMapping(am); 304 } catch (Exception ex) { 305 ex.printStackTrace(); 306 JOptionPane.showMessageDialog(pmm.getWindow(), 307 ResourceManager.getLanguageDependentString("MessageMappingAlreadyExistsOrCannotBeAddedAtTheMoment"), 308 ResourceManager.getLanguageDependentString("WorkflowAdminTitle"), 309 JOptionPane.INFORMATION_MESSAGE); 310 return; 311 } 312 pmm.refresh(true); 313 } 314 315 protected void cancelChanges () { 316 myDialog.dispose(); 317 } 318 319 } 320 321 | Popular Tags |