package atujplag.view;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import atujplag.ATUJPLAG;
import atujplag.util.Messages;
import atujplag.util.TagParser;
public class WelcomeOptionsDialog extends JDialog {
private static final long serialVersionUID = -6372261277476829706L;
private JPanel reportLocPanel = null;
private JTextField resultDirField = null;
private JButton confirmResultLocButton = null;
private JButton resultDirButton = null;
private JComboBox<String> jLanguageCB = null;
private String resultDir = null;
private String language = null;
public WelcomeOptionsDialog(JFrame parent) {
super(parent);
initialize();
}
private void initialize() {
setTitle("Welcome to the JPlag Web Start client!"); //$NON-NLS-1$
setContentPane(getReportLocPanel());
setResizable(false);
setModal(true);
pack();
setLocationRelativeTo(null);
}
private JPanel getReportLocPanel() {
if(reportLocPanel == null) {
reportLocPanel = JPlagCreator.createPanel(500, 136, 10, 10,
FlowLayout.CENTER);
JLabel reportLocLabel = new JLabel(Messages.getString(
"Preferences.Report_location_DESC") + ":"); //$NON-NLS-1$ //$NON-NLS-2$
reportLocLabel.setPreferredSize(new Dimension(290 + 150 + 10 + 24,20));
reportLocPanel.add(reportLocLabel);
resultDirField = JPlagCreator.createTextField(290 + 150, 20, null);
String home_directory = System.getProperty("user.home") //$NON-NLS-1$
+ File.separator + "JPlag_Results"; //$NON-NLS-1$
resultDirField.setText(home_directory);
reportLocPanel.add(resultDirField);
resultDirButton = JPlagCreator.createOpenFileButton(
Messages.getString("Preferences.Select_report_location")); //$NON-NLS-1$
resultDirButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setDialogTitle(Messages.getString(
"Preferences.Select_report_location")); //$NON-NLS-1$
int retval = chooser.showOpenDialog(null);
if (retval == JFileChooser.APPROVE_OPTION) {
resultDirField.setText(chooser.getSelectedFile().getPath());
}
}});
reportLocPanel.add(resultDirButton);
JLabel jLanguageLabel = new JLabel(Messages.getString(
"Preferences.Language") + ":"); //$NON-NLS-1$ //$NON-NLS-2$
jLanguageLabel.setPreferredSize(new Dimension(90 + 150 + 24,20));
reportLocPanel.add(jLanguageLabel, null);
jLanguageCB = JPlagCreator.createJComboBox(
ATUJPLAG.COUNTRY_LANGUAGES, 200, 20,
Messages.getString("Preferences.Language_TIP")); //$NON-NLS-1$
reportLocPanel.add(jLanguageCB);
confirmResultLocButton = JPlagCreator.createButton(
Messages.getString("Preferences.Save_report_location"), //$NON-NLS-1$
Messages.getString("Preferences.Save_report_location_TIP"), //$NON-NLS-1$
150, 20);
reportLocPanel.add(confirmResultLocButton, confirmResultLocButton.getName());
confirmResultLocButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
File f = new File(resultDirField.getText());
if (!f.exists()) {
int rep = JPlagCreator.showConfirmDialog(
Messages.getString(
"Preferences.Directory_does_not_exist"), //$NON-NLS-1$
TagParser.parse(Messages.getString(
"Preferences.Directory_does_not_exist_DESC_{1_PATH}"), //$NON-NLS-1$
new String[] { f.getPath() }));
if (rep == JOptionPane.NO_OPTION)
return;
f.mkdirs();
}
else if(!f.isDirectory()) {
JPlagCreator.showMessageDialog(
Messages.getString(
"Preferences.File_is_no_directory"), //$NON-NLS-1$
TagParser.parse(Messages.getString(
"Preferences.File_is_no_directory_DESC_{1_PATH}"), //$NON-NLS-1$
new String[] { f.getPath() }));
return;
}
resultDir = resultDirField.getText();
language = jLanguageCB.getSelectedItem().toString();
dispose();
}
});
getRootPane().setDefaultButton(confirmResultLocButton);
}
return reportLocPanel;
}
public String askForResultDir() {
setVisible(true);
return resultDir;
}
public String getResultDir() {
return resultDir;
}
public String getLanguage() {
return language;
}
} // @jve:decl-index=0:visual-constraint="10,10"