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