package org.jwildfire.swing; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.KeyEvent; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JInternalFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; import org.jwildfire.base.Prefs; public class PreferencesInternalFrame extends JInternalFrame { private static final long serialVersionUID = 1L; private JWildfire desktop = null;// @jve:decl-index=0: private MainController mainController = null; // @jve:decl-index=0: private Prefs prefs = null; // @jve:decl-index=0: private Prefs editPrefs = null; // @jve:decl-index=0: private JPanel jContentPane = null; private JPanel southPanel = null; private JButton savePrefsButton = null; private JButton cancelButton = null; /** * This is the xxx default constructor */ public PreferencesInternalFrame() { super(); setResizable(true); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(800, 600); this.setLocation(200, 80); this.setTitle("Preferences"); this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setContentPane(getJContentPane()); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getSouthPanel(), BorderLayout.SOUTH); jContentPane.add(getMainPanel(), BorderLayout.CENTER); } return jContentPane; } public void initApp() { // TODO Auto-generated method stub } public void setDesktop(JWildfire desktop) { this.desktop = desktop; } public void enableControls() { // TODO Auto-generated method stub } /** * This method initializes southPanel * * @return javax.swing.JPanel */ private JPanel getSouthPanel() { if (southPanel == null) { southPanel = new JPanel(); southPanel.setLayout(new FlowLayout()); southPanel.setPreferredSize(new Dimension(0, 34)); southPanel.add(getSavePrefsButton(), null); southPanel.add(getCancelButton(), null); } return southPanel; } /** * This method initializes savePrefsButton * * @return javax.swing.JButton */ private JButton getSavePrefsButton() { if (savePrefsButton == null) { savePrefsButton = new JButton(); savePrefsButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); savePrefsButton.setText("Save and Close"); savePrefsButton.setMnemonic(KeyEvent.VK_S); savePrefsButton.setPreferredSize(new Dimension(125, 24)); savePrefsButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { try { prefs.assign(editPrefs); prefs.saveToFile(); } catch (Exception ex) { mainController.handleError(ex); } setVisible(false); desktop.enableControls(); } }); } return savePrefsButton; } /** * This method initializes cancelButton * * @return javax.swing.JButton */ private JButton getCancelButton() { if (cancelButton == null) { cancelButton = new JButton(); cancelButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); cancelButton.setText("Cancel and Close"); cancelButton.setMnemonic(KeyEvent.VK_C); cancelButton.setPreferredSize(new Dimension(125, 24)); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { editPrefs.assign(prefs); switchCreatorPropertiesPanel(); setVisible(false); desktop.enableControls(); } }); } return cancelButton; } public void setPrefs(Prefs pPrefs) { prefs = pPrefs; editPrefs = Prefs.newInstance(); editPrefs.assign(prefs); switchCreatorPropertiesPanel(); } void setMainController(MainController mainController) { this.mainController = mainController; } private Object prefsPropertyPanel = null; // @jve:decl-index=0: private JPanel mainPanel = null; void switchCreatorPropertiesPanel() { if (prefsPropertyPanel != null) mainPanel.remove((JPanel) prefsPropertyPanel); prefsPropertyPanel = new PropertyPanel(editPrefs); mainPanel.add((JPanel) prefsPropertyPanel, BorderLayout.CENTER); mainPanel.invalidate(); mainPanel.validate(); } /** * This method initializes mainPanel * * @return javax.swing.JPanel */ private JPanel getMainPanel() { if (mainPanel == null) { mainPanel = new JPanel(); mainPanel.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10)); mainPanel.setLayout(new BorderLayout()); mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); } return mainPanel; } } // @jve:decl-index=0:visual-constraint="10,10"