Search in sources :

Example 1 with AccessPoint

use of org.netxms.client.objects.AccessPoint 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 2 with AccessPoint

use of org.netxms.client.objects.AccessPoint in project netxms by netxms.

the class ApplyPolicy method selectionChanged.

@Override
public void selectionChanged(IAction action, ISelection selection) {
    if ((selection instanceof IStructuredSelection) && (((IStructuredSelection) selection).size() != 0)) {
        selectedObjects = new ArrayList<AbstractObject>();
        for (Object s : ((IStructuredSelection) selection).toList()) {
            if ((s instanceof Node) || (s instanceof Interface) || (s instanceof AccessPoint)) {
                action.setEnabled(true);
                selectedObjects.add(((AbstractObject) s));
            }
        }
    } else {
        action.setEnabled(false);
        selectedObjects = null;
    }
}
Also used : AbstractObject(org.netxms.client.objects.AbstractObject) Node(org.netxms.client.objects.Node) AccessPoint(org.netxms.client.objects.AccessPoint) AbstractObject(org.netxms.client.objects.AbstractObject) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Interface(org.netxms.client.objects.Interface)

Example 3 with AccessPoint

use of org.netxms.client.objects.AccessPoint in project netxms by netxms.

the class GeneralInfo method fillTable.

/* (non-Javadoc)
	 * @see org.netxms.ui.eclipse.objectview.objecttabs.elements.TableElement#fillTable()
	 */
