📄 ntfhandler.java
字号:
package com.corba.mnq.ntf;
import java.awt.event.*;
import java.awt.*;
import javax.swing.tree.*;
import javax.swing.*;
import java.io.*;
public class NtfHandler extends WindowAdapter
implements ActionListener, MouseListener, KeyListener
{
JTree tree;
Component frame;
JDialog dlg;
JTextField editName;
JPopupMenu popup;
//Updater updater;
NtfNode currentUserData;
NtfTreeCreator treeCreator;
JMenuItem refreshMenu;
JMenuItem destroyMenu;
JMenuItem saveIorMenu;
JMenuItem createChannelMenu;
JMenuItem connectFactoryMenu;
private void clearMenu()
{
popup.removeAll();
/*
popup.remove(refreshMenu);
popup.remove(destroyMenu);
popup.remove(createChannelMenu);
popup.remove(saveIorMenu);
*/
}
public NtfHandler(Component fr,JTree tr,NtfTreeCreator cr){
frame=fr;
tree=tr;
treeCreator=cr;
popup = new JPopupMenu();
refreshMenu = new JMenuItem("Refresh");
destroyMenu = new JMenuItem("Destroy");
saveIorMenu = new JMenuItem("SaveIOR");
createChannelMenu =new JMenuItem("CreateChannel");
connectFactoryMenu =new JMenuItem("ConnectNotificaitonFactory");
refreshMenu.addActionListener(this);
destroyMenu.addActionListener(this);
saveIorMenu.addActionListener(this);
createChannelMenu.addActionListener(this);
connectFactoryMenu.addActionListener(this);
}
public void reset(Component fr,NtfTree tr,NtfTreeCreator cr){
frame=fr;
tree = tr;
treeCreator=cr;
}
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("Destroy"))
{
if( currentUserData.destroyObj()==true )
{
((NtfTree)tree).deleteUserNode();
}
}
else if (e.getActionCommand().equals("Refresh"))
{
treeCreator.buildTree();
}
else if (e.getActionCommand().equals("SaveIOR"))
{
try{
String ior=currentUserData.ior;
JFileChooser dlg=new JFileChooser();
if( dlg.showSaveDialog(frame)==JFileChooser.APPROVE_OPTION )
{
String fname= dlg.getSelectedFile().getPath();
PrintWriter out = new PrintWriter(new FileOutputStream(
fname), true);
out.println(ior);
out.close();
}
}catch(Exception ex){
ex.printStackTrace();
}
}
else if (e.getActionCommand().equals("CreateChannel"))
{
try
{
NtfNode ret=currentUserData.createChannel();
if( ret!=null )
{
((NtfTree)tree).createUserNode(ret.getName(),ret);
}
}
catch ( Exception ex )
{
ex.printStackTrace();
}
}else if (e.getActionCommand().equals("ConnectNotificaitonFactory"))
{
NtfUtil.reset();
}
}
public void keyReleased(KeyEvent k)
{
if( k.getKeyCode() == KeyEvent.VK_DELETE )
((NtfTree)tree).deleteUserNode();
}
public void keyPressed(KeyEvent k) {}
public void keyTyped(KeyEvent k) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
/**
* opens pop-up menu or displays context node content
*/
public void mouseReleased(MouseEvent e)
{
// on Solaris, the right mouse button somehow seems not be a popup trigger, so we
// accept mouse 3 explicitly
TreePath path = tree.getPathForLocation(e.getX(), e.getY());
if (path != null)
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode)path.getPathComponent(path.getPathCount()-1);
currentUserData=((NtfNode)node.getUserObject());
}
if (e.isPopupTrigger() || e.getModifiers() == java.awt.event.InputEvent.BUTTON3_MASK )
{
clearMenu();
if( path!=null ){
popup.add(refreshMenu);
if( currentUserData.type==NtfNode.TYPE_CHANNEL_FACTORY )
{
popup.add(createChannelMenu);
popup.add(saveIorMenu);
}
else if(currentUserData.type==NtfNode.TYPE_EVENT_CHANNEL)
{
popup.add(destroyMenu);
popup.add(saveIorMenu);
}
else if(currentUserData.type==NtfNode.TYPE_CONSUMER_ADMIN)
{
popup.add(destroyMenu);
popup.add(saveIorMenu);
}
else if(currentUserData.type==NtfNode.TYPE_SUPPLIER_ADMIN)
{
popup.add(destroyMenu);
popup.add(saveIorMenu);
}
}else{
popup.add(connectFactoryMenu);
}
popup.pack();
popup.show(tree, e.getX(), e.getY());
}
else
{
if (path != null)
{
currentUserData.display();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -