/* * This file is part of the OSMembrane project. * More informations under www.osmembrane.de * * The project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0. * for more details about the license see http://www.osmembrane.de/license/ * * Source: $HeadURL: https://osmembrane.de/svn/sources/src/header.txt $ ($Revision: 703 $) * Last changed: $Date: 2011-02-07 10:56:49 +0100 (Mo, 07 Feb 2011) $ */ package de.osmembrane.view.dialogs; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSpinner; import javax.swing.JTextArea; import javax.swing.JTextField; import de.osmembrane.tools.I18N; import de.osmembrane.view.AbstractDialog; import de.osmembrane.view.interfaces.IPipelineSettingsDialog; /** * The dialog containing the pipeline's settings * * @author tobias_kuhn * */ public class PipelineSettingsDialog extends AbstractDialog implements IPipelineSettingsDialog { private static final long serialVersionUID = 6498307196575629577L; /** * Whether or not to apply the changes made in the dialog */ private boolean applyChanges; /** * all those settings */ private JTextField pipelineName; private JCheckBox verboseFlag; private JSpinner verbose; private JCheckBox debugFlag; private JSpinner debug; private JTextArea comment; /** * Generates a new {@link PipelineSettingsDialog}. * * @param owner */ public PipelineSettingsDialog(Window owner) { super(owner); // set the basics up setLayout(new BorderLayout()); setWindowTitle(I18N.getInstance().getString( "View.PipelineSettingsDialog")); // control buttons JButton okButton = new JButton(I18N.getInstance().getString("View.OK")); okButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { applyChanges = true; hideWindow(); } }); JButton cancelButton = new JButton(I18N.getInstance().getString( "View.Cancel")); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { applyChanges = false; hideWindow(); } }); JPanel buttonCtrlGrid = new JPanel(new GridLayout(1, 3)); buttonCtrlGrid.add(okButton); buttonCtrlGrid.add(cancelButton); JPanel buttonCtrlFlow = new JPanel(new FlowLayout(FlowLayout.CENTER)); buttonCtrlFlow.add(buttonCtrlGrid); add(buttonCtrlFlow, BorderLayout.SOUTH); // actual settings JPanel settings = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.insets = new Insets(8, 8, 8, 8); final int minFieldWidth = 256; final int minSpinnerWidth = 64; gbc.gridy = 0; gbc.gridx = 0; settings.add( new JLabel(I18N.getInstance().getString( "View.PipelineSettingsDialog.Name") + ":"), gbc); gbc.gridx = 1; pipelineName = new JTextField(); pipelineName.setPreferredSize(new Dimension(minFieldWidth, pipelineName .getPreferredSize().height)); settings.add(pipelineName, gbc); gbc.gridy = 1; gbc.gridx = 0; verboseFlag = new JCheckBox(I18N.getInstance().getString( "View.PipelineSettingsDialog.Verbose") + ":"); verboseFlag.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { verbose.setEnabled(verboseFlag.isSelected()); if (verbose.getValue().equals(-1)) { verbose.setValue(0); } } }); settings.add(verboseFlag, gbc); gbc.gridx = 1; verbose = new JSpinner(); verbose.setPreferredSize(new Dimension(minSpinnerWidth, verbose .getPreferredSize().height)); settings.add(verbose, gbc); gbc.gridy = 2; gbc.gridx = 0; debugFlag = new JCheckBox(I18N.getInstance().getString( "View.PipelineSettingsDialog.Debug") + ":"); debugFlag.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { debug.setEnabled(debugFlag.isSelected()); if (debug.getValue().equals(-1)) { debug.setValue(0); } } }); settings.add(debugFlag, gbc); gbc.gridx = 1; debug = new JSpinner(); debug.setPreferredSize(new Dimension(minSpinnerWidth, debug .getPreferredSize().height)); settings.add(debug, gbc); gbc.gridy = 3; gbc.gridx = 0; settings.add( new JLabel(I18N.getInstance().getString( "View.PipelineSettingsDialog.Comment") + ":"), gbc); gbc.gridy = 4; gbc.gridx = 0; gbc.gridwidth = 2; comment = new JTextArea(); comment.setPreferredSize(new Dimension(minFieldWidth * 2, minFieldWidth)); settings.add(new JScrollPane(comment), gbc); add(settings, BorderLayout.CENTER); pack(); centerWindow(); } @Override public boolean shallApplyChanges() { return this.applyChanges; } @Override public void setVerbose(int mode) { verboseFlag.setSelected(mode >= 0); verbose.setEnabled(mode >= 0); verbose.setValue(mode); } @Override public int getVerbose() { if (verboseFlag.isSelected()) { return (Integer) verbose.getValue(); } else { return -1; } } @Override public void setDebug(int mode) { debugFlag.setSelected(mode >= 0); debug.setEnabled(mode >= 0); debug.setValue(mode); } @Override public int getDebug() { if (debugFlag.isSelected()) { return (Integer) debug.getValue(); } else { return -1; } } @Override public void setComment(String comment) { this.comment.setText(comment); } @Override public String getComment() { return comment.getText(); } @Override public void setName(String name) { pipelineName.setText(name); } @Override public String getName() { return pipelineName.getText(); } }