@Override
protected void fillTable() {
    final AbstractObject object = getObject();
    final NXCSession session = (NXCSession) ConsoleSharedData.getSession();
    addPair(Messages.get().GeneralInfo_ID, Long.toString(object.getObjectId()));
    if (object.getGuid() != null)
        addPair(Messages.get().GeneralInfo_GUID, object.getGuid().toString());
    addPair(Messages.get().GeneralInfo_Class, object.getObjectClassName());
    if (object.isInMaintenanceMode())
        addPair(Messages.get().GeneralInfo_Status, StatusDisplayInfo.getStatusText(object.getStatus()) + Messages.get().GeneralInfo_Maintenance);
    else
        addPair(Messages.get().GeneralInfo_Status, StatusDisplayInfo.getStatusText(object.getStatus()));
    switch(object.getObjectClass()) {
        case AbstractObject.OBJECT_CHASSIS:
            Chassis chassis = (Chassis) object;
            if (chassis.getControllerId() != 0) {
                AbstractNode node = session.findObjectById(chassis.getControllerId(), AbstractNode.class);
                if (node != null) {
                    addPair(Messages.get().GeneralInfo_Controller, node.getObjectName());
                }
            }
            if (chassis.getRackId() != 0) {
                Rack rack = session.findObjectById(chassis.getRackId(), Rack.class);
                if (rack != null) {
                    addPair(Messages.get().GeneralInfo_Rack, String.format(Messages.get().GeneralInfo_Units, rack.getObjectName(), rack.isTopBottomNumbering() ? chassis.getRackPosition() : chassis.getRackPosition() - chassis.getRackHeight() + 1, rack.isTopBottomNumbering() ? chassis.getRackPosition() + chassis.getRackHeight() - 1 : chassis.getRackPosition()));
                }
            }
            break;
        case AbstractObject.OBJECT_INTERFACE:
            Interface iface = (Interface) object;
            Interface parentIface = iface.getParentInterface();
            if (parentIface != null)
                addPair("Parent interface", parentIface.getObjectName());
            addPair(Messages.get().GeneralInfo_IfIndex, Integer.toString(iface.getIfIndex()));
            String typeName = iface.getIfTypeName();
            // $NON-NLS-1$
            addPair(Messages.get().GeneralInfo_IfType, (typeName != null) ? String.format("%d (%s)", iface.getIfType(), typeName) : Integer.toString(iface.getIfType()));
            addPair(Messages.get().GeneralInfo_Description, iface.getDescription(), false);
            addPair(Messages.get().GeneralInfo_Alias, iface.getAlias(), false);
            if (iface.getMtu() > 0)
                addPair(Messages.get().GeneralInfo_MTU, Integer.toString(iface.getMtu()));
            if (iface.getSpeed() > 0)
                addPair(Messages.get().GeneralInfo_Speed, InterfaceListLabelProvider.ifSpeedTotext(iface.getSpeed()));
            addPair(Messages.get().GeneralInfo_MACAddr, iface.getMacAddress().toString());
            if ((iface.getFlags() & Interface.IF_PHYSICAL_PORT) != 0) {
                // $NON-NLS-1$
                addPair(Messages.get().GeneralInfo_SlotPort, Integer.toString(iface.getSlot()) + "/" + Integer.toString(iface.getPort()));
                AbstractNode node = iface.getParentNode();
                if ((node != null) && node.is8021xSupported()) {
                    addPair(Messages.get().GeneralInfo_8021xPAE, iface.getDot1xPaeStateAsText());
                    addPair(Messages.get().GeneralInfo_8021xBackend, iface.getDot1xBackendStateAsText());
                }
            }
            if (iface.getIpAddressList().size() > 0) {
                if (session.isZoningEnabled())
                    addPair(Messages.get().GeneralInfo_ZoneId, getZoneName(iface.getZoneId()));
                addPair(Messages.get().GeneralInfo_IPAddr, iface.getIpAddressList().get(0).toString());
                for (int i = 1; i < iface.getIpAddressList().size(); i++) // $NON-NLS-1$
                addPair("", iface.getIpAddressList().get(i).toString());
            }
            addPair(Messages.get().GeneralInfo_AdmState, iface.getAdminStateAsText());
            addPair(Messages.get().GeneralInfo_OperState, iface.getOperStateAsText());
            addPair(Messages.get().GeneralInfo_ExpectedState, ifaceExpectedState[iface.getExpectedState()]);
            break;
        case AbstractObject.OBJECT_NODE:
            AbstractNode node = (AbstractNode) object;
            if (session.isZoningEnabled())
                addPair(Messages.get().GeneralInfo_ZoneId, getZoneName(node.getZoneId()));
            addPair(Messages.get().GeneralInfo_PrimaryHostName, node.getPrimaryName());
            addPair(Messages.get().GeneralInfo_PrimaryIP, node.getPrimaryIP().getHostAddress());
            if (node.hasAgent())
                addPair(Messages.get().GeneralInfo_AgentVersion, node.getAgentVersion());
            addPair(Messages.get().GeneralInfo_SysDescr, node.getSystemDescription(), false);
            addPair(Messages.get().GeneralInfo_PlatformName, node.getPlatformName(), false);
            addPair(Messages.get().GeneralInfo_SysName, node.getSnmpSysName(), false);
            addPair(Messages.get().GeneralInfo_SysOID, node.getSnmpOID(), false);
            addPair(Messages.get().GeneralInfo_SNMPsysLocation, node.getSnmpSysLocation(), false);
            addPair(Messages.get().GeneralInfo_SNMPsysContact, node.getSnmpSysContact(), false);
            if ((node.getCapabilities() & AbstractNode.NC_IS_BRIDGE) != 0)
                addPair(Messages.get().GeneralInfo_BridgeBaseAddress, node.getBridgeBaseAddress().toString());
            addPair(Messages.get().GeneralInfo_Driver, node.getDriverName(), false);
            addPair(Messages.get().GeneralInfo_NodeType, node.getNodeType().toString(), false);
            if (node.getBootTime() != null)
                addPair(Messages.get().GeneralInfo_BootTime, RegionalSettings.getDateTimeFormat().format(node.getBootTime()), false);
            if (node.hasAgent())
                addPair(Messages.get().GeneralInfo_AgentStatus, (node.getStateFlags() & Node.NSF_AGENT_UNREACHABLE) != 0 ? Messages.get().GeneralInfo_Unreachable : Messages.get().GeneralInfo_Connected);
            if (node.getLastAgentCommTime() != null)
                addPair(Messages.get().GeneralInfo_LastAgentContact, RegionalSettings.getDateTimeFormat().format(node.getLastAgentCommTime()), false);
            if (node.getRackId() != 0) {
                Rack rack = session.findObjectById(node.getRackId(), Rack.class);
                if (rack != null) {
                    addPair(Messages.get().GeneralInfo_Rack, String.format(Messages.get().GeneralInfo_Units, rack.getObjectName(), rack.isTopBottomNumbering() ? node.getRackPosition() : node.getRackPosition() - node.getRackHeight() + 1, rack.isTopBottomNumbering() ? node.getRackPosition() + node.getRackHeight() - 1 : node.getRackPosition()));
                }
            }
            break;
        case AbstractObject.OBJECT_MOBILEDEVICE:
            MobileDevice md = (MobileDevice) object;
            if (md.getLastReportTime().getTime() == 0)
                addPair(Messages.get().GeneralInfo_LastReport, Messages.get().GeneralInfo_Never);
            else
                addPair(Messages.get().GeneralInfo_LastReport, RegionalSettings.getDateTimeFormat().format(md.getLastReportTime()));
            addPair(Messages.get().GeneralInfo_DeviceId, md.getDeviceId());
            addPair(Messages.get().GeneralInfo_Vendor, md.getVendor());
            addPair(Messages.get().GeneralInfo_Model, md.getModel());
            addPair(Messages.get().GeneralInfo_Serial, md.getSerialNumber());
            addPair(Messages.get().GeneralInfo_OS, md.getOsName());
            addPair(Messages.get().GeneralInfo_OSVersion, md.getOsVersion());
            addPair(Messages.get().GeneralInfo_User, md.getUserId(), false);
            if (md.getBatteryLevel() >= 0)
                // $NON-NLS-1$
                addPair(Messages.get().GeneralInfo_BatteryLevel, Integer.toString(md.getBatteryLevel()) + "%");
            break;
        case AbstractObject.OBJECT_SENSOR:
            Sensor sensor = (Sensor) object;
            addPair(Messages.get().SensorStatus_DeviceAddress, sensor.getDeviceAddress(), false);
            if (sensor.getMacAddress() != null && !sensor.getMacAddress().isNull())
                addPair(Messages.get().SensorStatus_MacAddress, sensor.getMacAddress().toString(), true);
            addPair(Messages.get().SensorStatus_Vendor, sensor.getVendor(), true);
            addPair(Messages.get().SensorStatus_DeviceClass, Sensor.DEV_CLASS_NAMES[sensor.getDeviceClass()]);
            addPair(Messages.get().SensorStatus_CommProtocol, Sensor.COMM_METHOD[sensor.getCommProtocol()]);
            addPair(Messages.get().SensorStatus_SerialNumber, sensor.getSerialNumber(), true);
            addPair(Messages.get().SensorStatus_MetaType, sensor.getMetaType(), true);
            addPair(Messages.get().SensorStatus_Description, sensor.getDescription(), true);
            if (sensor.getFrameCount() != 0)
                addPair(Messages.get().SensorStatus_FrameCount, Integer.toString(sensor.getFrameCount()));
            if (sensor.getSignalStrenght() != 1)
                addPair(Messages.get().SensorStatus_RSSI, Integer.toString(sensor.getSignalStrenght()));
            if (sensor.getSignalNoise() != Integer.MAX_VALUE)
                addPair(Messages.get().SensorStatus_SNR, Double.toString((double) sensor.getSignalNoise() / 10));
            if (sensor.getFrequency() != 0)
                addPair(Messages.get().SensorStatus_Frequency, Double.toString((double) sensor.getFrequency() / 10));
            break;
        case AbstractObject.OBJECT_ACCESSPOINT:
            AccessPoint ap = (AccessPoint) object;
            addPair(Messages.get().GeneralInfo_State, ap.getState().toString());
            addPair(Messages.get().GeneralInfo_Vendor, ap.getVendor());
            addPair(Messages.get().GeneralInfo_Model, ap.getModel());
            addPair(Messages.get().GeneralInfo_Serial, ap.getSerialNumber());
            addPair(Messages.get().GeneralInfo_MACAddr, ap.getMacAddress().toString());
            if (ap.getIpAddress().isValidAddress())
                addPair(Messages.get().GeneralInfo_IPAddr, ap.getIpAddress().getHostAddress());
            break;
        case AbstractObject.OBJECT_SUBNET:
            Subnet subnet = (Subnet) object;
            if (session.isZoningEnabled())
                addPair(Messages.get().GeneralInfo_ZoneId, getZoneName(subnet.getZoneId()));
            addPair(Messages.get().GeneralInfo_IPAddress, subnet.getNetworkAddress().toString());
            break;
        case AbstractObject.OBJECT_ZONE:
            Zone zone = (Zone) object;
            addPair(Messages.get().GeneralInfo_ZoneId, Long.toString(zone.getUIN()));
            break;
        case AbstractObject.OBJECT_NODELINK:
            AbstractNode linkedNode = (AbstractNode) session.findObjectById(((NodeLink) object).getNodeId(), AbstractNode.class);
            if (linkedNode != null)
                addPair(Messages.get().GeneralInfo_LinkedNode, linkedNode.getObjectName());
        case AbstractObject.OBJECT_BUSINESSSERVICE:
        case AbstractObject.OBJECT_BUSINESSSERVICEROOT:
            ServiceContainer service = (ServiceContainer) object;
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMinimumFractionDigits(3);
            nf.setMaximumFractionDigits(3);
            // $NON-NLS-1$
            addPair(Messages.get().GeneralInfo_UptimeDay, nf.format(service.getUptimeForDay()) + "%");
            // $NON-NLS-1$
            addPair(Messages.get().GeneralInfo_UptimeWeek, nf.format(service.getUptimeForWeek()) + "%");
            // $NON-NLS-1$
            addPair(Messages.get().GeneralInfo_UptimeMonth, nf.format(service.getUptimeForMonth()) + "%");
            break;
        case AbstractObject.OBJECT_SLMCHECK:
            ServiceCheck check = (ServiceCheck) object;
            addPair(Messages.get().GeneralInfo_IsTemplate, check.isTemplate() ? Messages.get().GeneralInfo_Yes : Messages.get().GeneralInfo_No);
            if (check.getTemplateId() != 0) {
                ServiceCheck tmpl = (ServiceCheck) session.findObjectById(check.getTemplateId(), ServiceCheck.class);
                if (tmpl != null)
                    addPair(Messages.get().GeneralInfo_Template, tmpl.getObjectName());
            }
            break;
        default:
            break;
    }
    if (object.getGeolocation().getType() != GeoLocation.UNSET)
        addPair(Messages.get().GeneralInfo_Location, object.getGeolocation().toString());
    if (!object.getPostalAddress().isEmpty())
        addPair(Messages.get().GeneralInfo_PostalAddress, object.getPostalAddress().getAddressLine());
}
Also used : Chassis(org.netxms.client.objects.Chassis) ServiceCheck(org.netxms.client.objects.ServiceCheck) NXCSession(org.netxms.client.NXCSession) AbstractNode(org.netxms.client.objects.AbstractNode) Zone(org.netxms.client.objects.Zone) AccessPoint(org.netxms.client.objects.AccessPoint) AccessPoint(org.netxms.client.objects.AccessPoint) Rack(org.netxms.client.objects.Rack) MobileDevice(org.netxms.client.objects.MobileDevice) ServiceContainer(org.netxms.client.objects.ServiceContainer) AbstractObject(org.netxms.client.objects.AbstractObject) NodeLink(org.netxms.client.objects.NodeLink) Subnet(org.netxms.client.objects.Subnet) Interface(org.netxms.client.objects.Interface) Sensor(org.netxms.client.objects.Sensor) NumberFormat(java.text.NumberFormat)

