📄 typedatatree.java
字号:
package org.jawin.browser.tree;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Vector;
import org.jawin.browser.data.BaseData;
import javax.swing.tree.TreeSelectionModel;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import org.jawin.browser.popup.PopupManager;
/**
* A JTree that can display type info and on selection can notify other components
* that teh selection has changed by passing them the selected node or null
*
* <p>Title: Jawin Code Generation GUI</p>
* <p>Description: GUI for exploring type libraries and generating Java code</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: Open Source Incentive</p>
*
* @author Josh Passenger
* @version 1.0
*/
public class TypeDataTree extends JTree implements MouseListener
{
private TypeDataTreeCellRenderer renderer = new TypeDataTreeCellRenderer();
private TypeDataTreeModel typeDataTreeModel = null;
private Vector typeDataTreeSelectionListeners = new Vector();
public TypeDataTree(TypeDataTreeModel treeModel)
{
super(treeModel);
getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
typeDataTreeModel = treeModel;
setCellRenderer(renderer);
registerlisteners();
}
public void addTypeDataTreeSelectionListener(TypeDataTreeSelectionListener l)
{
typeDataTreeSelectionListeners.add(l);
}
public void removeTypeDataTreeSelectionListener(TypeDataTreeSelectionListener l)
{
typeDataTreeSelectionListeners.remove(l);
}
public TypeDataTreeSelectionListener getTypeDataTreeSelectionListenerAt(int index)
{
return (TypeDataTreeSelectionListener) typeDataTreeSelectionListeners.get(index);
}
public void fireSelectionChanged()
{
BaseData baseData = (BaseData) getLastSelectedPathComponent();
for (int i = 0; i < typeDataTreeSelectionListeners.size(); i++)
{
getTypeDataTreeSelectionListenerAt(i).selectionChanged(baseData);
}
}
private void registerlisteners()
{
addTreeSelectionListener(new TreeSelectionListener()
{
public void valueChanged(TreeSelectionEvent e)
{
fireSelectionChanged();
}
});
addMouseListener(this);
}
/**
* Fetch the current tree as XML
*
* @param buffer the buffer to accumulate to
*/
public void toXML(StringBuffer buffer)
{
typeDataTreeModel.toXML(buffer);
}
public void selectedNodeToXML(StringBuffer buffer)
{
BaseData node = (BaseData) getLastSelectedPathComponent();
if (node == null)
{
typeDataTreeModel.toXML(buffer);
return;
}
node.toXML(0, buffer);
}
public void mouseClicked(MouseEvent e)
{
if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0)
{
PopupManager.getInstance().showMenu(this, e.getX(), e.getY());
}
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -