KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > izforge > izpack > panels > NextMediaDialog


1 /*
2  * IzPack - Copyright 2001-2007 Julien Ponge, All Rights Reserved.
3  *
4  * http://www.izforge.com/izpack/ http://developer.berlios.de/projects/izpack/
5  *
6  * Copyright 2007 Dennis Reil
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
9  * in compliance with the License. You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software distributed under the License
14  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
15  * or implied. See the License for the specific language governing permissions and limitations under
16  * the License.
17  */

18 package com.izforge.izpack.panels;
19
20 import java.awt.BorderLayout JavaDoc;
21 import java.awt.Color JavaDoc;
22 import java.awt.Dimension JavaDoc;
23 import java.awt.Frame JavaDoc;
24 import java.awt.HeadlessException JavaDoc;
25 import java.awt.Point JavaDoc;
26 import java.awt.event.ActionEvent JavaDoc;
27 import java.awt.event.ActionListener JavaDoc;
28 import java.io.File JavaDoc;
29
30 import javax.swing.Box JavaDoc;
31 import javax.swing.BoxLayout JavaDoc;
32 import javax.swing.JButton JavaDoc;
33 import javax.swing.JDialog JavaDoc;
34 import javax.swing.JFileChooser JavaDoc;
35 import javax.swing.JLabel JavaDoc;
36 import javax.swing.JOptionPane JavaDoc;
37 import javax.swing.JPanel JavaDoc;
38 import javax.swing.JTextField JavaDoc;
39
40 import com.izforge.izpack.LocaleDatabase;
41 import com.izforge.izpack.gui.ButtonFactory;
42 import com.izforge.izpack.gui.IconsDatabase;
43 import com.izforge.izpack.gui.LabelFactory;
44 import com.izforge.izpack.installer.AutomatedInstallData;
45 import com.izforge.izpack.installer.InstallerFrame;
46
47
48 /**
49  * Dialog for choosing the next volume.
50  * @author Dennis Reil, <Dennis.Reil@reddot.de>
51  */

