?? treepopupmenudemo.java
字號:
/* * This source code is part of TWaver 1.3.1 * * SERVA Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * Copyright 2000-2005 SERVA Software, Inc. All rights reserved. */package demo.tree;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import demo.DemoNodeFactory;
import demo.DemoPane;
import demo.TPopupMenu;
import twaver.*;
import twaver.tree.*;
public class TreePopupMenuDemo extends DemoPane implements PopupMenuFactory {
private TTree tree = null;
public TreePopupMenuDemo() {
TDataBox box = new TDataBox("Tree Popup Menu Demo");
DemoNodeFactory.createAll(box);
tree = new TTree(box);
tree.setPopupMenuFactory(this);
this.add(new JScrollPane(tree), BorderLayout.CENTER);
}
public JPopupMenu getPopupMenu(final DataBoxSelectionModel selectionModel,Point p) {
JPopupMenu popMenu = null;
if(!tree.isEnabled()){
return null;
}
if (selectionModel != null){
String text = "TWaver" + TWaverUtil.getVersionString();
popMenu = new TPopupMenu(text, Color.WHITE, Color.RED, Color.BLUE, 25);
JMenuItem item = null;
if(tree.getSelectionModel().getSelectionCount() == 1){
Object object = tree.getSelectionPath().getLastPathComponent();
if(object instanceof ElementNode && object != tree.getRootNode()){
final Element element = ((ElementNode)object).getElement();
item = new JMenuItem(TWaverUtil.getString("PopMenu.Tree.SetAsRootNode"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.setRootElement(element);
}
});
popMenu.add(item);
}
}
if(tree.getRootNode() instanceof ElementNode){
item = new JMenuItem(TWaverUtil.getString("PopMenu.Tree.ResetRootNode"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.setRootElement(null);
}
});
popMenu.add(item);
}
if(popMenu.getComponentCount() > 0){
popMenu.addSeparator();
}
popMenu.add(createJMenuItem(TTree.DEFAULT_SELECTION, "DefaultSelection"));
popMenu.add(createJMenuItem(TTree.CHECK_SELECTION, "CheckSelection"));
popMenu.add(createJMenuItem(TTree.CHECK_CHILDREN_SELECTION, "CheckChildrenSelection"));
popMenu.add(createJMenuItem(TTree.CHECK_DESCENDANT_SELECTION, "CheckDescendantSelection"));
popMenu.add(createJMenuItem(TTree.CHECK_DESCENDANT_AND_PARENT_SELECTION, "CheckDescendantAndParentSelection"));
// if the tree can delete element and has element is selected,
// then add a delete menu item.
if (tree.isElementDeletable() && selectionModel.size() > 0) {
if (popMenu.getComponentCount() > 0) {
popMenu.addSeparator();
}
item = new JMenuItem(TWaverUtil.getString("PopMenu.Tree.Delete"));
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.getDataBox().removeSelectedElements();
}
});
popMenu.add(item);
}
}
return popMenu;
}
private JMenuItem createJMenuItem(final int selectionModel, String text){
text = TWaverUtil.getString("PopMenu.Tree." + text);
JRadioButtonMenuItem item = new JRadioButtonMenuItem(text);
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tree.setTTreeSelectionMode(selectionModel);
}
});
if(tree.getTTreeSelectionMode() == selectionModel){
item.setSelected(true);
}
return item;
}
public String getTitle() {
return "Tree Popup Menu Demo";
}
public String getHelp() {
return "This demo create a custom popup menu for tree";
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -