home *** CD-ROM | disk | FTP | other *** search
- package com.sun.java.swing.plaf.basic;
-
- import com.sun.java.swing.Icon;
- import com.sun.java.swing.JTree;
- import com.sun.java.swing.tree.DefaultMutableTreeNode;
- import com.sun.java.swing.tree.MutableTreeNode;
- import com.sun.java.swing.tree.TreeModel;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Point;
- import java.util.Enumeration;
- import java.util.Hashtable;
-
- class BasicLargeTreeModelNode extends LargeTreeModelNode {
- public BasicLargeTreeModelNode(AbstractTreeUI var1, Object var2, int var3) {
- super(var1, var2, var3);
- }
-
- public void repaint() {
- ((BasicTreeUI)super.treeUI).repaintNode(this);
- }
-
- public void cancelEditing() {
- ((BasicTreeUI)super.treeUI).completeEditing(false, true, false);
- }
-
- public void modelChildCountChanged() {
- if (((LargeTreeModelNode)this).getRow() != -1) {
- this.repaint();
- }
-
- }
-
- public void insert(MutableTreeNode var1, int var2) {
- this.cancelEditing();
- super.insert(var1, var2);
- if (((DefaultMutableTreeNode)this).getChildCount() == 1 && ((LargeTreeModelNode)this).getRow() != -1) {
- this.repaint();
- }
-
- }
-
- public void remove(int var1) {
- this.cancelEditing();
- super.remove(var1);
- if (super.treeUI.getModel().getChildCount(((DefaultMutableTreeNode)this).getUserObject()) == 0 && ((LargeTreeModelNode)this).getRow() != -1) {
- this.repaint();
- }
-
- }
-
- public void collapse(boolean var1) {
- this.cancelEditing();
- super.collapse(var1);
- if (var1 && (super.children == null || super.children.size() == 0)) {
- this.repaint();
- }
-
- }
-
- public void expand(boolean var1) {
- this.cancelEditing();
- super.expand(var1);
- if (var1 && (super.children == null || super.children.size() == 0)) {
- this.repaint();
- }
-
- }
-
- protected void paintNode(Hashtable var1, BasicTreeUI.BasicTreeUIPaintInfo var2, int var3, int var4, Object var5, boolean var6, boolean var7, LargeTreeModelNode var8, int var9, LargeTreeModelNode var10) {
- int var11 = (var2.levelOffset + var4) * var2.totalIndent;
- int var12 = var2.rowHeight * var3;
- int var13 = var2.rChildIndent;
- int var14 = var11 - (var13 - 1);
- int var15 = var12 + var2.halfRowHeight;
- Color var16 = var2.hashColor;
- Graphics var17 = var2.g;
- BasicTreeUI var18 = (BasicTreeUI)super.treeUI;
- TreeModel var19 = var2.treeModel;
- Component var20 = var2.renderer.getTreeCellRendererComponent(var2.tree, var5, ((AbstractTreeUI)var18).isRowSelected(var3), var7, var6, var3, var3 == var2.leadIndex);
- if (var16 != null) {
- var17.setColor(var16);
- if (var3 != 0 || var2.levelOffset == 1) {
- var18.drawHorizontalPartOfLeg(var17, var2.tree, var15, var14, var11);
- }
- }
-
- if (!var6 && (var10 == null || var19.getChildCount(var5) > 0)) {
- if (var7) {
- if (var2.expandedIcon != null) {
- this.cacheIconPainting(var1, var2.expandedIcon, var14, var15);
- }
- } else if (var2.collapsedIcon != null) {
- this.cacheIconPainting(var1, var2.collapsedIcon, var14, var15);
- }
- }
-
- var18.rendererPane.paintComponent(var17, var20, var2.tree, var11, var12, var20.getPreferredSize().width, var2.rowHeight, true);
- }
-
- protected void cacheIconPainting(Hashtable var1, Icon var2, int var3, int var4) {
- var1.put(new Point(var3, var4), var2);
- }
-
- public static void paintCachedGraphics(Hashtable var0, Graphics var1, JTree var2, BasicTreeUI var3) {
- Enumeration var4 = var0.keys();
-
- while(var4.hasMoreElements()) {
- Point var5 = (Point)var4.nextElement();
- Icon var6 = (Icon)var0.get(var5);
- var3.drawCentered(var2, var1, var6, var5.x, var5.y);
- }
-
- }
-
- protected void paintChildren(Hashtable var1, BasicTreeUI.BasicTreeUIPaintInfo var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- int var9 = Math.max(var5, var3);
- int var10 = var9 - var3 + var8;
-
- for(int var11 = Math.min(var6, var4) - var3 + var8; var10 <= var11; ++var9) {
- Object var12 = var2.treeModel.getChild(((DefaultMutableTreeNode)this).getUserObject(), var10);
- this.paintNode(var1, var2, var9, var7, var12, var2.treeModel.isLeaf(var12), false, this, var10, (LargeTreeModelNode)null);
- ++var10;
- }
-
- }
-
- protected boolean paint(Hashtable var1, BasicTreeUI.BasicTreeUIPaintInfo var2, int[] var3, int var4, int var5, int var6) {
- int var7 = var3[0];
- if (var3[0] >= var4 && var3[0] <= var5) {
- this.paintNode(var1, var2, var3[0], var6, ((DefaultMutableTreeNode)this).getUserObject(), false, ((LargeTreeModelNode)this).isExpanded(), (LargeTreeModelNode)((DefaultMutableTreeNode)this).getParent(), ((LargeTreeModelNode)this).getChildIndex(), this);
- }
-
- int var10002 = var3[0]++;
- if (var3[0] > var5) {
- return true;
- } else {
- ++var6;
- if (super.isExpanded) {
- int var10 = 0;
- int var11 = var3[0];
- int var13 = var2.treeModel.getChildCount(((DefaultMutableTreeNode)this).getUserObject()) - 1;
- int var14 = -1;
- int var15 = 0;
-
- for(int var16 = ((DefaultMutableTreeNode)this).getChildCount(); var15 < var16; ++var15) {
- BasicLargeTreeModelNode var8 = (BasicLargeTreeModelNode)((DefaultMutableTreeNode)this).getChildAt(var15);
- int var9 = var8.childIndex;
- if (var9 != var10) {
- int var12 = var9 - var10 + var11 - 1;
- if (var11 <= var5 && (var12 >= var4 || var12 <= var5)) {
- this.paintChildren(var1, var2, var11, var12, var4, var5, var6, var10);
- }
- }
-
- var3[0] += var9 - var10;
- if (var3[0] > var5) {
- ((BasicTreeUI)super.treeUI).drawVerticalPartOfLeg(var2.g, var2.tree, var6 - 1, var7 * var2.rowHeight, var5 * var2.rowHeight, var2.rowHeight, var2.rowHeight);
- return true;
- }
-
- if (var9 == var13) {
- var14 = var3[0];
- }
-
- var8.paint(var1, var2, var3, var4, var5, var6);
- var11 = var3[0];
- var10 = var9 + 1;
- }
-
- int var18 = var2.treeModel.getChildCount(((DefaultMutableTreeNode)this).getUserObject()) - 1;
- if (var18 >= var10) {
- int var19 = var18 - var10 + var11;
- if (var11 <= var5 && (var19 >= var4 || var19 <= var5)) {
- this.paintChildren(var1, var2, var11, var19, var4, var5, var6, var10);
- }
-
- var3[0] += var18 - var10 + 1;
- }
-
- if (var13 >= 0) {
- ((BasicTreeUI)super.treeUI).drawVerticalPartOfLeg(var2.g, var2.tree, var6 - 1, var7 * var2.rowHeight, (var14 == -1 ? var3[0] - 1 : var14) * var2.rowHeight, var2.rowHeight, var2.rowHeight);
- }
- }
-
- return false;
- }
- }
-
- public void paintAll(BasicTreeUI.BasicTreeUIPaintInfo var1, int[] var2, int var3, int var4, int var5, BasicTreeUI var6) {
- Hashtable var7 = new Hashtable();
- this.paint(var7, var1, var2, var3, var4, var5);
- paintCachedGraphics(var7, var1.g, var1.tree, var6);
- }
- }
-