Search in sources :

Example 11 with ServerAction

use of org.netxms.client.ServerAction in project netxms by netxms.

the class RuleServerActions method addAction.

/**
 * Add new event
 */
private void addAction() {
    ActionSelectionDialog dlg = new ActionSelectionDialog(getShell(), editor.getEditorView().getActions());
    dlg.enableMultiSelection(true);
    if (dlg.open() == Window.OK) {
        for (ServerAction a : dlg.getSelectedActions()) actions.put(a.getId(), a);
    }
    viewer.setInput(actions.values().toArray());
}
Also used : ActionSelectionDialog(org.netxms.ui.eclipse.epp.dialogs.ActionSelectionDialog) ServerAction(org.netxms.client.ServerAction)

Example 12 with ServerAction

use of org.netxms.client.ServerAction in project netxms by netxms.

the class EventProcessingPolicyEditor method openEventProcessingPolicy.

/**
 * Open event processing policy
 */
private void openEventProcessingPolicy() {
    ConsoleJob job = new ConsoleJob(Messages.get().EventProcessingPolicyEditor_OpenJob_Title, this, Activator.PLUGIN_ID, JOB_FAMILY) {

        @Override
        protected String getErrorMessage() {
            return Messages.get().EventProcessingPolicyEditor_OpenJob_Error;
        }

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            List<ServerAction> actions = session.getActions();
            synchronized (EventProcessingPolicyEditor.this.actions) {
                for (ServerAction a : actions) {
                    EventProcessingPolicyEditor.this.actions.put(a.getId(), a);
                }
            }
            policy = session.openEventProcessingPolicy();
            policyLocked = true;
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    initPolicyEditor();
                    if (filterEnabled)
                        filterControl.setFocus();
                }
            });
        }

        @Override
        protected void jobFailureHandler() {
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    EventProcessingPolicyEditor.this.getViewSite().getPage().hideView(EventProcessingPolicyEditor.this);
                }
            });
        }
    };
    job.start();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) ServerAction(org.netxms.client.ServerAction)

Example 13 with ServerAction

use of org.netxms.client.ServerAction in project netxms by netxms.

the class RuleEditor method createActionControl.

/**
 * Create action summary control
 *
 * @param parent
 * @param rule
 * @return
 */
