home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.metal;
-
- import com.sun.java.swing.AbstractButton;
- import com.sun.java.swing.JButton;
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.border.Border;
- import com.sun.java.swing.border.CompoundBorder;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.plaf.UIResource;
- import com.sun.java.swing.plaf.basic.BasicToolBarUI;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.event.ContainerEvent;
- import java.awt.event.ContainerListener;
- import java.beans.PropertyChangeListener;
- import java.util.Hashtable;
-
- public class MetalToolBarUI extends BasicToolBarUI implements ContainerListener {
- protected static Border rolloverBorder = new CompoundBorder(new MetalRolloverButtonBorder(), new ToolBarButtonMargin());
- protected static Border nonRolloverBorder = new MetalButtonBorder();
- protected Hashtable borderTable = new Hashtable();
- protected ContainerListener contListener;
- private boolean rolloverBorders = false;
- private PropertyChangeListener rolloverListener;
- protected static String IS_ROLLOVER = "JToolBar.isRollover";
-
- public static ComponentUI createUI(JComponent var0) {
- return new MetalToolBarUI();
- }
-
- public void installUI(JComponent var1) {
- this.rolloverListener = new RolloverListener(this);
- var1.addPropertyChangeListener(this.rolloverListener);
- super.installUI(var1);
- Object var2 = var1.getClientProperty(IS_ROLLOVER);
- if (var2 != null) {
- this.setRolloverBorders((Boolean)var2);
- } else {
- this.setRolloverBorders(false);
- }
- }
-
- public void uninstallUI(JComponent var1) {
- var1.removePropertyChangeListener(this.rolloverListener);
- super.uninstallUI(var1);
- this.installNormalBorders(var1);
- }
-
- protected void installListeners(JComponent var1) {
- super.installListeners(var1);
- if ((this.contListener = this.createContainerListener(var1)) != null) {
- ((Container)var1).addContainerListener(this.contListener);
- }
-
- }
-
- protected void uninstallListeners(JComponent var1) {
- super.uninstallListeners(var1);
- if (this.contListener != null) {
- ((Container)var1).removeContainerListener(this.contListener);
- this.contListener = null;
- }
-
- }
-
- protected ContainerListener createContainerListener(JComponent var1) {
- return this;
- }
-
- public boolean isRolloverBorders() {
- return this.rolloverBorders;
- }
-
- public void setRolloverBorders(boolean var1) {
- this.rolloverBorders = var1;
- if (this.rolloverBorders) {
- this.installRolloverBorders(super.toolBar);
- } else {
- this.installNonRolloverBorders(super.toolBar);
- }
- }
-
- protected void installRolloverBorders(JComponent var1) {
- Component[] var2 = ((Container)var1).getComponents();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3] instanceof JComponent) {
- ((JComponent)var2[var3]).updateUI();
- this.setBorderToRollover(var2[var3]);
- }
- }
-
- }
-
- protected void installNonRolloverBorders(JComponent var1) {
- Component[] var2 = ((Container)var1).getComponents();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3] instanceof JComponent) {
- ((JComponent)var2[var3]).updateUI();
- this.setBorderToNonRollover(var2[var3]);
- }
- }
-
- }
-
- protected void installNormalBorders(JComponent var1) {
- Component[] var2 = ((Container)var1).getComponents();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- this.setBorderToNormal(var2[var3]);
- }
-
- }
-
- protected void setBorderToRollover(Component var1) {
- if (var1 instanceof JButton) {
- JButton var2 = (JButton)var1;
- if (((AbstractButton)var2).getUI() instanceof MetalButtonUI) {
- if (((JComponent)var2).getBorder() instanceof UIResource) {
- this.borderTable.put(var2, ((JComponent)var2).getBorder());
- }
-
- if (((JComponent)var2).getBorder() instanceof UIResource || ((JComponent)var2).getBorder() == nonRolloverBorder) {
- ((JComponent)var2).setBorder(rolloverBorder);
- }
- }
- }
-
- }
-
- protected void setBorderToNonRollover(Component var1) {
- if (var1 instanceof JButton) {
- JButton var2 = (JButton)var1;
- if (((AbstractButton)var2).getUI() instanceof MetalButtonUI) {
- if (((JComponent)var2).getBorder() instanceof UIResource) {
- this.borderTable.put(var2, ((JComponent)var2).getBorder());
- }
-
- if (((JComponent)var2).getBorder() instanceof UIResource || ((JComponent)var2).getBorder() == rolloverBorder) {
- ((JComponent)var2).setBorder(nonRolloverBorder);
- }
- }
- }
-
- }
-
- protected void setBorderToNormal(Component var1) {
- if (var1 instanceof JButton) {
- JButton var2 = (JButton)var1;
- if (((AbstractButton)var2).getUI() instanceof MetalButtonUI && (((JComponent)var2).getBorder() == rolloverBorder || ((JComponent)var2).getBorder() == nonRolloverBorder)) {
- ((JComponent)var2).setBorder((Border)this.borderTable.remove(var2));
- }
- }
-
- }
-
- public void componentAdded(ContainerEvent var1) {
- Component var2 = var1.getChild();
- if (this.rolloverBorders) {
- this.setBorderToRollover(var2);
- } else {
- this.setBorderToNonRollover(var2);
- }
- }
-
- public void componentRemoved(ContainerEvent var1) {
- Component var2 = var1.getChild();
- this.setBorderToNormal(var2);
- }
- }
-