fixedTools.add(m_templatesB);
fixedTools.addSeparator();
fixedTools.add(m_togglePerspectivesB);
fixedTools.add(m_helpB);
Dimension d = m_undoB.getPreferredSize();
Dimension d2 = fixedTools.getMinimumSize();
Dimension d3 = new Dimension(d2.width, d.height + 4);
fixedTools.setPreferredSize(d3);
fixedTools.setMaximumSize(d3);
m_saveB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveLayout(m_mainKFPerspective.getCurrentTabIndex(), false);
}
});
m_saveBB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveLayout(m_mainKFPerspective.getCurrentTabIndex(), true);
}
});
m_loadB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
m_flowEnvironment = new Environment();
loadLayout();
}
});
m_newB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
clearLayout();
}
});
m_selectAllB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (BeanInstance.
getBeanInstances(m_mainKFPerspective.getCurrentTabIndex()).size() > 0) {
// select all beans
Vector allBeans = BeanInstance.
getBeanInstances(m_mainKFPerspective.getCurrentTabIndex());
Vector newSelected = new Vector();
for (int i = 0; i < allBeans.size(); i++) {
newSelected.add(allBeans.get(i));
}
// toggle
if (newSelected.size() ==
m_mainKFPerspective.getSelectedBeans().size()) {
// unselect all beans
m_mainKFPerspective.setSelectedBeans(new Vector());
} else {
// select all beans
m_mainKFPerspective.setSelectedBeans(newSelected);
}
}
}
});
m_cutB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// only delete if our copy was successful!
if (copyToClipboard()) {
deleteSelectedBeans();
}
}
});
m_deleteB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
deleteSelectedBeans();
}
});
m_copyB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
copyToClipboard();
m_mainKFPerspective.setSelectedBeans(new Vector());
}
});
m_pasteB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
KnowledgeFlowApp.this.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
m_mode = PASTING;
/* pasteFromClipboard(10, 10);
if (m_mainKFPerspective.getSelectedBeans().size() > 0) {
m_mainKFPerspective.setSelectedBeans(new Vector());
} */
}
});
m_snapToGridB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (m_snapToGridB.isSelected()) {
snapSelectedToGrid();
}
}
});
fixedTools.setFloatable(false);
toolBarPanel.add(fixedTools, BorderLayout.EAST);
}
m_noteB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Note n = new Note();
m_toolBarBean = n;
KnowledgeFlowApp.this.setCursor(Cursor.
getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
m_mode = ADDING;
}
});
m_undoB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Stack<File> undo = m_mainKFPerspective.getUndoBuffer();
if (undo.size() > 0) {
File undoF = undo.pop();
if (undo.size() == 0) {
m_undoB.setEnabled(false);
}
loadLayout(undoF, false, true);
}
}
});
m_playB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH +
"resultset_next.png")));
m_playB.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
m_playB.setToolTipText("Run this flow (all start points launched in parallel)");
m_playB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (BeanInstance.getBeanInstances(m_mainKFPerspective.
getCurrentTabIndex()).size() == 0) {
return;
}
runFlow(false);
}
});
m_playBB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH +
"resultset_last.png")));
m_playBB.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
m_playBB.setToolTipText("Run this flow (start points launched sequentially)");
m_playBB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (BeanInstance.getBeanInstances(m_mainKFPerspective.
getCurrentTabIndex()).size() == 0) {
return;
}
if (!Utils.getDontShowDialog("weka.gui.beans.KnowledgeFlow.SequentialRunInfo")) {
JCheckBox dontShow = new JCheckBox("Do not show this message again");
Object[] stuff = new Object[2];
stuff[0] = "The order that data sources are launched in can be\n" +
"specified by setting a custom name for each data source that\n" +
"that includes a number. E.g. \"1:MyArffLoader\". To set a name,\n" +
"right-click over a data source and select \"Set name\"\n\n" +
"If the prefix is not specified, then the order of execution\n" +
"will correspond to the order that the components were added\n" +
"to the layout. Note that it is also possible to prevent a data\n" +
"source from executing by prefixing its name with a \"!\". E.g\n" +
"\"!:MyArffLoader\"";
stuff[1] = dontShow;
JOptionPane.showMessageDialog(KnowledgeFlowApp.this, stuff,
"Sequential execution information", JOptionPane.OK_OPTION);
if (dontShow.isSelected()) {
try {
Utils.setDontShowDialog("weka.gui.beans.KnowledgeFlow.SequentialRunInfo");
} catch (Exception ex) {
// quietly ignore
}
}
}
runFlow(true);
}
});
m_stopB = new JButton(new ImageIcon(loadImage(BeanVisual.ICON_PATH +
"shape_square.png")));
m_stopB.setBorder(BorderFactory.createEmptyBorder(0, 8, 0, 0));
m_stopB.setToolTipText("Stop all execution");
Image tempI = loadImage(BeanVisual.ICON_PATH + "cursor.png");
m_pointerB = new JButton(new ImageIcon(tempI));
m_pointerB.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
m_pointerB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
m_toolBarBean = null;
m_mode = NONE;
KnowledgeFlowApp.this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
m_componentTree.clearSelection();
}
});
// Dimension dP = m_saveB.getPreferredSize();
// Dimension dM = m_saveB.getMaximumSize();
// Dimension dP = m_stopB.getPreferredSize();
// Dimension dM = m_stopB.getMaximumSize();
// m_pointerB.setPreferredSize(dP);
// m_pointerB.setMaximumSize(dM);
//m_toolBarGroup.add(m_pointerB);
JToolBar fixedTools2 = new JToolBar();
fixedTools2.setOrientation(JToolBar.HORIZONTAL);
fixedTools2.setFloatable(false);
fixedTools2.add(m_pointerB);
fixedTools2.add(m_playB);
fixedTools2.add(m_playBB);
fixedTools2.add(m_stopB);
Dimension d = m_playB.getPreferredSize();
Dimension d2 = fixedTools2.getMinimumSize();
Dimension d3 = new Dimension(d2.width, d.height + 4);
fixedTools2.setPreferredSize(d3);
fixedTools2.setMaximumSize(d3);
// m_helpB.setPreferredSize(dP);