Package clips.report.panels.utils

Source Code of clips.report.panels.utils.TreeSellectCellRenderer

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package clips.report.panels.utils;

import beans.report.SelectedIdList;
import cli_fmw.delegate.directory.DirectoryItemRecursive;
import cli_fmw.delegate.directory.DirectoryRecursive;
import clips.delegate.directory.complex.DirectoryMKB10;
import clips.delegate.directory.complex.DirectoryMKB10Item;
import cli_fmw.utils.MessageBox;
import cli_fmw.main.ClipsException;
import clips.report.panels.utils.DirectorySellectUtil;
import java.awt.Color;
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;

/**
*
* @author finder
*/
public class TreeSellectCellRenderer extends DefaultTreeCellRenderer {
  private static final long        serialVersionUID = 1L;
  public static final ImageIcon      ICON_SEL_THIS = new ImageIcon(TreeSellectCellRenderer.class.getResource("/resources/icons/selected_all.png"));
    public static final ImageIcon      ICON_SEL_CHILDREN = new ImageIcon(TreeSellectCellRenderer.class.getResource("/resources/icons/selected_some.png"));
    public static final ImageIcon      ICON_SEL_NOTHING = new ImageIcon(TreeSellectCellRenderer.class.getResource("/resources/icons/selected_nothing.png"));
    public static final ImageIcon      ICON_SEL_EXCLUDED = new ImageIcon(TreeSellectCellRenderer.class.getResource("/resources/icons/selected_excluded.png"));
 
  private Color              normal;
  private Color              excludeded = new Color(1f, 0f, 0f);
  private Color              subItemExluded = new Color(0.7f, 0f, 0f);
 
 
  private SelectedIdList          list;
  private DirectoryRecursive        dir;// = (DirectoryMKB10) DirectoryLocator.getDirectory(DirectoryMKB10.class, false);
  private DirectorySellectUtil      utils;
 
  public TreeSellectCellRenderer(DirectoryRecursive dir) {
    this.dir = dir;
    utils = new DirectorySellectUtil(this.dir);
    normal = getForeground();
  }
 
  boolean hericalFind(DirectoryItemRecursive item, int id) throws ClipsException{
    DirectoryItemRecursive cur = dir.getItemFromID(id);
    while (cur != null){
      if (cur.getID() == item.getID()) {
        return true;
      }
      cur = cur.getParent();
    }
    return false;
  }
 
    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
    JLabel    render = (JLabel) super.getTreeCellRendererComponent(tree, value, selected, expanded, false, row, hasFocus);

    if (value instanceof DefaultMutableTreeNode){
      render.setIcon(null);
      render.setDisabledIcon(null);
      return render;
    }
   
    render.setDisabledIcon(ICON_SEL_NOTHING);

    if (!(value instanceof DirectoryMKB10Item)) {
      throw new IllegalArgumentException("Значение должно быть значением справачника MKB10");
    }
   
    if (list == null){
      render.setIcon(ICON_SEL_NOTHING);
      return render;
    }
    try {
      DirectoryMKB10Item item = (DirectoryMKB10Item) value;
      DirectorySellectUtil.SelectionType      type = utils.getSelectType(list, item);

      if (type.canceled == DirectorySellectUtil.ContainType.isAreSelected){
        render.setForeground(excludeded);
        render.setIcon(ICON_SEL_EXCLUDED);
        return render;
      }
      else if (type.canceled == DirectorySellectUtil.ContainType.childrenSelected){
        render.setForeground(subItemExluded);
      }
      else{
        render.setForeground(normal);
      }

      switch (type.selected){
        case isAreSelected:
          render.setIcon(ICON_SEL_THIS);
          break;
        case childrenSelected:
          render.setIcon(ICON_SEL_CHILDREN);
          break;
        default:
          render.setIcon(ICON_SEL_NOTHING);
          break;
      }
      return render;
    } catch (ClipsException ex) {
      MessageBox.showException(ex);
      render.setIcon(null);
      render.setText("<Error>");
      return render;
    }
    }

  public SelectedIdList getObject() {
    return list;
  }

  public void setObject(SelectedIdList line) {
    this.list = line;
  }
}
TOP

Related Classes of clips.report.panels.utils.TreeSellectCellRenderer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.