⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topomouseaction.java

📁 iTopoview网络拓扑图的java代码。展示网络拓扑图的添加、删除、修改、菜单、告警、颜色、拖放功能。
💻 JAVA
字号:
package com.zhtelecom.common.topograph.example;

import javax.swing.JPopupMenu;

import com.zhtelecom.common.topograph.TopoGraphView;
import com.zhtelecom.common.topograph.TopoLink;
import com.zhtelecom.common.topograph.TopoMouseHandle;
import com.zhtelecom.common.topograph.TopoNetwork;
import com.zhtelecom.common.topograph.TopoNode;
import com.zhtelecom.common.topograph.TopoObject;
import com.zhtelecom.common.topograph.TopoTreeView;
import com.zhtelecom.common.topograph.example.menuaction.ActionAddAlarm;
import com.zhtelecom.common.topograph.example.menuaction.ActionAlarmBatchTest;
import com.zhtelecom.common.topograph.example.menuaction.ActionAlarmDel;
import com.zhtelecom.common.topograph.example.menuaction.ActionAlarmView;
import com.zhtelecom.common.topograph.example.menuaction.ActionBatchAddTest;
import com.zhtelecom.common.topograph.example.menuaction.ActionLinkUpdate;
import com.zhtelecom.common.topograph.example.menuaction.ActionNetworkAdd;
import com.zhtelecom.common.topograph.example.menuaction.ActionNetworkNodeLinkDel;
import com.zhtelecom.common.topograph.example.menuaction.ActionNodeAdd;
import com.zhtelecom.common.topograph.example.menuaction.ActionNodeImageUpdate;
import com.zhtelecom.common.topograph.example.menuaction.ActionPrintXY;
import com.zhtelecom.common.topograph.example.menuaction.ActionSetLinkEnd;
import com.zhtelecom.common.topograph.example.menuaction.ActionSetLinkStart;
import com.zhtelecom.common.topograph.example.menuaction.ActionUpdateUserID;

/**
 * 各种菜单、事件的处理入口。具体的事件操作在每一个Action里面。

 * @version 1.0
 */
public class TopoMouseAction implements TopoMouseHandle
{
    /**
     * 在node上面点击右键的菜单
     * @param topoView TopoGraphView
     * @return JPopupMenu
     */
    public JPopupMenu createRightClickMenu(TopoGraphView topoView)
    {
        JPopupMenu menu = new JPopupMenu();

        menu.add("右键对象:" + topoView.getSelectedObject());
        menu.addSeparator();

        //设置删除菜单
        ActionNetworkNodeLinkDel actionNetworkNodeLinkDel = new
            ActionNetworkNodeLinkDel();
        //传递topoView对象。
        actionNetworkNodeLinkDel.putValue("topoGraphView", topoView);
        menu.add(actionNetworkNodeLinkDel);

        //节点或网络才有下列菜单
        if (topoView.getSelectedObject() instanceof TopoNode)
        {
            menu.addSeparator();
            //设置连接起点菜单
            ActionSetLinkStart actionSetLinkStart = new ActionSetLinkStart();
            actionSetLinkStart.putValue("topoGraphView", topoView);
            menu.add(actionSetLinkStart);

            //设置连接终点菜单
            ActionSetLinkEnd actionSetLinkEnd = new ActionSetLinkEnd();
            actionSetLinkEnd.putValue("topoGraphView", topoView);
            menu.add(actionSetLinkEnd);

            menu.addSeparator();
            //设置修改图片菜单
            ActionNodeImageUpdate actionNodeImageUpdate = new
                ActionNodeImageUpdate();
            actionNodeImageUpdate.putValue("topoGraphView", topoView);
            menu.add(actionNodeImageUpdate);

        }

        //Link有下列菜单
        if (topoView.getSelectedObject() instanceof TopoLink)
        {
            menu.addSeparator();
            ActionLinkUpdate actionLinkUpdate = new ActionLinkUpdate();
            actionLinkUpdate.putValue("topoGraphView", topoView);
            menu.add(actionLinkUpdate);

        }

        menu.addSeparator();
        //设置告警添加菜单
        ActionAddAlarm actionAddAlarm = new ActionAddAlarm();
        actionAddAlarm.putValue("topoGraphView", topoView);
        menu.add(actionAddAlarm);

        //设置告警清除菜单
        ActionAlarmDel actionAlarmDel = new ActionAlarmDel();
        actionAlarmDel.putValue("topoGraphView", topoView);
        menu.add(actionAlarmDel);

        //设置告警显示菜单
        ActionAlarmView actionAlarmView = new ActionAlarmView();
        actionAlarmView.putValue("topoGraphView", topoView);
        menu.add(actionAlarmView);

        //设置修改用户ID菜单
        menu.addSeparator();
        ActionUpdateUserID actionUpdateUserID = new ActionUpdateUserID();
        actionUpdateUserID.putValue("topoGraphView", topoView);
        menu.add(actionUpdateUserID);

        return menu;

    }

    /**
     * 在空白区域点击右键的菜单。
     * @param topoView TopoGraphView
     * @return JPopupMenu
     */
    public JPopupMenu createRightClickBlankMenu(TopoGraphView topoView)
    {
        JPopupMenu menu = new JPopupMenu();

        TopoNetwork net = topoView.getCurrentNetwork();
        String netName = "";
        if (net == null)
        {
            netName = TopoTreeView.topoTreeRootObject;
        } else
        {
            netName = net.toString();
        }

        menu.add("右键空白区域,当前网络:" + netName);

        menu.addSeparator();

        //  设置网络添加菜单
        ActionNetworkAdd actionNetworkAdd = new ActionNetworkAdd();
        actionNetworkAdd.putValue("topoGraphView", topoView);
        menu.add(actionNetworkAdd);

        //设置节点添加菜单
        ActionNodeAdd actionNodeAdd = new ActionNodeAdd();
        actionNodeAdd.putValue("topoGraphView", topoView);
        menu.add(actionNodeAdd);

        menu.addSeparator();
        //设置拓扑图批量添加菜单
        ActionBatchAddTest actionBatchAddTest = new ActionBatchAddTest();
        menu.add(actionBatchAddTest);

        //设置告警批量处理菜单
        ActionAlarmBatchTest actionAlarmBatchTest = new ActionAlarmBatchTest();
        menu.add(actionAlarmBatchTest);

        menu.addSeparator();

        //设置打印坐标菜单
        ActionPrintXY actionPrintXY = new ActionPrintXY();
        actionPrintXY.putValue("topoGraphView", topoView);
        menu.add(actionPrintXY);

        return menu;

    }

    //双击事件
    public void doubleClickAction(TopoGraphView topoView)
    {
        TopoObject obj = topoView.getSelectedObject();

        if (null == obj)
        {
            String name = (topoView.getCurrentNetwork() != null) ? topoView.getCurrentNetwork().toString() :
                TopoTreeView.topoTreeRootObject;
            javax.swing.JOptionPane.showMessageDialog(topoView, "当前显示网络:" + name, "双击空白区域", javax.swing.JOptionPane.
                INFORMATION_MESSAGE);
            return;
        }

        String parentName = (obj.getParent() != null) ? obj.getParent().toString() : TopoTreeView.topoTreeRootObject;

        if (obj instanceof TopoNetwork)
        {
            TopoNetwork net = (TopoNetwork) obj;
            javax.swing.JOptionPane.showMessageDialog(topoView,
                "网络名:" +
                net.toString() +
                "   ;下级对象" + net.getChildren().size() +
                "个  ;上级网络:" + parentName +
                "    ;网络所有告警个数:" + net.getAllAlarms().size() + "个" +
                "(其中,本身告警" + net.getThisNetworkAlarms().size() +
                ",下级告警" + net.getAllChildAlarms().size() + "个)",
                "双击操作",
                javax.swing.JOptionPane.
                INFORMATION_MESSAGE);

        } else
        {
            javax.swing.JOptionPane.showMessageDialog(topoView,
                "对象:" +
                obj.toString() +
                "  ;上级网络:" + parentName +
                "    本对象告警个数:" + obj.getAllAlarms().size(),
                "双击操作",
                javax.swing.JOptionPane.
                INFORMATION_MESSAGE);

        }

    }

}

⌨️ 快捷键说明

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