/* * 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.extended.label; import com.alee.laf.WebLookAndFeel; import com.alee.managers.language.LanguageManager; import com.alee.managers.language.LanguageMethods; import com.alee.managers.language.updaters.LanguageUpdater; import com.alee.utils.ReflectUtils; import com.alee.utils.SwingUtils; import com.alee.utils.swing.FontMethods; import javax.swing.*; import java.awt.*; /** * User: mgarin Date: 22.05.12 Time: 16:11 */ public class WebMultiLineLabel extends JLabel implements LanguageMethods, FontMethods { /** * Unique UI class ID. * * @see #getUIClassID */ private static final String uiClassID = "MultiLineLabelUI"; public WebMultiLineLabel () { super (); } public WebMultiLineLabel ( final Icon image ) { super ( image ); } public WebMultiLineLabel ( final Icon image, final int horizontalAlignment ) { super ( image, horizontalAlignment ); } public WebMultiLineLabel ( final String text ) { super ( text ); } public WebMultiLineLabel ( final String text, final int horizontalAlignment ) { super ( text, horizontalAlignment ); } public WebMultiLineLabel ( final String text, final Icon icon ) { super ( text, icon, LEADING ); } public WebMultiLineLabel ( final String text, final Icon icon, final int horizontalAlignment ) { super ( text, icon, horizontalAlignment ); } public boolean isDrawShade () { return getWebUI ().isDrawShade (); } public void setDrawShade ( final boolean drawShade ) { getWebUI ().setDrawShade ( drawShade ); } public Color getShadeColor () { return getWebUI ().getShadeColor (); } public void setShadeColor ( final Color shadeColor ) { getWebUI ().setShadeColor ( shadeColor ); } public WebMultiLineLabelUI getWebUI () { return ( WebMultiLineLabelUI ) getUI (); } @Override public void updateUI () { if ( getUI () == null || !( getUI () instanceof WebMultiLineLabelUI ) ) { try { setUI ( ( WebMultiLineLabelUI ) ReflectUtils.createInstance ( WebLookAndFeel.multiLineLabelUI ) ); } catch ( final Throwable e ) { e.printStackTrace (); setUI ( new WebMultiLineLabelUI () ); } } else { setUI ( getUI () ); } } /** * {@inheritDoc} */ @Override public String getUIClassID () { return uiClassID; } /** * Language methods */ /** * {@inheritDoc} */ @Override public void setLanguage ( final String key, final Object... data ) { LanguageManager.registerComponent ( this, key, data ); } /** * {@inheritDoc} */ @Override public void updateLanguage ( final Object... data ) { LanguageManager.updateComponent ( this, data ); } /** * {@inheritDoc} */ @Override public void updateLanguage ( final String key, final 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 ( final LanguageUpdater updater ) { LanguageManager.registerLanguageUpdater ( this, updater ); } /** * {@inheritDoc} */ @Override public void removeLanguageUpdater () { LanguageManager.unregisterLanguageUpdater ( this ); } /** * Font methods */ /** * {@inheritDoc} */ @Override public WebMultiLineLabel setPlainFont () { return SwingUtils.setPlainFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setPlainFont ( final boolean apply ) { return SwingUtils.setPlainFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isPlainFont () { return SwingUtils.isPlainFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setBoldFont () { return SwingUtils.setBoldFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setBoldFont ( final boolean apply ) { return SwingUtils.setBoldFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isBoldFont () { return SwingUtils.isBoldFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setItalicFont () { return SwingUtils.setItalicFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setItalicFont ( final boolean apply ) { return SwingUtils.setItalicFont ( this, apply ); } /** * {@inheritDoc} */ @Override public boolean isItalicFont () { return SwingUtils.isItalicFont ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontStyle ( final boolean bold, final boolean italic ) { return SwingUtils.setFontStyle ( this, bold, italic ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontStyle ( final int style ) { return SwingUtils.setFontStyle ( this, style ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontSize ( final int fontSize ) { return SwingUtils.setFontSize ( this, fontSize ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel changeFontSize ( final int change ) { return SwingUtils.changeFontSize ( this, change ); } /** * {@inheritDoc} */ @Override public int getFontSize () { return SwingUtils.getFontSize ( this ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontSizeAndStyle ( final int fontSize, final boolean bold, final boolean italic ) { return SwingUtils.setFontSizeAndStyle ( this, fontSize, bold, italic ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontSizeAndStyle ( final int fontSize, final int style ) { return SwingUtils.setFontSizeAndStyle ( this, fontSize, style ); } /** * {@inheritDoc} */ @Override public WebMultiLineLabel setFontName ( final String fontName ) { return SwingUtils.setFontName ( this, fontName ); } /** * {@inheritDoc} */ @Override public String getFontName () { return SwingUtils.getFontName ( this ); } }