52 public class NextMediaDialog extends JDialog JavaDoc implements ActionListener JavaDoc{
53   private static final String JavaDoc NEXTMEDIA_MSG_ID = "nextmedia.msg";
54   private static final String JavaDoc NEXTMEDIA_TITLE_ID = "nextmedia.title";
55   private static final String JavaDoc BROWSEBTN_ID = "nextmedia.browsebtn";
56   private static final String JavaDoc OKBTN_ID = "nextmedia.okbtn";
57   private static final String JavaDoc CANCELBTN_ID = "nextmedia.cancelbtn";
58   
59   
60   private static final long serialVersionUID = -2551719029962051020L;
61   
62   protected JLabel JavaDoc msg;
63   protected JTextField JavaDoc path;
64   protected JButton JavaDoc browsebtn;
65   protected JButton JavaDoc okbtn;
66   protected JButton JavaDoc cancelbtn;
67     
68   protected String JavaDoc nextmedianame;
69   protected String JavaDoc nextmediapath;
70   protected String JavaDoc nextmediainput;
71   protected LocaleDatabase langpack;
72   protected IconsDatabase icons;
73   
74   protected Frame JavaDoc owner;
75   /**
76    * @throws HeadlessException
77    */

78   public NextMediaDialog(InstallerFrame main, String JavaDoc nextmedia) throws HeadlessException JavaDoc {
79     this(null,main,nextmedia);
80   }
81
82   /**
83    * @param owner
84    * @throws HeadlessException
85    */

86   public NextMediaDialog(Frame JavaDoc owner,InstallerFrame main, String JavaDoc nextmedia) throws HeadlessException JavaDoc {
87     this(owner,main.langpack,main.icons,nextmedia);
88   }
89   
90   public NextMediaDialog(Frame JavaDoc owner, LocaleDatabase languagepack, IconsDatabase icons, String JavaDoc nextmedia) throws HeadlessException JavaDoc {
91     super(owner,languagepack.getString(NEXTMEDIA_TITLE_ID),true);
92     this.owner = owner;
93     this.langpack = languagepack;
94     this.icons = icons;
95     this.nextmediapath = nextmedia;
96     File JavaDoc nextmediafile = new File JavaDoc(this.nextmediapath);
97     this.nextmedianame = nextmediafile.getName();
98     this.initUI();
99   }
100   
101   public NextMediaDialog(Frame JavaDoc owner, AutomatedInstallData idata, String JavaDoc nextmedia) throws HeadlessException JavaDoc {
102     this(owner,idata.langpack,null,nextmedia);
103   }
104   
105   protected void initUI() {
106     if (this.icons != null) {
107       this.msg = LabelFactory.create(this.langpack.getString(NEXTMEDIA_MSG_ID), this.icons.getImageIcon("warning"), JLabel.LEFT);
108       this.browsebtn = ButtonFactory.createButton(this.langpack.getString(BROWSEBTN_ID), this.icons.getImageIcon("open"), new Color JavaDoc(230, 230, 230));
109       this.okbtn = ButtonFactory.createButton(this.langpack.getString(OKBTN_ID), this.icons.getImageIcon("ok"), new Color JavaDoc(230, 230, 230));
110       this.cancelbtn = ButtonFactory.createButton(this.langpack.getString(CANCELBTN_ID), this.icons.getImageIcon("cancel"), new Color JavaDoc(230, 230, 230));
111     }
112     else {
113       this.msg = new JLabel JavaDoc(this.langpack.getString(NEXTMEDIA_MSG_ID),JLabel.LEFT);
114       this.browsebtn = new JButton JavaDoc(this.langpack.getString(BROWSEBTN_ID));
115       this.okbtn = new JButton JavaDoc(this.langpack.getString(OKBTN_ID));
116       this.cancelbtn = new JButton JavaDoc(this.langpack.getString(CANCELBTN_ID));
117     }
118     this.path = new JTextField JavaDoc(this.nextmediapath);
119     this.path.setColumns(40);
120     
121     this.browsebtn.addActionListener(this);
122     this.okbtn.addActionListener(this);
123     this.cancelbtn.addActionListener(this);
124     
125     JPanel JavaDoc mainpanel = new JPanel JavaDoc();
126     mainpanel.setLayout(new BoxLayout JavaDoc(mainpanel,BoxLayout.PAGE_AXIS));
127     mainpanel.add(this.msg);
128     
129     JPanel JavaDoc pathpanel = new JPanel JavaDoc();
130     pathpanel.setLayout(new BoxLayout JavaDoc(pathpanel,BoxLayout.LINE_AXIS));
131     pathpanel.add(this.path);
132     pathpanel.add(this.browsebtn);
133     pathpanel.add(Box.createHorizontalGlue());
134     mainpanel.add(pathpanel);
135     
136     JPanel JavaDoc okpanel = new JPanel JavaDoc();
137     okpanel.setLayout(new BoxLayout JavaDoc(okpanel,BoxLayout.LINE_AXIS));
138     okpanel.add(Box.createHorizontalGlue());
139     okpanel.add(this.okbtn);
140     okpanel.add(this.cancelbtn);
141     okpanel.add(Box.createHorizontalGlue());
142     mainpanel.add(okpanel);
143     mainpanel.add(Box.createVerticalGlue());
144     
145     this.getContentPane().setLayout(new BorderLayout JavaDoc());
146     this.getContentPane().add(mainpanel,BorderLayout.CENTER);
147     
148     this.pack();
149     // set location
150
if (this.owner != null) {
151       Dimension JavaDoc mysize = this.getSize();
152       Dimension JavaDoc ownersize = this.owner.getSize();
153       Point JavaDoc position = this.owner.getLocationOnScreen();
154       Point JavaDoc centerposition = new Point JavaDoc();
155       centerposition.setLocation(position.getX()+ 0.5 * ownersize.getWidth(),position.getY() + 0.5 * ownersize.getHeight());
156       Point JavaDoc myposition = new Point JavaDoc();
157       myposition.setLocation(centerposition.getX() - 0.5 * mysize.getWidth(), centerposition.getY() - 0.5 * mysize.getHeight());
158       this.setLocation(myposition);
159     }
160   }
161   
162   public String JavaDoc getNextMedia() {
163     return this.nextmediainput;
164   }
165   
166   public void actionPerformed(ActionEvent JavaDoc e) {
167     if (e.getSource() == this.browsebtn){
168       JFileChooser JavaDoc jfc;
169       if (this.path.getText() != null){
170          jfc = new JFileChooser JavaDoc(this.path.getText());
171       }
172       else {
173         jfc = new JFileChooser JavaDoc();
174       }
175       jfc.setFileFilter(new NextMediaFileFilter(this.nextmedianame, this.langpack));
176       jfc.setDialogTitle(this.langpack.getString("nextmedia.choosertitle"));
177       jfc.setDialogType(JFileChooser.OPEN_DIALOG);
178       jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
179       if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION){
180         this.nextmediainput = jfc.getSelectedFile().getAbsolutePath();
181         this.path.setText(this.nextmediainput);
182       }
183     }
184     else if (e.getSource() == this.okbtn) {
185       this.nextmediainput = this.path.getText();
186       // close this dialog
187
this.setVisible(false);
188     }
189     else if (e.getSource() == this.cancelbtn) {
190       int option = JOptionPane.showConfirmDialog(this, this.langpack.getString("installer.quit.message") , this.langpack.getString("installer.quit.title"), JOptionPane.YES_NO_OPTION);
191       if (option == JOptionPane.YES_OPTION){
192         // exit
193
System.exit(-1);
194       }
195     }
196   }
197 }
Popular Tags