⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dndcellrendererproxy.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
字号:
/* * $Id: DnDCellRendererProxy.java,v 1.4 2006-06-06 10:18:48 antonio Exp $ * Read the "license.txt" file for licensing information. * (C) Antonio Vieiro. All rights reserved. */package net.antonioshome.swing.treewrapper;import java.awt.Component;import java.awt.Image;import javax.swing.BorderFactory;import javax.swing.JComponent;import javax.swing.JTree;import javax.swing.border.Border;import javax.swing.tree.TreeCellRenderer;import javax.swing.tree.TreeNode;/** * DnDCellRendererProxy is a TreeCellRenderer that proxies operations *   to a true TreeCellRenderer, but that draws a border around *   specific TreeNodes. * @author Antonio Vieiro (antonio@antonioshome.net), $Author: antonio $ * @version $Revision: 1.4 $ */class DnDCellRendererProxy  extends Component  implements TreeCellRenderer{  private TreeCellRenderer originalTreeCellRenderer;  private DnDBorderFactory borderFactory;  private TreeNode draggedNode;  private TreeNode dropNode;  private int dropNodeRow;  private Image shadowImage;  private boolean fetchBorder;  private Border originalBorder;    /**   * Creates a new instance of DragAndDropCellRenderer.   * @param trueCellRenderer the original cell renderer.   */  public DnDCellRendererProxy( TreeCellRenderer trueCellRenderer )  {    originalTreeCellRenderer = trueCellRenderer;    borderFactory = new DnDBorderFactory();    fetchBorder = true;  }    public TreeCellRenderer getOriginalTreeCellRenderer()  {    return originalTreeCellRenderer;  }    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)  {    Component c = originalTreeCellRenderer.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);        TreeNode nodeToRender = (TreeNode) value;        if ( c instanceof JComponent )    {      if ( fetchBorder )      {        fetchBorder = false;        originalBorder = ((JComponent)c).getBorder();      }      // TODO: This *REMOVES* the border in c.      // TODO: Use compound borders to draw BOTH borders.      JComponent jComponent = (JComponent) c;      if ( nodeToRender.equals( dropNode ) )      {        Border border = null;        if ( isDropAllowed() )        {          border = borderFactory.getDropAllowedBorder();          dropNodeRow = row;        }        else        {          border = borderFactory.getDropNotAllowedBorder();          dropNodeRow = -2;        }        jComponent.setBorder( border );      }      else if ( isDropAllowed() && row == dropNodeRow + 1 )      {        jComponent.setBorder( borderFactory.getOffsetBorder() );      }      else      {        jComponent.setBorder( originalBorder );        dropNodeRow = -2;      }    }    return c;  }      /**   * Getter for property draggedNode.   * @return Value of property draggedNode.   */  public TreeNode getDraggedNode()  {    return this.draggedNode;  }    /**   * Setter for property draggedNode.   * @param draggedNode New value of property draggedNode.   */  public void setDraggedNode(TreeNode draggedNode)  {    this.draggedNode = draggedNode;  }      /**   * Getter for property dropNode.   * @return Value of property dropNode.   */  public TreeNode getDropNode()  {    return this.dropNode;  }    /**   * Setter for property dropNode.   * @param dropNode New value of property dropNode.   */  public void setDropNode(TreeNode dropNode)  {    this.dropNode = dropNode;    if ( dropNode == null )      dropNodeRow = -2;  }    public String toString()  {    StringBuffer sb = new StringBuffer();    sb.append( "[DnDCellRendererProxy for : " ).append( originalTreeCellRenderer ).append("]");    return sb.toString();  }    /**   * Holds value of property dropAllowed.   */  private boolean dropAllowed;    /**   * Getter for property dropAllowed.   * @return Value of property dropAllowed.   */  public boolean isDropAllowed()  {    return this.dropAllowed;  }    /**   * Setter for property dropAllowed.   * @param dropAllowed New value of property dropAllowed.   */  public void setDropAllowed(boolean dropAllowed)  {    this.dropAllowed = dropAllowed;    if ( ! dropAllowed )      dropNodeRow = -2;  }    public void setShadowImage( Image anImage )  {    shadowImage = anImage;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -