KickJava   Java API By Example, From Geeks To Geeks.

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


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

7
8 package com.memoire.vainstall.builder.gui;
9
10 import com.memoire.vainstall.VAGlobals;
11 import com.memoire.vainstall.builder.*;
12 import com.memoire.vainstall.builder.util.VAIImageFileFilter;
13
14 import java.awt.*;
15 import java.awt.event.*;
16
17 import java.io.File JavaDoc;
18
19 import javax.swing.*;
20 import javax.swing.border.*;
21
22 /**
23  * This panel is shown in the product dialog
24  *
25  * This is not just a view panel because it has a reference to the
26  * VAIProductModel.
27  *
28  *
29  * @see com.memoire.vainstall.builder.gui.VAIProductInternalFrame
30  * @see javax.swing.JPanel
31  *
32  * @author Henrik Falk
33  * @version $Id: ProductVisualPanel.java,v 1.2 2002/12/16 13:23:45 deniger Exp $
34  */

35 public class ProductVisualPanel extends JPanel implements FocusListener, ItemListener, ActionListener {
36
37     private VAIProductModel model;
38
39     private final static Border loweredBorder = new SoftBevelBorder(BevelBorder.LOWERED);
40
41     JTextField bannerImageField;
42     JButton bannerImageButton;
43
44     JComboBox uiInstallerBox;
45
46     JCheckBox blueScreenBox;
47     JTextField blueScreenField;
48
49     public ProductVisualPanel() {
50
51         setBorder(loweredBorder);
52
53         GridBagLayout layout = new GridBagLayout();
54         setLayout(layout);
55
56         GridBagConstraints contraint=new GridBagConstraints();
57
58 /*
59 # bluescreen or no blue screen?
60 vainstall.destination.ui.bluescreen=no
61
62 # bluescreen colour
63 vainstall.destination.ui.bluescreen.colour=FFBBAA
64
65 # banner image (if file not found, a default banner will be used)
66 vainstall.destination.ui.image=src/doc/images/example.gif
67 */

68         // Banner Image
69
JLabel bannerImageLabel = new JLabel();
70         bannerImageLabel.setText("Banner Image:");
71         contraint.fill = GridBagConstraints.HORIZONTAL;
72         contraint.insets = new Insets(16,16,0,16);
73         contraint.anchor = GridBagConstraints.WEST;
74         contraint.gridx = 0;
75         contraint.gridy = 0;
76         contraint.gridwidth = 3;
77         contraint.gridheight = 1;
78         contraint.weightx = 0;
79         contraint.weighty = 0;
80         layout.setConstraints(bannerImageLabel,contraint);
81         add(bannerImageLabel);
82
83         bannerImageField = new JTextField();
84         bannerImageField.setEditable(false);
85         contraint.fill = GridBagConstraints.HORIZONTAL;
86         contraint.insets = new Insets(4,16,0,8);
87         contraint.anchor = GridBagConstraints.CENTER;
88         contraint.gridx = 0;
89         contraint.gridy = 1;
90         contraint.gridwidth = 2;
91         contraint.gridheight = 1;
92         contraint.weightx = 1;
93         contraint.weighty = 0;
94         layout.setConstraints(bannerImageField,contraint);
95         add(bannerImageField);
96
97         bannerImageButton = new JButton();
98 // bannerImageButton.setSize(bannerImageButton.getSize().width,bannerImageField.getSize().height);
99
bannerImageButton.setText("Change");
100         bannerImageButton.setMnemonic('C');
101         contraint.fill = GridBagConstraints.BOTH;
102         contraint.insets = new Insets(4,0,0,16);
103         contraint.anchor = GridBagConstraints.CENTER;
104         contraint.gridx = 2;
105         contraint.gridy = 1;
106         contraint.gridwidth = 1;
107         contraint.gridheight = 1;
108         contraint.weightx = 0;
109         contraint.weighty = 0;
110         layout.setConstraints(bannerImageButton,contraint);
111         add(bannerImageButton);
112
113         // Installer UI
114
JLabel uiInstallerLabel = new JLabel();
115         uiInstallerLabel.setText("UI during Installation:");
116         contraint.fill = GridBagConstraints.NONE;
117         contraint.insets = new Insets(32,16,0,8);
118         contraint.anchor = GridBagConstraints.WEST;
119         contraint.gridx = 0;
120         contraint.gridy = 2;
121         contraint.gridwidth = 1;
122         contraint.gridheight = 1;
123         contraint.weightx = 0;
124         contraint.weighty = 0;
125         layout.setConstraints(uiInstallerLabel,contraint);
126         add(uiInstallerLabel);
127
128         uiInstallerBox = new JComboBox();
129         uiInstallerBox.addItem("graphic");
130         uiInstallerBox.addItem("xtra");
131         uiInstallerBox.addItem("text");
132         uiInstallerBox.addItem("ansi");
133         uiInstallerBox.setSelectedIndex(0);
134         contraint.fill=GridBagConstraints.HORIZONTAL;
135         contraint.insets=new Insets(32,16,0,8);
136         contraint.anchor=GridBagConstraints.WEST;
137         contraint.gridx=1;
138         contraint.gridy=2;
139         contraint.gridwidth=1;
140         contraint.gridheight=1;
141         contraint.weightx=0;
142         contraint.weighty=0;
143         layout.setConstraints(uiInstallerBox,contraint);
144         add(uiInstallerBox);
145
146         blueScreenBox = new JCheckBox();
147         blueScreenBox.setText("Use Blue Screen during install");
148         contraint.fill = GridBagConstraints.HORIZONTAL;
149         contraint.insets = new Insets(32,16,0,16);
150         contraint.anchor = GridBagConstraints.WEST;
151         contraint.gridx = 0;
152         contraint.gridy = 4;
153         contraint.gridwidth = 3;
154         contraint.gridheight = 1;
155         contraint.weightx = 0;
156         contraint.weighty = 0;
157         layout.setConstraints(blueScreenBox,contraint);
158         add(blueScreenBox);
159
160         JLabel blueScreenLabel = new JLabel();
161         blueScreenLabel.setText("Colour (FFFFFF = white) :");
162         contraint.fill = GridBagConstraints.HORIZONTAL;
163         contraint.insets = new Insets(4,16,0,16);
164         contraint.anchor = GridBagConstraints.WEST;
165         contraint.gridx = 0;
166         contraint.gridy = 5;
167         contraint.gridwidth = 1;
168         contraint.gridheight = 1;
169         contraint.weightx = 0;
170         contraint.weighty = 0;
171         layout.setConstraints(blueScreenLabel,contraint);
172         add(blueScreenLabel);
173
174         blueScreenField = new JTextField();
175         blueScreenField.setEditable(false);
176         contraint.fill = GridBagConstraints.HORIZONTAL;
177         contraint.insets = new Insets(4,16,0,8);
178         contraint.anchor = GridBagConstraints.WEST;
179         contraint.gridx = 1;
180         contraint.gridy = 5;
181         contraint.gridwidth = 1;
182         contraint.gridheight = 1;
183         contraint.weightx = 0;
184         contraint.weighty = 0;
185         layout.setConstraints(blueScreenField,contraint);
186         add(blueScreenField);
187
188         JPanel fillPanel = new JPanel();
189         contraint.fill = GridBagConstraints.BOTH;
190         contraint.insets = new Insets(4,4,4,4);
191         contraint.anchor = GridBagConstraints.CENTER;
192         contraint.gridx = 0;
193         contraint.gridy = 6;
194         contraint.gridwidth = 1;
195         contraint.gridheight = 1;
196         contraint.weightx = 0;
197         contraint.weighty = 1;
198         layout.setConstraints(fillPanel,contraint);
199         add(fillPanel);
200
201     }
202
203
204     /**
205      * save
206      */

207     public void save() {
208     }
209
210     /**
211      * initialize the panel
212      */

213     public void initialize(VAIProductModel model) {
214         this.model = model;
215
216         if(model.getPropertyList().containsKey("vainstall.installer.ui.bluescreen") == true) {
217             if (model.getProperty("vainstall.installer.ui.bluescreen").equals("yes") == true) {
218                 blueScreenBox.setSelected(true);
219                 if (model.getProperty("vainstall.installer.ui.bluescreen.colour") != null) {
220                     blueScreenField.setText(model.getProperty("vainstall.installer.ui.bluescreen.colour"));
221                 }
222             }
223             blueScreenField.setEditable(true);
224         }
225
226         blueScreenBox.addItemListener(this);
227         uiInstallerBox.addItemListener(this);
228         if (model.getProperty("vainstall.installer.ui.mode") == null) {
229             uiInstallerBox.setSelectedIndex(0);
230         } else {
231             uiInstallerBox.setSelectedItem(model.getProperty("vainstall.installer.ui.mode"));
232         }
233
234         blueScreenField.addFocusListener(this);
235
236         bannerImageButton.addActionListener(this);
237         if (model.getProperty("vainstall.installer.ui.banner") != null) {
238             bannerImageField.setText(model.getProperty("vainstall.installer.ui.banner"));
239         }
240     }
241
242     /**
243      * stop
244      */

245     public void stop() {
246     }
247
248     public void focusGained(FocusEvent evt) {
249     }
250
251     public void focusLost(FocusEvent evt) {
252
253         if (evt.getSource() == blueScreenField) {
254             // we should handle non colour stuff
255
model.putProperty("vainstall.installer.ui.bluescreen.colour",blueScreenField.getText());
256         }
257     }
258
259     public void itemStateChanged(ItemEvent evt) {
260         if (evt.getItem() == blueScreenBox) {
261             if (blueScreenBox.isSelected() == true) {
262                 blueScreenField.setEditable(true);
263                 blueScreenField.requestFocus();
264
265                 model.putProperty("vainstall.installer.ui.bluescreen","yes");
266             } else {
267                 blueScreenField.setText("");
268                 blueScreenField.setEditable(false);
269
270                 model.removeProperty("vainstall.installer.ui.bluescreen");
271                 model.removeProperty("vainstall.installer.ui.bluescreen.colour");
272             }
273         }
274
275         if (evt.getSource() == uiInstallerBox && evt.getStateChange() == ItemEvent.SELECTED) {
276             JComboBox box = (JComboBox)evt.getSource();
277             model.putProperty("vainstall.installer.ui.mode",(String JavaDoc)box.getSelectedItem());
278         }
279     }
280
281     public void actionPerformed(ActionEvent evt) {
282
283         if (evt.getSource() == bannerImageButton) {
284
285             JFileChooser jfc = new JFileChooser();
286             jfc.setDialogType(JFileChooser.OPEN_DIALOG);
287             jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
288
289             String JavaDoc rootDirectory = (String JavaDoc)model.getPropertyList().get("vainstall.user.dir");
290             if (rootDirectory == null) {
291                 rootDirectory = System.getProperty("user.dir");
292             }
293
294             jfc.setCurrentDirectory(new File JavaDoc(rootDirectory));
295
296             // we only allow 'vainstall.xml' files to be valid
297
jfc.setAcceptAllFileFilterUsed(false);
298             VAIImageFileFilter filter = new VAIImageFileFilter();
299             jfc.addChoosableFileFilter(filter);
300
301             int result = jfc.showDialog(null,"Select Image");
302             if (result == JFileChooser.APPROVE_OPTION) {
303                 bannerImageField.setText(jfc.getSelectedFile().getAbsolutePath());
304
305                 model.putProperty("vainstall.installer.ui.banner",jfc.getSelectedFile().getAbsolutePath());
306
307                 // use internal method instead of model.putProperty()
308
model.getPropertyList().put("vainstall.user.dir",jfc.getCurrentDirectory().getAbsolutePath());
309             }
310         }
311
312     }
313 }
314
Popular Tags