networkinterfacetreenode.java

来自「java 开发的sip软电话 源码 jain sip」· Java 代码 · 共 72 行

JAVA
72
字号
package net.java.mais.plugin.addressselector;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

import javax.swing.tree.DefaultMutableTreeNode;

import net.java.mais.common.NetworkAddressManager;

/**
 * <p>Title: SIP Communicator</p>
 * <p>Description: A SIP UA</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: Network Research Team, Louis Pasteur University</p>
 * @author Emil Ivov
 * @version 1.0
 */

class NetworkInterfaceTreeNode
    extends DefaultMutableTreeNode
{
    private boolean  includeOnlyRoutableAddresses = false;
    public NetworkInterfaceTreeNode(NetworkInterface netInterface,
                                    boolean includeOnlyRoutableAddresses)
    {
        super(netInterface);
        this.includeOnlyRoutableAddresses = includeOnlyRoutableAddresses;
        setUserObject(netInterface);
    }

    /**
     * Resets the user object of the receiver to <code>object</code>.
     *
     * @param object Object
     * @todo Implement this javax.swing.tree.MutableTreeNode method
     */
    public void setUserObject(Object object)
    {
        super.setUserObject(object);
        setChildren((NetworkInterface)object);

    }

    private void setChildren(NetworkInterface iface)
    {
        Enumeration inetAddresses = iface.getInetAddresses();
        while (inetAddresses.hasMoreElements()) {
            InetAddress addr = (InetAddress) inetAddresses.nextElement();
            if(!(includeOnlyRoutableAddresses
                 && !NetworkAddressManager.isRoutable(addr)))
                add(new NetworkAddressTreeNode(addr));
        }
    }

    /**
     * Returns a string representation of the object.
     *
     * @return a string representation of the object.
     */
    public String toString()
    {
        return ((NetworkInterface)getUserObject()).getDisplayName();
    }

    public boolean isLeaf()
    {
        return false;
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?