[#4715] Additional menu plug-ins for JIST

No commits have been made.

Please log in

State: more information
Open
Date:
2010-03-19 20:17
Priority: more information
3
Submitted By:
Blake Lucas (blacklight)
Assigned To: more information
Nobody (None)
Operating System: 
All
Component: 
JIST Core
Summary: more information
Additional menu plug-ins for JIST

Detailed description

The following code can be added to PipelineLayoutTool to permit automatic installation of additional menu items in the PLT. Additional file dependencies and examples attached.

protected JMenuBar createMenuBar() {
JISTApplicationPluginBuilder builder = new JISTApplicationPluginBuilder();

toggleItems = new ArrayList();
JMenuBar menuBar = new JMenuBar();
JMenuItem menuItem;
JMenu menuFile = new JMenu("File");
menuFile.setMnemonic(KeyEvent.VK_F);
menuBar.add(menuFile);
JMenu menuEdit = new JMenu("Edit");
menuEdit.setMnemonic(KeyEvent.VK_E);
menuBar.add(menuEdit);
JMenu menuAction = new JMenu("Project");
menuAction.setMnemonic(KeyEvent.VK_P);
menuBar.add(menuAction);
menuItem = new JMenuItem("New");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_N);
menuItem.addActionListener(this);
menuFile.add(menuItem);
menuItem = new JMenuItem("Open");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_O);
menuItem.addActionListener(this);
menuFile.add(menuItem);
recentFiles = new JMenu("Recent Files");
menuFile.add(recentFiles);
toggleItems.add(menuItem = new JMenuItem("Save"));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_S);
menuItem.addActionListener(this);
menuFile.add(menuItem);
toggleItems.add(menuItem = new JMenuItem("Save As..."));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
menuItem.setMnemonic(KeyEvent.VK_A);
menuItem.addActionListener(this);
menuFile.add(menuItem);
toggleItems.add(menuItem = new JMenuItem("Close"));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_C);
menuItem.addActionListener(this);
menuFile.add(menuItem);
toggleItems.add(menuItem = new JMenuItem("Clear Image Registry"));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_R);
menuItem.addActionListener(this);
menuFile.add(menuItem);

JMenu menuFilePlugins = new JMenu("More ...");
menuFile.add(menuFilePlugins);
menuItem = new JMenuItem("Exit");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_X);
menuItem.addActionListener(this);
menuFile.add(menuItem);
toggleItems.add(menuItem = new JMenuItem("Delete"));
menuItem.addActionListener(this);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
menuItem.setMnemonic(KeyEvent.VK_D);
menuEdit.add(menuItem);
removeItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Undo"));
menuItem.addActionListener(this);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_U);
menuEdit.add(menuItem);
undoItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Redo"));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_R);
menuItem.addActionListener(this);
menuEdit.add(menuItem);
redoItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Cut"));
menuItem.addActionListener(this);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_T);
menuEdit.add(menuItem);
cutItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Copy"));
menuItem.addActionListener(this);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_C);
menuEdit.add(menuItem);
copyItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Paste"));
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
ActionEvent.CTRL_MASK));
menuItem.addActionListener(this);
menuEdit.add(menuItem);
pasteItem = menuItem;
toggleItems.add(menuItem = new JMenuItem("Layout Preferences"));
menuItem.addActionListener(this);
menuAction.add(menuItem);
menuItem = new JMenuItem("Global Preferences");
menuItem.addActionListener(this);
menuAction.add(menuItem);
menuItem = new JMenuItem("Rebuild Library");
menuItem.addActionListener(this);
menuAction.add(menuItem);
/*
* menuItem = new JMenuItem("Set Library Directory");
* menuItem.addActionListener(this); menuAction.add(menuItem);
*/
toggleItems.add(menuItem = new JMenuItem("Process Manager"));
menuItem.addActionListener(this);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M,
ActionEvent.CTRL_MASK));
menuItem.setMnemonic(KeyEvent.VK_M);
menuAction.add(menuItem);

JMenu menuPlugins = new JMenu("Plug-Ins");
menuPlugins.setMnemonic(KeyEvent.VK_G);
menuBar.add(menuPlugins);

JMenu menuHelp = new JMenu("Help");
menuHelp.setMnemonic(KeyEvent.VK_H);
menuBar.add(menuHelp);
toggleItems.add(aboutItem = new JMenuItem("About"));
aboutItem.addActionListener(this);
menuHelp.add(aboutItem);

JMenu menuActionPlugins = new JMenu("More ...");
menuAction.add(menuActionPlugins);

JMenu menuEditPlugins = new JMenu("More ...");
menuEdit.add(menuEditPlugins);

JISTApplicationPluginBuilder.ContextDataGrabber grabber = new JISTApplicationPluginBuilder.ContextDataGrabber() {
public Object getContextData() {
return LayoutPanel.getInstance().getActiveFrame()
.getPipelineLayout();
}
};
//Specify menus where context data should be displayed.
builder.setMenu(ContextType.MENU_PROJECT, menuActionPlugins);
builder.setMenu(ContextType.MENU_PLUGINS, menuPlugins);
builder.setMenu(ContextType.MENU_HELP, menuHelp);
builder.setMenu(ContextType.MENU_FILE, menuFilePlugins);
builder.setMenu(ContextType.MENU_EDIT, menuEditPlugins);
//Specify grabber for pulling context data.
builder.setGrabber(ContextType.MENU_PROJECT, grabber);
builder.setGrabber(ContextType.MENU_PLUGINS, grabber);
builder.setGrabber(ContextType.MENU_HELP, grabber);
builder.setGrabber(ContextType.MENU_FILE, grabber);
builder.setGrabber(ContextType.MENU_EDIT, grabber);
//Thread installation process.
builder.install();

