package com.limegroup.gnutella.gui.options.panes; import java.io.IOException; import javax.swing.Box; import javax.swing.JPanel; import javax.swing.ButtonGroup; import javax.swing.JRadioButton; import com.limegroup.gnutella.version.UpdateInformation; import com.limegroup.gnutella.settings.UpdateSettings; import com.limegroup.gnutella.gui.GUIMediator; import com.limegroup.gnutella.gui.BoxPanel; /** Update options */ public class UpdatePaneItem extends AbstractPaneItem { /** button for wanting betas */ private JRadioButton beta; /** button for wanting service releases */ private JRadioButton service; /** button for wanting major releases */ private JRadioButton major; /** Creates the UpdatePaneItem */ public UpdatePaneItem(final String key) { super(key); beta = new JRadioButton(GUIMediator.getStringResource("OPTIONS_UPDATE_BETA")); service = new JRadioButton(GUIMediator.getStringResource("OPTIONS_UPDATE_SERVICE")); major = new JRadioButton(GUIMediator.getStringResource("OPTIONS_UPDATE_MAJOR")); ButtonGroup bg = new ButtonGroup(); bg.add(beta); bg.add(service); bg.add(major); JPanel panel = new BoxPanel(); panel.add(major); panel.add(service); panel.add(beta); JPanel outer = new BoxPanel(BoxPanel.X_AXIS); outer.add(panel); outer.add(Box.createHorizontalGlue()); add(outer); } /** * Applies the options currently set in this <tt>PaneItem</tt>. * * @throws IOException if the options could not be fully applied */ public boolean applyOptions() throws IOException { if(beta.isSelected()) UpdateSettings.UPDATE_STYLE.setValue(UpdateInformation.STYLE_BETA); else if(service.isSelected()) UpdateSettings.UPDATE_STYLE.setValue(UpdateInformation.STYLE_MINOR); else // if beta.isSelected()) UpdateSettings.UPDATE_STYLE.setValue(UpdateInformation.STYLE_MAJOR); return false; } /** * Sets the options for the fields in this <tt>PaneItem</tt> when the * window is shown. */ public void initOptions() { int style = UpdateSettings.UPDATE_STYLE.getValue(); if(style <= UpdateInformation.STYLE_BETA) beta.setSelected(true); else if(style == UpdateInformation.STYLE_MINOR) service.setSelected(true); else // if style >= UpdateInformation.STYLE_MAJOR major.setSelected(true); } public boolean isDirty() { int style = UpdateSettings.UPDATE_STYLE.getValue(); if(style <= UpdateInformation.STYLE_BETA) return !beta.isSelected(); else if(style == UpdateInformation.STYLE_MINOR) return !service.isSelected(); else // if style >= UpdateInformation.STYLE_MAJOR return !major.isSelected(); } }