2 Java class PkgInstallTypeChooser is GUI for upgrade package installation.
4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 package org
.tianocore
.packaging
;
15 import java
.awt
.Dimension
;
16 import java
.awt
.Toolkit
;
17 import java
.awt
.event
.MouseEvent
;
18 import java
.awt
.event
.MouseListener
;
20 import java
.util
.List
;
21 import java
.util
.ListIterator
;
22 import java
.util
.Vector
;
24 import javax
.swing
.JFileChooser
;
25 import javax
.swing
.JFrame
;
26 import javax
.swing
.JOptionPane
;
27 import javax
.swing
.JPanel
;
28 import javax
.swing
.JDialog
;
29 import javax
.swing
.JRadioButton
;
30 import javax
.swing
.JButton
;
32 import org
.tianocore
.PackageListDocument
;
33 import javax
.swing
.JList
;
34 import javax
.swing
.JTextField
;
35 import javax
.swing
.JScrollPane
;
38 GUI for speicial circumstances of package installation.
40 @since PackageEditor 1.0
42 public class PkgInstallTypeChooser
extends JFrame
implements MouseListener
{
44 final static long serialVersionUID
= 0;
48 private JPanel jContentPane
= null;
50 private JRadioButton jRadioButton
= null;
52 private JRadioButton jRadioButton1
= null;
54 private JButton jButton
= null;
56 private JButton jButton1
= null;
58 private String pn
= null;
61 /// list of package info from db file
63 private List
<PackageListDocument
.PackageList
.Package
> dd
= null;
65 private String wk
= null;
67 private JList jList
= null;
69 private JScrollPane jScrollPane
= null;
71 private JTextField jTextField
= null;
73 private JButton jButton2
= null;
75 private JFileChooser chooser
= null;
78 This is the default constructor
80 public PkgInstallTypeChooser(String pkgName
, String wkSpace
, List
<PackageListDocument
.PackageList
.Package
> destDir
) {
89 This method initializes this
93 private void initialize() {
94 this.setSize(359, 328);
95 this.setDefaultCloseOperation(javax
.swing
.WindowConstants
.DISPOSE_ON_CLOSE
);
96 this.setTitle("Chooser Installation Type");
97 this.setContentPane(getJContentPane());
103 Start the window at the center of screen
106 protected void centerWindow(int intWidth
, int intHeight
) {
107 Dimension d
= Toolkit
.getDefaultToolkit().getScreenSize();
108 this.setLocation((d
.width
- intWidth
) / 2, (d
.height
- intHeight
) / 2);
112 Start the window at the center of screen
115 protected void centerWindow() {
116 centerWindow(this.getSize().width
, this.getSize().height
);
120 initialize jList with package info. from db file
122 private void insertList() {
124 Vector
<String
> v
= new Vector
<String
>();
126 ListIterator lpi
= dd
.listIterator();
127 while (lpi
.hasNext()) {
128 PackageListDocument
.PackageList
.Package p
= (PackageListDocument
.PackageList
.Package
) lpi
.next();
129 v
.addElement(p
.getPackageNameArray(0).getStringValue() + " " + p
.getVersionArray(0) + " "
130 + p
.getGuidArray(0).getStringValue());
132 jList
.setListData(v
);
136 This method initializes jContentPane
138 @return javax.swing.JPanel
140 private JPanel
getJContentPane() {
141 if (jContentPane
== null) {
142 jContentPane
= new JPanel();
143 jContentPane
.setLayout(null);
144 jContentPane
.add(getJRadioButton(), null);
145 jContentPane
.add(getJRadioButton1(), null);
146 jContentPane
.add(getJButton(), null);
147 jContentPane
.add(getJButton1(), null);
148 jContentPane
.add(getJScrollPane(), null);
149 jContentPane
.add(getJTextField(), null);
150 jContentPane
.add(getJButton2(), null);
156 private JRadioButton
getJRadioButton() {
157 if (jRadioButton
== null) {
158 jRadioButton
= new JRadioButton();
159 jRadioButton
.setBounds(new java
.awt
.Rectangle(17, 39, 186, 21));
160 jRadioButton
.setSelected(true);
161 jRadioButton
.setText("Reinstall Existing Package");
162 jRadioButton
.addMouseListener(new java
.awt
.event
.MouseAdapter() {
163 public void mouseClicked(java
.awt
.event
.MouseEvent e
) {
164 if (jRadioButton
.isSelected()) {
165 jRadioButton1
.setSelected(false);
166 jButton2
.setEnabled(false);
167 jTextField
.setEnabled(false);
168 jList
.setEnabled(true);
171 if (jRadioButton1
.isSelected()) {
172 jRadioButton
.setSelected(true);
173 jRadioButton1
.setSelected(false);
174 jList
.setEnabled(true);
184 private JRadioButton
getJRadioButton1() {
185 if (jRadioButton1
== null) {
186 jRadioButton1
= new JRadioButton();
187 jRadioButton1
.setBounds(new java
.awt
.Rectangle(17, 155, 176, 21));
188 jRadioButton1
.setText("Install to Directory");
189 jRadioButton1
.addMouseListener(new java
.awt
.event
.MouseAdapter() {
190 public void mouseClicked(java
.awt
.event
.MouseEvent e
) {
191 if (jRadioButton1
.isSelected()) {
192 jRadioButton
.setSelected(false);
193 jList
.setEnabled(false);
194 jButton2
.setEnabled(true);
195 jTextField
.setEnabled(true);
198 if (jRadioButton
.isSelected()) {
199 jRadioButton1
.setSelected(true);
200 jRadioButton
.setSelected(false);
201 jButton2
.setEnabled(true);
202 jTextField
.setEnabled(true);
208 return jRadioButton1
;
211 private JButton
getJButton() {
212 if (jButton
== null) {
213 jButton
= new JButton();
214 jButton
.setPreferredSize(new java
.awt
.Dimension(34, 20));
215 jButton
.setSize(new java
.awt
.Dimension(76, 20));
216 jButton
.setText("Ok");
217 jButton
.setLocation(new java
.awt
.Point(141, 241));
218 jButton
.addMouseListener(new java
.awt
.event
.MouseAdapter() {
219 public void mouseClicked(java
.awt
.event
.MouseEvent e
) {
223 // user selects replace existing package
225 if (jRadioButton
.isSelected()) {
226 int j
= jList
.getSelectedIndex();
228 JOptionPane
.showMessageDialog(JOptionPane
.getRootFrame(),
229 "Please Select One Package to Replace!");
233 // the sequence of jList is the same with List
235 String destDir
= dd
.get(j
).getPathArray(0).getStringValue();
236 ForceInstallPkg f
= new ForceInstallPkg(pn
, wk
);
238 // record the package info. to be replaced
240 f
.setOldVersion(dd
.get(j
).getVersionArray(0));
241 f
.setOldGuid(dd
.get(j
).getGuidArray(0).getStringValue());
242 i
= f
.install(wk
+ System
.getProperty("file.separator") + destDir
);
245 // user selects install to another directory
247 File f
= new File(wk
+ System
.getProperty("file.separator") + FrameworkPkg
.dbConfigFile
);
248 if (new DbFileContents(f
).checkDir(jTextField
.getText().substring(wk
.length() + 1)) != 0) {
251 i
= new ForceInstallPkg(pn
, wk
).install(jTextField
.getText());
254 JOptionPane
.showMessageDialog(JOptionPane
.getRootFrame(), "Package " + pn
255 + " Installed Successfully!");
257 } catch (DirSame ds
) {
258 System
.out
.println(ds
.toString());
259 JOptionPane
.showMessageDialog(frame
,
260 "Another Package Exists There, Please Select Another Directory!");
261 } catch (Exception ee
) {
262 System
.out
.println(ee
.toString());
271 * This method initializes jButton1
273 * @return javax.swing.JButton
275 private JButton
getJButton1() {
276 if (jButton1
== null) {
277 jButton1
= new JButton();
278 jButton1
.setBounds(new java
.awt
.Rectangle(238, 241, 78, 20));
279 jButton1
.setText("Cancel");
280 jButton1
.setPreferredSize(new java
.awt
.Dimension(34, 20));
281 jButton1
.addMouseListener(this);
286 public void mouseClicked(MouseEvent arg0
) {
287 // TODO Auto-generated method stub
291 public void mouseEntered(MouseEvent arg0
) {
292 // TODO Auto-generated method stub
296 public void mouseExited(MouseEvent arg0
) {
297 // TODO Auto-generated method stub
301 public void mousePressed(MouseEvent arg0
) {
302 // TODO Auto-generated method stub
306 public void mouseReleased(MouseEvent arg0
) {
307 // TODO Auto-generated method stub
311 private JScrollPane
getJScrollPane() {
312 if (jScrollPane
== null) {
313 jScrollPane
= new JScrollPane();
314 jScrollPane
.setBounds(new java
.awt
.Rectangle(22, 68, 318, 58));
315 jScrollPane
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
316 jScrollPane
.setViewportView(getJList());
321 private JList
getJList() {
325 jList
.setBounds(new java
.awt
.Rectangle(22, 68, 318, 58));
332 * This method initializes jTextField
334 * @return javax.swing.JTextField
336 private JTextField
getJTextField() {
337 if (jTextField
== null) {
338 jTextField
= new JTextField();
339 jTextField
.setBounds(new java
.awt
.Rectangle(22, 184, 224, 20));
340 jTextField
.setEnabled(false);
341 jTextField
.setText(wk
);
346 private JButton
getJButton2() {
347 if (jButton2
== null) {
348 jButton2
= new JButton();
349 jButton2
.setLocation(new java
.awt
.Point(259, 183));
350 jButton2
.setText("Browse");
351 jButton2
.setEnabled(false);
352 jButton2
.setSize(new java
.awt
.Dimension(81, 20));
353 jButton2
.addMouseListener(new java
.awt
.event
.MouseAdapter() {
354 public void mouseClicked(java
.awt
.event
.MouseEvent e
) {
355 if (chooser
== null) {
356 chooser
= new JFileChooser(wk
);
358 chooser
.setMultiSelectionEnabled(false);
359 chooser
.setFileSelectionMode(JFileChooser
.DIRECTORIES_ONLY
);
361 int retval
= chooser
.showOpenDialog(frame
);
362 if (retval
== JFileChooser
.APPROVE_OPTION
) {
363 jTextField
.setText(chooser
.getSelectedFile().getPath());
373 } // @jve:decl-index=0:visual-constraint="134,45"