📄 command.java
字号:
package core;import java.util.*;import java.io.*;import ui.PromptDialog;import ui.ResultDialog;public abstract class Command{ public static final int TEXT_MODE = 0; public static final int GUI_MODE = 1; private boolean m_initialized; private Map m_params; private int m_mode; private javax.swing.JFrame m_baseFrame; public Command () { m_params = new HashMap (); m_initialized = false; m_mode = TEXT_MODE; } public void setTextMode () { m_mode = TEXT_MODE; } public void setGUIMode (javax.swing.JFrame frm) { m_mode = GUI_MODE; m_baseFrame = frm; } public int getMode () { return m_mode; } public javax.swing.JFrame getFrame () { return m_baseFrame; } public void setInitialized () { m_initialized = true; } public boolean isInitialized () { return m_initialized; } public void setParameter (String name, String value) { m_params.put (name, value); } public String getParameter (String name) { if (m_params.containsKey (name)) return (String) m_params.get (name); else return null; } public void execute () { if (isInitialized ()) executeCommand (); } public void setParameters (List params) { String [] paramNames = getParameterNames (); Iterator paramIter = params.iterator (); for (int i = 0; i < paramNames.length; i++) { String name = paramNames[i]; String value = (String) paramIter.next(); setParameter (name, value); } setInitialized (); } public void setParameters () { switch (getMode()) { case TEXT_MODE: setParametersText (); break; case GUI_MODE: setParametersGUI (); break; default: setParametersText (); break; } } public void setParametersText () { try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); String [] paramNames = getParameterNames (); String [] prompts = getParameterPrompts (); for (int i = 0; i < paramNames.length; i++) { String name = paramNames[i]; String prompt = prompts[i]; System.out.print (prompt + " "); String value = in.readLine(); setParameter (name, value); } setInitialized (); } catch (java.io.IOException e) { System.err.println ("IOException: Command parameters not initialized."); } } public void setParametersGUI () { PromptDialog dlog = new PromptDialog (this); if (!dlog.isCanceled ()) { setParameters (dlog.getValues()); } } protected void displayResults (String title, List result) { switch (getMode()) { case TEXT_MODE: displayResultsText (title, result); break; case GUI_MODE: displayResultsGUI (title, result); break; default: displayResultsText (title, result); break; } } protected void displayResultsText (String title, List result) { System.out.println (title); Iterator iter = result.iterator(); while (iter.hasNext()) { System.out.println (iter.next().toString()); } } protected void displayResultsGUI (String title, List result) { ResultDialog dlog = new ResultDialog (this, title, result); } public abstract String [] getParameterNames (); public abstract String [] getParameterPrompts (); protected abstract void executeCommand (); public abstract String getMenuName (); public abstract String getName (); public abstract String getDescription (); public abstract Command makeInstance (); public String toString () { return getName() + ": " + getDescription (); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -