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 + -
显示快捷键?