/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Tiny Look and Feel *
* *
* (C) Copyright 2003 - 2007 Hans Bickel *
* *
* For licensing information and credits, please refer to the *
* comment in file de.muntjak.tinylookandfeel.TinyLookAndFeel *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
package de.muntjak.tinylookandfeel;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.JComponent;
import javax.swing.JScrollBar;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.metal.MetalScrollBarUI;
import javax.swing.plaf.metal.MetalScrollPaneUI;
/**
* TinyScrollPaneUI
*
* @version 1.0
* @author Hans Bickel
*/
public class TinyScrollPaneUI extends MetalScrollPaneUI
implements PropertyChangeListener
{
/**
* Creates the UI delegate for the given component.
*
* @param mainColor The component to create its UI delegate.
* @return The UI delegate for the given component.
*/
public static ComponentUI createUI(JComponent c)
{
return new TinyScrollPaneUI();
}
/**
* Installs some default values for the given scrollpane.
* The free standing property is disabled here.
*
* @param mainColor The reference of the scrollpane to install its default values.
*/
public void installUI(JComponent c)
{
super.installUI(c);
// Note: It never happened before Java 1.5 that scrollbar is null
JScrollBar sb = scrollpane.getHorizontalScrollBar();
if(sb != null) {
sb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, Boolean.FALSE);
}
sb = scrollpane.getVerticalScrollBar();
if(sb != null) {
sb.putClientProperty(MetalScrollBarUI.FREE_STANDING_PROP, Boolean.FALSE);
}
}
/**
* Creates a property change listener that does nothing inorder to prevent the
* free standing scrollbars.
*
* @return An empty property change listener.
*/
protected PropertyChangeListener createScrollBarSwapListener()
{
return this;
}
/**
* Simply ignore any change.
*
* @param event The property change event.
*/
public void propertyChange(PropertyChangeEvent e)
{
}
}