Search in sources :

Example 11 with Table

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

the class ScreenshotView method refresh.

/**
 * Get new screenshot and refresh image
 */
public void refresh() {
    final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
    ConsoleJob job = new ConsoleJob(Messages.get().ScreenshotView_JobTitle, this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            try {
                if (userSession == null) {
                    Table sessions = session.queryAgentTable(nodeId, "Agent.SessionAgents");
                    if ((sessions != null) && (sessions.getRowCount() > 0)) {
                        int colIndexName = sessions.getColumnIndex("SESSION_NAME");
                        int colIndexUser = sessions.getColumnIndex("USER_NAME");
                        for (int i = 0; i < sessions.getRowCount(); i++) {
                            String n = sessions.getCellValue(i, colIndexName);
                            if ("Console".equalsIgnoreCase(n)) {
                                userSession = n;
                                userName = sessions.getCellValue(i, colIndexUser);
                                break;
                            }
                        }
                        if (userSession == null) {
                            // Console session not found, use first available
                            userSession = sessions.getCellValue(0, colIndexName);
                            userName = sessions.getCellValue(0, colIndexUser);
                        }
                    }
                }
                if (userSession == null) {
                    // Cannot find any connected sessions
                    runInUIThread(new Runnable() {

                        @Override
                        public void run() {
                            if (image != null)
                                image.dispose();
                            image = null;
                            errorMessage = "ERROR (No active sessions or session agent is not running)";
                            canvas.redraw();
                            actionSave.setEnabled(false);
                            updateScrollerSize();
                        }
                    });
                    return;
                }
                byteImage = session.takeScreenshot(nodeId, userSession);
                final ImageData data = new ImageData(new ByteArrayInputStream(byteImage));
                runInUIThread(new Runnable() {

                    @Override
                    public void run() {
                        if (image != null)
                            image.dispose();
                        image = new Image(getDisplay(), data);
                        imageInfo = userName + "@" + userSession;
                        errorMessage = null;
                        canvas.redraw();
                        actionSave.setEnabled(true);
                        updateScrollerSize();
                    }
                });
            } catch (Exception e) {
                byteImage = null;
                final String emsg = e.getLocalizedMessage();
                runInUIThread(new Runnable() {

                    @Override
                    public void run() {
                        if (image != null)
                            image.dispose();
                        image = null;
                        errorMessage = (emsg != null) ? String.format("ERROR (%s)", emsg) : "ERROR";
                        canvas.redraw();
                        actionSave.setEnabled(false);
                        updateScrollerSize();
                    }
                });
            }
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().ScreenshotView_JobError;
        }
    };
    job.setUser(false);
    job.start();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) NXCSession(org.netxms.client.NXCSession) Table(org.netxms.client.Table) ByteArrayInputStream(java.io.ByteArrayInputStream) ImageData(org.eclipse.swt.graphics.ImageData) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) Image(org.eclipse.swt.graphics.Image) Point(org.eclipse.swt.graphics.Point) PartInitException(org.eclipse.ui.PartInitException)

Example 12 with Table

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

the class SummaryTableWidget method refresh.

/**
 * Refresh table
 */
public void refresh() {
    viewer.setInput(null);
    final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
    new ConsoleJob(Messages.get().SummaryTable_JobName, viewPart, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table table = session.queryDciSummaryTable(tableId, baseObjectId);
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    update(table);
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().SummaryTable_JobError;
        }
    }.start();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) NXCSession(org.netxms.client.NXCSession) Table(org.netxms.client.Table) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException)

Example 13 with Table

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

the class TableToolResults method refreshTable.

/**
 * Refresh table
 */
public void refreshTable() {
    viewer.setInput(null);
    new ConsoleJob(String.format(Messages.get().TableToolResults_JobTitle, tool.getName()), this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table table = session.executeTableTool(tool.getId(), nodeId);
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    updateViewer(table);
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return String.format(Messages.get().TableToolResults_JobError, tool.getName());
        }
    }.start();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Table(org.netxms.client.Table) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException)

Example 14 with Table

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

the class BaseTableValueViewer method refresh.

/**
 * Refresh table
 */
public void refresh(final Runnable postRefreshHook) {
    viewer.setInput(null);
    ConsoleJob job = new ConsoleJob(getReadJobName(), viewPart, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table table = readData();
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    if (viewer.getControl().isDisposed())
                        return;
                    if (errorLabel != null) {
                        errorLabel.dispose();
                        errorLabel = null;
                        viewer.getControl().setVisible(true);
                        viewer.getControl().getParent().layout(true, true);
                    }
                    updateViewer(table);
                    if (postRefreshHook != null) {
                        postRefreshHook.run();
                    }
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return getReadJobErrorMessage();
        }

        @Override
        protected IStatus createFailureStatus(final Exception e) {
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    if (viewer.getControl().isDisposed())
                        return;
                    if (errorLabel == null) {
                        errorLabel = new CLabel(viewer.getControl().getParent(), SWT.NONE);
                        errorLabel.setFont(JFaceResources.getBannerFont());
                        errorLabel.setImage(StatusDisplayInfo.getStatusImage(Severity.CRITICAL));
                        errorLabel.moveAbove(viewer.getControl());
                        FormData fd = new FormData();
                        fd.top = new FormAttachment(0, 0);
                        fd.left = new FormAttachment(0, 0);
                        fd.right = new FormAttachment(100, 0);
                        fd.bottom = new FormAttachment(100, 0);
                        errorLabel.setLayoutData(fd);
                        viewer.getControl().getParent().layout(true, true);
                        viewer.getControl().setVisible(false);
                    }
                    // $NON-NLS-1$ //$NON-NLS-2$
                    errorLabel.setText(getErrorMessage() + " (" + e.getLocalizedMessage() + ")");
                }
            });
            return Status.OK_STATUS;
        }
    };
    job.setUser(false);
    job.start();
}
Also used : CLabel(org.eclipse.swt.custom.CLabel) FormData(org.eclipse.swt.layout.FormData) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Table(org.netxms.client.Table) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) FormAttachment(org.eclipse.swt.layout.FormAttachment)

Aggregations

Table (org.netxms.client.Table)14 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)10 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)10 PartInitException (org.eclipse.ui.PartInitException)8 NXCSession (org.netxms.client.NXCSession)5 ArrayList (java.util.ArrayList)2 Point (org.eclipse.swt.graphics.Point)2 TableRow (org.netxms.client.TableRow)2 AbstractObject (org.netxms.client.objects.AbstractObject)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 Date (java.util.Date)1 XYMultipleSeriesDataset (org.achartengine.model.XYMultipleSeriesDataset)1 XYSeries (org.achartengine.model.XYSeries)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 CLabel (org.eclipse.swt.custom.CLabel)1 Image (org.eclipse.swt.graphics.Image)1 ImageData (org.eclipse.swt.graphics.ImageData)1 FormAttachment (org.eclipse.swt.layout.FormAttachment)1 FormData (org.eclipse.swt.layout.FormData)1 Widget (org.eclipse.swt.widgets.Widget)1