use of org.netxms.client.events.Alarm in project netxms by netxms.
the class AlarmList method resolveAlarms.
/**
* Resolve selected alarms
*/
private void resolveAlarms() {
IStructuredSelection selection = (IStructuredSelection) alarmViewer.getSelection();
if (selection.isEmpty())
return;
final List<Long> alarmIds = new ArrayList<Long>(selection.size());
for (Object o : selection.toList()) alarmIds.add(((Alarm) o).getId());
new ConsoleJob(Messages.get().AlarmList_Resolving, viewPart, Activator.PLUGIN_ID, AlarmList.JOB_FAMILY) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
final Map<Long, Integer> resolveFails = session.bulkResolveAlarms(alarmIds);
if (!resolveFails.isEmpty()) {
runInUIThread(new Runnable() {
@Override
public void run() {
AlarmStateChangeFailureDialog dlg = new AlarmStateChangeFailureDialog(viewPart.getSite().getShell(), resolveFails);
if (dlg.open() == Window.OK) {
return;
}
}
});
}
}
@Override
protected String getErrorMessage() {
return Messages.get().AlarmList_CannotResoveAlarm;
}
}.start();
}
use of org.netxms.client.events.Alarm in project netxms by netxms.
the class AlarmList method createIssue.
/**
* Create helpdesk ticket (issue) from selected alarms
*/
private void createIssue() {
IStructuredSelection selection = (IStructuredSelection) alarmViewer.getSelection();
if (selection.size() != 1)
return;
final long id = ((Alarm) selection.getFirstElement()).getId();
new ConsoleJob(Messages.get().AlarmList_JobTitle_CreateTicket, viewPart, Activator.PLUGIN_ID, AlarmList.JOB_FAMILY) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
session.openHelpdeskIssue(id);
}
@Override
protected String getErrorMessage() {
return Messages.get().AlarmList_JobError_CreateTicket;
}
}.start();
}
use of org.netxms.client.events.Alarm in project netxms by netxms.
the class AlarmList method filterAndLimit.
/**
* Filter all alarms (e.g. by chosen object), sort them by last change and reduce the size to maximum as it is set in
* configuration parameter <code>AlarmListDisplayLimit</code>.
*/
private void filterAndLimit() {
// filter
filteredAlarmList.clear();
for (Alarm alarm : alarmList.values()) {
if (alarmFilter.filter(alarm)) {
filteredAlarmList.add(alarm);
}
}
// limit number of alarms to display
if ((session.getAlarmListDisplayLimit() > 0) && (filteredAlarmList.size() > session.getAlarmListDisplayLimit())) {
// sort by last change - newest first
Collections.sort(filteredAlarmList, new Comparator<Alarm>() {
@Override
public int compare(Alarm alarm1, Alarm alarm2) {
return -(alarm1.getLastChangeTime().compareTo(alarm2.getLastChangeTime()));
}
});
filteredAlarmList = filteredAlarmList.subList(0, session.getAlarmListDisplayLimit());
}
alarmViewer.getControl().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
if (!alarmViewer.getControl().isDisposed()) {
synchronized (alarmList) {
alarmViewer.setInput(filteredAlarmList);
if ((session.getAlarmListDisplayLimit() > 0) && (filteredAlarmList.size() >= session.getAlarmListDisplayLimit())) {
showMessage(INFORMATION, String.format(Messages.get().AlarmList_CountLimitWarning, filteredAlarmList.size()));
} else {
hideMessage();
}
}
}
}
});
}
use of org.netxms.client.events.Alarm in project netxms by netxms.
the class AlarmList method unlinkIssue.
/**
* Unlink helpdesk ticket (issue) from selected alarm
*/
private void unlinkIssue() {
IStructuredSelection selection = (IStructuredSelection) alarmViewer.getSelection();
if (selection.size() != 1)
return;
final long id = ((Alarm) selection.getFirstElement()).getId();
new ConsoleJob(Messages.get().AlarmList_JobTitle_UnlinkTicket, viewPart, Activator.PLUGIN_ID, AlarmList.JOB_FAMILY) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
session.unlinkHelpdeskIssue(id);
}
@Override
protected String getErrorMessage() {
return Messages.get().AlarmList_JobError_UnlinkTicket;
}
}.start();
}
use of org.netxms.client.events.Alarm in project netxms by netxms.
the class Alarms method getCollection.
/* (non-Javadoc)
* @see org.netxms.websvc.handlers.AbstractHandler#getCollection(org.json.JSONObject)
*/
@Override
protected Object getCollection(Map<String, String> query) throws Exception {
NXCSession session = getSession();
Collection<Alarm> alarms = session.getAlarms().values();
String queryGuid = query.get("objectGuid");
if (queryGuid != null) {
UUID objectGuid = UUID.fromString(queryGuid);
if (!session.isObjectsSynchronized())
session.syncObjects();
AbstractObject object = session.findObjectByGUID(objectGuid);
if (object == null)
throw new NXCException(RCC.INVALID_OBJECT_ID);
Iterator<Alarm> iterator = alarms.iterator();
while (iterator.hasNext()) {
Alarm alarm = iterator.next();
if (alarm.getSourceObjectId() != object.getObjectId()) {
iterator.remove();
}
}
}
return new ResponseContainer("alarms", alarms);
}
Aggregations