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

📄 ntfhandler.java

📁 UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other simi
💻 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 + -