1 package org.enhydra.shark.corbaclient.workflowadmin.application; 2 3 import java.awt.*; 4 import java.util.*; 5 6 import javax.swing.*; 7 import javax.swing.table.*; 8 9 import org.enhydra.shark.corba.WorkflowService.*; 10 import org.omg.WfBase.*; 11 import org.enhydra.jawe.xml.elements.*; 12 import org.enhydra.shark.corbaclient.*; 13 import org.enhydra.shark.corbaclient.workflowadmin.*; 14 import org.enhydra.shark.corbaclient.workflowadmin.application.actions.*; 15 16 import org.enhydra.jawe.JaWE; 17 18 25 public class ApplicationMappingManagement extends ActionPanel { 26 27 private SharkAdmin workflowAdmin; 28 29 private TablePanel existingMappingsPanel; 30 31 private Map applicationKeyToApplication=new HashMap(); 32 33 public ApplicationMappingManagement (SharkAdmin wa) { 34 super(); 35 this.workflowAdmin=wa; 36 super.init(); 37 } 38 39 protected void createActions () { 40 defaultActions=new Action[] { 41 new AddApplicationMapping(this), 42 new RemoveApplicationMapping(this) 43 }; 44 } 45 46 protected Component createCenterComponent() { 47 Vector columnNames=new Vector(); 48 columnNames.add(ResourceManager.getLanguageDependentString("PackageIdKey")); 49 columnNames.add(ResourceManager.getLanguageDependentString("ProcessDefinitionIdKey")); 50 columnNames.add(ResourceManager.getLanguageDependentString("ApplicationIdKey")); 51 columnNames.add(ResourceManager.getLanguageDependentString("ApplicationNameKey")); 52 columnNames.add("-->"); 53 columnNames.add(ResourceManager.getLanguageDependentString("ToolAgentNameKey")); 54 columnNames.add(ResourceManager.getLanguageDependentString("UsernameKey")); 55 columnNames.add(ResourceManager.getLanguageDependentString("PasswordKey")); 56 columnNames.add(ResourceManager.getLanguageDependentString("ApplicationNameKey")); 57 columnNames.add(ResourceManager.getLanguageDependentString("ApplicationModeKey")); 58 existingMappingsPanel=new TablePanel(columnNames, true); 59 JTable t=existingMappingsPanel.getTable(); 60 TableColumnModel tcm=t.getColumnModel(); 61 TableColumn column=t.getColumnModel().getColumn(4); 62 column.setMaxWidth(30); 63 column.setMinWidth(30); 64 column.setPreferredWidth(30); 65 column.setResizable(false); 66 67 return existingMappingsPanel; 68 } 69 70 public void clear () { 71 applicationKeyToApplication.clear(); 72 existingMappingsPanel.removeAll(); 73 } 74 75 public synchronized void refresh (boolean mandatoryRefreshing) { 76 if (!(mandatoryRefreshing || isShowing())) return; 77 SharkConnection wcs=workflowAdmin.getService(); 78 if (wcs==null) return; 79 java.util.List allMappings=null; 80 MappingAdministration mm=SharkAdmin.getMappingAdmin(); 81 82 try { 83 allMappings=new ArrayList(Arrays.asList(mm.getApplicationMappings())); 84 } catch (Exception ex) { 85 System.out.println("Something went wrong during retrieval of mappings from engine"); 86 return; 87 } 88 Collection pkgs=JaWE.getInstance().getXMLInterface().getAllPackages(); 89 existingMappingsPanel.removeAll(); 90 applicationKeyToApplication.clear(); 91 92 createApplicationsMap(pkgs); 94 95 Iterator it=allMappings.iterator(); 97 while (it.hasNext()) { 98 ApplicationMap am=(ApplicationMap)it.next(); 99 try { 100 Vector v=new Vector(); 101 v.add(am.getPackageId()); 102 v.add(am.getProcessDefinitionId()); 103 v.add(am.getApplicationDefinitionId()); 104 Application app=((Application)applicationKeyToApplication. 105 get(WorkflowUtilities. 106 createParticipantOrApplicationKey( 107 am.getPackageId(), 108 am.getProcessDefinitionId(), 109 am.getApplicationDefinitionId()))); 110 if (app!=null) { 111 v.add(app.get("Name").toString()); 112 } else { 113 v.add(""); 114 } 115 v.add(""); 116 v.add(am.getToolAgentClassName()); 117 v.add(am.getUsername()); 118 v.add(am.getPassword()); 119 v.add(am.getApplicationName()); 120 if (am.getApplicationMode()!=-Integer.MAX_VALUE) { 121 v.add(new Integer (am.getApplicationMode())); 122 } else { 123 v.add(""); 124 } 125 existingMappingsPanel.addElement(v); 126 } catch (Exception ex) { 127 System.out.println("Incorrect vector size"); 128 } 129 } 130 } 131 132 private void createApplicationsMap (Collection packageColl) { 133 MappingAdministration mm=SharkAdmin.getMappingAdmin(); 134 ArrayList allLoadedApplications=new ArrayList(); 135 try { 136 ApplicationMap[] maps=mm.getAllApplications(); 137 for (int i=0; i<maps.length; i++) { 138 allLoadedApplications.add( 139 WorkflowUtilities.createParticipantOrApplicationKey( 140 maps[i].getPackageId(), 141 maps[i].getProcessDefinitionId(), 142 maps[i].getApplicationDefinitionId())); 143 } 144 } catch (Exception ex) { 145 } 146 147 if (allLoadedApplications.size()==0) return; 148 149 org.enhydra.jawe.xml.elements.Package pkg; 150 Iterator packages=packageColl.iterator(); 151 while (packages.hasNext()) { 152 pkg=(org.enhydra.jawe.xml.elements.Package)packages.next(); 153 Applications aps=(Applications)pkg.get("Applications"); 154 Iterator applications=aps.toCollection().iterator(); 155 while (applications.hasNext()) { 156 Application a=(Application)applications.next(); 157 String applicationKey=WorkflowUtilities.createParticipantOrApplicationKey( 158 pkg.get("Id").toString(),"",a.getID()); 159 if (allLoadedApplications.contains(applicationKey)) { 160 applicationKeyToApplication.put(applicationKey,a); 161 } 162 } 163 Iterator processes=((WorkflowProcesses)pkg.get("WorkflowProcesses")). 164 toCollection().iterator(); 165 while (processes.hasNext()) { 166 WorkflowProcess wp=(WorkflowProcess)processes.next(); 167 aps=(Applications)wp.get("Applications"); 168 applications=aps.toCollection().iterator(); 169 while (applications.hasNext()) { 170 Application a=(Application)applications.next(); 171 String applicationKey=WorkflowUtilities.createParticipantOrApplicationKey( 172 pkg.get("Id").toString(),wp.getID(),a.getID()); 173 if (allLoadedApplications.contains(applicationKey)) { 174 applicationKeyToApplication.put(applicationKey,a); 175 } 176 } 177 } 178 } 179 } 180 181 public SharkAdmin getWorkflowAdmin () { 182 return workflowAdmin; 183 } 184 185 public Map getApplicationKeyToApplication () { 186 return applicationKeyToApplication; 187 } 188 189 public TablePanel getExistingMappingsPanel () { 190 return existingMappingsPanel; 191 } 192 193 } 194 195 196 | Popular Tags |