Search in sources :

Example 1 with Table

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

the class SummaryTableAdHoc method create.

/* (non-Javadoc)
    * @see org.netxms.websvc.handlers.AbstractHandler#create(org.json.JSONObject)
    */
@Override
protected Object create(JSONObject data) throws Exception {
    NXCSession session = getSession();
    if (!session.isObjectsSynchronized())
        session.syncObjects();
    String objectFilter = JsonTools.getStringFromJson(data, "baseObject", null);
    log.debug("POST adhoc summaryTable: baseObject = " + objectFilter);
    JSONArray columnFilter = JsonTools.getJsonArrayFromJson(data, "columns", null);
    if (objectFilter == null || objectFilter.isEmpty() || columnFilter == null) {
        log.warn("POST adhoc summaryTable: no DciSummaryTableColumn table or no value for BaseObject");
        return createErrorResponse(RCC.INVALID_ARGUMENT);
    }
    long baseObjectId;
    try {
        baseObjectId = Long.parseLong(objectFilter);
    } catch (NumberFormatException ex) {
        AbstractObject obj = session.findObjectByName(objectFilter);
        if (obj != null)
            baseObjectId = obj.getObjectId();
        else
            baseObjectId = 0;
    }
    List<DciSummaryTableColumn> columns = new ArrayList<DciSummaryTableColumn>();
    for (int i = 0; i < columnFilter.length(); i++) {
        JSONObject obj = columnFilter.getJSONObject(i);
        columns.add(new DciSummaryTableColumn(JsonTools.getStringFromJson(obj, "columnName", ""), JsonTools.getStringFromJson(obj, "dciName", ""), JsonTools.getBooleanFromJson(obj, "isRegexp", false) ? DciSummaryTableColumn.REGEXP_MATCH : 0));
    }
    AggregationFunction agrFunc = JsonTools.getEnumFromJson(data, AggregationFunction.class, "aggregationFunction", null);
    Date startDate;
    Date endDate;
    long date = JsonTools.getLongFromJson(data, "startDate", -1);
    startDate = date > 0 ? new Date(date * 1000) : null;
    date = JsonTools.getLongFromJson(data, "endDate", -1);
    endDate = date > 0 ? new Date(date * 1000) : null;
    // end date
    boolean multiInstance = JsonTools.getBooleanFromJson(data, "multiInstance", true);
    Table table = session.queryAdHocDciSummaryTable(baseObjectId, columns, agrFunc, startDate, endDate, multiInstance);
    // create json
    JSONObject root = new JSONObject();
    JSONArray columnList = new JSONArray();
    JSONArray rowList = new JSONArray();
    String[] names = table.getColumnDisplayNames();
    for (int i = 0; i < names.length; i++) columnList.put(names[i]);
    root.put("columns", columnList);
    TableRow[] rows = table.getAllRows();
    for (int i = 0; i < rows.length; i++) {
        JSONArray row = new JSONArray();
        for (int j = 0; j < rows[i].size(); j++) row.put(rows[i].get(j).getValue());
        rowList.put(row);
    }
    root.put("rows", rowList);
    return new ResponseContainer("table", root);
}
Also used : NXCSession(org.netxms.client.NXCSession) Table(org.netxms.client.Table) JSONArray(org.json.JSONArray) ArrayList(java.util.ArrayList) Date(java.util.Date) AggregationFunction(org.netxms.client.constants.AggregationFunction) JSONObject(org.json.JSONObject) AbstractObject(org.netxms.client.objects.AbstractObject) TableRow(org.netxms.client.TableRow) DciSummaryTableColumn(org.netxms.client.datacollection.DciSummaryTableColumn) ResponseContainer(org.netxms.websvc.json.ResponseContainer)

Example 2 with Table

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

the class SummaryTablesDynamicMenu method queryTable.

/**
 * Query table using selected base object
 *
 * @param baseObjectId
 * @param tableId
 */