private Control createActionControl(Composite parent, final EventProcessingPolicyRule rule) {
    Composite clientArea = new Composite(parent, SWT.NONE);
    clientArea.setBackground(SharedColors.getColor(SharedColors.RULE_EDITOR_BACKGROUND, getDisplay()));
    GridLayout layout = new GridLayout();
    layout.verticalSpacing = 0;
    clientArea.setLayout(layout);
    /* alarm */
    if ((rule.getFlags() & EventProcessingPolicyRule.GENERATE_ALARM) != 0) {
        // $NON-NLS-1$
        final MouseListener listener = createMouseListener("org.netxms.ui.eclipse.epp.propertypages.RuleAlarm#10");
        if (rule.getAlarmSeverity().compareTo(Severity.TERMINATE) < 0) {
            addActionGroupLabel(clientArea, Messages.get().RuleEditor_GenerateAlarm, editor.getImageAlarm(), listener);
            CLabel clabel = createCLabel(clientArea, 1, false);
            clabel.setImage(StatusDisplayInfo.getStatusImage(rule.getAlarmSeverity()));
            clabel.setText(rule.getAlarmMessage());
            clabel.addMouseListener(listener);
            if ((rule.getAlarmKey() != null) && !rule.getAlarmKey().isEmpty()) {
                createLabel(clientArea, 1, false, String.format(Messages.get().RuleEditor_WithKey, rule.getAlarmKey()), null);
            }
        } else if (rule.getAlarmSeverity() == Severity.TERMINATE) {
            addActionGroupLabel(clientArea, Messages.get().RuleEditor_TerminateAlarms, editor.getImageTerminate(), listener);
            createLabel(clientArea, 1, false, String.format(Messages.get().RuleEditor_WithKey, rule.getAlarmKey()), listener);
            if ((rule.getFlags() & EventProcessingPolicyRule.TERMINATE_BY_REGEXP) != 0)
                createLabel(clientArea, 1, false, Messages.get().RuleEditor_UserRegexpForTerminate, listener);
        } else if (rule.getAlarmSeverity() == Severity.RESOLVE) {
            addActionGroupLabel(clientArea, Messages.get().RuleEditor_ResolveAlarms, editor.getImageTerminate(), listener);
            createLabel(clientArea, 1, false, String.format(Messages.get().RuleEditor_WithKey, rule.getAlarmKey()), listener);
            if ((rule.getFlags() & EventProcessingPolicyRule.TERMINATE_BY_REGEXP) != 0)
                createLabel(clientArea, 1, false, Messages.get().RuleEditor_UseRegexpForResolve, listener);
        }
        if (rule.getAlarmCategories().size() > 0) {
            createLabel(clientArea, 1, false, rule.getAlarmCategories().size() == 1 ? "with category: " : "with categories: ", null);
            for (Long id : rule.getAlarmCategories()) {
                AlarmCategory category = editor.findAlarmCategoryById(id);
                if (category != null) {
                    createLabel(clientArea, 2, false, category.getName(), null);
                }
            }
        }
        if ((rule.getFlags() & EventProcessingPolicyRule.CREATE_TICKET) != 0) {
            createLabel(clientArea, 1, false, "creates helpdesk ticket", null);
        }
    }
    /* persistent storage */
    if (rule.getPStorageSet().size() != 0 || rule.getPStorageDelete().size() != 0) {
        // $NON-NLS-1$
        final MouseListener listener = createMouseListener("org.netxms.ui.eclipse.epp.propertypages.RulePStorage#20");
        addActionGroupLabel(clientArea, "Update persistent storage entries", editor.getImageSituation(), listener);
        if (rule.getPStorageSet().size() != 0) {
            // $NON-NLS-1$ //$NON-NLS-2$
            createLabel(clientArea, 1, false, "Set Persistent storage values", listener);
            for (Entry<String, String> e : rule.getPStorageSet().entrySet()) {
                // $NON-NLS-1$ //$NON-NLS-2$
                createLabel(clientArea, 2, false, e.getKey() + " = \"" + e.getValue() + "\"", listener);
            }
        }
        if (rule.getPStorageDelete().size() != 0) {
            createLabel(clientArea, 1, false, "Delete persistent storage values", listener);
            List<String> pStorageList = rule.getPStorageDelete();
            for (int i = 0; i < pStorageList.size(); i++) {
                createLabel(clientArea, 2, false, pStorageList.get(i), listener);
            }
        }
    }
    /* actions */
    if (rule.getActions().size() > 0) {
        // $NON-NLS-1$
        final MouseListener listener = createMouseListener("org.netxms.ui.eclipse.epp.propertypages.RuleServerActions#30");
        addActionGroupLabel(clientArea, Messages.get().RuleEditor_ExecuteActions, editor.getImageExecute(), listener);
        for (Long id : rule.getActions()) {
            CLabel clabel = createCLabel(clientArea, 1, false);
            clabel.addMouseListener(listener);
            ServerAction action = editor.findActionById(id);
            if (action != null) {
                clabel.setText(action.getName());
                clabel.setImage(labelProvider.getImage(action));
            } else {
                // $NON-NLS-1$ //$NON-NLS-2$
                clabel.setText("<" + id.toString() + ">");
            }
        }
    }
    /* flags */
    if ((rule.getFlags() & EventProcessingPolicyRule.STOP_PROCESSING) != 0) {
        // $NON-NLS-1$
        final MouseListener listener = createMouseListener("org.netxms.ui.eclipse.epp.propertypages.RuleAction#1");
        addActionGroupLabel(clientArea, Messages.get().RuleEditor_StopProcessing, editor.getImageStop(), listener);
    }
    return clientArea;
}
Also used : CLabel(org.eclipse.swt.custom.CLabel) GridLayout(org.eclipse.swt.layout.GridLayout) MouseListener(org.eclipse.swt.events.MouseListener) Composite(org.eclipse.swt.widgets.Composite) AlarmCategory(org.netxms.client.events.AlarmCategory) ServerAction(org.netxms.client.ServerAction)

Aggregations

ServerAction (org.netxms.client.ServerAction)13 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)6 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)6 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)4 GridLayout (org.eclipse.swt.layout.GridLayout)3 Composite (org.eclipse.swt.widgets.Composite)3 EventTemplate (org.netxms.client.events.EventTemplate)2 EditActionDlg (org.netxms.ui.eclipse.actionmanager.dialogs.EditActionDlg)2 Comparator (java.util.Comparator)1 List (java.util.List)1 UUID (java.util.UUID)1 Action (org.eclipse.jface.action.Action)1 IDialogSettings (org.eclipse.jface.dialogs.IDialogSettings)1 ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)1 TableViewer (org.eclipse.jface.viewers.TableViewer)1 Viewer (org.eclipse.jface.viewers.Viewer)1 ViewerComparator (org.eclipse.jface.viewers.ViewerComparator)1 CLabel (org.eclipse.swt.custom.CLabel)1 ScrolledComposite (org.eclipse.swt.custom.ScrolledComposite)1 ControlAdapter (org.eclipse.swt.events.ControlAdapter)1