KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > memoire > vainstall > builder > action > ShowRequirementsAction


1 /*
2  * $RCSfile: ShowRequirementsAction.java,v $
3  * @modification $Date: 2002/12/16 13:23:45 $
4  * @version $Id: ShowRequirementsAction.java,v 1.2 2002/12/16 13:23:45 deniger Exp $
5  *
6  */

7
8 package com.memoire.vainstall.builder.action;
9
10 import com.memoire.vainstall.VAGlobals;
11 import com.memoire.vainstall.builder.*;
12 import com.memoire.vainstall.builder.event.*;
13 import com.memoire.vainstall.builder.gui.ShowRequirementsFrame;
14 import com.memoire.vainstall.builder.util.*;
15
16 import java.awt.Rectangle JavaDoc;
17 import java.awt.event.*;
18 import java.util.Enumeration JavaDoc;
19
20 import javax.swing.*;
21 import javax.swing.event.*;
22
23 /**
24  * This action shows a window in which required fields not
25  * yet filled out are shown.
26  *
27  * @see com.memoire.vainstall.builder.util.AbstractVAIBuilderAction
28  *
29  * @author Henrik Falk
30  * @version $Id: ShowRequirementsAction.java,v 1.2 2002/12/16 13:23:45 deniger Exp $
31  */

32 public class ShowRequirementsAction extends AbstractVAIBuilderAction implements WindowListener, ListSelectionListener, VAIBuilderListener {
33
34     /**
35      * We keep a reference to the window to have only one opened window
36      * and keep track of the window bounds
37      */

38     ShowRequirementsFrame requirements;
39
40
41     DefaultListModel emptyListModel = new DefaultListModel();
42
43     /**
44      * Default constructor
45      */

46     public ShowRequirementsAction() {
47         super();
48     }
49
50     /**
51      * Implements the runnit method
52      */

53     public void runnit() {
54
55         // if show before then restore window and show it
56
if (requirements != null) {
57         // requirements.setExtendedState(JFrame.NORMAL);
58
requirements.setVisible(true);
59             return;
60         }
61
62         // create window and listen to windowDeactivated()
63
requirements = new ShowRequirementsFrame();
64         requirements.addWindowListener(this);
65
66         // add listener for builder events
67
getModel().addVAIBuilderListener(this);
68
69         if (getController().getActiveProductController() != null) {
70
71             DefaultListModel model = getController().getActiveProductController().getModel().getRequiredListModel();
72
73             requirements.getList().setModel(model);
74             if(model.size() > 0) {
75                 requirements.getList().addListSelectionListener(this);
76                 requirements.getList().setSelectedIndex(0);
77             }
78         }
79
80         // set bounds from properties
81
if(getModel().getWindowList().get("ShowRequirementsFrame") == null ) {
82             ((ShowRequirementsFrame)requirements).center();
83         } else {
84             requirements.setBounds((Rectangle JavaDoc)getModel().getWindowList().get("ShowRequirementsFrame"));
85         }
86
87         requirements.setVisible(true);
88     }
89
90      /**
91       * Method to handle events for the WindowListener interface.
92       * @param e java.awt.event.WindowEvent
93       */

94      public void windowActivated(java.awt.event.WindowEvent JavaDoc e) {
95      }
96
97      /**
98       * Method to handle events for the WindowListener interface.
99       * @param e java.awt.event.WindowEvent
100       */

101      public void windowClosed(java.awt.event.WindowEvent JavaDoc e) {
102      }
103
104      /**
105       * Method to handle events for the WindowListener interface.
106       * @param e java.awt.event.WindowEvent
107       */

108      public void windowClosing(java.awt.event.WindowEvent JavaDoc e) {
109      }
110
111      /**
112       * Method to handle events for the WindowListener interface.
113       * @param e java.awt.event.WindowEvent
114       */

115      public void windowDeactivated(java.awt.event.WindowEvent JavaDoc e) {
116          getModel().getWindowList().put("ShowRequirementsFrame",requirements.getBounds());
117      }
118
119      /**
120       * Method to handle events for the WindowListener interface.
121       * @param e java.awt.event.WindowEvent
122       */

123      public void windowDeiconified(java.awt.event.WindowEvent JavaDoc e) {
124      }
125
126      /**
127       * Method to handle events for the WindowListener interface.
128       * @param e java.awt.event.WindowEvent
129       */

130      public void windowIconified(java.awt.event.WindowEvent JavaDoc e) {
131      }
132
133      /**
134       * Method to handle events for the WindowListener interface.
135       * @param e java.awt.event.WindowEvent
136       */

137      public void windowOpened(java.awt.event.WindowEvent JavaDoc e) {
138      }
139
140      public void valueChanged(ListSelectionEvent evt) {
141
142          if(((JList)evt.getSource()).getSelectedIndex() != -1) {
143              ProductRequirement req = (ProductRequirement)((JList)evt.getSource()).getSelectedValue();
144              requirements.getEditorPane().setText(req.getHelp());
145          } else {
146              requirements.getEditorPane().setText("");
147          }
148      }
149
150     public void builderChanged(VAIBuilderEvent evt) {
151
152         switch (evt.getType()) {
153             case VAIBuilderEvent.PROJECT_ACTIVATED:
154
155                 VAIProductController activeProductController = getController().getActiveProductController();
156
157                 if (activeProductController != null) {
158
159                     DefaultListModel model = activeProductController.getModel().getRequiredListModel();
160                     requirements.getList().setModel(model);
161                     requirements.getList().addListSelectionListener(this);
162                     if(model.size() > 0) {
163                         requirements.getList().setSelectedIndex(0);
164                     } else {
165                         requirements.getEditorPane().setText("");
166                     }
167                 }
168
169                 break;
170             case VAIBuilderEvent.PROJECT_DEACTIVATED:
171
172                 requirements.getList().removeListSelectionListener(this);
173
174                 requirements.getList().setModel(emptyListModel);
175                 requirements.getEditorPane().setText("");
176
177                 break;
178         }
179     }
180 }
181
Popular Tags