KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > shark > corbaclient > workflowadmin > application > ApplicationMappingManagement


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 /**
19  * Implements the user interface and program logic to manage the
20  * application mappings.
21  *
22  * @author Sasa Bojanic
23  * @version 1.0
24  */

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 JavaDoc allMappings=null;
80       MappingAdministration mm=SharkAdmin.getMappingAdmin();
81
82       try {
83          allMappings=new ArrayList(Arrays.asList(mm.getApplicationMappings()));
84       } catch (Exception JavaDoc 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       // add applications to the map
93
createApplicationsMap(pkgs);
94
95       // add newly added mappings to the table
96
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 JavaDoc(am.getApplicationMode()));
122             } else {
123                v.add("");
124             }
125             existingMappingsPanel.addElement(v);
126          } catch (Exception JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc 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