2002-08-09 12:26:17 +08:00
/ * UIManager . java - -
Copyright ( C ) 2002 Free Software Foundation , Inc .
This file is part of GNU Classpath .
GNU Classpath 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 , or ( at your option )
any later version .
GNU Classpath 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 GNU Classpath ; see the file COPYING . If not , write to the
Free Software Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA
02111 - 1307 USA .
Linking this library statically or dynamically with other modules is
making a combined work based on this library . Thus , the terms and
conditions of the GNU General Public License cover the whole
combination .
As a special exception , the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable , regardless of the license terms of these independent
modules , and to copy and distribute the resulting executable under
terms of your choice , provided that you also meet , for each linked
independent module , the terms and conditions of the license of that
module . An independent module is a module which is not derived from
or based on this library . If you modify this library , you may extend
this exception to your version of the library , but you are not
obligated to do so . If you do not wish to do so , delete this
exception statement from your version . * /
package javax.swing ;
import java.io.* ;
import java.awt.* ;
import javax.swing.border.* ;
import javax.swing.plaf.* ;
import javax.swing.plaf.basic.* ;
import javax.swing.plaf.metal.* ;
import java.beans.* ;
public class UIManager implements Serializable
{
AbstractCellEditor.java, [...]: Merges from classpath.
2003-03-31 Michael Koch <konqueror@gmx.de>
* javax/swing/AbstractCellEditor.java,
javax/swing/AbstractListModel.java,
javax/swing/ActionMap.java,
javax/swing/BorderFactory.java,
javax/swing/ButtonGroup.java,
javax/swing/DefaultBoundedRangeModel.java,
javax/swing/DefaultButtonModel.java,
javax/swing/DefaultCellEditor.java,
javax/swing/DefaultComboBoxModel.java,
javax/swing/DefaultDesktopManager.java,
javax/swing/DefaultListCellRenderer.java,
javax/swing/DefaultSingleSelectionModel.java,
javax/swing/InputMap.java,
javax/swing/JComponent.java,
javax/swing/JMenu.java,
javax/swing/JSlider.java,
javax/swing/KeyStroke.java,
javax/swing/OverlayLayout.java,
javax/swing/ScrollPaneLayout.java,
javax/swing/SizeRequirements.java,
javax/swing/UIManager.java,
javax/swing/ViewportLayout.java,
javax/swing/border/AbstractBorder.java,
javax/swing/colorchooser/DefaultColorSelectionModel.java,
javax/swing/event/EventListenerList.java,
javax/swing/table/AbstractTableModel.java,
javax/swing/table/DefaultTableCellRenderer.java,
javax/swing/table/DefaultTableColumnModel.java,
javax/swing/table/DefaultTableModel.java,
javax/swing/table/TableColumn.java,
javax/swing/text/StyledEditorKit.java,
javax/swing/tree/DefaultMutableTreeNode.java,
javax/swing/tree/DefaultTreeModel.java,
javax/swing/tree/DefaultTreeSelectionModel.java,
javax/swing/tree/TreePath.java,
javax/swing/undo/AbstractUndoableEdit.java,
javax/swing/undo/StateEdit.java,
javax/swing/undo/StateEditable.java,
javax/swing/undo/UndoableEditSupport.java:
Merges from classpath.
From-SVN: r65077
2003-03-31 14:30:01 +08:00
static final long serialVersionUID = - 5547433830339189365L ;
2002-08-09 12:26:17 +08:00
static class LookAndFeelInfo
{
String name , clazz ;
LookAndFeelInfo ( String name ,
String clazz )
{
this . name = name ;
this . clazz = clazz ;
}
String getName ( ) { return name ; }
String getClassName ( ) { return clazz ; }
}
static LookAndFeelInfo [ ] installed = {
new LookAndFeelInfo ( " Metal " ,
" javax.swing.plaf.metal.MetalLookAndFeel " )
} ;
static LookAndFeel [ ] aux_installed ;
static LookAndFeel look_and_feel = new MetalLookAndFeel ( ) ;
UIManager ( )
{
}
public static void addPropertyChangeListener ( PropertyChangeListener listener )
{
// Add a PropertyChangeListener to the listener list.
}
public static void addAuxiliaryLookAndFeel ( LookAndFeel l )
{
// Add a LookAndFeel to the list of auxiliary look and feels.
if ( aux_installed = = null )
{
aux_installed = new LookAndFeel [ 1 ] ;
aux_installed [ 0 ] = l ;
return ;
}
LookAndFeel [ ] T = new LookAndFeel [ aux_installed . length + 1 ] ;
System . arraycopy ( aux_installed , 0 ,
T , 0 ,
aux_installed . length ) ;
aux_installed = T ;
aux_installed [ aux_installed . length - 1 ] = l ;
}
public static boolean removeAuxiliaryLookAndFeel ( LookAndFeel laf )
{
if ( aux_installed = = null )
return false ;
for ( int i = 0 ; i < aux_installed . length ; i + + )
{
if ( aux_installed [ i ] = = laf )
{
aux_installed [ i ] = aux_installed [ aux_installed . length - 1 ] ;
LookAndFeel [ ] T = new LookAndFeel [ aux_installed . length - 1 ] ;
System . arraycopy ( aux_installed , 0 ,
T , 0 ,
aux_installed . length - 1 ) ;
aux_installed = T ;
return true ;
}
}
return false ;
}
public static LookAndFeel [ ] getAuxiliaryLookAndFeels ( )
{ return aux_installed ; }
public static Object get ( Object key )
{ return getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ; }
/ * *
* Returns a border from the defaults table .
* /
public static Border getBorder ( Object key )
{
return ( Border ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
}
/ * *
* Returns a drawing color from the defaults table .
* /
public static Color getColor ( Object key )
{
return ( Color ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
}
/ * *
* this string can be passed to Class . forName ( )
* /
public static String getCrossPlatformLookAndFeelClassName ( )
{
return " javax.swing.plaf.metal.MetalLookAndFeel " ;
}
/ * *
* Returns the default values for this look and feel .
* /
static UIDefaults getDefaults ( )
{
return getLookAndFeel ( ) . getDefaults ( ) ;
}
/ * *
* Returns a dimension from the defaults table .
* /
static Dimension getDimension ( Object key )
{
System . out . println ( " UIManager.getDim " ) ;
return new Dimension ( 200 , 100 ) ;
}
static Font getFont ( Object key )
// Returns a drawing font from the defaults table.
{
return ( Font ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
}
static Icon getIcon ( Object key )
// Returns an Icon from the defaults table.
{
return ( Icon ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
}
static Insets getInsets ( Object key )
// Returns an Insets object from the defaults table.
{
return ( Insets ) getLookAndFeel ( ) . getDefaults ( ) . getInsets ( key ) ;
}
static LookAndFeelInfo [ ] getInstalledLookAndFeels ( )
{
return installed ;
}
static int getInt ( Object key )
{
Integer x = ( Integer ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
if ( x = = null )
return 0 ;
return x . intValue ( ) ;
}
static LookAndFeel getLookAndFeel ( )
{
return look_and_feel ;
}
static UIDefaults getLookAndFeelDefaults ( )
// Returns the default values for this look and feel.
{
return getLookAndFeel ( ) . getDefaults ( ) ;
}
static String getString ( Object key )
// Returns a string from the defaults table.
{
return ( String ) getLookAndFeel ( ) . getDefaults ( ) . get ( key ) ;
}
static String getSystemLookAndFeelClassName ( )
// Returns the name of the LookAndFeel class that implements the native systems look and feel if there is one, otherwise the name of the default cross platform LookAndFeel class.
{
return getCrossPlatformLookAndFeelClassName ( ) ;
}
public static ComponentUI getUI ( JComponent target )
// Returns the L&F object that renders the target component.
{
ComponentUI ui = getDefaults ( ) . getUI ( target ) ;
//System.out.println("GET-UI-> " + ui + ", for " + target);
return ui ;
}
public static void installLookAndFeel ( String name , String className )
// Creates a new look and feel and adds it to the current array.
{
}
public static void installLookAndFeel ( LookAndFeelInfo info )
// Adds the specified look and feel to the current array and then calls setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[]).
{
}
public static Object put ( Object key , Object value )
// Stores an object in the defaults table.
{
return getLookAndFeel ( ) . getDefaults ( ) . put ( key , value ) ;
}
public static void removePropertyChangeListener ( PropertyChangeListener listener )
// Remove a PropertyChangeListener from the listener list.
{
}
public static void setInstalledLookAndFeels ( UIManager . LookAndFeelInfo [ ] infos )
// Replaces the current array of installed LookAndFeelInfos.
{
}
public static void setLookAndFeel ( LookAndFeel newLookAndFeel )
{
if ( look_and_feel ! = null )
look_and_feel . uninitialize ( ) ;
// Set the current default look and feel using a LookAndFeel object.
look_and_feel = newLookAndFeel ;
look_and_feel . initialize ( ) ;
// revalidate();
// repaint();
}
public static void setLookAndFeel ( String className )
throws ClassNotFoundException ,
InstantiationException ,
IllegalAccessException ,
UnsupportedLookAndFeelException
{
// Set the current default look and feel using a class name.
Class c = Class . forName ( className ) ;
LookAndFeel a = ( LookAndFeel ) c . newInstance ( ) ; // throws class-cast-exception
setLookAndFeel ( a ) ;
}
}