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

📄 defaultselection.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
字号:
/**
 * @PROJECT.FULLNAME@ @VERSION@ License.
 *
 * Copyright @YEAR@ L2FProd.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.l2fprod.common.application.selection;

import java.awt.Component;

import javax.swing.JList;
import javax.swing.JTree;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;

/**
 * DefaultSelection. <br>
 *  
 */
public class DefaultSelection implements Selection {

  private Object[] objects;

  public DefaultSelection(JList list) {
    this.objects = list.getSelectedValues();
  }

  public DefaultSelection(JTree tree) {
    this(tree, false);
  }

  public DefaultSelection(JTree tree, boolean onlyLastPathComponent) {
    this(tree.getSelectionModel(), onlyLastPathComponent);
  }

  public DefaultSelection(TreeSelectionModel tree, boolean onlyLastPathComponent) {
    TreePath[] paths = tree.getSelectionPaths();
    if (paths == null) {
      objects = null;
    } else {
      objects = new Object[paths.length];
      if (onlyLastPathComponent) {
        for (int i = 0, c = objects.length; i < c; i++) {
          objects[i] = paths[i].getLastPathComponent();
        }
      }
    }
  }

  public DefaultSelection(Object[] objects) {
    this.objects = objects;
  }

  public Object[] getSelection() {
    return objects;
  }

  public boolean isEmpty() {
    return objects == null || objects.length == 0;
  }

  public String toString() {
    return super.toString()
      + "[size="
      + (isEmpty() ? "0" : String.valueOf(objects.length))
      + "]";
  }
  
  /**
   * Find the selection out of a Component. Return an empty selection if there
   * are not selected objects.
   * 
   * @param component
   * @return the selection for the given component
   */
  public static Selection findSelection(Component component) {
    if (component instanceof JList) {
      return new DefaultSelection((JList)component);
    } else if (component instanceof JTree) {
      return new DefaultSelection((JTree)component, true);
    } else if (component instanceof SelectionProvider) {
      return ((SelectionProvider)component).getSelection();
    } else {
      return new EmptySelection();
    }
  }

}

⌨️ 快捷键说明

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