Search in sources :

Example 1 with GeneralActionsManipulator

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();
    }
}
Also used : DataLaboratoryHelper(org.gephi.datalab.api.DataLaboratoryHelper) GeneralActionsManipulator(org.gephi.datalab.spi.general.GeneralActionsManipulator) ProjectControllerUI(org.gephi.desktop.project.api.ProjectControllerUI)

Example 2 with GeneralActionsManipulator

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();
}
Also used : ActionEvent(java.awt.event.ActionEvent) GeneralActionsManipulator(org.gephi.datalab.spi.general.GeneralActionsManipulator) PluginGeneralActionsManipulator(org.gephi.datalab.spi.general.PluginGeneralActionsManipulator) JButton(javax.swing.JButton) PopupPanelCallback(org.pushingpixels.flamingo.api.common.popup.PopupPanelCallback) JPopupPanel(org.pushingpixels.flamingo.api.common.popup.JPopupPanel) JCommandButton(org.pushingpixels.flamingo.api.common.JCommandButton) Dimension(java.awt.Dimension) DataLaboratoryHelper(org.gephi.datalab.api.DataLaboratoryHelper) PluginGeneralActionsManipulator(org.gephi.datalab.spi.general.PluginGeneralActionsManipulator) ActionListener(java.awt.event.ActionListener) JCommandButtonPanel(org.pushingpixels.flamingo.api.common.JCommandButtonPanel) JCommandPopupMenu(org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu)

Example 3 with GeneralActionsManipulator

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();
                }
            }
        }
    }
}
Also used : KeyEvent(java.awt.event.KeyEvent) DataLaboratoryHelper(org.gephi.datalab.api.DataLaboratoryHelper) ContextMenuItemManipulator(org.gephi.datalab.spi.ContextMenuItemManipulator) GeneralActionsManipulator(org.gephi.datalab.spi.general.GeneralActionsManipulator) PluginGeneralActionsManipulator(org.gephi.datalab.spi.general.PluginGeneralActionsManipulator) Node(org.gephi.graph.api.Node) NodesManipulator(org.gephi.datalab.spi.nodes.NodesManipulator) Edge(org.gephi.graph.api.Edge)

Aggregations

DataLaboratoryHelper (org.gephi.datalab.api.DataLaboratoryHelper)3 GeneralActionsManipulator (org.gephi.datalab.spi.general.GeneralActionsManipulator)3 PluginGeneralActionsManipulator (org.gephi.datalab.spi.general.PluginGeneralActionsManipulator)2 Dimension (java.awt.Dimension)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 KeyEvent (java.awt.event.KeyEvent)1 JButton (javax.swing.JButton)1 ContextMenuItemManipulator (org.gephi.datalab.spi.ContextMenuItemManipulator)1 NodesManipulator (org.gephi.datalab.spi.nodes.NodesManipulator)1 ProjectControllerUI (org.gephi.desktop.project.api.ProjectControllerUI)1 Edge (org.gephi.graph.api.Edge)1 Node (org.gephi.graph.api.Node)1 JCommandButton (org.pushingpixels.flamingo.api.common.JCommandButton)1 JCommandButtonPanel (org.pushingpixels.flamingo.api.common.JCommandButtonPanel)1 JCommandPopupMenu (org.pushingpixels.flamingo.api.common.popup.JCommandPopupMenu)1 JPopupPanel (org.pushingpixels.flamingo.api.common.popup.JPopupPanel)1 PopupPanelCallback (org.pushingpixels.flamingo.api.common.popup.PopupPanelCallback)1