Java tutorial
/* * Copyright Michael Keppler * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package calendarexportplugin.exporter; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import util.ui.Localizer; import util.ui.UiUtilities; import util.ui.WindowClosingIf; import calendarexportplugin.CalendarExportSettings; import com.jgoodies.forms.builder.ButtonBarBuilder2; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import com.jgoodies.forms.layout.Sizes; /** * Settings for the Apple iCal Exporter */ public class AppleSettingsDialog extends JDialog implements WindowClosingIf { /** Translator */ private static final Localizer mLocalizer = Localizer.getLocalizerFor(AppleSettingsDialog.class); /** Which Button was pressed ? */ private int mReturnValue = JOptionPane.CANCEL_OPTION; private JButton mOkButton; private JTextField mCalendarChooser; public AppleSettingsDialog(Window owner, CalendarExportSettings settings) { super(owner); setModal(true); createGui(settings); } private void createGui(final CalendarExportSettings settings) { setTitle(mLocalizer.msg("title", "iCal Calendar Settings")); UiUtilities.registerForClosing(this); JPanel content = (JPanel) getContentPane(); content.setBorder(Borders.DLU4_BORDER); CellConstraints cc = new CellConstraints(); content.setLayout(new FormLayout("5dlu, 15dlu, fill:pref:grow, 3dlu, 100dlu", "pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, 3dlu,pref, fill:3dlu:grow ,pref, 3dlu,pref")); content.add(new JLabel(mLocalizer.msg("select", "Select Calendar")), cc.xyw(2, 3, 2)); mCalendarChooser = new JTextField(); content.add(mCalendarChooser, cc.xy(5, 3)); ButtonBarBuilder2 builder = new ButtonBarBuilder2(); builder.addGlue(); mOkButton = new JButton(Localizer.getLocalization(Localizer.I18N_OK)); mOkButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { okPressed(settings); } }); getRootPane().setDefaultButton(mOkButton); JButton cancel = new JButton(Localizer.getLocalization(Localizer.I18N_CANCEL)); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { close(); } }); builder.addButton(new JButton[] { mOkButton, cancel }); content.add(builder.getPanel(), cc.xyw(1, 19, 5)); loadValues(settings); setSize(Sizes.dialogUnitXAsPixel(200, this), Sizes.dialogUnitYAsPixel(100, this)); } private void loadValues(CalendarExportSettings settings) { mCalendarChooser .setText(settings.getExporterProperty(AppleiCalExporter.PROPERTY_CALENDAR_NAME, "TV-Browser")); } private void okPressed(CalendarExportSettings settings) { mReturnValue = JOptionPane.OK_OPTION; setVisible(false); settings.setExporterProperty(AppleiCalExporter.PROPERTY_CALENDAR_NAME, mCalendarChooser.getText().trim()); } /** * Show the Dialog * * @return Which Button was pressed ? (JOptionpane.OK_OPTION / CANCEL_OPTION) */ public int showDialog() { UiUtilities.centerAndShow(this); return mReturnValue; } public void close() { mReturnValue = JOptionPane.CANCEL_OPTION; setVisible(false); } }