Search in sources :

Example 1 with AnimatedImage

use of org.netxms.ui.eclipse.widgets.AnimatedImage in project netxms by netxms.

the class PerformanceTab method objectChanged.

/* (non-Javadoc)
	 * @see org.netxms.ui.eclipse.objectview.objecttabs.ObjectTab#objectChanged(org.netxms.client.objects.AbstractObject)
	 */
@Override
public void objectChanged(final AbstractObject object) {
    for (PerfTabGraph chart : charts.values()) chart.dispose();
    charts.clear();
    if (object == null)
        return;
    if (waitingImage != null)
        waitingImage.dispose();
    waitingImage = new AnimatedImage(chartArea, SWT.NONE);
    waitingImage.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true, 2, 1));
    try {
        // $NON-NLS-1$
        waitingImage.setImage(new URL("platform:/plugin/org.netxms.webui.core/icons/progress.gif"));
    } catch (MalformedURLException e) {
    }
    updateChartAreaLayout();
    final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
    Job job = new Job(Messages.get().PerformanceTab_JobName) {

        @Override
        protected IStatus run(IProgressMonitor monitor) {
            try {
                final PerfTabDci[] items = session.getPerfTabItems(object.getObjectId());
                final Display display = PerformanceTab.this.getClientArea().getDisplay();
                new UIJob(display, Messages.get(display).PerformanceTab_JobName) {

                    @Override
                    public IStatus runInUIThread(IProgressMonitor monitor) {
                        if (!getClientArea().isDisposed() && (PerformanceTab.this.getObject() != null) && (PerformanceTab.this.getObject().getObjectId() == object.getObjectId())) {
                            update(items);
                        }
                        return Status.OK_STATUS;
                    }
                }.schedule();
            } catch (Exception e) {
                // $NON-NLS-1$
                Activator.logError("Exception in performance tab loading job", e);
            }
            return Status.OK_STATUS;
        }
    };
    job.setSystem(true);
    job.schedule();
}
Also used : MalformedURLException(java.net.MalformedURLException) IStatus(org.eclipse.core.runtime.IStatus) NXCSession(org.netxms.client.NXCSession) PerfTabGraph(org.netxms.ui.eclipse.perfview.objecttabs.internal.PerfTabGraph) AnimatedImage(org.netxms.ui.eclipse.widgets.AnimatedImage) URL(java.net.URL) PerfTabDci(org.netxms.client.datacollection.PerfTabDci) MalformedURLException(java.net.MalformedURLException) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) GridData(org.eclipse.swt.layout.GridData) UIJob(org.eclipse.ui.progress.UIJob) Job(org.eclipse.core.runtime.jobs.Job) UIJob(org.eclipse.ui.progress.UIJob) Display(org.eclipse.swt.widgets.Display)

Aggregations

MalformedURLException (java.net.MalformedURLException)1 URL (java.net.URL)1 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)1 IStatus (org.eclipse.core.runtime.IStatus)1 Job (org.eclipse.core.runtime.jobs.Job)1 GridData (org.eclipse.swt.layout.GridData)1 Display (org.eclipse.swt.widgets.Display)1 UIJob (org.eclipse.ui.progress.UIJob)1 NXCSession (org.netxms.client.NXCSession)1 PerfTabDci (org.netxms.client.datacollection.PerfTabDci)1 PerfTabGraph (org.netxms.ui.eclipse.perfview.objecttabs.internal.PerfTabGraph)1 AnimatedImage (org.netxms.ui.eclipse.widgets.AnimatedImage)1