calendarexportplugin.exporter.AppleSettingsDialog.java Source code

Java tutorial

Introduction

Here is the source code for calendarexportplugin.exporter.AppleSettingsDialog.java

Source

/*
 * 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);
    }

}