All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.izforge.izpack.panels.NextMediaDialog Maven / Gradle / Ivy
/*
* IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
*
* http://izpack.org/ http://izpack.codehaus.org/
*
* Copyright 2007 Dennis Reil
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.izforge.izpack.panels;
import com.izforge.izpack.LocaleDatabase;
import com.izforge.izpack.gui.ButtonFactory;
import com.izforge.izpack.gui.IconsDatabase;
import com.izforge.izpack.gui.LabelFactory;
import com.izforge.izpack.installer.AutomatedInstallData;
import com.izforge.izpack.installer.InstallerFrame;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
/**
* Dialog for choosing the next volume.
*
* @author Dennis Reil,
*/
public class NextMediaDialog extends JDialog implements ActionListener
{
private static final String NEXTMEDIA_MSG_ID = "nextmedia.msg";
private static final String NEXTMEDIA_TITLE_ID = "nextmedia.title";
private static final String BROWSEBTN_ID = "nextmedia.browsebtn";
private static final String OKBTN_ID = "nextmedia.okbtn";
private static final String CANCELBTN_ID = "nextmedia.cancelbtn";
private static final long serialVersionUID = -2551719029962051020L;
protected JLabel msg;
protected JTextField path;
protected JButton browsebtn;
protected JButton okbtn;
protected JButton cancelbtn;
protected String nextmedianame;
protected String nextmediapath;
protected String nextmediainput;
protected LocaleDatabase langpack;
protected IconsDatabase icons;
protected Frame owner;
/**
* @throws HeadlessException
*/
public NextMediaDialog(InstallerFrame main, String nextmedia) throws HeadlessException
{
this(null, main, nextmedia);
}
/**
* @param owner
* @throws HeadlessException
*/
public NextMediaDialog(Frame owner, InstallerFrame main, String nextmedia) throws HeadlessException
{
this(owner, main.langpack, main.icons, nextmedia);
}
public NextMediaDialog(Frame owner, LocaleDatabase languagepack, IconsDatabase icons, String nextmedia) throws HeadlessException
{
super(owner, languagepack.getString(NEXTMEDIA_TITLE_ID), true);
this.owner = owner;
this.langpack = languagepack;
this.icons = icons;
this.nextmediapath = nextmedia;
File nextmediafile = new File(this.nextmediapath);
this.nextmedianame = nextmediafile.getName();
this.initUI();
}
public NextMediaDialog(Frame owner, AutomatedInstallData idata, String nextmedia) throws HeadlessException
{
this(owner, idata.langpack, null, nextmedia);
}
protected void initUI()
{
if (this.icons != null)
{
this.msg = LabelFactory.create(this.langpack.getString(NEXTMEDIA_MSG_ID), this.icons.getImageIcon("warning"), JLabel.LEFT);
this.browsebtn = ButtonFactory.createButton(this.langpack.getString(BROWSEBTN_ID), this.icons.getImageIcon("open"), new Color(230, 230, 230));
this.okbtn = ButtonFactory.createButton(this.langpack.getString(OKBTN_ID), this.icons.getImageIcon("ok"), new Color(230, 230, 230));
this.cancelbtn = ButtonFactory.createButton(this.langpack.getString(CANCELBTN_ID), this.icons.getImageIcon("cancel"), new Color(230, 230, 230));
}
else
{
this.msg = new JLabel(this.langpack.getString(NEXTMEDIA_MSG_ID), JLabel.LEFT);
this.browsebtn = new JButton(this.langpack.getString(BROWSEBTN_ID));
this.okbtn = new JButton(this.langpack.getString(OKBTN_ID));
this.cancelbtn = new JButton(this.langpack.getString(CANCELBTN_ID));
}
this.path = new JTextField(this.nextmediapath);
this.path.setColumns(40);
this.browsebtn.addActionListener(this);
this.okbtn.addActionListener(this);
this.cancelbtn.addActionListener(this);
JPanel mainpanel = new JPanel();
mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.PAGE_AXIS));
mainpanel.add(this.msg);
JPanel pathpanel = new JPanel();
pathpanel.setLayout(new BoxLayout(pathpanel, BoxLayout.LINE_AXIS));
pathpanel.add(this.path);
pathpanel.add(this.browsebtn);
pathpanel.add(Box.createHorizontalGlue());
mainpanel.add(pathpanel);
JPanel okpanel = new JPanel();
okpanel.setLayout(new BoxLayout(okpanel, BoxLayout.LINE_AXIS));
okpanel.add(Box.createHorizontalGlue());
okpanel.add(this.okbtn);
okpanel.add(this.cancelbtn);
okpanel.add(Box.createHorizontalGlue());
mainpanel.add(okpanel);
mainpanel.add(Box.createVerticalGlue());
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(mainpanel, BorderLayout.CENTER);
this.pack();
// set location
if (this.owner != null)
{
Dimension mysize = this.getSize();
Dimension ownersize = this.owner.getSize();
Point position = this.owner.getLocationOnScreen();
Point centerposition = new Point();
centerposition.setLocation(position.getX() + 0.5 * ownersize.getWidth(), position.getY() + 0.5 * ownersize.getHeight());
Point myposition = new Point();
myposition.setLocation(centerposition.getX() - 0.5 * mysize.getWidth(), centerposition.getY() - 0.5 * mysize.getHeight());
this.setLocation(myposition);
}
}
public String getNextMedia()
{
return this.nextmediainput;
}
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == this.browsebtn)
{
JFileChooser jfc;
if (this.path.getText() != null)
{
jfc = new JFileChooser(this.path.getText());
}
else
{
jfc = new JFileChooser();
}
jfc.setFileFilter(new NextMediaFileFilter(this.nextmedianame, this.langpack));
jfc.setDialogTitle(this.langpack.getString("nextmedia.choosertitle"));
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
if (jfc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
{
this.nextmediainput = jfc.getSelectedFile().getAbsolutePath();
this.path.setText(this.nextmediainput);
}
}
else if (e.getSource() == this.okbtn)
{
this.nextmediainput = this.path.getText();
// close this dialog
this.setVisible(false);
}
else if (e.getSource() == this.cancelbtn)
{
int option = JOptionPane.showConfirmDialog(this, this.langpack.getString("installer.quit.message"), this.langpack.getString("installer.quit.title"), JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION)
{
// exit
System.exit(-1);
}
}
}
}