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

📄 servicetreeview.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				deleteAction.putValue(Action.NAME,"删除 "+((Deleteable)userObject).toString());
				tree.getActionMap().put(deleteAction,deleteAction);
			} else {
				deleteAction.setEnabled(false);
				deleteAction.putValue(Action.NAME,"删除...");	
				tree.getActionMap().remove(deleteAction);
			}
			
			deleteAction.setEnabled(n.getUserObject() instanceof Deleteable);
		} else {
			newServiceAction.setEnabled(false);			
			modifyServiceAction.setEnabled(false);
			newNodeAction.setEnabled(false);
			modifyNodeAction.setEnabled(false);
			deleteAction.setEnabled(false);
			deleteAction.putValue(Action.NAME,"Delete");	
			tree.getActionMap().remove(deleteAction);
		}
	}

	/**
	 * Called when a branch in the <code>tree</code> is being expanded.
	 * 
	 * @param event Used to determine which node is being expanded
	 * 
	 * @see javax.swing.event.TreeWillExpandListener#treeWillExpand(javax.swing.event.TreeExpansionEvent)
	 */
	public void treeWillExpand(TreeExpansionEvent event) throws ExpandVetoException {
		Object					opath[] = event.getPath().getPath();
		DefaultMutableTreeNode	n = (DefaultMutableTreeNode)opath[opath.length-1];
		Object					userObject = n.getUserObject();
		
		if (userObject instanceof TreeViewExpansionListener) {
			((TreeViewExpansionListener)userObject).willExpand(tree, n);
		}
	}
	
	/**
	 * Called when a branch in the <code>tree</code> is being collapsed.
	 * 
	 * @see javax.swing.event.TreeWillExpandListener#treeWillCollapse(javax.swing.event.TreeExpansionEvent)
	 */
	public void treeWillCollapse(TreeExpansionEvent event) throws ExpandVetoException {	}
	/**
	 * @return
	 */
	public Action getNewServiceAction() {
		return newServiceAction;
	}

	public Action getModifyServiceAction() {
		return modifyServiceAction;
	}

	/**
	 * @return
	 */
	public Action getNewNodeAction() {
		//return newQueueAction;
		return newNodeAction;
	}

	public Action getModifyNodeAction() {
		//return newQueueAction;
		return modifyNodeAction;
	}


	public void selectNodeInstance(DefaultMutableTreeNode parent, Class c) {
		DefaultMutableTreeNode node;	
		for(int x=0;x<parent.getChildCount();x++) {
			node = (DefaultMutableTreeNode)parent.getChildAt(x);
			if (node.getUserObject().getClass() == c) {
				tree.setSelectionPath(null);
				tree.setSelectionPath(new TreePath(node.getPath()));				
			}
		}
	}
	
	public void deleteSelected() {
		TreePath path = tree.getSelectionPath();
		if (path != null) {
			TreePath parentPath = path.getParentPath();
			DefaultMutableTreeNode parent = (DefaultMutableTreeNode)path.getParentPath().getLastPathComponent();
			Object objPath[] = path.getPath();
			DefaultMutableTreeNode	node = (DefaultMutableTreeNode)objPath[objPath.length-1];
			Deleteable deleteable = (Deleteable)node.getUserObject();
			if (deleteable.delete()) {
				Vector	newPath = new Vector();
				for(int x=0;x<objPath.length-1;x++)
					newPath.add(objPath[x]);				
				tree.setSelectionPath(new TreePath(newPath.toArray()));
			}
		}
	}
	/**
	 * Provides access to the delete action.
	 * @return The delete action.
	 */
	public Action getDeleteAction() {
		return deleteAction;
	}

	public void insertService() {
		TreePath path = tree.getSelectionPath();
		System.out.println("insertService...1");
		if (path != null) {
			Object objPath[] = path.getPath();
			System.out.println("insertService...2");
			
			//if (objPath.length >= 2) { // contains at least one server record
				System.out.println("insertService...3");
				String name = JOptionPane.showInputDialog(WorkFlow.getInstance(),
						"请输入新业务名称",
						"新建业务",
						JOptionPane.QUESTION_MESSAGE);
				if (name != null && name.length() > 0) {
					System.out.println("name="+name);
					DefaultMutableTreeNode	node = (DefaultMutableTreeNode)objPath[0];
					StartList service = (StartList)node.getUserObject();
					if (service.insertService(name)) {
						selectNodeInstance(node,StartList.class);
						activatePath(path);
					}
				}
			//}
		}
	}

	public void modifyService() {
		TreePath path = tree.getSelectionPath();
		if (path != null) {
			Object objPath[] = path.getPath();
			DefaultMutableTreeNode	node = (DefaultMutableTreeNode)objPath[1];
			
			ServiceList service = (ServiceList)node.getUserObject();
			String name = JOptionPane.showInputDialog(WorkFlow.getInstance(),
					"原业务名称:"+service.getBean().getT_name()+"\n"+"请输入要修改的业务名称",
					"修改业务",
					JOptionPane.QUESTION_MESSAGE);
			if (name != null && name.length() > 0) {
				DefaultMutableTreeNode parent = (DefaultMutableTreeNode)path.getParentPath().getLastPathComponent();
				StartList start = (StartList)parent.getUserObject();
				if (start.modifyService(service.getBean().getT_id(), name)) {
					
					ServiceBean bean = new ServiceBean();
					bean.setT_id(service.getBean().getT_id());
					bean.setT_name(name);
					ServiceList sl = new ServiceList(bean, start);
					node.setUserObject(sl);
					
					//refreshRoot();
					resetChildren(sl, name);
					selectNodeInstance(node,ServiceList.class);
					//activatePath(path);
					tree.updateUI();
				}
			}
		}
	}

	public void insertNode() {
		TreePath path = tree.getSelectionPath();
		System.out.println("insertService...1");
		if (path != null) {
			Object objPath[] = path.getPath();
			System.out.println("insertService...2");
			
			//if (objPath.length >= 2) { // contains at least one server record
				System.out.println("insertService...3");
				String name = JOptionPane.showInputDialog(WorkFlow.getInstance(),
						"请输入新节点名称",
						"新建节点",
						JOptionPane.QUESTION_MESSAGE);
				if (name != null && name.length() > 0) {
					System.out.println("name="+name);
					if(objPath.length == 2){
						DefaultMutableTreeNode node = (DefaultMutableTreeNode)objPath[1];
						ServiceList service = (ServiceList)node.getUserObject();
						if (service.insertNode(name)) {	
							//resetChildren(service, service.getBean().getT_name());
							selectNodeInstance(node,ServiceList.class);
							activatePath(path);
						}
					}
					else{
						DefaultMutableTreeNode node = (DefaultMutableTreeNode)objPath[0];
						StartList service = (StartList)node.getUserObject();
						ServiceList ser = new ServiceList(service.getBean(), service);
						if(ser.insertNode(name)){
							selectNodeInstance(node,StartList.class);
							activatePath(path);
						}
					}
				}
			//}
		}
	}

	public void modifyNode() {
		TreePath path = tree.getSelectionPath();
		if (path != null) {
			Object objPath[] = path.getPath();
			DefaultMutableTreeNode	node = (DefaultMutableTreeNode)objPath[2];
			
			Node snode = (Node)node.getUserObject();
			String name = JOptionPane.showInputDialog(WorkFlow.getInstance(),
					"原节点名称:"+snode.getNodeBean().getT_desc()+"\n"+"请输入要修改的节点名称",
					"修改节点",
					JOptionPane.QUESTION_MESSAGE);
			if (name != null && name.length() > 0) {
				DefaultMutableTreeNode parent = (DefaultMutableTreeNode)path.getParentPath().getLastPathComponent();
				ServiceList service = (ServiceList)parent.getUserObject();
				if (service.modifyNode(snode.getNodeBean().getT_id(), name)) {
					
					NodeBean bean = snode.getNodeBean();
					bean.setT_desc(name);
					Node sl = new Node(bean, snode.getServiceBean(), service);
					node.setUserObject(sl);
					
					//refreshRoot();
					//System.out.println("name="+name);
					resetChildren(sl, name);
					selectNodeInstance(node,Node.class);
					tree.updateUI();
					//activatePath(path);
				}
			}
		}
	}
}

⌨️ 快捷键说明

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