querycommanderview.java
来自「Hibernate开发及整合应用大全 蔡雪焘编著 本书用典型的示例剖析Hiber」· Java 代码 · 共 183 行
JAVA
183 行
/* * Created on 13-08-2004 * */package net.sf.hibernate.console.views;import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.dnd.DnDConstants;import java.awt.dnd.DropTarget;import java.awt.dnd.DropTargetAdapter;import java.awt.dnd.DropTargetDropEvent;import java.awt.event.ActionEvent;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.io.IOException;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.JComboBox;import javax.swing.JEditorPane;import javax.swing.JPanel;import javax.swing.JToolBar;import javax.swing.KeyStroke;import javax.swing.text.StyledEditorKit;import net.sf.hibernate.console.History;import net.sf.hibernate.console.QueryPage;import net.sf.hibernate.console.SessionController;import net.sf.hibernate.console.highlighter.REHqlTypes;/** * @author MAX * */public class QueryCommanderView extends AbstractSessionView { private JEditorPane editor; private History history; private JPanel panel; private Action executeAction; private Action executeCriteriaAction; private Action forwardHistoryAction; private Action backHistoryAction; final private SessionController controller; public QueryCommanderView(SessionController controller) { this.controller = controller; createActions(); StyledEditorKit kit = null; kit = new REHqlTypes.Kit(); editor = new JEditorPane(); editor.setEditorKit(kit); new DropTarget(editor, new DropTargetAdapter() { public void drop(DropTargetDropEvent e) { try { DataFlavor stringFlavor = DataFlavor.stringFlavor; Transferable tr = e.getTransferable(); if (e.isDataFlavorSupported(stringFlavor)) { String text = (String) tr.getTransferData(stringFlavor); e.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); editor.setText(text); e.dropComplete(true); } else { e.rejectDrop(); } } catch (IOException ioe) { ioe.printStackTrace(); } catch (UnsupportedFlavorException ufe) { ufe.printStackTrace(); } } }); //editor.setPreferredSize(new Dimension()); editor.setMinimumSize(new Dimension(10, 10)); editor.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); //editor.setTokenMarker(new HQLTokenMarker()); panel = new JPanel(new BorderLayout()); JToolBar tbar = new JToolBar(); tbar.setFloatable(false); history = new History(); final JComboBox box = new JComboBox(history); box.setEditable(false); box.setAction(new AbstractAction() { public void actionPerformed(ActionEvent e) { editor.setText((String) box.getSelectedItem()); } }); tbar.add(executeAction); tbar.add(executeCriteriaAction); tbar.add(backHistoryAction); tbar.add(forwardHistoryAction); tbar.add(box); panel.add(tbar, BorderLayout.NORTH); panel.add(editor, BorderLayout.CENTER); } public Container getContainer() { return panel; } private void createActions() { executeAction = new ExecuteQuery(); executeCriteriaAction = new ExecuteJava(); backHistoryAction = new AbstractAction("Back") { public void actionPerformed(ActionEvent e) { editor.setText((String) history.back()); } }; forwardHistoryAction = new AbstractAction("Forward") { public void actionPerformed(ActionEvent e) { editor.setText((String) history.forward()); } }; } public class ExecuteQuery extends AbstractAction { int execcount = 0; ExecuteQuery() { super("Execute query"); //initialize the action fields with what you want putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK)); putValue(ACTION_COMMAND_KEY, "execQuery"); putValue(LONG_DESCRIPTION, "Execute the HQL Query"); putValue(MNEMONIC_KEY, new Integer('q')); putValue(SHORT_DESCRIPTION, "Execute Query"); //putValue(SMALL_ICON, icon); } public void actionPerformed(ActionEvent e) { controller.executeHQLQuery(editor.getText()); } } public class ExecuteJava extends AbstractAction { ExecuteJava() { super("Execute Java"); //initialize the action fields with what you want putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK)); putValue(ACTION_COMMAND_KEY, "execJava"); putValue(LONG_DESCRIPTION, "Execute Java code and show the result"); putValue(MNEMONIC_KEY, new Integer('j')); putValue(SHORT_DESCRIPTION, "Execute Java"); //putValue(SMALL_ICON, icon); } public void actionPerformed(ActionEvent e) { controller.executeJavaQuery(editor.getText()); } } public String getQueryText() { return editor.getText(); } public void setQueryText(String hql) { editor.setText(hql); } public void queryPageCreated(QueryPage qp) { history.addElement(qp.getQueryString()); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?