use of org.gephi.datalab.spi.general.GeneralActionsManipulator in project gephi by gephi.
the class ImportSpreadsheet method actionPerformed.
@Override
public void actionPerformed(ActionEvent e) {
DataLaboratoryHelper dlh = Lookup.getDefault().lookup(DataLaboratoryHelper.class);
GeneralActionsManipulator m = dlh.getGeneralActionsManipulatorByName("ImportCSV");
if (m != null) {
ProjectControllerUI pc = Lookup.getDefault().lookup(ProjectControllerUI.class);
if (pc.getCurrentProject() == null) {
//Make sure to have an active project for import
pc.newProject();
}
dlh.executeManipulator(m);
} else {
throw new UnsupportedOperationException();
}
}
use of org.gephi.datalab.spi.general.GeneralActionsManipulator in project gephi by gephi.
the class DataTableTopComponent method prepareGeneralActionsButtons.
/**
* Adds the buttons for the GeneralActionsManipulators.
*/
public void prepareGeneralActionsButtons() {
//Figure out the index to place the buttons, in order to put them between separator 2 and the boxGlue.
int index = controlToolbar.getComponentIndex(boxGlue);
final DataLaboratoryHelper dlh = DataLaboratoryHelper.getDefault();
JButton button;
for (final GeneralActionsManipulator m : dlh.getGeneralActionsManipulators()) {
button = new JButton(m.getName(), m.getIcon());
if (m.getDescription() != null && !m.getDescription().isEmpty()) {
button.setToolTipText(m.getDescription());
}
if (m.canExecute()) {
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dlh.executeManipulator(m);
}
});
} else {
button.setEnabled(false);
}
controlToolbar.add(button, index);
index++;
generalActionsButtons.add(button);
}
//Add plugin general actions as a drop down list:
final PluginGeneralActionsManipulator[] plugins = dlh.getPluginGeneralActionsManipulators();
if (plugins != null && plugins.length > 0) {
JCommandButton pluginsButton = new JCommandButton(NbBundle.getMessage(DataTableTopComponent.class, "DataTableTopComponent.general.actions.plugins.button.text"), ImageWrapperResizableIcon.getIcon(ImageUtilities.loadImage("org/gephi/desktop/datalab/resources/puzzle--arrow.png", true), new Dimension(16, 16)));
pluginsButton.setDisplayState(CommandButtonDisplayState.MEDIUM);
pluginsButton.setCommandButtonKind(JCommandButton.CommandButtonKind.POPUP_ONLY);
pluginsButton.setPopupCallback(new PopupPanelCallback() {
@Override
public JPopupPanel getPopupPanel(JCommandButton jcb) {
JCommandButtonPanel pluginsPanel = new JCommandButtonPanel(CommandButtonDisplayState.BIG);
Integer lastManipulatorType = null;
int group = 1;
pluginsPanel.addButtonGroup(NbBundle.getMessage(DataTableTopComponent.class, "DataTableTopComponent.general.actions.plugins.group.name", group));
for (final PluginGeneralActionsManipulator m : plugins) {
if (lastManipulatorType == null) {
lastManipulatorType = m.getType();
}
if (lastManipulatorType != m.getType()) {
group++;
pluginsPanel.addButtonGroup(NbBundle.getMessage(DataTableTopComponent.class, "DataTableTopComponent.general.actions.plugins.group.name", group));
}
lastManipulatorType = m.getType();
pluginsPanel.addButtonToLastGroup(preparePluginGeneralActionsButton(m));
}
JCommandPopupMenu popup = new JCommandPopupMenu(pluginsPanel, 4, 20);
return popup;
}
});
controlToolbar.add(pluginsButton, index);
generalActionsButtons.add(pluginsButton);
}
controlToolbar.updateUI();
}
use of org.gephi.datalab.spi.general.GeneralActionsManipulator in project gephi by gephi.
the class DataTableTopComponent method eventDispatched.
/**
* To react to Ctrl+F keys combination calling Search/Replace general action
* (and nodes/edges context menu mappings)
*
* @param event
*/
@Override
public void eventDispatched(AWTEvent event) {
KeyEvent evt = (KeyEvent) event;
if (evt.getID() == KeyEvent.KEY_RELEASED && (evt.getModifiersEx() & KeyEvent.CTRL_DOWN_MASK) != 0) {
DataLaboratoryHelper dlh = DataLaboratoryHelper.getDefault();
if (evt.getKeyCode() == KeyEvent.VK_F) {
//Call Search replace with 'F' without general actions key mappings support:
GeneralActionsManipulator gam = dlh.getGeneralActionsManipulatorByName("SearchReplace");
if (gam != null) {
dlh.executeManipulator(gam);
}
evt.consume();
} else {
//Nodes/edges mappings:
if (isShowingNodesTable()) {
final ContextMenuItemManipulator item = nodesActionMappings.get(evt.getKeyCode());
if (item != null) {
Node[] nodes = nodeTable.getElementsFromSelectedRows().toArray(new Node[0]);
if (nodes.length > 0) {
((NodesManipulator) item).setup(nodes, nodes[0]);
if (item.isAvailable() && item.canExecute()) {
DataLaboratoryHelper.getDefault().executeManipulator(item);
}
}
evt.consume();
}
} else if (isShowingEdgesTable()) {
final ContextMenuItemManipulator item = edgesActionMappings.get(evt.getKeyCode());
if (item != null) {
Edge[] edges = edgeTable.getElementsFromSelectedRows().toArray(new Edge[0]);
if (edges.length > 0) {
((EdgesManipulator) item).setup(edges, edges[0]);
if (item.isAvailable() && item.canExecute()) {
DataLaboratoryHelper.getDefault().executeManipulator(item);
}
}
evt.consume();
}
}
}
}
}
Aggregations