package org.droiddraw.gui; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import org.droiddraw.AndroidEditor; public class PreferencesPanel extends JPanel { private static final long serialVersionUID = 1L; protected JCheckBox grid; protected JComboBox screen; protected JComboBox defLayout; protected JComboBox update; protected JButton ok; protected JButton cancel; protected Preferences prefs; protected JFrame frame; public PreferencesPanel(Preferences prefs, JFrame frame) { this.prefs = prefs; this.frame = frame; this.setLayout(new GridLayout(0, 2)); this.grid = new JCheckBox("Snap to grid."); this.grid.setSelected(prefs.getSnap()); this.screen = new JComboBox(new String[] { "QVGA Landscape", "QVGA Portrait", "HVGA Landscape", "HVGA Portrait", "WVGA Landscape", "WVGA Portrait"}); this.screen.setSelectedIndex(prefs.getScreenMode().ordinal()); this.defLayout = new JComboBox(new String[] {"Absolute Layout", "Linear Layout", "Relative Layout"}); this.defLayout.setSelectedIndex(prefs.getDefaultLayout().ordinal()); this.update = new JComboBox(new String[] {"Always", "Ask me", "Never"}); this.update.setSelectedIndex(prefs.getUpdateCheck().ordinal()); this.ok = new JButton("Apply"); this.ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { PreferencesPanel.this.prefs.setSnap(PreferencesPanel.this.grid.isSelected()); PreferencesPanel.this.prefs.setScreenMode(AndroidEditor.ScreenMode.values()[PreferencesPanel.this.screen.getSelectedIndex()]); PreferencesPanel.this.prefs.setDefaultLayout(Preferences.Layout.values()[PreferencesPanel.this.defLayout.getSelectedIndex()]); PreferencesPanel.this.prefs.setUpdateCheck(Preferences.Update.values()[PreferencesPanel.this.update.getSelectedIndex()]); PreferencesPanel.this.prefs.save(); PreferencesPanel.this.frame.setVisible(false); PreferencesPanel.this.frame.dispose(); } }); this.cancel = new JButton("Cancel"); this.cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { PreferencesPanel.this.frame.setVisible(false); PreferencesPanel.this.frame.dispose(); } }); this.add(grid); this.add(new JLabel("")); this.add(new JLabel("Default Screen Size")); this.add(screen); this.add(new JLabel("Default Screen Layout")); this.add(defLayout); this.add(new JLabel("Check for updates at startup?")); this.add(update); this.add(cancel); this.add(ok); } }