Search in sources :

Example 1 with Script

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

the class SelectScriptDialog method createDialogArea.

/* (non-Javadoc)
	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
	 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite dialogArea = (Composite) super.createDialogArea(parent);
    GridLayout layout = new GridLayout();
    layout.marginWidth = WidgetHelper.DIALOG_WIDTH_MARGIN;
    layout.marginHeight = WidgetHelper.DIALOG_HEIGHT_MARGIN;
    dialogArea.setLayout(layout);
    new Label(dialogArea, SWT.NONE).setText(Messages.get().SelectScriptDialog_AvailableScripts);
    viewer = new TableViewer(dialogArea, SWT.BORDER | SWT.FULL_SELECTION | (multiSelection ? SWT.MULTI : 0));
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            return ((Script) element).getName();
        }
    });
    viewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            Script s1 = (Script) e1;
            Script s2 = (Script) e2;
            return s1.getName().compareToIgnoreCase(s2.getName());
        }
    });
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            SelectScriptDialog.this.okPressed();
        }
    });
    GridData gd = new GridData();
    gd.horizontalAlignment = SWT.FILL;
    gd.verticalAlignment = SWT.FILL;
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    gd.heightHint = 300;
    gd.widthHint = 400;
    viewer.getControl().setLayoutData(gd);
    final NXCSession session = ConsoleSharedData.getSession();
    new ConsoleJob(Messages.get().SelectScriptDialog_JobTitle, null, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final List<Script> scripts = session.getScriptLibrary();
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    viewer.setInput(scripts.toArray());
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().SelectScriptDialog_JobError;
        }
    }.start();
    return dialogArea;
}
Also used : Script(org.netxms.client.Script) NXCSession(org.netxms.client.NXCSession) Composite(org.eclipse.swt.widgets.Composite) ViewerComparator(org.eclipse.jface.viewers.ViewerComparator) Label(org.eclipse.swt.widgets.Label) TableViewer(org.eclipse.jface.viewers.TableViewer) Viewer(org.eclipse.jface.viewers.Viewer) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) GridLayout(org.eclipse.swt.layout.GridLayout) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) GridData(org.eclipse.swt.layout.GridData) ArrayList(java.util.ArrayList) List(java.util.List) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) TableViewer(org.eclipse.jface.viewers.TableViewer) LabelProvider(org.eclipse.jface.viewers.LabelProvider)

Example 2 with Script

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

the class SelectScriptDialog method okPressed.

/* (non-Javadoc)
	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
	 */
@Override
protected void okPressed() {
    IStructuredSelection s = (IStructuredSelection) viewer.getSelection();
    if (s.isEmpty()) {
        MessageDialogHelper.openWarning(getShell(), Messages.get().SelectScriptDialog_Warning, Messages.get().SelectScriptDialog_WarningEmptySelection);
        return;
    }
    for (Object o : s.toList()) selection.add((Script) o);
    super.okPressed();
}
Also used : Script(org.netxms.client.Script) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection)

Example 3 with Script

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

the class ScriptExecutor method intermediateSave.

/**
 * Update script
 */
public void intermediateSave(boolean saveOnSelectionChange) {
    final Script s = library.get(saveOnSelectionChange ? previousSelection : scriptCombo.getSelectionIndex());
    final String scriptSource = scriptEditor.getText();
    new ConsoleJob(Messages.get().ScriptExecutor_JobName_Update, this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            session.modifyScript(s.getId(), s.getName(), scriptSource);
            runInUIThread(new Runnable() {

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

        @Override
        protected String getErrorMessage() {
            return Messages.get().ScriptExecutor_JobError_Update;
        }
    }.start();
}
Also used : Script(org.netxms.client.Script) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException) IOException(java.io.IOException)

Example 4 with Script

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

the class ScriptExecutor method getScriptContent.

/**
 * Updates content of script editor to selected by user script
 */
protected void getScriptContent() {
    final int index = scriptCombo.getSelectionIndex();
    if (index == -1)
        return;
    new ConsoleJob(Messages.get().ScriptExecutor_JobName_Update, this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Script script = session.getScript(library.get(index).getId());
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    scriptEditor.setText(script.getSource());
                    clearDirtyFlags();
                    form.setText(script.getName());
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return Messages.get().ScriptExecutor_JobError_Update;
        }
    }.start();
}
Also used : Script(org.netxms.client.Script) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) PartInitException(org.eclipse.ui.PartInitException) IOException(java.io.IOException)

Example 5 with Script

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

the class ScriptExecutor method doSave.

/*
    * (non-Javadoc)
    * 
    * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
    */
@Override
public void doSave(IProgressMonitor monitor) {
    try {
        Script s = library.get(scriptCombo.getSelectionIndex());
        session.modifyScript(s.getId(), s.getName(), scriptEditor.getText());
    } catch (Exception e) {
        MessageDialogHelper.openError(getViewSite().getShell(), Messages.get().ScriptExecutor_Error, String.format(Messages.get().ScriptExecutor_SaveError, e.getLocalizedMessage()));
    }
    clearDirtyFlags();
}
Also used : Script(org.netxms.client.Script) PartInitException(org.eclipse.ui.PartInitException) IOException(java.io.IOException)

Aggregations

Script (org.netxms.client.Script)15 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)10 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)10 PartInitException (org.eclipse.ui.PartInitException)9 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)5 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)3 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)2 EventObject (org.netxms.client.events.EventObject)2 EventTemplate (org.netxms.client.events.EventTemplate)2 Template (org.netxms.client.objects.Template)2 CreateScriptDialog (org.netxms.ui.eclipse.nxsl.dialogs.CreateScriptDialog)2 Comparator (java.util.Comparator)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1 Set (java.util.Set)1 UUID (java.util.UUID)1