use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class ObjectSearchResultLabelProvider method getColumnText.
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
*/
@Override
public String getColumnText(Object element, int columnIndex) {
if (!(element instanceof AbstractObject))
return null;
AbstractObject object = (AbstractObject) element;
switch(columnIndex) {
case ObjectFinder.COL_CLASS:
return object.getObjectClassName();
case ObjectFinder.COL_ID:
return Long.toString(object.getObjectId());
case ObjectFinder.COL_IP_ADDRESS:
if (object instanceof AbstractNode) {
InetAddressEx addr = ((AbstractNode) object).getPrimaryIP();
return addr.isValidUnicastAddress() ? addr.getHostAddress() : null;
}
if (object instanceof AccessPoint) {
InetAddressEx addr = ((AccessPoint) object).getIpAddress();
return addr.isValidUnicastAddress() ? addr.getHostAddress() : null;
}
if (object instanceof Interface) {
return ((Interface) object).getIpAddressListAsString();
}
return null;
case ObjectFinder.COL_NAME:
return wbLabelProvider.getText(element);
case ObjectFinder.COL_PARENT:
return getParentNames((AbstractObject) element);
case ObjectFinder.COL_ZONE:
if (object instanceof AbstractNode) {
long zoneId = ((AbstractNode) object).getZoneId();
Zone zone = ConsoleSharedData.getSession().findZone(zoneId);
return (zone != null) ? zone.getObjectName() + " (" + Long.toString(zoneId) + ")" : Long.toString(zoneId);
} else if (object instanceof Interface) {
long zoneId = ((Interface) object).getZoneId();
Zone zone = ConsoleSharedData.getSession().findZone(zoneId);
return (zone != null) ? zone.getObjectName() + " (" + Long.toString(zoneId) + ")" : Long.toString(zoneId);
}
return null;
}
return null;
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class ObjectSelector method selectionButtonHandler.
/* (non-Javadoc)
* @see org.netxms.ui.eclipse.widgets.AbstractSelector#selectionButtonHandler()
*/
@Override
protected void selectionButtonHandler() {
ObjectSelectionDialog dlg = new ObjectSelectionDialog(getShell(), null, classFilter);
dlg.enableMultiSelection(false);
if (dlg.open() == Window.OK) {
AbstractObject[] objects = dlg.getSelectedObjects(objectClass);
if (objects.length > 0) {
objectId = objects[0].getObjectId();
setText(objects[0].getObjectName());
} else {
objectId = 0;
setText(emptySelectionName);
}
fireModifyListeners();
}
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class NetworkMapWidget method enableObjectDoubleClick.
public void enableObjectDoubleClick() {
registerDoubleClickHandlers();
viewer.addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
if (selection.isEmpty() || !(selection.getFirstElement() instanceof NetworkMapObject))
return;
AbstractObject object = ConsoleSharedData.getSession().findObjectById(((NetworkMapObject) selection.getFirstElement()).getObjectId());
if (object == null)
return;
for (DoubleClickHandlerData h : doubleClickHandlers) {
if ((h.enabledFor == null) || (h.enabledFor.isInstance(object))) {
if (h.handler.onDoubleClick(object)) {
return;
}
}
}
// Default behaviour
openDrillDownObject(object);
}
});
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class GeoLocationCache method onObjectChange.
/**
* Handle object change
*
* @param object
*/
private void onObjectChange(AbstractObject object) {
if ((object.getObjectClass() != AbstractObject.OBJECT_NODE) && (object.getObjectClass() != AbstractObject.OBJECT_MOBILEDEVICE) && (object.getObjectClass() != AbstractObject.OBJECT_CLUSTER) && (object.getObjectClass() != AbstractObject.OBJECT_CONTAINER) && (object.getObjectClass() != AbstractObject.OBJECT_RACK) && (object.getObjectClass() != AbstractObject.OBJECT_SENSOR))
return;
GeoLocation prevLocation = null;
boolean cacheChanged = false;
synchronized (locationTree) {
GeoLocation gl = object.getGeolocation();
if (gl.getType() == GeoLocation.UNSET) {
AbstractObject prevObject = objects.remove(object.getObjectId());
if (prevObject != null)
prevLocation = prevObject.getGeolocation();
cacheChanged = locationTree.remove(object.getObjectId());
} else {
if (!objects.containsKey(object.getObjectId())) {
locationTree.insert(gl.getLatitude(), gl.getLongitude(), object.getObjectId());
cacheChanged = true;
} else {
prevLocation = objects.get(object.getObjectId()).getGeolocation();
if (!gl.equals(prevLocation)) {
locationTree.remove(object.getObjectId());
locationTree.insert(gl.getLatitude(), gl.getLongitude(), object.getObjectId());
cacheChanged = true;
}
}
objects.put(object.getObjectId(), object);
}
}
// Notify listeners about cache change
if (cacheChanged)
synchronized (listeners) {
for (GeoLocationCacheListener l : listeners) l.geoLocationCacheChanged(object, prevLocation);
}
}
use of org.netxms.client.objects.AbstractObject in project netxms by netxms.
the class GeoLocationCache method getObjectsInArea.
/**
* Get all objects in given area. If parent ID is set, only objects under given parent will be included.
*
* @param area geographical area
* @param parentId parent object ID or 0
* @param filterString object name filter
* @return
*/
public List<AbstractObject> getObjectsInArea(Area area, long parentId, String filterString) {
List<AbstractObject> list = null;
synchronized (locationTree) {
List<Long> idList = locationTree.query(area);
list = new ArrayList<AbstractObject>(idList.size());
for (Long id : idList) {
AbstractObject o = objects.get(id);
if ((o != null) && ((parentId == 0) || (o.getObjectId() == parentId) || o.isChildOf(parentId)) && (filterString != null ? o.getObjectName().toLowerCase().contains(filterString) : true))
list.add(o);
}
}
return list;
}
Aggregations