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

📄 categorytreemodel.java

📁 本文首先介绍了这些考试系统的形成和发展过程
💻 JAVA
字号:
package net.robin.crm.ui;

import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;

import net.robin.crm.service.CRMService;
import net.robin.crm.service.CRMServiceEvent;
import net.robin.crm.service.CRMServiceObserver;
import net.robin.crm.service.Category;
import net.robin.crm.service.Client;
import net.robin.crm.service.Company;
import net.robin.crm.service.ConfigException;
import net.robin.crm.service.InstanceExeption;
import net.robin.crm.service.ServiceException;

public class CategoryTreeModel extends DefaultTreeModel implements CRMServiceObserver {
	
	CRMService service = null;

	public CategoryTreeModel() {
		super(new CategoryRootTreeNode());
		
		try {
			service = ServiceHandeler.getInstance().getService();
			
			service.addCRMServiceObserver(this);			

		} catch (ConfigException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (InstanceExeption e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		} catch (ServiceException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}

		
		// TODO 自动生成构造函数存根
		
//		DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot();
//		
//		Enumeration e = root.depthFirstEnumeration();
//		for (; e.hasMoreElements();) {
//			DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
//			
//			System.out.println(node.getUserObject());
//			
//		}
		
	}

	public void companyAdded(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void companyChanged(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void companyRemoved(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void categoryAdded(CRMServiceEvent event) {
		
		Category category = (Category) event.getNewValue();
		
		DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot();
		DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(category);
		int index = root.getChildCount();
		this.insertNodeInto(newNode , root, index);
		
		//int[] childIndices = {index};
		
		//nodesWereInserted(newNode, childIndices);
		
		//fireTreeNodesInserted(this, {root }, {index}, {newNode})
		
		setRoot(new CategoryRootTreeNode());
		
		reload();
	}

	public void categoryChanged(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void categoryRemoved(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void clientAdded(CRMServiceEvent event) {
		
		Client client = (Client) event.getNewValue(); 
	
		Category category = client.getCategory();
		Company company = client.getCompany();
		
		DefaultMutableTreeNode categoryNode = getCategoryNode(category);
		
		if(! included(categoryNode, company )){
			DefaultMutableTreeNode node = new DefaultMutableTreeNode(company, false);
			insertNodeInto(node, categoryNode, categoryNode.getChildCount());
		}
	}
	
	private boolean included(DefaultMutableTreeNode categoryNode, Company company){
		boolean rv = false;
		for(Enumeration e = categoryNode.children(); e.hasMoreElements();){
			DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
			
			if(node.getUserObject().equals(company)){
				rv = true;
				break;
			}
		}
		return rv;
		
	}
	
	
	private DefaultMutableTreeNode getCategoryNode(Category category){
		
		DefaultMutableTreeNode rv = null;
		
		DefaultMutableTreeNode root = (DefaultMutableTreeNode) getRoot();
		
		Enumeration e = root.depthFirstEnumeration();
		for (; e.hasMoreElements();) {
			DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
			
			if(node.getUserObject().equals(category)){
				rv = node;
				break;
			}
			
		}
		return rv;
	}

	public void clientChanged(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}

	public void clientRemoved(CRMServiceEvent event) {
		// TODO 自动生成方法存根
		
	}



}

⌨️ 快捷键说明

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