Search in sources :

Example 1 with ConfigurationSaveAsDialog

use of org.erlide.tracing.core.ui.dialogs.ConfigurationSaveAsDialog in project erlide_eclipse by erlang.

the class ControlPanelView method createPatternButtonsPanel.

private void createPatternButtonsPanel(final Composite parent) {
    final Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new RowLayout());
    // "Add" button
    Button button = new Button(container, SWT.PUSH | SWT.CENTER);
    button.setText("New pattern");
    button.setToolTipText("Add new trace pattern");
    button.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    button.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            TraceBackend.getInstance().addTracePattern(new TracePattern(true));
        }
    });
    // "Remove" button
    button = new Button(container, SWT.PUSH | SWT.CENTER);
    button.setText("Remove pattern");
    button.setToolTipText("Remove selected trace pattern");
    button.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE));
    button.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final TracePattern tracePattern = (TracePattern) ((IStructuredSelection) functionsTableViewer.getSelection()).getFirstElement();
            if (tracePattern != null) {
                TraceBackend.getInstance().removeTracePattern(tracePattern);
            }
        }
    });
    // Pattern config buttons
    final Button loadConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button deleteConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button saveConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button saveAsConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Label configNameLabel = new Label(container, SWT.NULL);
    configNameLabel.setLayoutData(new RowData(120, SWT.DEFAULT));
    // "Load patterns" button
    loadConfigButton.setToolTipText("Load pattern set...");
    loadConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
    loadConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final ElementListSelectionDialog dialog = new SelectConfigurationDialog(parent.getShell(), new LabelProvider());
            dialog.setElements(ConfigurationManager.getTPConfigs());
            dialog.open();
            final String result = (String) dialog.getFirstResult();
            if (result != null) {
                patternsConfigName = result;
                configNameLabel.setText(patternsConfigName);
                TraceBackend.getInstance().loadTracePatterns(ConfigurationManager.loadTPConfig(patternsConfigName));
            }
        }
    });
    // "Delete patterns" button
    deleteConfigButton.setToolTipText("Delete current pattern set...");
    deleteConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ELCL_REMOVE));
    deleteConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            if (patternsConfigName != null) {
                final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
                messageBox.setMessage("Delete \"" + patternsConfigName + "\"?");
                messageBox.setText("Delete configuration");
                if (messageBox.open() == SWT.YES) {
                    ConfigurationManager.removeTPConfig(patternsConfigName);
                    patternsConfigName = null;
                    configNameLabel.setText("");
                }
            }
        }
    });
    // "Save patterns" button
    saveConfigButton.setToolTipText("Save current pattern set");
    saveConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_SAVE_EDIT));
    saveConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            if (patternsConfigName != null) {
                if (!ConfigurationManager.saveTPConfig(patternsConfigName)) {
                    final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_ERROR | SWT.OK);
                    messageBox.setMessage("Unable to save configuration: " + patternsConfigName);
                    messageBox.setText("Error");
                    messageBox.open();
                }
            }
        }
    });
    // "Save patterns as..." button
    saveAsConfigButton.setToolTipText("Save current pattern set as...");
    saveAsConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT));
    saveAsConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final String[] configurations = ConfigurationManager.getTPConfigs();
            final Set<String> existingNames = new HashSet<>(Arrays.asList(configurations));
            final InputDialog dialog = new ConfigurationSaveAsDialog(parent.getShell(), "Save trace pattern configuration", "Enter name for configuration:", patternsConfigName, existingNames);
            if (dialog.open() == Window.OK) {
                if (ConfigurationManager.saveTPConfig(dialog.getValue())) {
                    patternsConfigName = dialog.getValue();
                    configNameLabel.setText(patternsConfigName);
                } else {
                    final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_ERROR | SWT.OK);
                    messageBox.setMessage("Unable to save configuration: " + dialog.getValue());
                    messageBox.setText("Error");
                    messageBox.open();
                }
            }
        }
    });
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) InputDialog(org.eclipse.jface.dialogs.InputDialog) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) SelectConfigurationDialog(org.erlide.tracing.core.ui.dialogs.SelectConfigurationDialog) MessageBox(org.eclipse.swt.widgets.MessageBox) RowData(org.eclipse.swt.layout.RowData) Button(org.eclipse.swt.widgets.Button) ElementListSelectionDialog(org.eclipse.ui.dialogs.ElementListSelectionDialog) RowLayout(org.eclipse.swt.layout.RowLayout) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ConfigurationSaveAsDialog(org.erlide.tracing.core.ui.dialogs.ConfigurationSaveAsDialog) NodeLabelProvider(org.erlide.tracing.core.mvc.view.NodeLabelProvider) TracePatternLabelProvider(org.erlide.tracing.core.mvc.view.TracePatternLabelProvider) ProcessLabelProvider(org.erlide.tracing.core.mvc.view.ProcessLabelProvider) LabelProvider(org.eclipse.jface.viewers.LabelProvider) TracePattern(org.erlide.tracing.core.mvc.model.TracePattern)

