📄 clienttablemodel.java
字号:
package net.robin.crm.ui;
import javax.swing.table.AbstractTableModel;
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;
import net.robin.crm.util.Util;
public class ClientTableModel extends AbstractTableModel implements CRMServiceObserver {
private CRMService service;
private Company company;
private Category category;
private String[] colNames = {"姓名", "移动电话", "电话", "E-mail", "QQ", "性别", "生日", "公司" };
public ClientTableModel() {
super();
try {
service = ServiceHandeler.getInstance().getService();
service.addCRMServiceObserver(this);
} catch (ConfigException e) {
e.printStackTrace();
Util.error("系统配置错误"+e.getMessage());
} catch (InstanceExeption e) {
e.printStackTrace();
Util.error("不能实例化服务"+e.getMessage());
} catch (ServiceException e) {
e.printStackTrace();
Util.error("服务异常"+e.getMessage());
}
}
public int getRowCount() {
if(service==null)
return 0;
int count = 0;
try {
count = service.getClientCount(category, company);
} catch (ServiceException e) {
e.printStackTrace();
Util.error("服务异常"+e.getMessage());
}
return count;
}
public int getColumnCount() {
return colNames.length;
}
public Class getColumnClass(int columnIndex) {
if(columnIndex==0)
return Client.class;
return String.class;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
//电话列可以修改!
if(columnIndex==2)
return true;
return false;
}
public void setValueAt(
Object aValue,
int rowIndex,
int columnIndex) {
String value = aValue.toString();
//电话列!
if(columnIndex==2){
Client client = getClient(rowIndex);
client.setPhone(value);
try {
service.updateClient(client);
} catch (ServiceException e) {
e.printStackTrace();
Util.error(e.getMessage());
}
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
if(service == null)
return null;
Client client = getClient(rowIndex);
if(client == null)
return null;
Object value = null;
switch (columnIndex) {
case 0:
value = client;
break;
case 1:
value = client.getMobile();
break;
case 2:
value = client.getPhone();
break;
case 3:
value = client.getEmail();
break;
case 4:
value = client.getQq();
break;
case 5:
value = client.getSex();
break;
case 6:
value = client.getBirthdayString();
break;
case 7:
value = client.getCompany().getName();
break;
}
return value;
}
public String getColumnName(int column) {
return colNames[column];
}
public void setCategoryCompany(Category category, Company company){
this.category = category ;
this.company = company;
fireTableDataChanged();
}
public Client getClient(int rowIndex) {
if(service == null)
return null;
try {
return service.findClient(category, company, rowIndex);
} catch (ServiceException e) {
e.printStackTrace();
Util.error("服务异常"+e.getMessage());
}
return null;
}
public void companyAdded(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void companyChanged(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void companyRemoved(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void categoryAdded(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void categoryChanged(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void categoryRemoved(CRMServiceEvent event) {
// TODO 自动生成方法存根
}
public void clientAdded(CRMServiceEvent event) {
fireTableDataChanged();
}
public void clientChanged(CRMServiceEvent event) {
fireTableDataChanged();
}
public void clientRemoved(CRMServiceEvent event) {
fireTableDataChanged();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -