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());
}
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();
}
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;
}
Aggregations