use of org.netxms.client.datacollection.DataCollectionObject in project netxms by netxms.
the class DataCollectionEditor method duplicateItems.
/**
* Duplicate selected item(s)
*/
private void duplicateItems() {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
Iterator<?> it = selection.iterator();
final long[] dciList = new long[selection.size()];
for (int i = 0; (i < dciList.length) && it.hasNext(); i++) dciList[i] = ((DataCollectionObject) it.next()).getId();
new ConsoleJob(Messages.get().DataCollectionEditor_DupJob_Title + object.getObjectName(), this, Activator.PLUGIN_ID, null) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
dciConfig.copyObjects(dciConfig.getNodeId(), dciList);
dciConfig.close();
dciConfig.open();
runInUIThread(new Runnable() {
@Override
public void run() {
viewer.setInput(dciConfig.getItems());
}
});
}
@Override
protected String getErrorMessage() {
return Messages.get().DataCollectionEditor_DupJob_Error + object.getObjectName();
}
}.start();
}
use of org.netxms.client.datacollection.DataCollectionObject in project netxms by netxms.
the class DataCollectionEditor method convertToTemplate.
/**
* Convert selected item(s) to template items
*/
private void convertToTemplate() {
final ObjectSelectionDialog dlg = new ObjectSelectionDialog(getSite().getShell(), null, ObjectSelectionDialog.createTemplateSelectionFilter());
dlg.showFilterToolTip(false);
if (dlg.open() != Window.OK)
return;
AbstractObject[] objects = dlg.getSelectedObjects(Template.class);
if (objects.length == 0)
return;
final Template template = (Template) objects[0];
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
Iterator<?> it = selection.iterator();
final long[] dciList = new long[selection.size()];
for (int i = 0; (i < dciList.length) && it.hasNext(); i++) dciList[i] = ((DataCollectionObject) it.next()).getId();
new ConsoleJob(Messages.get().DataCollectionEditor_ConvertJob_TitlePrefix + object.getObjectName() + Messages.get().DataCollectionEditor_ConvertJob_TitleSuffix, this, Activator.PLUGIN_ID, null) {
@Override
protected void runInternal(IProgressMonitor monitor) throws Exception {
monitor.beginTask(Messages.get(getDisplay()).DataCollectionEditor_ConvertJob_TaskName, 4);
boolean needApply = true;
for (long id : template.getChildIdList()) {
if (id == dciConfig.getNodeId()) {
needApply = false;
break;
}
}
monitor.worked(1);
dciConfig.copyObjects(template.getObjectId(), dciList);
for (long id : dciList) dciConfig.deleteObject(id);
dciConfig.close();
monitor.worked(1);
if (needApply) {
boolean success = false;
int retries = 5;
do {
try {
session.applyTemplate(template.getObjectId(), dciConfig.getNodeId());
success = true;
} catch (NXCException e) {
if (e.getErrorCode() != RCC.COMPONENT_LOCKED)
throw e;
Thread.sleep(200);
}
retries--;
} while (!success && (retries > 0));
}
monitor.worked(1);
boolean success = false;
int retries = 5;
do {
try {
Thread.sleep(500);
dciConfig.open();
success = true;
} catch (NXCException e) {
if (e.getErrorCode() != RCC.COMPONENT_LOCKED)
throw e;
}
retries--;
} while (!success && (retries > 0));
runInUIThread(new Runnable() {
@Override
public void run() {
viewer.setInput(dciConfig.getItems());
}
});
monitor.done();
}
@Override
protected String getErrorMessage() {
return Messages.get().DataCollectionEditor_ConvertJob_ErrorPrefix + object.getObjectName() + Messages.get().DataCollectionEditor_ConvertJob_ErrorSuffix;
}
}.start();
}
use of org.netxms.client.datacollection.DataCollectionObject in project netxms by netxms.
the class DciLabelProvider method getColumnText.
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
*/
@Override
public String getColumnText(Object element, int columnIndex) {
DataCollectionObject dci = (DataCollectionObject) element;
switch(columnIndex) {
case DataCollectionEditor.COLUMN_ID:
return Long.toString(dci.getId());
case DataCollectionEditor.COLUMN_ORIGIN:
return originTexts.get(dci.getOrigin());
case DataCollectionEditor.COLUMN_DESCRIPTION:
return dci.getDescription();
case DataCollectionEditor.COLUMN_PARAMETER:
return dci.getName();
case DataCollectionEditor.COLUMN_DATATYPE:
if (dci instanceof DataCollectionItem)
return DataCollectionDisplayInfo.getDataTypeName(((DataCollectionItem) dci).getDataType());
return Messages.get().DciLabelProvider_Table;
case DataCollectionEditor.COLUMN_INTERVAL:
if (dci.isUseAdvancedSchedule())
return Messages.get().DciLabelProvider_CustomSchedule;
if (dci.getPollingInterval() <= 0)
return Messages.get().DciLabelProvider_Default;
return Integer.toString(dci.getPollingInterval());
case DataCollectionEditor.COLUMN_RETENTION:
if ((dci.getFlags() & DataCollectionItem.DCF_NO_STORAGE) != 0)
return Messages.get().DciLabelProvider_None;
int days = dci.getRetentionTime();
if (days <= 0)
return Messages.get().DciLabelProvider_Default;
return Integer.toString(days) + ((days == 1) ? Messages.get().DciLabelProvider_Day : Messages.get().DciLabelProvider_Days);
case DataCollectionEditor.COLUMN_STATUS:
return statusTexts.get(dci.getStatus());
case DataCollectionEditor.COLUMN_THRESHOLD:
StringBuilder thresholds = new StringBuilder();
if ((dci instanceof DataCollectionItem)) {
ArrayList<Threshold> list = ((DataCollectionItem) dci).getThresholds();
for (int i = 0; i < list.size(); i++) {
Threshold tr = list.get(i);
int f = tr.getFunction();
StringBuilder text = new StringBuilder(ThresholdLabelProvider.FUNCTIONS[f]);
text.append(tr.getSampleCount());
// $NON-NLS-1$
text.append(") ");
if (f != Threshold.F_SCRIPT) {
text.append(ThresholdLabelProvider.OPERATIONS[tr.getOperation()]);
text.append(' ');
text.append(tr.getValue());
}
thresholds.append(text);
if (i < list.size() - 1)
// $NON-NLS-1$
thresholds.append(", ");
}
}
if ((dci instanceof DataCollectionTable)) {
List<TableThreshold> list = ((DataCollectionTable) dci).getThresholds();
for (int i = 0; i < list.size(); i++) {
thresholds.append(list.get(i).getConditionAsText());
if (i + 1 != list.size())
// $NON-NLS-1$
thresholds.append(", ");
}
}
return thresholds.toString();
case DataCollectionEditor.COLUMN_TEMPLATE:
if (dci.getTemplateId() == 0)
return null;
AbstractObject object = session.findObjectById(dci.getTemplateId());
if (object == null)
return Messages.get().DciLabelProvider_Unknown;
if (!(object instanceof Template))
return object.getObjectName();
Set<AbstractObject> parents = object.getAllParents(null);
StringBuilder sb = new StringBuilder();
for (AbstractObject parent : parents) {
sb.append(parent.getObjectName());
// $NON-NLS-1$
sb.append("/");
}
sb.append(object.getObjectName());
return sb.toString();
}
return null;
}
Aggregations