📄 categorytreemodel.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 + -