Example 4 with AccessPoint

use of org.netxms.client.objects.AccessPoint in project netxms by netxms.

the class NXCSession method createObjectFromMessage.

/**
 * Create object from message
 *
 * @param msg Source NXCP message
 * @return NetXMS object
 */
private AbstractObject createObjectFromMessage(NXCPMessage msg) {
    final int objectClass = msg.getFieldAsInt32(NXCPCodes.VID_OBJECT_CLASS);
    AbstractObject object = createCustomObjectFromMessage(objectClass, msg);
    if (object != null)
        return object;
    switch(objectClass) {
        case AbstractObject.OBJECT_ACCESSPOINT:
            object = new AccessPoint(msg, this);
            break;
        case AbstractObject.OBJECT_AGENTPOLICY:
            object = new AgentPolicy(msg, this);
            break;
        case AbstractObject.OBJECT_AGENTPOLICY_CONFIG:
            object = new AgentPolicyConfig(msg, this);
            break;
        case AbstractObject.OBJECT_AGENTPOLICY_LOGPARSER:
            object = new AgentPolicyLogParser(msg, this);
            break;
        case AbstractObject.OBJECT_BUSINESSSERVICE:
            object = new BusinessService(msg, this);
            break;
        case AbstractObject.OBJECT_BUSINESSSERVICEROOT:
            object = new BusinessServiceRoot(msg, this);
            break;
        case AbstractObject.OBJECT_CHASSIS:
            object = new Chassis(msg, this);
            break;
        case AbstractObject.OBJECT_CLUSTER:
            object = new Cluster(msg, this);
            break;
        case AbstractObject.OBJECT_CONDITION:
            object = new Condition(msg, this);
            break;
        case AbstractObject.OBJECT_CONTAINER:
            object = new Container(msg, this);
            break;
        case AbstractObject.OBJECT_DASHBOARDGROUP:
            object = new DashboardGroup(msg, this);
            break;
        case AbstractObject.OBJECT_DASHBOARD:
            object = new Dashboard(msg, this);
            break;
        case AbstractObject.OBJECT_DASHBOARDROOT:
            object = new DashboardRoot(msg, this);
            break;
        case AbstractObject.OBJECT_INTERFACE:
            object = new Interface(msg, this);
            break;
        case AbstractObject.OBJECT_MOBILEDEVICE:
            object = new MobileDevice(msg, this);
            break;
        case AbstractObject.OBJECT_NETWORK:
            object = new EntireNetwork(msg, this);
            break;
        case AbstractObject.OBJECT_NETWORKMAP:
            object = new NetworkMap(msg, this);
            break;
        case AbstractObject.OBJECT_NETWORKMAPGROUP:
            object = new NetworkMapGroup(msg, this);
            break;
        case AbstractObject.OBJECT_NETWORKMAPROOT:
            object = new NetworkMapRoot(msg, this);
            break;
        case AbstractObject.OBJECT_NETWORKSERVICE:
            object = new NetworkService(msg, this);
            break;
        case AbstractObject.OBJECT_NODE:
            object = new Node(msg, this);
            break;
        case AbstractObject.OBJECT_NODELINK:
            object = new NodeLink(msg, this);
            break;
        case AbstractObject.OBJECT_POLICYGROUP:
            object = new PolicyGroup(msg, this);
            break;
        case AbstractObject.OBJECT_POLICYROOT:
            object = new PolicyRoot(msg, this);
            break;
        case AbstractObject.OBJECT_RACK:
            object = new Rack(msg, this);
            break;
        case AbstractObject.OBJECT_SENSOR:
            object = new Sensor(msg, this);
            break;
        case AbstractObject.OBJECT_SERVICEROOT:
            object = new ServiceRoot(msg, this);
            break;
        case AbstractObject.OBJECT_SLMCHECK:
            object = new ServiceCheck(msg, this);
            break;
        case AbstractObject.OBJECT_SUBNET:
            object = new Subnet(msg, this);
            break;
        case AbstractObject.OBJECT_TEMPLATE:
            object = new Template(msg, this);
            break;
        case AbstractObject.OBJECT_TEMPLATEGROUP:
            object = new TemplateGroup(msg, this);
            break;
        case AbstractObject.OBJECT_TEMPLATEROOT:
            object = new TemplateRoot(msg, this);
            break;
        case AbstractObject.OBJECT_VPNCONNECTOR:
            object = new VPNConnector(msg, this);
            break;
        case AbstractObject.OBJECT_ZONE:
            object = new Zone(msg, this);
            break;
        default:
            object = new GenericObject(msg, this);
            break;
    }
    return object;
}
Also used : Chassis(org.netxms.client.objects.Chassis) DashboardGroup(org.netxms.client.objects.DashboardGroup) ServiceCheck(org.netxms.client.objects.ServiceCheck) TemplateRoot(org.netxms.client.objects.TemplateRoot) DashboardRoot(org.netxms.client.objects.DashboardRoot) AbstractNode(org.netxms.client.objects.AbstractNode) Node(org.netxms.client.objects.Node) NetworkMapGroup(org.netxms.client.objects.NetworkMapGroup) Dashboard(org.netxms.client.objects.Dashboard) AgentPolicyConfig(org.netxms.client.objects.AgentPolicyConfig) Template(org.netxms.client.objects.Template) Rack(org.netxms.client.objects.Rack) BusinessServiceRoot(org.netxms.client.objects.BusinessServiceRoot) Container(org.netxms.client.objects.Container) MobileDevice(org.netxms.client.objects.MobileDevice) TemplateGroup(org.netxms.client.objects.TemplateGroup) PolicyRoot(org.netxms.client.objects.PolicyRoot) Condition(org.netxms.client.objects.Condition) PolicyGroup(org.netxms.client.objects.PolicyGroup) Zone(org.netxms.client.objects.Zone) AccessPoint(org.netxms.client.objects.AccessPoint) VPNConnector(org.netxms.client.objects.VPNConnector) Cluster(org.netxms.client.objects.Cluster) NetworkMapRoot(org.netxms.client.objects.NetworkMapRoot) EntireNetwork(org.netxms.client.objects.EntireNetwork) ConnectionPoint(org.netxms.client.topology.ConnectionPoint) AccessPoint(org.netxms.client.objects.AccessPoint) ServiceRoot(org.netxms.client.objects.ServiceRoot) BusinessServiceRoot(org.netxms.client.objects.BusinessServiceRoot) BusinessService(org.netxms.client.objects.BusinessService) AgentPolicy(org.netxms.client.objects.AgentPolicy) AbstractObject(org.netxms.client.objects.AbstractObject) GenericObject(org.netxms.client.objects.GenericObject) AgentPolicyLogParser(org.netxms.client.objects.AgentPolicyLogParser) NetworkService(org.netxms.client.objects.NetworkService) NodeLink(org.netxms.client.objects.NodeLink) Subnet(org.netxms.client.objects.Subnet) Interface(org.netxms.client.objects.Interface) NetworkMap(org.netxms.client.objects.NetworkMap) Sensor(org.netxms.client.objects.Sensor)

