staticmodelview.java

来自「Hibernate开发及整合应用大全 蔡雪焘编著 本书用典型的示例剖析Hiber」· Java 代码 · 共 127 行

JAVA
127
字号
/* * Created on 12-08-2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */package net.sf.hibernate.console.views;import java.awt.Container;import java.awt.datatransfer.StringSelection;import java.awt.datatransfer.Transferable;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JComponent;import javax.swing.JTree;import javax.swing.ToolTipManager;import javax.swing.TransferHandler;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.TreePath;import net.sf.hibernate.console.MappingsTreeCellRenderer;import net.sf.hibernate.console.QueryExecutor;import net.sf.hibernate.console.node.BaseNode;import net.sf.hibernate.console.node.NodeFactory;import net.sf.hibernate.SessionFactory;import net.sf.hibernate.cfg.Configuration;/** * @author MAX * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Generation - Code and Comments */public class StaticModelView implements SessionFactoryView {	JTree tree;	QueryExecutor qe;		public StaticModelView(final QueryExecutor qe) {		this.qe = qe;		tree = new JTree(new DefaultTreeModel(null));		tree.setEditable(false);		ToolTipManager.sharedInstance().registerComponent(tree);		ToolTipManager.sharedInstance().setDismissDelay(Integer.MAX_VALUE);		tree.setCellRenderer(new MappingsTreeCellRenderer());		tree.setDragEnabled(true);		tree.setTransferHandler(new TransferHandler() {			public int getSourceActions(JComponent c) {				return COPY;			}			protected Transferable createTransferable(JComponent c) {				if (c instanceof JTree) {					JTree localTree = (JTree) c;					TreePath[] paths = localTree.getSelectionPaths();					if (paths == null || paths.length == 0) {						return null;					}					StringBuffer plainBuf = new StringBuffer();					StringBuffer htmlBuf = new StringBuffer();					for (int i = 0; i < paths.length; i++) {						TreePath path = paths[i];						BaseNode node = (BaseNode) path.getLastPathComponent();						String label = node.getHQL();						plainBuf.append(label + "\n");					}					// remove the last newline					plainBuf.deleteCharAt(plainBuf.length() - 1);					htmlBuf.append("</ul>\n</body>\n</html>");					localTree = null;					return new StringSelection(plainBuf.toString());				} else {					return null;				}			}		});		tree.addMouseListener(new MouseAdapter() {			public void mouseClicked(MouseEvent e) {				final TreePath path = tree.getClosestPathForLocation(e.getX(), e.getY());								if (e.getClickCount() == 2) {					if (path != null && (path.getLastPathComponent() instanceof BaseNode)) {						qe.executeQuery(((BaseNode) path.getLastPathComponent()).getHQL());					}				} else if (e.isPopupTrigger()) {					final BaseNode bnode = (BaseNode)path.getLastPathComponent();					/*if(bnode instanceof ClassNode) {						JPopupMenu pm = new JPopupMenu();						pm.add(new AbstractAction("New instance...") {													public void actionPerformed(ActionEvent e) {															ClassMetadata cmd = ((ClassNode)bnode).getClassMetadata();							//	cmd.getMappedClass().newInstance();							}						});					}*/				}			}		});	}	public void factoryCreated(Configuration configuration, SessionFactory sf) {		BaseNode node = new NodeFactory(sf).createRootNode();		tree.setModel(new DefaultTreeModel(node));			}	public Container getContainer() {		return tree;	}	public void factoryUpdated(SessionFactory sf) {			}}

⌨️ 快捷键说明

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