/* * This file is part of WebLookAndFeel library. * * WebLookAndFeel library 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. * * WebLookAndFeel library 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 WebLookAndFeel library. If not, see . */ package com.alee.laf.radiobutton; import com.alee.laf.WebLookAndFeel; import com.alee.managers.hotkey.HotkeyData; import com.alee.managers.hotkey.HotkeyInfo; import com.alee.managers.hotkey.HotkeyManager; import com.alee.managers.language.LanguageManager; import com.alee.managers.language.LanguageMethods; import com.alee.managers.language.data.TooltipWay; import com.alee.managers.language.updaters.LanguageUpdater; import com.alee.managers.settings.DefaultValue; import com.alee.managers.settings.SettingsManager; import com.alee.managers.settings.SettingsMethods; import com.alee.managers.settings.SettingsProcessor; import com.alee.utils.ReflectUtils; import com.alee.utils.SizeUtils; import com.alee.utils.SwingUtils; import com.alee.utils.laf.ShapeProvider; import com.alee.utils.swing.FontMethods; import com.alee.utils.swing.SizeMethods; import javax.swing.*; import java.awt.*; import java.util.List; /** * User: mgarin Date: 28.06.11 Time: 0:51 */ public class WebRadioButton extends JRadioButton implements ShapeProvider, LanguageMethods, SettingsMethods, FontMethods, SizeMethods { public WebRadioButton () { super (); } public WebRadioButton ( boolean selected ) { super ( "", selected ); } public WebRadioButton ( Icon icon ) { super ( icon ); } public WebRadioButton ( Action a ) { super ( a ); } public WebRadioButton ( Icon icon, boolean selected ) { super ( icon, selected ); } public WebRadioButton ( String text ) { super ( text ); } public WebRadioButton ( String text, boolean selected ) { super ( text, selected ); } public WebRadioButton ( String text, Icon icon ) { super ( text, icon ); } public WebRadioButton ( String text, Icon icon, boolean selected ) { super ( text, icon, selected ); } /** * Proxified kotkey manager methods */ public HotkeyInfo addHotkey ( Integer keyCode ) { return addHotkey ( new HotkeyData ( keyCode ) ); } public HotkeyInfo addHotkey ( boolean isCtrl, boolean isAlt, boolean isShift, Integer keyCode ) { return addHotkey ( new HotkeyData ( isCtrl, isAlt, isShift, keyCode ) ); } public HotkeyInfo addHotkey ( HotkeyData hotkeyData ) { return HotkeyManager.registerHotkey ( this, hotkeyData ); } public HotkeyInfo addHotkey ( HotkeyData hotkeyData, boolean hidden ) { return HotkeyManager.registerHotkey ( this, hotkeyData, hidden ); } public HotkeyInfo addHotkey ( HotkeyData hotkeyData, TooltipWay tooltipWay ) { return HotkeyManager.registerHotkey ( this, hotkeyData, tooltipWay ); } public HotkeyInfo addHotkey ( Component topComponent, HotkeyData hotkeyData ) { return HotkeyManager.registerHotkey ( topComponent, this, hotkeyData ); } public HotkeyInfo addHotkey ( Component topComponent, HotkeyData hotkeyData, boolean hidden ) { return HotkeyManager.registerHotkey ( topComponent, this, hotkeyData, hidden ); } public HotkeyInfo addHotkey ( Component topComponent, HotkeyData hotkeyData, TooltipWay tooltipWay ) { return HotkeyManager.registerHotkey ( topComponent, this, hotkeyData, tooltipWay ); } public List getHotkeys () { return HotkeyManager.getComponentHotkeys ( this ); } public void removeHotkey ( HotkeyInfo hotkeyInfo ) { HotkeyManager.unregisterHotkey ( hotkeyInfo ); } public void removeHotkeys () { HotkeyManager.unregisterHotkeys ( this ); } /** * UI methods */ @Override public Insets getMargin () { return getWebUI ().getMargin (); } @Override public void setMargin ( Insets margin ) { getWebUI ().setMargin ( margin ); } public void setMargin ( int top, int left, int bottom, int right ) { setMargin ( new Insets ( top, left, bottom, right ) ); } public void setMargin ( int spacing ) { setMargin ( spacing, spacing, spacing, spacing ); } public boolean isAnimated () { return getWebUI ().isAnimated (); } public void setAnimated ( boolean animated ) { getWebUI ().setAnimated ( animated ); } public boolean isRolloverDarkBorderOnly () { return getWebUI ().isRolloverDarkBorderOnly (); } public void setRolloverDarkBorderOnly ( boolean rolloverDarkBorderOnly ) { getWebUI ().setRolloverDarkBorderOnly ( rolloverDarkBorderOnly ); } public Color getBorderColor () { return getWebUI ().getBorderColor (); } public void setBorderColor ( Color borderColor ) { getWebUI ().setBorderColor ( borderColor ); } public Color getDarkBorderColor () { return getWebUI ().getDarkBorderColor (); } public void setDarkBorderColor ( Color darkBorderColor ) { getWebUI ().setDarkBorderColor ( darkBorderColor ); } public Color getDisabledBorderColor () { return getWebUI ().getDisabledBorderColor (); } public void setDisabledBorderColor ( Color disabledBorderColor ) { getWebUI ().setDisabledBorderColor ( disabledBorderColor ); } public Color getTopBgColor () { return getWebUI ().getTopBgColor (); } public void setTopBgColor ( Color topBgColor ) { getWebUI ().setTopBgColor ( topBgColor ); } public Color getBottomBgColor () { return getWebUI ().getBottomBgColor (); } public void setBottomBgColor ( Color bottomBgColor ) { getWebUI ().setBottomBgColor ( bottomBgColor ); } public Color getTopSelectedBgColor () { return getWebUI ().getTopSelectedBgColor (); } public void setTopSelectedBgColor ( Color topSelectedBgColor ) { getWebUI ().setTopSelectedBgColor ( topSelectedBgColor ); } public Color getBottomSelectedBgColor () { return getWebUI ().getBottomSelectedBgColor (); } public void setBottomSelectedBgColor ( Color bottomSelectedBgColor ) { getWebUI ().setBottomSelectedBgColor ( bottomSelectedBgColor ); } public int getShadeWidth () { return getWebUI ().getShadeWidth (); } public void setShadeWidth ( int shadeWidth ) { getWebUI ().setShadeWidth ( shadeWidth ); } public int getIconWidth () { return getWebUI ().getIconWidth (); } public void setIconWidth ( int iconWidth ) { getWebUI ().setIconWidth ( iconWidth ); } public int getIconHeight () { return getWebUI ().getIconHeight (); } public void setIconHeight ( int iconHeight ) { getWebUI ().setIconHeight ( iconHeight ); } @Override public void setSelected ( boolean b ) { setSelected ( b, isShowing () ); } public void setSelected ( boolean b, boolean withAnimation ) { boolean animated = isAnimated (); if ( !withAnimation && animated ) { setAnimated ( false ); } super.setSelected ( b ); if ( !withAnimation ) { setAnimated ( animated ); } } @Override public Shape provideShape () { return getWebUI ().provideShape (); } public WebRadioButtonUI getWebUI () { return ( WebRadioButtonUI ) getUI (); } @Override public void updateUI () { if ( getUI () == null || !( getUI () instanceof WebRadioButtonUI ) ) { try { setUI ( ( WebRadioButtonUI ) ReflectUtils.createInstance ( WebLookAndFeel.radioButtonUI ) ); } catch ( Throwable e ) { e.printStackTrace (); setUI ( new WebRadioButtonUI () ); } } else { setUI ( getUI () ); } } /** * Language methods */ /** * {@inheritDoc} */ @Override public void setLanguage ( String key, Object... data ) { LanguageManager.registerComponent ( this, key, data ); } /** * {@inheritDoc} */ @Override public void updateLanguage ( Object... data ) { LanguageManager.updateComponent ( this, data ); } /** * {@inheritDoc} */ @Override public void updateLanguage ( String key, Object... data ) { LanguageManager.updateComponent ( this, key, data ); } /** * {@inheritDoc} */ @Override public void removeLanguage () { LanguageManager.unregisterComponent ( this ); } /** * {@inheritDoc} */ @Override public boolean isLanguageSet () { return LanguageManager.isRegisteredComponent ( this ); } /** * {@inheritDoc} */ @Override public void setLanguageUpdater ( LanguageUpdater updater ) { LanguageManager.registerLanguageUpdater ( this, updater ); } /** * {@inheritDoc} */ @Override public void removeLanguageUpdater () { LanguageManager.unregisterLanguageUpdater ( this ); } /** * Settings methods */ /** * {@inheritDoc} */ @Override public void registerSettings ( String key ) { SettingsManager.registerComponent ( this, key ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String key, Class defaultValueClass ) { SettingsManager.registerComponent ( this, key, defaultValueClass ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String key, Object defaultValue ) { SettingsManager.registerComponent ( this, key, defaultValue ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String group, String key ) { SettingsManager.registerComponent ( this, group, key ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String group, String key, Class defaultValueClass ) { SettingsManager.registerComponent ( this, group, key, defaultValueClass ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String group, String key, Object defaultValue ) { SettingsManager.registerComponent ( this, group, key, defaultValue ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String key, boolean loadInitialSettings, boolean applySettingsChanges ) { SettingsManager.registerComponent ( this, key, loadInitialSettings, applySettingsChanges ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String key, Class defaultValueClass, boolean loadInitialSettings, boolean applySettingsChanges ) { SettingsManager.registerComponent ( this, key, defaultValueClass, loadInitialSettings, applySettingsChanges ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String key, Object defaultValue, boolean loadInitialSettings, boolean applySettingsChanges ) { SettingsManager.registerComponent ( this, key, defaultValue, loadInitialSettings, applySettingsChanges ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String group, String key, Class defaultValueClass, boolean loadInitialSettings, boolean applySettingsChanges ) { SettingsManager.registerComponent ( this, group, key, defaultValueClass, loadInitialSettings, applySettingsChanges ); } /** * {@inheritDoc} */ @Override public void registerSettings ( String group, String key, Object defaultValue, boolean loadInitialSettings, boolean applySettingsChanges ) { SettingsManager.registerComponent ( this, group, key, defaultValue, loadInitialSettings, applySettingsChanges ); } /** * {@inheritDoc} */ @Override public void registerSettings ( SettingsProcessor settingsProcessor ) { SettingsManager.registerComponent ( this, settingsProcessor ); } /** * {@inheritDoc} */ @Override public void unregisterSettings () { SettingsManager.unregisterComponent ( this ); } /** * {@inheritDoc} */ @Override public void loadSettings () { SettingsManager.loadComponentSettings ( this ); } /** * {@inheritDoc} */ @Override public void saveSettings () { SettingsManager.saveComponentSettings ( this ); } /** * Font methods */ /** * {@inheritDoc} */ @Override public WebRadioButton setPlainFont () { return SwingUtils.setPlainFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setPlainFont ( boolean apply ) { return SwingUtils.setPlainFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isPlainFont () { return SwingUtils.isPlainFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setBoldFont () { return SwingUtils.setBoldFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setBoldFont ( boolean apply ) { return SwingUtils.setBoldFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isBoldFont () { return SwingUtils.isBoldFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setItalicFont () { return SwingUtils.setItalicFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setItalicFont ( boolean apply ) { return SwingUtils.setItalicFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isItalicFont () { return SwingUtils.isItalicFont ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontStyle ( boolean bold, boolean italic ) { return SwingUtils.setFontStyle ( this, bold, italic ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontStyle ( int style ) { return SwingUtils.setFontStyle ( this, style ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontSize ( int fontSize ) { return SwingUtils.setFontSize ( this, fontSize ); } /** * {@inheritDoc} */ @Override public WebRadioButton changeFontSize ( int change ) { return SwingUtils.changeFontSize ( this, change ); } /** * {@inheritDoc} */ @Override public int getFontSize () { return SwingUtils.getFontSize ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontSizeAndStyle ( int fontSize, boolean bold, boolean italic ) { return SwingUtils.setFontSizeAndStyle ( this, fontSize, bold, italic ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontSizeAndStyle ( int fontSize, int style ) { return SwingUtils.setFontSizeAndStyle ( this, fontSize, style ); } /** * {@inheritDoc} */ @Override public WebRadioButton setFontName ( String fontName ) { return SwingUtils.setFontName ( this, fontName ); } /** * {@inheritDoc} */ @Override public String getFontName () { return SwingUtils.getFontName ( this ); } /** * Size methods. */ /** * {@inheritDoc} */ @Override public int getPreferredWidth () { return SizeUtils.getPreferredWidth ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setPreferredWidth ( int preferredWidth ) { return SizeUtils.setPreferredWidth ( this, preferredWidth ); } /** * {@inheritDoc} */ @Override public int getPreferredHeight () { return SizeUtils.getPreferredHeight ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setPreferredHeight ( int preferredHeight ) { return SizeUtils.setPreferredHeight ( this, preferredHeight ); } /** * {@inheritDoc} */ @Override public int getMinimumWidth () { return SizeUtils.getMinimumWidth ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setMinimumWidth ( int minimumWidth ) { return SizeUtils.setMinimumWidth ( this, minimumWidth ); } /** * {@inheritDoc} */ @Override public int getMinimumHeight () { return SizeUtils.getMinimumHeight ( this ); } /** * {@inheritDoc} */ @Override public WebRadioButton setMinimumHeight ( int minimumHeight ) { return SizeUtils.setMinimumHeight ( this, minimumHeight ); } /** * {@inheritDoc} */ @Override public Dimension getPreferredSize () { return SizeUtils.getPreferredSize ( this, super.getPreferredSize () ); } }