package com.limegroup.gnutella.gui.options; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.Box; import javax.swing.JPanel; import com.limegroup.gnutella.gui.BoxPanel; import com.limegroup.gnutella.gui.ButtonRow; /** * This class contains the <tt>ButtonRow</tt> instance for the options * window. */ //2345678|012345678|012345678|012345678|012345678|012345678|012345678|012345678| final class OptionsButtonPanel { /** * Handle to the enclosed <tt>ButtonRow</tt> instance. */ private ButtonRow _buttonRow; /** * Handle to the other button row. */ private ButtonRow _revertRow; /** * The constructor creates the <tt>ButtonRow</tt>. */ OptionsButtonPanel() { String[] buttonLabelKeys = { "GENERAL_OK_BUTTON_LABEL", "GENERAL_CANCEL_BUTTON_LABEL", "GENERAL_APPLY_BUTTON_LABEL" }; String[] toolTipKeys = { "GENERAL_OK_BUTTON_TIP", "GENERAL_CANCEL_BUTTON_TIP", "GENERAL_APPLY_BUTTON_TIP", }; ActionListener[] listeners = { new OKListener(), new CancelListener(), new ApplyListener() }; _buttonRow= new ButtonRow(buttonLabelKeys,toolTipKeys,listeners, ButtonRow.X_AXIS,ButtonRow.LEFT_GLUE); buttonLabelKeys = new String[] { "OPTIONS_BUTTON_REVERT_TO_DEFAULT" }; toolTipKeys = new String[] { "OPTIONS_BUTTON_REVERT_TO_DEFAULT_TIP" }; listeners = new ActionListener[] { new RevertListener() }; _revertRow = new ButtonRow(buttonLabelKeys, toolTipKeys, listeners, ButtonRow.X_AXIS, ButtonRow.LEFT_GLUE); } /** * Returns the <tt>Component</tt> that contains the <tt>ButtonRow</tt>. */ Component getComponent() { JPanel box = new BoxPanel(BoxPanel.X_AXIS); box.add(Box.createHorizontalStrut(50)); box.add(_revertRow); //box.add(Box.createHorizontalGlue()); _buttonRow.setAlignmentX(1f); box.add(_buttonRow); //box.add(Box.createHorizontalGlue()); return box; } /** * Listener for the revert to default option. * Reverts all options to their factory defaults. */ private class RevertListener implements ActionListener { public void actionPerformed(ActionEvent e) { OptionsMediator.instance().revertOptions(); OptionsMediator.instance().setOptionsVisible(false); } } /** * The listener for the ok button. Applies the current options and * makes the window not visible. */ private class OKListener implements ActionListener { public void actionPerformed(ActionEvent e) { // close the window only if the new settings // work correctly, as the user may need to // change the settings before closing. try { OptionsMediator.instance().applyOptions(); OptionsMediator.instance().setOptionsVisible(false); } catch(IOException ioe) { // nothing we should do here. a message should // have been displayed to the user with more information } } } /** * The listener for the cancel button. */ private class CancelListener implements ActionListener { public void actionPerformed(ActionEvent e) { OptionsMediator.instance().setOptionsVisible(false); } } /** * The listener for the apply button. Applies the current settings. */ private class ApplyListener implements ActionListener { public void actionPerformed(ActionEvent e) { try { OptionsMediator.instance().applyOptions(); } catch(IOException ioe) { // nothing we should do here. a message should // have been displayed to the user with more information } } } }