KickJava   Java API By Example, From Geeks To Geeks.

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


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 /**
17  * The dialog that enables the application to map some application definition to
18  * the actual application represented by its tool agent.
19  *
20  * @author Sasa Bojanic
21  * @version 1.0
22  */

23 public class ApplicationMapping extends ActionPanel {
24
25    //private static String[] appModes={"SYNCHRONOUS","ASYNCHRONOUS","FILE","TEXT"};
26

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 JavaDoc)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       //pd.add(Box.createVerticalGlue());
178
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 JavaDoc packageId;
260       String JavaDoc processDefinitionId;
261       String JavaDoc participantId;
262       String JavaDoc applicationId;
263       String JavaDoc 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 JavaDoc)toolAgents.getSelectedValue();
278       } catch (Exception JavaDoc ex){
279          return;
280       }
281
282       MappingAdministration mm=SharkClient.getMappingAdmin();
283       ApplicationMap am=null;;
284       try {
285          am=mm.createApplicationMap();
286       } catch (Exception JavaDoc 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 JavaDoc aM=appMode.getText().trim();
296          if (aM.length()>0) {
297             try {
298                am.setApplicationMode(Integer.parseInt(aM));
299             } catch (Exception JavaDoc ex) {}
300          }
301       }
302       try {
303          mm.addApplicationMapping(am);
304       } catch (Exception JavaDoc 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