Example 2 with ConfigurationSaveAsDialog

use of org.erlide.tracing.core.ui.dialogs.ConfigurationSaveAsDialog in project erlide_eclipse by erlang.

the class ControlPanelView method createNodeButtonsPanel.

private void createNodeButtonsPanel(final Composite parent) {
    final Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new RowLayout());
    // "Add" button
    Button button = new Button(container, SWT.PUSH | SWT.CENTER);
    button.setText("New node");
    button.setToolTipText("Add new node you want to trace");
    button.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    button.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            TraceBackend.getInstance().addTracedNode(new TracedNode());
            nodesTableViewer.refresh();
        }
    });
    // "Remove" button
    button = new Button(container, SWT.PUSH | SWT.CENTER);
    button.setText("Remove node");
    button.setToolTipText("Remove selected node");
    button.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE));
    button.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final TracedNode tracedNode = (TracedNode) ((IStructuredSelection) nodesTableViewer.getSelection()).getFirstElement();
            if (tracedNode != null) {
                TraceBackend.getInstance().removeTracedNode(tracedNode);
                nodesTableViewer.refresh();
            }
        }
    });
    // "Add erlide nodes" button
    button = new Button(container, SWT.PUSH | SWT.CENTER);
    button.setText("Add existing nodes");
    button.setToolTipText("Add all Erlang nodes started directly from eclipse");
    button.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ADD));
    button.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            for (final IBackend backend : NodeHelper.getBackends(true)) {
                final TracedNode node = new TracedNode();
                node.setNodeName(backend.getName());
                TraceBackend.getInstance().addTracedNode(node);
            }
            nodesTableViewer.refresh();
        }
    });
    // Pattern config buttons
    final Button loadConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button deleteConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button saveConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Button saveAsConfigButton = new Button(container, SWT.PUSH | SWT.CENTER);
    final Label configNameLabel = new Label(container, SWT.NULL);
    configNameLabel.setLayoutData(new RowData(120, SWT.DEFAULT));
    // "Load nodes config" button
    loadConfigButton.setToolTipText("Load nodes configuration...");
    loadConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER));
    loadConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final ElementListSelectionDialog dialog = new SelectConfigurationDialog(parent.getShell(), new LabelProvider());
            dialog.setElements(ConfigurationManager.getNodesConfig());
            dialog.open();
            final String result = (String) dialog.getFirstResult();
            if (result != null) {
                nodesConfigName = result;
                configNameLabel.setText(nodesConfigName);
                TraceBackend.getInstance().loadTracedNodes(ConfigurationManager.loadNodesConfig(nodesConfigName));
                nodesTableViewer.refresh();
            }
        }
    });
    // "Delete nodes configuration" button
    deleteConfigButton.setToolTipText("Delete current node configuration...");
    deleteConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ELCL_REMOVE));
    deleteConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            if (nodesConfigName != null) {
                final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
                messageBox.setMessage("Delete \"" + nodesConfigName + "\"?");
                messageBox.setText("Delete configuration");
                if (messageBox.open() == SWT.YES) {
                    ConfigurationManager.removeNodesConfig(nodesConfigName);
                    nodesConfigName = null;
                    configNameLabel.setText("");
                }
            }
        }
    });
    // "Save nodes configuration" button
    saveConfigButton.setToolTipText("Save current nodes configuration");
    saveConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_SAVE_EDIT));
    saveConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            if (nodesConfigName != null) {
                if (!ConfigurationManager.saveNodesConfig(nodesConfigName)) {
                    final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_ERROR | SWT.OK);
                    messageBox.setMessage("Unable to save configuration: " + nodesConfigName);
                    messageBox.setText("Error");
                    messageBox.open();
                }
            }
        }
    });
    // "Save nodes configuration as..." button
    saveAsConfigButton.setToolTipText("Save current nodes configuration as...");
    saveAsConfigButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_SAVEAS_EDIT));
    saveAsConfigButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final String[] configurations = ConfigurationManager.getNodesConfig();
            final Set<String> existingNames = new HashSet<>(Arrays.asList(configurations));
            final InputDialog dialog = new ConfigurationSaveAsDialog(parent.getShell(), "Save nodes configuration", "Enter name for configuration:", nodesConfigName, existingNames);
            if (dialog.open() == Window.OK) {
                if (ConfigurationManager.saveNodesConfig(dialog.getValue())) {
                    nodesConfigName = dialog.getValue();
                    configNameLabel.setText(nodesConfigName);
                } else {
                    final MessageBox messageBox = new MessageBox(parent.getShell(), SWT.ICON_ERROR | SWT.OK);
                    messageBox.setMessage("Unable to save configuration: " + dialog.getValue());
                    messageBox.setText("Error");
                    messageBox.open();
                }
            }
        }
    });
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) InputDialog(org.eclipse.jface.dialogs.InputDialog) Composite(org.eclipse.swt.widgets.Composite) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) TracedNode(org.erlide.tracing.core.mvc.model.TracedNode) SelectConfigurationDialog(org.erlide.tracing.core.ui.dialogs.SelectConfigurationDialog) MessageBox(org.eclipse.swt.widgets.MessageBox) RowData(org.eclipse.swt.layout.RowData) Button(org.eclipse.swt.widgets.Button) ElementListSelectionDialog(org.eclipse.ui.dialogs.ElementListSelectionDialog) RowLayout(org.eclipse.swt.layout.RowLayout) IBackend(org.erlide.backend.api.IBackend) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ConfigurationSaveAsDialog(org.erlide.tracing.core.ui.dialogs.ConfigurationSaveAsDialog) NodeLabelProvider(org.erlide.tracing.core.mvc.view.NodeLabelProvider) TracePatternLabelProvider(org.erlide.tracing.core.mvc.view.TracePatternLabelProvider) ProcessLabelProvider(org.erlide.tracing.core.mvc.view.ProcessLabelProvider) LabelProvider(org.eclipse.jface.viewers.LabelProvider)

