?? topomouseaction.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 + -