KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > memoire > vainstall > builder > gui > NewProductWizard


1 /*
2  * $RCSfile: NewProductWizard.java,v $
3  * @modification $Date: 2001/09/28 19:35:30 $
4  * @version $Id: NewProductWizard.java,v 1.1 2001/09/28 19:35:30 hfalk Exp $
5  *
6  */

7
8 package com.memoire.vainstall.builder.gui;
9
10 import com.memoire.vainstall.VAGlobals;
11 import com.memoire.vainstall.builder.VAIBuilderModel;
12 import com.memoire.vainstall.builder.util.*;
13
14 import java.awt.*;
15 import java.awt.event.*;
16 import java.io.File JavaDoc;
17
18 import javax.swing.*;
19 import javax.swing.border.*;
20 import javax.swing.event.*;
21 import javax.swing.text.*;
22
23 /**
24  * This class is a wizard that 'guides' the user to create a new product.
25  *
26  * It collects the data from the user.
27  *
28  * @see com.memoire.vainstall.builder.VAIBuilderModel
29  * @see java.awt.ActionListener
30  * @see java.awt.WindowListener
31  * @see javax.swing.JDialog
32  * @see javax.swing.event.DocumentListener
33  *
34  * @author Henrik Falk
35  * @version $Id: NewProductWizard.java,v 1.1 2001/09/28 19:35:30 hfalk Exp $
36  */