Aggregations

HashSet (java.util.HashSet)2 Set (java.util.Set)2 InputDialog (org.eclipse.jface.dialogs.InputDialog)2 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)2 LabelProvider (org.eclipse.jface.viewers.LabelProvider)2 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)2 SelectionEvent (org.eclipse.swt.events.SelectionEvent)2 RowData (org.eclipse.swt.layout.RowData)2 RowLayout (org.eclipse.swt.layout.RowLayout)2 Button (org.eclipse.swt.widgets.Button)2 Composite (org.eclipse.swt.widgets.Composite)2 Label (org.eclipse.swt.widgets.Label)2 MessageBox (org.eclipse.swt.widgets.MessageBox)2 ElementListSelectionDialog (org.eclipse.ui.dialogs.ElementListSelectionDialog)2 NodeLabelProvider (org.erlide.tracing.core.mvc.view.NodeLabelProvider)2 ProcessLabelProvider (org.erlide.tracing.core.mvc.view.ProcessLabelProvider)2 TracePatternLabelProvider (org.erlide.tracing.core.mvc.view.TracePatternLabelProvider)2 ConfigurationSaveAsDialog (org.erlide.tracing.core.ui.dialogs.ConfigurationSaveAsDialog)2 SelectConfigurationDialog (org.erlide.tracing.core.ui.dialogs.SelectConfigurationDialog)2 IBackend (org.erlide.backend.api.IBackend)1