Search in sources :

Example 21 with Alarm

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();
}
Also used : ArrayList(java.util.ArrayList) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) PartInitException(org.eclipse.ui.PartInitException) AlarmStateChangeFailureDialog(org.netxms.ui.eclipse.alarmviewer.dialogs.AlarmStateChangeFailureDialog) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Alarm(org.netxms.client.events.Alarm) AbstractObject(org.netxms.client.objects.AbstractObject) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) Map(java.util.Map) HashMap(java.util.HashMap)

Example 22 with Alarm

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();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Alarm(org.netxms.client.events.Alarm) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException)

Example 23 with Alarm

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();
                    }
                }
            }
        }
    });
}
Also used : Alarm(org.netxms.client.events.Alarm)

Example 24 with Alarm

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();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Alarm(org.netxms.client.events.Alarm) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException)

Example 25 with Alarm

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);
}
Also used : NXCSession(org.netxms.client.NXCSession) Alarm(org.netxms.client.events.Alarm) AbstractObject(org.netxms.client.objects.AbstractObject) UUID(java.util.UUID) ResponseContainer(org.netxms.websvc.json.ResponseContainer) NXCException(org.netxms.client.NXCException)

Aggregations

Alarm (org.netxms.client.events.Alarm)25 AbstractObject (org.netxms.client.objects.AbstractObject)10 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)8 PartInitException (org.eclipse.ui.PartInitException)8 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)8 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)7 ArrayList (java.util.ArrayList)5 HashMap (java.util.HashMap)5 List (java.util.List)3 NXCException (org.netxms.client.NXCException)3 NXCSession (org.netxms.client.NXCSession)3 IOException (java.io.IOException)2 HashSet (java.util.HashSet)2 Map (java.util.Map)2 NXCPMessage (org.netxms.base.NXCPMessage)2 AlarmComment (org.netxms.client.events.AlarmComment)2 AbstractNode (org.netxms.client.objects.AbstractNode)2 ZoneMember (org.netxms.client.objects.ZoneMember)2 AbstractUserObject (org.netxms.client.users.AbstractUserObject)2 SuppressLint (android.annotation.SuppressLint)1