37 public class NewProductWizard extends JDialog implements WindowListener, ActionListener, DocumentListener {
38
39     VAIBuilderModel model;
40
41     private final static Border loweredBorder = new SoftBevelBorder(BevelBorder.LOWERED);
42     private final static Border raisedBorder = new SoftBevelBorder(BevelBorder.RAISED);
43
44     JPanel allPanel;
45
46     JButton okButton;
47     JButton cancelButton;
48
49     JTextField nameField;
50     JTextField versionField;
51     JTextField directoryField;
52     JButton directoryButton;
53     JComboBox typeBox;
54
55     String JavaDoc action = VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Cancel");
56
57     public NewProductWizard(Frame owner)
58     {
59         super(owner);
60         setTitle(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_New"));
61
62         setModal(true);
63
64         setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
65
66         getRootPane().registerKeyboardAction(this,"VK_ESCAPE",
67                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0,false),
68                 JComponent.WHEN_IN_FOCUSED_WINDOW);
69
70         // create the all panel
71
allPanel = new JPanel(new BorderLayout());
72         allPanel.setBorder(loweredBorder);
73
74         // ********************************************************
75
// create 'logo'
76
JPanel nPanel = new JPanel(new GridBagLayout());
77         nPanel.setBorder(raisedBorder);
78         nPanel.setBackground(Color.white);
79         GridBagLayout nLayout = (GridBagLayout)nPanel.getLayout();
80
81         JLabel whatLabel = new JLabel(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Title"));
82         whatLabel.setFont(new java.awt.Font JavaDoc("TimesRoman", java.awt.Font.BOLD, 16));
83         GridBagConstraints nContraint = new GridBagConstraints();
84         nContraint.fill = GridBagConstraints.BOTH;
85         nContraint.insets = new Insets(4,8,4,4);
86         nContraint.anchor = GridBagConstraints.WEST;
87         nContraint.gridx = 0;
88         nContraint.gridy = 0;
89         nContraint.gridwidth = 1;
90         nContraint.gridheight = 1;
91         nContraint.weightx = 1;
92         nContraint.weighty = 0;
93         nLayout.setConstraints(whatLabel,nContraint);
94         nPanel.add(whatLabel);
95
96         JLabel helpLabel = new JLabel(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_SubTitle"));
97         helpLabel.setFont(new java.awt.Font JavaDoc("TimesRoman", java.awt.Font.PLAIN, 12));
98         nContraint.fill = GridBagConstraints.BOTH;
99         nContraint.insets = new Insets(4,16,4,4);
100         nContraint.anchor = GridBagConstraints.WEST;
101         nContraint.gridx = 0;
102         nContraint.gridy = 1;
103         nContraint.gridwidth = 1;
104         nContraint.gridheight = 1;
105         nContraint.weightx = 0;
106         nContraint.weighty = 0;
107         nLayout.setConstraints(helpLabel,nContraint);
108         nPanel.add(helpLabel);
109
110         JLabel iconLabel = new JLabel(new javax.swing.ImageIcon JavaDoc(getClass().getResource("/com/memoire/vainstall/builder/images/New24.gif")));
111 // GridBagConstraints nContraint = new GridBagConstraints();
112
nContraint.fill = GridBagConstraints.BOTH;
113         nContraint.insets = new Insets(4,4,4,8);
114         nContraint.anchor = GridBagConstraints.WEST;
115         nContraint.gridx = 1;
116         nContraint.gridy = 0;
117         nContraint.gridwidth = 1;
118         nContraint.gridheight = 2;
119         nContraint.weightx = 0;
120         nContraint.weighty = 0;
121         nLayout.setConstraints(iconLabel,nContraint);
122         nPanel.add(iconLabel);
123
124         allPanel.add(nPanel, BorderLayout.NORTH);
125
126         // ********************************************************
127
// Create body
128
JPanel cPanel = new JPanel(new GridBagLayout());
129         GridBagLayout cLayout = (GridBagLayout)cPanel.getLayout();
130         GridBagConstraints cContraint = new GridBagConstraints();
131
132         JLabel nameLabel = new JLabel();
133         nameLabel.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Name"));
134 // nameLabel.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
135
cContraint.fill = GridBagConstraints.BOTH;
136         cContraint.insets = new Insets(8,8,0,4);
137         cContraint.anchor = GridBagConstraints.WEST;
138         cContraint.gridx = 0;
139         cContraint.gridy = 0;
140         cContraint.gridwidth = 3;
141         cContraint.gridheight = 1;
142         cContraint.weightx = 0;
143         cContraint.weighty = 0;
144         cLayout.setConstraints(nameLabel,cContraint);
145         cPanel.add(nameLabel);
146         
147         nameField = new JTextField();
148         nameField.getDocument().addDocumentListener(this);
149 // nameField.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
150
cContraint.fill = GridBagConstraints.BOTH;
151         cContraint.insets = new Insets(4,8,4,8);
152         cContraint.anchor = GridBagConstraints.CENTER;
153         cContraint.gridx = 0;
154         cContraint.gridy = 1;
155         cContraint.gridwidth = 3;
156         cContraint.gridheight = 1;
157         cContraint.weightx = 1;
158         cContraint.weighty = 0;
159         cLayout.setConstraints(nameField,cContraint);
160         cPanel.add(nameField);
161
162         JLabel versionLabel = new JLabel();
163         versionLabel.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Version"));
164 // versionLabel.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
165
cContraint.fill = GridBagConstraints.BOTH;
166         cContraint.insets = new Insets(4,8,0,4);
167         cContraint.anchor = GridBagConstraints.WEST;
168         cContraint.gridx = 0;
169         cContraint.gridy = 2;
170         cContraint.gridwidth = 3;
171         cContraint.gridheight = 1;
172         cContraint.weightx = 0;
173         cContraint.weighty = 0;
174         cLayout.setConstraints(versionLabel,cContraint);
175         cPanel.add(versionLabel);
176         
177         versionField = new JTextField();
178         versionField.getDocument().addDocumentListener(this);
179 // versionField.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
180
// versionField.setColumns(8);
181
cContraint.fill = GridBagConstraints.HORIZONTAL;
182         cContraint.insets = new Insets(4,8,4,8);
183         cContraint.anchor = GridBagConstraints.WEST;
184         cContraint.gridx = 0;
185         cContraint.gridy = 3;
186         cContraint.gridwidth = 1;
187         cContraint.gridheight = 1;
188         cContraint.weightx = 0;
189         cContraint.weighty = 0;
190         cLayout.setConstraints(versionField,cContraint);
191         cPanel.add(versionField);
192
193         JLabel directoryLabel = new JLabel();
194         directoryLabel.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Directory"));
195 // directoryLabel.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
196
cContraint.fill = GridBagConstraints.BOTH;
197         cContraint.insets = new Insets(4,8,0,4);
198         cContraint.anchor = GridBagConstraints.WEST;
199         cContraint.gridx = 0;
200         cContraint.gridy = 4;
201         cContraint.gridwidth = 1;
202         cContraint.gridheight = 1;
203         cContraint.weightx = 0;
204         cContraint.weighty = 0;
205         cLayout.setConstraints(directoryLabel,cContraint);
206         cPanel.add(directoryLabel);
207         
208         directoryField = new JTextField();
209         directoryField.setEditable(false);
210 // directoryField.setEnabled(false);
211
// directoryField.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
212
cContraint.fill = GridBagConstraints.BOTH;
213         cContraint.insets = new Insets(4,8,4,8);
214         cContraint.anchor = GridBagConstraints.CENTER;
215         cContraint.gridx = 0;
216         cContraint.gridy = 5;
217         cContraint.gridwidth = 2;
218         cContraint.gridheight = 1;
219         cContraint.weightx = 1;
220         cContraint.weighty = 0;
221         cLayout.setConstraints(directoryField,cContraint);
222         cPanel.add(directoryField);
223
224         directoryButton = new JButton();
225         directoryButton.setText("Change");
226         directoryButton.setSize(directoryButton.getSize().width,directoryField.getSize().height);
227         directoryButton.addActionListener(this);
228 // directoryButton.setFont(new java.awt.Font("TimesRoman", java.awt.Font.PLAIN, 14));
229
cContraint.fill = GridBagConstraints.BOTH;
230         cContraint.insets = new Insets(4,4,4,8);
231         cContraint.anchor = GridBagConstraints.CENTER;
232         cContraint.gridx = 1;
233         cContraint.gridy = 5;
234         cContraint.gridwidth = 1;
235         cContraint.gridheight = 1;
236         cContraint.weightx = 0;
237         cContraint.weighty = 0;
238         cLayout.setConstraints(directoryButton,cContraint);
239         cPanel.add(directoryButton);
240
241         JLabel typeLabel = new JLabel();
242         typeLabel.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Type"));
243         cContraint.fill = GridBagConstraints.BOTH;
244         cContraint.insets = new Insets(4,8,8,4);
245         cContraint.anchor = GridBagConstraints.WEST;
246         cContraint.gridx = 0;
247         cContraint.gridy = 6;
248         cContraint.gridwidth = 1;
249         cContraint.gridheight = 1;
250         cContraint.weightx = 0;
251         cContraint.weighty = 0;
252         cLayout.setConstraints(typeLabel,cContraint);
253         cPanel.add(typeLabel);
254         
255         typeBox = new JComboBox();
256         typeBox.addItem(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Type_Install"));
257         typeBox.addItem(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Type_Update"));
258         typeBox.addItem(VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Type_Module"));
259         cContraint.fill = GridBagConstraints.HORIZONTAL;
260         cContraint.insets = new Insets(4,8,8,8);
261         cContraint.anchor = GridBagConstraints.WEST;
262         cContraint.gridx = 1;
263         cContraint.gridy = 6;
264         cContraint.gridwidth = 2;
265         cContraint.gridheight = 1;
266         cContraint.weightx = 0;
267         cContraint.weighty = 0;
268         cLayout.setConstraints(typeBox,cContraint);
269         cPanel.add(typeBox);
270
271         JPanel centerFillPanel = new JPanel();
272         cContraint.fill = GridBagConstraints.BOTH;
273         cContraint.insets = new Insets(8,4,4,4);
274         cContraint.anchor = GridBagConstraints.WEST;
275         cContraint.gridx = 0;
276         cContraint.gridy = 7;
277         cContraint.gridwidth = 1;
278         cContraint.gridheight = 1;
279         cContraint.weightx = 0;
280         cContraint.weighty = 1;
281         cLayout.setConstraints(centerFillPanel,cContraint);
282         cPanel.add(centerFillPanel);
283
284         allPanel.add(cPanel, BorderLayout.CENTER);
285
286         // ********************************************************
287
// Create buttons
288
JPanel sPanel = new JPanel(new GridBagLayout());
289         sPanel.setBorder(raisedBorder);
290         GridBagLayout sLayout = (GridBagLayout)sPanel.getLayout();
291         GridBagConstraints sContraint = new GridBagConstraints();
292
293         JPanel buttonFillPanel = new JPanel();
294         sContraint.fill = GridBagConstraints.BOTH;
295         sContraint.insets = new Insets(4,4,4,4);
296         sContraint.anchor = GridBagConstraints.WEST;
297         sContraint.gridx = 0;
298         sContraint.gridy = 1;
299         sContraint.gridwidth = 1;
300         sContraint.gridheight = 1;
301         sContraint.weightx = 1;
302         sContraint.weighty = 0;
303         sLayout.setConstraints(buttonFillPanel,sContraint);
304         sPanel.add(buttonFillPanel);
305
306         okButton = new JButton();
307         okButton.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Finish"));
308         okButton.addActionListener(this);
309         okButton.setEnabled(false);
310         sContraint.fill = GridBagConstraints.BOTH;
311         sContraint.insets = new Insets(4,4,4,4);
312         sContraint.anchor = GridBagConstraints.WEST;
313         sContraint.gridx = 1;
314         sContraint.gridy = 1;
315         sContraint.gridwidth = 1;
316         sContraint.gridheight = 1;
317         sContraint.weightx = 0;
318         sContraint.weighty = 0;
319         sLayout.setConstraints(okButton,sContraint);
320         sPanel.add(okButton);
321
322         cancelButton = new JButton();
323         cancelButton.setText(VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Cancel"));
324         cancelButton.addActionListener(this);
325         sContraint.fill = GridBagConstraints.BOTH;
326         sContraint.insets = new Insets(4,4,4,8);
327         sContraint.anchor = GridBagConstraints.WEST;
328         sContraint.gridx = 2;
329         sContraint.gridy = 1;
330         sContraint.gridwidth = 1;
331         sContraint.gridheight = 1;
332         sContraint.weightx = 0;
333         sContraint.weighty = 0;
334         sLayout.setConstraints(cancelButton,sContraint);
335         sPanel.add(cancelButton);
336
337         allPanel.add(sPanel, BorderLayout.SOUTH);
338
339         // ********************************************************
340
// insert the all panel
341
this.getContentPane().add("Center",allPanel);
342
343         setSize(500,340);
344         center();
345     }
346
347     /**
348      * Since we need a reference to the root project directory
349      * we need to know the VAIBuilderModel
350      */

351     public void initialize(VAIBuilderModel model) {
352         this.model = model;
353
354         String JavaDoc rootDirectory = (String JavaDoc)model.getPropertyList().get("vainstall.projectroot");
355         if (rootDirectory == null) {
356             rootDirectory = System.getProperty("user.dir");
357         }
358         directoryField.setText(rootDirectory);
359     }
360
361 public void actionPerformed(ActionEvent evt)
362 {
363
364   // extract the control that sends the event
365
Object JavaDoc source = evt.getSource();
366   String JavaDoc actionCommand = evt.getActionCommand();
367
368   if(actionCommand != null && actionCommand.equals("VK_ESCAPE")==true)
369   {
370     action = VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Cancel");
371   }
372
373         if (source == directoryButton) {
374
375             JFileChooser jfc = new JFileChooser();
376             jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
377
378             String JavaDoc rootDirectory = (String JavaDoc)model.getPropertyList().get("vainstall.projectroot");
379             if (rootDirectory == null) {
380                 rootDirectory = System.getProperty("user.dir");
381             }
382             jfc.setCurrentDirectory(new File JavaDoc(rootDirectory));
383
384             int result = jfc.showDialog(null,VAGlobals.getResource("com.memoire.vainstall.builder.Language","NewProductWizard_Select"));
385             if (result == JFileChooser.APPROVE_OPTION) {
386                 directoryField.setText(jfc.getSelectedFile().getAbsolutePath());
387             }
388             return;
389         }
390
391   if(source == okButton)
392   {
393     action = VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Finish");
394   }
395
396   if(source == cancelButton)
397   {
398     action = VAGlobals.getResource("com.memoire.vainstall.builder.Language","Common_Cancel");
399   }
400
401   setVisible(false);
402
403 }
404
405     public String JavaDoc getAction() {
406         return action;
407     }
408
409     public void center() {
410         Dimension dimScreen = Toolkit.getDefaultToolkit().getScreenSize();
411         setLocation((dimScreen.width - this.getSize().width) / 2,
412                     (dimScreen.height - this.getSize().height) / 2);
413     }
414
415 /**
416  * Method to handle events for the WindowListener interface.
417  * @param e java.awt.event.WindowEvent
418  */

419 public void windowActivated(java.awt.event.WindowEvent JavaDoc e)
420 {
421 }
422
423 /**
424  * Method to handle events for the WindowListener interface.
425  * @param e java.awt.event.WindowEvent
426  */

427 public void windowClosed(java.awt.event.WindowEvent JavaDoc e)
428 {
429 }
430
431 /**
432  * Method to handle events for the WindowListener interface.
433  * @param e java.awt.event.WindowEvent
434  */

435 public void windowClosing(java.awt.event.WindowEvent JavaDoc e)
436 {
437 }
438
439 /**
440  * Method to handle events for the WindowListener interface.
441  * @param e java.awt.event.WindowEvent
442  */

443 public void windowDeactivated(java.awt.event.WindowEvent JavaDoc e)
444 {
445 }
446
447 /**
448  * Method to handle events for the WindowListener interface.
449  * @param e java.awt.event.WindowEvent
450  */

451 public void windowDeiconified(java.awt.event.WindowEvent JavaDoc e)
452 {
453 }
454
455 /**
456  * Method to handle events for the WindowListener interface.
457  * @param e java.awt.event.WindowEvent
458  */

459 public void windowIconified(java.awt.event.WindowEvent JavaDoc e)
460 {
461 }
462
463 /**
464  * Method to handle events for the WindowListener interface.
465  * @param e java.awt.event.WindowEvent
466  */

467 public void windowOpened(java.awt.event.WindowEvent JavaDoc e)
468 {
469     okButton.requestFocus();
470 }
471
472 public void changedUpdate(DocumentEvent e) {
473 }
474 public void insertUpdate(DocumentEvent e) {
475     if (nameField.getText().length() > 0 && versionField.getText().length() > 0) {
476         okButton.setEnabled(true);
477     } else {
478         okButton.setEnabled(false);
479     }
480 }
481 public void removeUpdate(DocumentEvent e) {
482     if (nameField.getText().length() > 0 && versionField.getText().length() > 0) {
483         okButton.setEnabled(true);
484     } else {
485         okButton.setEnabled(false);
486     }
487 }
488
489     public String JavaDoc getProductName() {
490          return nameField.getText();
491     }
492
493     public String JavaDoc getProductVersion() {
494          return versionField.getText();
495     }
496
497     public String JavaDoc getProductDirectory() {
498          return directoryField.getText();
499     }
500
501     public String JavaDoc getProductType() {
502          return "install";
503     }
504
505 }
506
Popular Tags