/*
* Created on 14/10/2004
*
* Swing Components - visit http://sf.net/projects/gfd
*
* Copyright (C) 2004 Igor Regis da Silva Simes
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
package br.com.igor.plaf;
import javax.swing.UIDefaults;
import javax.swing.plaf.metal.MetalLookAndFeel;
/**
*
* Esta classe responsvel por instalar o IgorLookAndFeel na aplicao.
* Sua super classe MetalLookAndFeel para que possa ser mantido por padro
* o LookAndFeel Metal, padro das aplicaes Java.
* <P>
* O IgorLookAndFeel foi criado para resolver um problema de renderizao de fontes
* de componentes no sistema operacional Linux.
* O problema foi reslvido sobrescrevendo os mtodos responsveis pelo pintura
* dos textos dos componentes para ativar uma propriedade do objeto Graphics.
*
* @author Igor Regis da Silva Simes
*/
public class IgorLookAndFeel extends MetalLookAndFeel
{
/** Mtodo responsvel por instalar os novos componentes de LookAndFeel
* <p>
* Para realizar a instalao dos novos componentes deve-se passar para um
* Array Object, Strings contendo uma tag que representa o componente o qual
* se deseja alterar o LookAndFeel e o nome completo da classe que ir substituir
* a padro; separados por virgula.
* <p>
* Deve-se primeiro fazer uma chamada ao mtodo da superclasse para carregar as
* classes padro e depois inserir as classes do novo LookAndFeel.
* @param table Tebela contendo todos os UI Componetes que sero usados para criar o LookAndFeel
*/
@Override
protected void initClassDefaults(UIDefaults table)
{
super.initClassDefaults(table);
String packageName = "br.com.igor.plaf";
Object[] uiDefaults = {
"ButtonUI", packageName + "IgorButtonUI",
"CheckBoxUI", packageName + "IgorCheckBoxUI",
// "ColorChooserUI", packageName + "BasicColorChooserUI",
// "MenuBarUI", packageName + "BasicMenuBarUI",
// "MenuUI", packageName + "BasicMenuUI",
// "MenuItemUI", packageName + "BasicMenuItemUI",
// "CheckBoxMenuItemUI", packageName + "BasicCheckBoxMenuItemUI",
// "RadioButtonMenuItemUI", packageName + "BasicRadioButtonMenuItemUI",
"RadioButtonUI", packageName + "IgorRadioButtonUI",
"ToggleButtonUI", packageName + "IgorToggleButtonUI",
// "PopupMenuUI", packageName + "IgorPopupMenuUI",
// "ProgressBarUI", packageName + "BasicProgressBarUI",
// "ScrollBarUI", packageName + "BasicScrollBarUI",
// "ScrollPaneUI", packageName + "BasicScrollPaneUI",
// "SplitPaneUI", packageName + "BasicSplitPaneUI",
// "SliderUI", packageName + "BasicSliderUI",
// "SeparatorUI", packageName + "BasicSeparatorUI",
// "ToolBarSeparatorUI", packageName + "BasicToolBarSeparatorUI",
// "PopupMenuSeparatorUI", packageName + "BasicPopupMenuSeparatorUI",
// "TabbedPaneUI", packageName + "BasicTabbedPaneUI",
"TextAreaUI", packageName + "IgorTextAreaUI",
"TextFieldUI", packageName + "IgorTextFieldUI",
// "PasswordFieldUI", packageName + "BasicPasswordFieldUI",
"TextPaneUI", packageName + "IgorTextPaneUI",
// "EditorPaneUI", packageName + "BasicEditorPaneUI",
// "TreeUI", packageName + "BasicTreeUI",
"LabelUI", packageName + "IgorLabelUI",
// "ListUI", packageName + "IgorListUI",
// "ToolBarUI", packageName + "BasicToolBarUI",
"ToolTipUI", packageName + "IgorToolTipUI"
// "ComboBoxUI", packageName + "IgorComboBoxUI"
// "TableUI", packageName + "BasicTableUI",
// "TableHeaderUI", packageName + "BasicTableHeaderUI",
// "InternalFrameUI", packageName + "BasicInternalFrameUI",
// "StandardDialogUI", packageName + "BasicStandardDialogUI",
// "DesktopPaneUI", packageName + "BasicDesktopPaneUI",
// "DesktopIconUI", packageName + "BasicDesktopIconUI",
// "OptionPaneUI", packageName + "BasicOptionPaneUI",
// "PanelUI", packageName + "BasicPanelUI"
// "ViewportUI", packageName + "BasicViewportUI",
// "RootPaneUI", packageName + "BasicRootPaneUI",
};
table.putDefaults(uiDefaults);
}
/** Retorna o nome do LookAndFeel
*
* @see javax.swing.LookAndFeel#getName()
* @return Retorna o nome do LookAndFeel
*/
@Override
public String getName() {
return "IgorLookAndFeel";
}
/** Retorna um ID do LookAndFeel
*
* @see javax.swing.LookAndFeel#getID()
* @return Retorna o ID do LookAndFeel
*/
@Override
public String getID() {
return "Igor";
}
/** Retorna uma descrio do LookAndFeel
*
* @see javax.swing.LookAndFeel#getDescription()
* @return Retorna uma descrio do LookAndFeel
*/
@Override
public String getDescription() {
return "LookAndFeel do Igor";
}
/** Retorna se este LookAndFeel ou no nativo.
*
* @see javax.swing.LookAndFeel#isNativeLookAndFeel()
* @return Retorna sempre falso, pois este LookAndFeel no nativo
*/
@Override
public boolean isNativeLookAndFeel() {
return false;
}
/** Retorna se o LookAndFeel ou no suportado pelo atua sistema operacional.
*
* @see javax.swing.LookAndFeel#isSupportedLookAndFeel()
* @return Retorna sempre true, pois este LookAndFeel no nativo
*/
@Override
public boolean isSupportedLookAndFeel() {
return true;
}
}
|