private void queryTable(final long baseObjectId, final int tableId) {
    final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
    new ConsoleJob(Messages.get().SummaryTablesDynamicMenu_QueryTableJob, null, Activator.PLUGIN_ID, null) {

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

                @Override
                public void run() {
                    // $NON-NLS-1$
                    String secondaryId = Integer.toString(tableId) + "&" + Long.toString(baseObjectId);
                    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
                    try {
                        SummaryTable view = (SummaryTable) window.getActivePage().showView(SummaryTable.ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
                        view.setTable(results);
                    } catch (PartInitException e) {
                        MessageDialogHelper.openError(window.getShell(), Messages.get().SummaryTablesDynamicMenu_Error, String.format(Messages.get().SummaryTablesDynamicMenu_CannotOpenView, e.getLocalizedMessage()));
                    }
                }
            });
        }

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

Example 3 with Table

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

the class TableComparisonChartElement method refreshData.

/**
 * Refresh graph's data
 */
protected void refreshData() {
    if (updateInProgress)
        return;
    updateInProgress = true;
    ConsoleJob job = new ConsoleJob(Messages.get().TableComparisonChartElement_JobTitle, viewPart, Activator.PLUGIN_ID, Activator.PLUGIN_ID) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table data = session.getTableLastValues(config.getNodeId(), config.getDciId());
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    if (!((Widget) chart).isDisposed())
                        updateChart(data);
                    updateInProgress = false;
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().TableComparisonChartElement_JobError;
        }

        @Override
        protected void jobFailureHandler() {
            updateInProgress = false;
            super.jobFailureHandler();
        }
    };
    job.setUser(false);
    job.start();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) Table(org.netxms.client.Table) Widget(org.eclipse.swt.widgets.Widget) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob)

Example 4 with Table

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

the class SummaryTableWidget method forcePoll.

/**
 * @param pollAll
 */
private void forcePoll(boolean pollAll) {
    IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
    if (selection.isEmpty())
        return;
    final List<PollRequest> requests = new ArrayList<PollRequest>();
    for (Object o : selection.toList()) {
        TableRow r = (TableRow) o;
        long nodeId = r.getObjectId();
        if (pollAll) {
            int count = ((Table) viewer.getInput()).getColumnCount();
            for (int i = 1; i < count; i++) {
                long dciId = r.get(i).getObjectId();
                if (dciId != 0) {
                    requests.add(new PollRequest(nodeId, dciId));
                }
            }
        } else {
            int index = ((Table) viewer.getInput()).getColumnIndex(currentColumn.getText());
            long dciId = r.get(index).getObjectId();
            if (dciId != 0) {
                requests.add(new PollRequest(nodeId, dciId));
            }
        }
    }
    if (requests.isEmpty())
        return;
    final NXCSession session = ConsoleSharedData.getSession();
    new ConsoleJob(Messages.get().SummaryTableWidget_ForceDciPoll, viewPart, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            monitor.beginTask(Messages.get().SummaryTableWidget_DciPoll, requests.size());
            for (PollRequest r : requests) {
                session.forceDCIPoll(r.nodeId, r.dciId);
                monitor.worked(1);
            }
            monitor.done();
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    refresh();
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().SummaryTableWidget_13;
        }
    }.start();
}
Also used : Table(org.netxms.client.Table) NXCSession(org.netxms.client.NXCSession) ArrayList(java.util.ArrayList) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Point(org.eclipse.swt.graphics.Point) PartInitException(org.eclipse.ui.PartInitException) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) TableRow(org.netxms.client.TableRow) AbstractObject(org.netxms.client.objects.AbstractObject) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob)

Example 5 with Table

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

the class LogViewer method getMoreData.

/**
 * Get more data from server
 */
private void getMoreData() {
    if (noData)
        // we already know that there will be no more data
        return;
    new ConsoleJob(Messages.get().LogViewer_GetDataJob, this, Activator.PLUGIN_ID, JOB_FAMILY) {

        @Override
        protected String getErrorMessage() {
            return Messages.get().LogViewer_QueryError + logName;
        }

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table data = logHandle.retrieveData(resultSet.getRowCount(), PAGE_SIZE);
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    resultSet.addAll(data);
                    viewer.setInput(resultSet.getAllRows());
                    noData = (data.getRowCount() < PAGE_SIZE);
                    actionGetMoreData.setEnabled(!noData);
                }
            });
        }
    }.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)

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