Search in sources :

Example 66 with AbstractObject

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;
}
Also used : AbstractNode(org.netxms.client.objects.AbstractNode) InetAddressEx(org.netxms.base.InetAddressEx) Zone(org.netxms.client.objects.Zone) AbstractObject(org.netxms.client.objects.AbstractObject) AccessPoint(org.netxms.client.objects.AccessPoint) Interface(org.netxms.client.objects.Interface)

Example 67 with AbstractObject

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();
    }
}
Also used : ObjectSelectionDialog(org.netxms.ui.eclipse.objectbrowser.dialogs.ObjectSelectionDialog) AbstractObject(org.netxms.client.objects.AbstractObject)

Example 68 with AbstractObject

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);
        }
    });
}
Also used : IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) AbstractObject(org.netxms.client.objects.AbstractObject) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) NetworkMapObject(org.netxms.client.maps.elements.NetworkMapObject)

Example 69 with AbstractObject

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);
        }
}
Also used : AbstractObject(org.netxms.client.objects.AbstractObject) GeoLocation(org.netxms.base.GeoLocation)

Example 70 with AbstractObject

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;
}
Also used : AbstractObject(org.netxms.client.objects.AbstractObject)

Aggregations

AbstractObject (org.netxms.client.objects.AbstractObject)216 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)55 NXCSession (org.netxms.client.NXCSession)51 AbstractNode (org.netxms.client.objects.AbstractNode)31 PartInitException (org.eclipse.ui.PartInitException)27 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)26 ConsoleJob (org.netxms.ui.eclipse.jobs.ConsoleJob)25 Cluster (org.netxms.client.objects.Cluster)22 ObjectSelectionDialog (org.netxms.ui.eclipse.objectbrowser.dialogs.ObjectSelectionDialog)22 ArrayList (java.util.ArrayList)20 Node (org.netxms.client.objects.Node)20 GridData (org.eclipse.swt.layout.GridData)18 Composite (org.eclipse.swt.widgets.Composite)18 NetworkMapObject (org.netxms.client.maps.elements.NetworkMapObject)18 GridLayout (org.eclipse.swt.layout.GridLayout)15 Container (org.netxms.client.objects.Container)15 Interface (org.netxms.client.objects.Interface)12 Template (org.netxms.client.objects.Template)12 SelectionEvent (org.eclipse.swt.events.SelectionEvent)11 Point (org.eclipse.swt.graphics.Point)11