use of org.netxms.client.dashboards.DashboardElement in project netxms by netxms.
the class ExportDashboard method run.
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
@Override
public void run(IAction action) {
if (dashboard == null)
return;
final Set<Long> objects = new HashSet<Long>();
final Map<Long, Long> items = new HashMap<Long, Long>();
// $NON-NLS-1$
final StringBuilder xml = new StringBuilder("<dashboard>\n\t<name>");
xml.append(dashboard.getObjectName());
// $NON-NLS-1$
xml.append("</name>\n\t<columns>");
xml.append(dashboard.getNumColumns());
// $NON-NLS-1$
xml.append("</columns>\n\t<options>");
xml.append(dashboard.getOptions());
// $NON-NLS-1$
xml.append("</options>\n\t<elements>\n");
for (DashboardElement e : dashboard.getElements()) {
// $NON-NLS-1$
xml.append("\t\t<dashboardElement>\n\t\t\t<type>");
xml.append(e.getType());
// $NON-NLS-1$
xml.append("</type>\n");
xml.append(e.getLayout());
xml.append('\n');
xml.append(e.getData());
// $NON-NLS-1$
xml.append("\n\t\t</dashboardElement>\n");
DashboardElementConfig config = (DashboardElementConfig) Platform.getAdapterManager().getAdapter(e, DashboardElementConfig.class);
if (config != null) {
objects.addAll(config.getObjects());
items.putAll(config.getDataCollectionItems());
}
}
// $NON-NLS-1$
xml.append("\t</elements>\n");
final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
new ConsoleJob(Messages.get().ExportDashboard_JobTitle, wbPart, Activator.PLUGIN_ID, null) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
// Add object ID mapping
// $NON-NLS-1$
xml.append("\t<objectMap>\n");
for (Long id : objects) {
AbstractObject o = session.findObjectById(id);
if (o != null) {
// $NON-NLS-1$
xml.append("\t\t<object id=\"");
xml.append(id);
// $NON-NLS-1$
xml.append("\" class=\"");
xml.append(o.getObjectClass());
// $NON-NLS-1$
xml.append("\">");
xml.append(o.getObjectName());
// $NON-NLS-1$
xml.append("</object>\n");
}
}
// $NON-NLS-1$
xml.append("\t</objectMap>\n\t<dciMap>\n");
// Add DCI ID mapping
long[] nodeList = new long[items.size()];
long[] dciList = new long[items.size()];
int pos = 0;
for (Entry<Long, Long> dci : items.entrySet()) {
dciList[pos] = dci.getKey();
nodeList[pos] = dci.getValue();
pos++;
}
String[] names = session.dciIdsToNames(nodeList, dciList);
for (int i = 0; i < names.length; i++) {
// $NON-NLS-1$
xml.append("\t\t<dci id=\"");
xml.append(dciList[i]);
// $NON-NLS-1$
xml.append("\" node=\"");
xml.append(nodeList[i]);
// $NON-NLS-1$
xml.append("\">");
xml.append(names[i]);
// $NON-NLS-1$
xml.append("</dci>\n");
}
// $NON-NLS-1$
xml.append("\t</dciMap>\n</dashboard>\n");
// $NON-NLS-1$
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(dashboard.getObjectName() + ".xml"), "UTF-8");
try {
out.write(xml.toString());
} finally {
out.close();
final File dashboardFile = new File(dashboard.getObjectName() + ".xml");
if (dashboardFile.length() > 0) {
DownloadServiceHandler.addDownload(dashboardFile.getName(), dashboardFile.getName(), dashboardFile, "application/octet-stream");
runInUIThread(new Runnable() {
@Override
public void run() {
DownloadServiceHandler.startDownload(dashboardFile.getName());
}
});
}
}
}
@Override
protected String getErrorMessage() {
return Messages.get().ExportDashboard_ErrorText;
}
}.start();
}
use of org.netxms.client.dashboards.DashboardElement in project netxms by netxms.
the class DashboardElements method editElementXml.
/**
* Edit selected element's configuration directly as XML
*/
private void editElementXml() {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.size() != 1)
return;
DashboardElement element = (DashboardElement) selection.getFirstElement();
EditElementXmlDlg dlg = new EditElementXmlDlg(getShell(), element.getData());
if (dlg.open() == Window.OK) {
element.setData(dlg.getValue());
viewer.update(element, null);
}
}
use of org.netxms.client.dashboards.DashboardElement in project netxms by netxms.
the class DashboardElements method moveUp.
/**
* Move currently selected element up
*/
private void moveUp() {
final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.size() == 1) {
DashboardElement element = (DashboardElement) selection.getFirstElement();
int index = elements.indexOf(element);
if (index > 0) {
Collections.swap(elements, index - 1, index);
viewer.setInput(elements.toArray());
viewer.setSelection(new StructuredSelection(element));
}
}
}
use of org.netxms.client.dashboards.DashboardElement in project netxms by netxms.
the class DashboardElements method editElement.
/**
* Edit selected element
*/
private void editElement() {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.size() != 1)
return;
DashboardElement element = (DashboardElement) selection.getFirstElement();
DashboardElementConfig config = (DashboardElementConfig) AdapterManager.getDefault().getAdapter(element, DashboardElementConfig.class);
if (config != null) {
try {
config.setLayout(DashboardElementLayout.createFromXml(element.getLayout()));
PropertyDialog dlg = PropertyDialog.createDialogOn(getShell(), null, config);
if (dlg.open() == Window.CANCEL)
// element creation cancelled
return;
element.setData(config.createXml());
element.setLayout(config.getLayout().createXml());
viewer.update(element, null);
} catch (Exception e) {
MessageDialogHelper.openError(getShell(), Messages.get().DashboardElements_InternalErrorTitle, Messages.get().DashboardElements_InternalErrorText + e.getMessage());
}
} else {
MessageDialogHelper.openError(getShell(), Messages.get().DashboardElements_InternalErrorTitle, Messages.get().DashboardElements_InternalErrorText2);
}
}
use of org.netxms.client.dashboards.DashboardElement in project netxms by netxms.
the class DashboardControl method addAlarmBrowser.
/**
* Add alarm browser widget to dashboard
*/
public void addAlarmBrowser() {
DashboardElement e = new DashboardElement(DashboardElement.ALARM_VIEWER, DEFAULT_OBJECT_REFERENCE_CONFIG);
addElement(e);
}
Aggregations