return menuBar;
}

Response

Message

Date: 2010-03-21 02:23
Sender: Blake Lucas

The following changes are needed to createMenuBar() in
process manager to allow for additional menu options:

/**
* Create menubar.
*
* @return the j menu bar
*/
public JMenuBar createMenuBar() {
toggleItems = new ArrayList();
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("File");
menuFile.setMnemonic(KeyEvent.VK_F);
menuBar.add(menuFile);
toggleItems.add(openItem = new
JMenuItem("Open"));
openItem.setMnemonic(KeyEvent.VK_O);

openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O
,
ActionEvent.CTRL_MASK));
openItem.addActionListener(this);
menuFile.add(openItem);
recentFiles = new JMenu("Recent Files");
menuFile.add(recentFiles);

toggleItems.add(saveAsItem = new
JMenuItem("Save As"));
saveAsItem.setMnemonic(KeyEvent.VK_A);

saveAsItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK
_S,
ActionEvent.CTRL_MASK));
saveAsItem.addActionListener(this);
menuFile.add(saveAsItem);
toggleItems.add(reloadItem = new
JMenuItem("Reload"));
reloadItem.setMnemonic(KeyEvent.VK_C);

reloadItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK
_R,
ActionEvent.CTRL_MASK));
reloadItem.addActionListener(this);
menuFile.add(reloadItem);
toggleItems.add(closeItem = new
JMenuItem("Close"));
closeItem.setMnemonic(KeyEvent.VK_C);

closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_
W,
ActionEvent.CTRL_MASK));
closeItem.addActionListener(this);
menuFile.add(closeItem);
toggleItems.add(prefItem = new
JMenuItem("Layout Preferences"));
prefItem.setMnemonic(KeyEvent.VK_P);
prefItem.addActionListener(this);
menuFile.add(prefItem);
toggleItems.add(globalItem = new
JMenuItem("Global Preferences"));
globalItem.addActionListener(this);
menuFile.add(globalItem);
JMenu menuFilePlugins = new JMenu("More
...");
menuFile.add(menuFilePlugins);
toggleItems.add(quitItem = new
JMenuItem("Quit"));
quitItem.setMnemonic(KeyEvent.VK_Q);
quitItem.addActionListener(this);

quitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q
,
ActionEvent.CTRL_MASK));
quitItem.setMnemonic(KeyEvent.VK_Q);
menuFile.add(quitItem);
JMenu menuAction = new JMenu("Scheduler");
menuAction.setMnemonic(KeyEvent.VK_S);
menuBar.add(menuAction);
toggleItems.add(runAllItem = new
JMenuItem("Start Scheduler"));
runAllItem.addActionListener(this);
menuAction.add(runAllItem);
toggleItems.add(pauseAllItem = new
JMenuItem(
"Finish Queued / Stop
Enqueue"));
pauseAllItem.addActionListener(this);
menuAction.add(pauseAllItem);
toggleItems.add(destItem = new
JMenuItem("Process Destinations"));
destItem.addActionListener(this);
menuAction.add(destItem);
toggleItems.add(stopAllItem = new
JMenuItem("Stop All"));
stopAllItem.addActionListener(this);
menuAction.add(stopAllItem);
toggleItems.add(cleanAllItem = new
JMenuItem("Clean All"));
cleanAllItem.addActionListener(this);
menuAction.add(cleanAllItem);
JMenu menuPlugins = new JMenu("Plug-Ins");
menuPlugins.setMnemonic(KeyEvent.VK_G);
menuBar.add(menuPlugins);
JMenu menuActionHelp = new JMenu("Help");
menuActionHelp.setMnemonic(KeyEvent.VK_H);
menuBar.add(menuActionHelp);
toggleItems.add(aboutItem = new
JMenuItem("About"));
aboutItem.addActionListener(this);
menuActionHelp.add(aboutItem);

JISTApplicationPluginBuilder builder = new
JISTApplicationPluginBuilder();

JISTApplicationPluginBuilder.ContextDataGrabber grabber =
new JISTApplicationPluginBuilder.ContextDataGrabber() {
public Object getContextData() {
return
ProcessManager.getInstance().managerPane.getTableModel().row
s;
}
};
// Specify menus where context data should
be displayed.
builder.setMenu(ContextType.MENU_PLUGINS,
menuPlugins);
builder.setMenu(ContextType.MENU_HELP,
menuActionHelp);
builder.setMenu(ContextType.MENU_FILE,
menuFilePlugins);
// Specify grabber for pulling context data.
builder.setGrabber(ContextType.MENU_PLUGINS,
grabber);
builder.setGrabber(ContextType.MENU_HELP,
grabber);
builder.setGrabber(ContextType.MENU_FILE,
grabber);
// Thread installation process.
builder.install();

closeItem.setEnabled(false);
runAllItem.setEnabled(false);
stopAllItem.setEnabled(false);
cleanAllItem.setEnabled(true);
pauseAllItem.setEnabled(false);
prefItem.setEnabled(false);
saveAsItem.setEnabled(false);
reloadItem.setEnabled(false);
return menuBar;
}

Attached Files:

Name Download
jist_plugin_ext.zip Download

Changes:

Field Old Value Date By
File Added265: jist_plugin_ext.zip2010-03-19 20:17blacklight