Example 5 with AccessPoint

use of org.netxms.client.objects.AccessPoint in project netxms by netxms.

the class ObjectFinder method doSearch.

/**
 * Do object search
 *
 * @param searchString search string
 * @param classFilter
 * @param zoneFilter
 * @param addrEnd
 * @param addrStart
 */
private void doSearch(final String searchString, final int mode, final List<Integer> classFilter, final List<Long> zoneFilter, final InetAddress addrStart, final InetAddress addrEnd) {
    final NXCSession session = ConsoleSharedData.getSession();
    new ConsoleJob("Find objects", this, Activator.PLUGIN_ID, null) {

        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Pattern regexp = (mode == SEARCH_MODE_REGEXP) ? Pattern.compile(searchString, Pattern.CASE_INSENSITIVE | Pattern.DOTALL | Pattern.UNICODE_CASE) : null;
            final List<AbstractObject> objects = session.filterObjects(new ObjectFilter() {

                @Override
                public boolean filter(AbstractObject object) {
                    if (session.isZoningEnabled() && session.getAllZones().size() != zoneFilter.size()) {
                        if (object instanceof ZoneMember) {
                            ZoneMember node = (ZoneMember) object;
                            if (!zoneFilter.contains(node.getZoneId()))
                                return false;
                        }
                        if (object instanceof Sensor) {
                            AbstractNode proxy = session.findObjectById(((Sensor) object).getProxyId(), AbstractNode.class);
                            if (proxy != null && zoneFilter.contains(proxy.getZoneId()))
                                return false;
                        } else if (object instanceof Interface) {
                            AbstractNode parent = ((Interface) object).getParentNode();
                            if (parent != null && !zoneFilter.contains(parent.getZoneId()))
                                return false;
                        } else if (object instanceof NetworkService) {
                            AbstractNode parent = ((NetworkService) object).getParentNode();
                            if (parent != null && !zoneFilter.contains(parent.getZoneId()))
                                return false;
                        } else if (object instanceof VPNConnector) {
                            AbstractNode parent = ((VPNConnector) object).getParentNode();
                            if (parent != null && !zoneFilter.contains(parent.getZoneId()))
                                return false;
                        } else if (object instanceof AccessPoint) {
                            AbstractNode parent = ((AccessPoint) object).getParentNode();
                            if (parent != null && !zoneFilter.contains(parent.getZoneId()))
                                return false;
                        } else if (object instanceof GenericObject && !zoneFilter.isEmpty()) {
                            AbstractObject[] children = ((GenericObject) object).getChildsAsArray();
                            boolean match = false;
                            for (AbstractObject o : children) {
                                if (o instanceof ZoneMember && zoneFilter.contains(((ZoneMember) o).getZoneId()))
                                    match = true;
                            }
                            if (!match)
                                return false;
                        }
                    }
                    if (!classFilter.contains(object.getObjectClass()))
                        return false;
                    if ((addrStart != null) && (addrEnd != null)) {
                        if (!checkAddrRange(addrStart, addrEnd, object))
                            return false;
                    }
                    if (searchString.isEmpty())
                        return true;
                    for (String s : object.getStrings()) {
                        switch(mode) {
                            case SEARCH_MODE_NORMAL:
                                if (s.toLowerCase().contains(searchString))
                                    return true;
                                break;
                            case SEARCH_MODE_PATTERN:
                                if (Glob.match(searchString, s.toLowerCase()))
                                    return true;
                                break;
                            case SEARCH_MODE_REGEXP:
                                if (regexp.matcher(s).find())
                                    return true;
                                break;
                        }
                    }
                    return false;
                }
            });
            runInUIThread(new Runnable() {

                @Override
                public void run() {
                    results.setInput(objects);
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return "Object search failure";
        }
    }.start();
}
Also used : Pattern(java.util.regex.Pattern) NXCSession(org.netxms.client.NXCSession) AbstractNode(org.netxms.client.objects.AbstractNode) AccessPoint(org.netxms.client.objects.AccessPoint) VPNConnector(org.netxms.client.objects.VPNConnector) ObjectFilter(org.netxms.client.ObjectFilter) PartInitException(org.eclipse.ui.PartInitException) UnknownHostException(java.net.UnknownHostException) IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) AbstractObject(org.netxms.client.objects.AbstractObject) GenericObject(org.netxms.client.objects.GenericObject) NetworkService(org.netxms.client.objects.NetworkService) List(java.util.List) ArrayList(java.util.ArrayList) ZoneMember(org.netxms.client.objects.ZoneMember) ConsoleJob(org.netxms.ui.eclipse.jobs.ConsoleJob) Interface(org.netxms.client.objects.Interface) Sensor(org.netxms.client.objects.Sensor)

Aggregations

AbstractObject (org.netxms.client.objects.AbstractObject)7 AccessPoint (org.netxms.client.objects.AccessPoint)7 Interface (org.netxms.client.objects.Interface)6 AbstractNode (org.netxms.client.objects.AbstractNode)4 Node (org.netxms.client.objects.Node)4 Sensor (org.netxms.client.objects.Sensor)3 ArrayList (java.util.ArrayList)2 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)2 NXCSession (org.netxms.client.NXCSession)2 Chassis (org.netxms.client.objects.Chassis)2 GenericObject (org.netxms.client.objects.GenericObject)2 MobileDevice (org.netxms.client.objects.MobileDevice)2 NetworkService (org.netxms.client.objects.NetworkService)2 NodeLink (org.netxms.client.objects.NodeLink)2 Rack (org.netxms.client.objects.Rack)2 ServiceCheck (org.netxms.client.objects.ServiceCheck)2 VPNConnector (org.netxms.client.objects.VPNConnector)2 Zone (org.netxms.client.objects.Zone)2 UnknownHostException (java.net.UnknownHostException)1 NumberFormat (java.text.NumberFormat)1