home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.metal;
-
- import com.sun.java.swing.JComponent;
- import com.sun.java.swing.UIManager;
- import com.sun.java.swing.plaf.ComponentUI;
- import com.sun.java.swing.plaf.basic.AbstractTreeUI;
- import com.sun.java.swing.plaf.basic.BasicTreeUI;
- import com.sun.java.swing.plaf.basic.LargeTreeModelNode;
- import com.sun.java.swing.plaf.basic.VisibleTreeNode;
- import com.sun.java.swing.tree.DefaultMutableTreeNode;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Rectangle;
- import java.beans.PropertyChangeListener;
-
- public class MetalTreeUI extends BasicTreeUI {
- private static Color lineColor;
- private static final String LINE_STYLE = "JTree.lineStyle";
- private static final String LEG_LINE_STYLE_STRING = "Angled";
- private static final String HORIZ_STYLE_STRING = "Horizontal";
- private static final String NO_STYLE_STRING = "None";
- private static final int LEG_LINE_STYLE = 2;
- private static final int HORIZ_LINE_STYLE = 1;
- private static final int NO_LINE_STYLE = 0;
- private int lineStyle = 1;
- private PropertyChangeListener lineStyleListener = new LineListener(this);
-
- public static ComponentUI createUI(JComponent var0) {
- return new MetalTreeUI();
- }
-
- protected int getHorizontalLegBuffer() {
- return 4;
- }
-
- public void installUI(JComponent var1) {
- super.installUI(var1);
- if (!super.tree.isLargeModel()) {
- ((AbstractTreeUI)this).setRowHeight(0);
- }
-
- lineColor = UIManager.getColor("Tree.line");
- Object var2 = var1.getClientProperty("JTree.lineStyle");
- this.decodeLineStyle(var2);
- var1.addPropertyChangeListener(this.lineStyleListener);
- }
-
- public void uninstallUI(JComponent var1) {
- var1.removePropertyChangeListener(this.lineStyleListener);
- super.uninstallUI(var1);
- }
-
- protected void decodeLineStyle(Object var1) {
- if (var1 != null && !var1.equals("Horizontal")) {
- if (var1.equals("Angled")) {
- this.lineStyle = 2;
- } else {
- if (var1.equals("None")) {
- this.lineStyle = 0;
- }
-
- }
- } else {
- this.lineStyle = 1;
- }
- }
-
- protected boolean clickedInExpandControl(VisibleTreeNode var1, LargeTreeModelNode var2, int var3, int var4, int var5, int var6) {
- if (var1 != null && var1.isLeaf()) {
- return false;
- } else {
- int var7;
- if (((BasicTreeUI)this).getExpandedIcon() != null) {
- var7 = ((BasicTreeUI)this).getExpandedIcon().getIconWidth() + 6;
- } else {
- var7 = 8;
- }
-
- int var8;
- if (((AbstractTreeUI)this).getShowsRootHandles()) {
- var8 = var4 * super.totalChildIndent + ((BasicTreeUI)this).getLeftChildIndent() - var7 / 2;
- } else {
- var8 = (var4 - 1) * super.totalChildIndent + ((BasicTreeUI)this).getLeftChildIndent() - var7 / 2;
- }
-
- int var9 = var8 + var7;
- return var5 >= var8 && var5 <= var9;
- }
- }
-
- public void paint(Graphics var1, JComponent var2) {
- super.paint(var1, var2);
- if (this.lineStyle == 1) {
- this.paintHorizontalSeparators(var1, var2);
- }
-
- }
-
- protected void paintHorizontalSeparators(Graphics var1, JComponent var2) {
- var1.setColor(lineColor);
- Rectangle var3 = var1.getClipBounds();
- int var4 = ((AbstractTreeUI)this).getRowContainingYLocation(var3.y);
- int var5 = ((AbstractTreeUI)this).getRowContainingYLocation(var3.y + (var3.height - 1));
- if (var4 > -1 && var5 > -1) {
- for(int var6 = var4; var6 <= var5; ++var6) {
- VisibleTreeNode var7 = ((AbstractTreeUI)this).getNode(var6);
- if (((DefaultMutableTreeNode)var7).getParent() == ((DefaultMutableTreeNode)var7).getRoot()) {
- var1.drawLine(var3.x, ((BasicTreeUI)this).getNodeY(var7), var3.x + var3.width, ((BasicTreeUI)this).getNodeY(var7));
- }
- }
-
- }
- }
-
- public void drawVerticalPartOfLeg(Graphics var1, JComponent var2, int var3, int var4, int var5, int var6, int var7) {
- if (this.lineStyle == 2) {
- super.drawVerticalPartOfLeg(var1, var2, var3, var4, var5, var6, var7);
- }
-
- }
-
- public void drawHorizontalPartOfLeg(Graphics var1, JComponent var2, int var3, int var4, int var5) {
- if (this.lineStyle == 2) {
- super.drawHorizontalPartOfLeg(var1, var2, var3, var4, var5);
- }
-
- }
-
- // $FF: synthetic method
- static String access$0() {
- return "JTree.lineStyle";
- }
- }
-