📄 tvobject.java
字号:
/* * Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved. * * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is * described in this document. In particular, and without limitation, these intellectual property rights may * include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents * or pending patent applications in the U.S. and in other countries. * * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. * standard license agreement and applicable provisions of the FAR and its supplements. * * Use is subject to license terms. * * This distribution may include materials developed by third parties. Sun, Sun Microsystems, the Sun logo and * Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. * * Copyright (c) 2006 Sun Microsystems, Inc. Tous droits r?serv?s. * * Sun Microsystems, Inc. d?tient les droits de propri?t? intellectuels relatifs ? la technologie incorpor?e dans * le produit qui est d?crit dans ce document. En particulier, et ce sans limitation, ces droits de propri?t? * intellectuelle peuvent inclure un ou plus des brevets am?ricains list?s ? l'adresse http://www.sun.com/patents * et un ou les brevets suppl?mentaires ou les applications de brevet en attente aux Etats - Unis et dans les * autres pays. * * L'utilisation est soumise aux termes du contrat de licence. * * Cette distribution peut comprendre des composants d?velopp?s par des tierces parties. * Sun, Sun Microsystems, le logo Sun et Java sont des marques de fabrique ou des marques d?pos?es de Sun * Microsystems, Inc. aux Etats-Unis et dans d'autres pays. */package com.sun.spot.spotworld.treeview; import com.sun.spot.spotworld.common.UICommand;import com.sun.spot.spotworld.gui.IUIObject;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPopupMenu;import javax.swing.tree.DefaultMutableTreeNode;import com.sun.spot.spotworld.virtualobjects.IVirtualObject;import com.sun.spot.spotworld.common.IStateListener;/** * * @author taylorr */public class TVObject extends DefaultMutableTreeNode { Icon icon = null; JPopupMenu menu = null; Vector<JMenuItem> v = null; Vector<IStateListener> listeners = null; boolean selected = false; TreeView view; // Hosting UI component. public TVObject() { super(); init(); } public void init() { } public String getName() { return "Spot World"; } public String toString() {return getName();} public Icon getIcon() { if (icon == null) return new ImageIcon(); else return icon; } public void registerStateChangeListener(IStateListener listener) { if (listeners == null) listeners = new Vector<IStateListener>(); listeners.addElement(listener); } public void removeStateChangeListener(IStateListener listener) { if (listeners == null) return; listeners.removeElement(listener); } public void notifyListeners() { if (listeners == null) return; for (IStateListener element : listeners) element.noteState(this); } public JPopupMenu getPopupMenu() { JPopupMenu menu = new JPopupMenu(); Vector<JMenuItem> v = getMenuItems(); for(JMenuItem item : v){ menu.add(item); } return menu; } public Vector<JMenuItem> getMenuItems() { if (v == null) return new Vector<JMenuItem>(); else return v; } protected Vector<JMenuItem> menuHelper(Vector<UICommand> commands) { Vector<JMenuItem> menuItems = new Vector<JMenuItem>(); for (UICommand command : commands) { final UICommand command2 = command; // check to see if the UICommand we have is a submenu if (command2.getSubUICommands().size() > 0) { JMenu submenu = new JMenu(command2.getName()); submenu.setToolTipText(command2.getToolTip()); // populate the submenu with UICommands Vector<JMenuItem> v = menuHelper(command2.getSubUICommands()); for (JMenuItem item : v) submenu.add(item); menuItems.add(submenu); } else { JMenuItem menuItem = new JMenuItem(command2.getName()); menuItem.setToolTipText(command2.getToolTip()); menuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { command2.run((IUIObject) TVObject.this); } }); menuItems.add(menuItem); } } return menuItems; } public TreeView getView(){ return view; } public void setView(TreeView v){ view = v; } public void select() { selected = true; notifyListeners(); } public void deselect(){ selected = false; notifyListeners(); } public boolean isSelected(){ return selected; } public IVirtualObject getVirtualObject() { return null; } public void tellUser(String msg){ JOptionPane.showMessageDialog(getView(), msg, "", JOptionPane.WARNING_MESSAGE); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -