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;
}
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();
}
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();
}
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();
}
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();
}
Aggregations