use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class ObjectConditionEditor method createContent.
/* (non-Javadoc)
* @see org.netxms.ui.eclipse.logviewer.widgets.ConditionEditor#createContent(org.eclipse.swt.widgets.Composite)
*/
@Override
protected void createContent(Composite parent, ColumnFilter initialFilter) {
Composite group = new Composite(this, SWT.NONE);
GridLayout layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.horizontalSpacing = WidgetHelper.INNER_SPACING;
layout.numColumns = 2;
group.setLayout(layout);
GridData gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
group.setLayoutData(gd);
objectName = new CLabel(group, SWT.NONE);
toolkit.adapt(objectName);
gd = new GridData();
gd.horizontalAlignment = SWT.FILL;
gd.grabExcessHorizontalSpace = true;
gd.verticalAlignment = SWT.TOP;
objectName.setLayoutData(gd);
objectName.setText(EMPTY_SELECTION_TEXT);
final ImageHyperlink selectionLink = toolkit.createImageHyperlink(group, SWT.NONE);
selectionLink.setImage(SharedIcons.IMG_FIND);
selectionLink.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
selectObject();
}
});
if (initialFilter != null) {
switch(initialFilter.getType()) {
case EQUALS:
setSelectedOperation(initialFilter.isNegated() ? 1 : 0);
objectId = initialFilter.getNumericValue();
break;
case CHILDOF:
setSelectedOperation(initialFilter.isNegated() ? 3 : 2);
objectId = initialFilter.getNumericValue();
break;
default:
break;
}
if (objectId != 0) {
AbstractObject object = ConsoleSharedData.getSession().findObjectById(objectId);
if (object != null) {
objectName.setText(object.getObjectName());
objectName.setImage(labelProvider.getImage(object));
} else {
// $NON-NLS-1$ //$NON-NLS-2$
objectName.setText("[" + objectId + "]");
}
}
}
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class ShowObjectSnmpTrapLog method execute.
/* (non-Javadoc)
* @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
ISelection selection = window.getActivePage().getSelection();
if ((selection == null) || !(selection instanceof IStructuredSelection) || selection.isEmpty())
return null;
ColumnFilter cf = new ColumnFilter();
cf.setOperation(ColumnFilterSetOperation.OR);
for (Object o : ((IStructuredSelection) selection).toList()) {
if (!(o instanceof AbstractObject))
continue;
cf.addSubFilter(new ColumnFilter((o instanceof AbstractNode) ? ColumnFilterType.EQUALS : ColumnFilterType.CHILDOF, ((AbstractObject) o).getObjectId()));
}
try {
// $NON-NLS-1$
LogViewer view = (LogViewer) window.getActivePage().showView(LogViewer.ID, "SnmpTrapLog", IWorkbenchPage.VIEW_ACTIVATE);
LogFilter filter = new LogFilter();
// $NON-NLS-1$
filter.setColumnFilter("object_id", cf);
List<OrderingColumn> orderingColumns = new ArrayList<OrderingColumn>(1);
// $NON-NLS-1$
orderingColumns.add(new OrderingColumn("trap_timestamp", Messages.get().ShowObjectSnmpTrapLog_Time, true));
filter.setOrderingColumns(orderingColumns);
view.queryWithFilter(filter);
} catch (PartInitException e) {
MessageDialogHelper.openError(window.getShell(), Messages.get().ShowObjectSnmpTrapLog_Error, String.format(Messages.get().ShowObjectSnmpTrapLog_ErrorOpenLogViewer, e.getMessage()));
}
return null;
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class AbstractNetworkMapView method transformSelection.
/**
* Transform viewer's selection to form usable by another plugins by extracting NetXMS objects from map elements.
*
* @param viewerSelection viewer's selection
* @return selection containing only NetXMS objects
*/
@SuppressWarnings("rawtypes")
private IStructuredSelection transformSelection(ISelection viewerSelection) {
IStructuredSelection selection = (IStructuredSelection) viewerSelection;
if (selection.isEmpty())
return selection;
List<Object> objects = new ArrayList<Object>();
Iterator it = selection.iterator();
while (it.hasNext()) {
Object element = it.next();
if (element instanceof NetworkMapObject) {
AbstractObject object = session.findObjectById(((NetworkMapObject) element).getObjectId());
if (object != null) {
objects.add(object);
} else {
// Fix for issue NX-24
// If object not found, add map element to selection
// This will allow removal of unknown objects from map
objects.add(element);
}
} else if (isSelectableElement(element)) {
objects.add(element);
}
}
return new StructuredSelection(objects.toArray());
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class AbstractNetworkMapView method createPartControl.
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.part.ViewPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
@Override
public final void createPartControl(Composite parent) {
FillLayout layout = new FillLayout();
parent.setLayout(layout);
viewer = new ExtendedGraphViewer(parent, SWT.NONE);
viewer.setContentProvider(new MapContentProvider(viewer));
labelProvider = new MapLabelProvider(viewer);
viewer.setLabelProvider(labelProvider);
viewer.setBackgroundColor(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND).getRGB());
IDialogSettings settings = Activator.getDefault().getDialogSettings();
try {
// $NON-NLS-1$
alwaysFitLayout = settings.getBoolean(viewId + ".alwaysFitLayout");
} catch (Exception e) {
}
// Zoom level restore and save
try {
// $NON-NLS-1$
viewer.zoomTo(settings.getDouble(viewId + ".zoom"));
} catch (NumberFormatException e) {
}
viewer.getGraphControl().addDisposeListener(new DisposeListener() {
@Override
public void widgetDisposed(DisposeEvent e) {
IDialogSettings settings = Activator.getDefault().getDialogSettings();
// $NON-NLS-1$
settings.put(viewId + ".zoom", viewer.getZoom());
}
});
getSite().setSelectionProvider(this);
ISelectionChangedListener listener = new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent e) {
if (bendpointEditor != null) {
bendpointEditor.stop();
bendpointEditor = null;
}
currentSelection = transformSelection(e.getSelection());
if (currentSelection.size() == 1) {
int selectionType = analyzeSelection(currentSelection);
if (selectionType == SELECTION_OBJECTS) {
AbstractObject object = (AbstractObject) currentSelection.getFirstElement();
actionOpenDrillDownObject.setEnabled(object.getDrillDownObjectId() != 0);
} else {
actionOpenDrillDownObject.setEnabled(false);
if (selectionType == SELECTION_LINKS) {
NetworkMapLink link = (NetworkMapLink) currentSelection.getFirstElement();
actionLockLink.setChecked(link.isLocked());
if (!link.isLocked() && link.getRouting() == NetworkMapLink.ROUTING_BENDPOINTS) {
bendpointEditor = new BendpointEditor(link, (GraphConnection) viewer.getGraphControl().getSelection().get(0), viewer);
}
}
}
} else {
actionOpenDrillDownObject.setEnabled(false);
}
if (selectionListeners.isEmpty())
return;
SelectionChangedEvent event = new SelectionChangedEvent(AbstractNetworkMapView.this, currentSelection);
for (ISelectionChangedListener l : selectionListeners) {
l.selectionChanged(event);
}
}
};
viewer.addPostSelectionChangedListener(listener);
viewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
int selectionType = analyzeSelection(currentSelection);
if (selectionType == SELECTION_EMPTY)
return;
if (selectionType == SELECTION_OBJECTS) {
AbstractObject object = (AbstractObject) currentSelection.getFirstElement();
if (object instanceof Rack) {
openRackView(Long.toString(object.getObjectId()));
return;
}
for (DoubleClickHandlerData h : doubleClickHandlers) {
if ((h.enabledFor == null) || (h.enabledFor.isInstance(object))) {
if (h.handler.onDoubleClick(object)) {
return;
}
}
}
} else if (((NetworkMapLink) currentSelection.getFirstElement()).isLocked() && selectionType == SELECTION_LINKS) {
openLinkDci();
}
// Default behavior
actionOpenDrillDownObject.run();
}
});
sessionListener = new SessionListener() {
@Override
public void notificationHandler(final SessionNotification n) {
if (n.getCode() == SessionNotification.OBJECT_CHANGED) {
viewer.getControl().getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
onObjectChange((AbstractObject) n.getObject());
}
});
}
}
};
session.addListener(sessionListener);
createActions();
contributeToActionBars();
createPopupMenu();
if (automaticLayoutEnabled) {
setLayoutAlgorithm(layoutAlgorithm, true);
} else {
viewer.setLayoutAlgorithm(new ManualLayout());
}
activateContext();
registerDoubleClickHandlers();
setupMapControl();
refreshMap();
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class AbstractNetworkMapView method analyzeSelection.
/**
* Tests if given selection contains only NetXMS objects
*
* @param selection
* @return
*/
@SuppressWarnings("rawtypes")
private int analyzeSelection(IStructuredSelection selection) {
if (selection.isEmpty())
return SELECTION_EMPTY;
Iterator it = selection.iterator();
Object first = it.next();
int type;
Class firstClass;
if (first instanceof AbstractObject) {
type = SELECTION_OBJECTS;
firstClass = AbstractObject.class;
} else if (first instanceof NetworkMapElement) {
type = SELECTION_ELEMENTS;
firstClass = NetworkMapElement.class;
} else if (first instanceof NetworkMapLink) {
type = SELECTION_LINKS;
firstClass = NetworkMapLink.class;
} else {
return SELECTION_MIXED;
}
while (it.hasNext()) {
final Object o = it.next();
if (!firstClass.isInstance(o))
return SELECTION_MIXED;
}
return type;
}
Aggregations