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

📄 clientinfopane.java

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

import java.awt.Component;
import java.io.IOException;
import java.io.StringWriter;

import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.stream.StreamSource;

import org.dom4j.Document;
import org.dom4j.DocumentFactory;
import org.dom4j.Element;
import org.dom4j.io.DocumentResult;
import org.dom4j.io.DocumentSource;
import org.dom4j.io.HTMLWriter;
import org.dom4j.io.OutputFormat;

import sun.print.resources.serviceui;

import net.robin.crm.service.CRMServiceEvent;
import net.robin.crm.service.CRMServiceObserver;
import net.robin.crm.service.Client;
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 ClientInfoPane extends JScrollPane implements CRMServiceObserver {

	private JTextPane clientInfoTextPane = null;
	
	private Client client;
	
	private static final String TO_HTML_XSLT = "/net/robin/crm/ui/showclient.xslt";

	public ClientInfoPane() {
		super();
		// TODO 自动生成构造函数存根
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setViewportView(getClientInfoTextPane());
		
		
		try {
			ServiceHandeler.getInstance().getService().addCRMServiceObserver(this);
		} catch (Exception e) {
			e.printStackTrace();
			Util.error(e.getMessage());
		}
		
	}

	/**
	 * This method initializes clientInfoTextPane	
	 * 	
	 * @return javax.swing.JTextPane	
	 */
	private JTextPane getClientInfoTextPane() {
		if (clientInfoTextPane == null) {
			clientInfoTextPane = new JTextPane();
			clientInfoTextPane.setContentType("text/html");
			clientInfoTextPane.setEditable(false);
		}
		return clientInfoTextPane;
	}

	public Client getClient() {
		return client;
	}

	public void setClient(Client client) throws FormatException {
		if(client==null){
			getClientInfoTextPane().setText("");
			return;
		}
		
		this.client = client;
		
		try {
			getClientInfoTextPane().setText( toHtml(toXML(client)));
		} catch (Exception e) {
			e.printStackTrace();
			throw new FormatException(e);
		}
	}

	private String toHtml(Document doc) throws TransformerFactoryConfigurationError, TransformerException, IOException {
		
		Transformer transformer = TransformerFactory
			.newInstance().newTransformer(new StreamSource(getClass().getResourceAsStream(TO_HTML_XSLT)));
		
		DocumentSource source = new DocumentSource(doc);
		DocumentResult result = new DocumentResult();
		
		transformer.transform(source, result);
		
		Document document = result.getDocument();
		
		return formatHtml(document); 
	}
	
	private String formatHtml(Document doc) throws IOException{
		
	     StringWriter sw = new StringWriter();
	     OutputFormat format = OutputFormat.createPrettyPrint();
	     format.setNewlines(true);
	     format.setTrimText(true);
	     format.setIndent("");
	     format.setXHTML(false);
	     format.setExpandEmptyElements(false);
	     format.setNewLineAfterNTags(20);
	     org.dom4j.io.HTMLWriter writer = new HTMLWriter(sw, format);
	     writer.write(doc);
	     writer.flush();
	     writer.close();
	     return sw.toString();
		
	}

	private Document toXML(Client client) {
		
		Document doc = DocumentFactory.getInstance().createDocument();
		Element root = doc.addElement("client");
		
		root.addAttribute("id", client.getId());
		root.addAttribute("birthday", client.getBirthdayString());
		root.addAttribute("email", client.getEmail());
		root.addAttribute("mobile", client.getMobile());
		root.addAttribute("name", client.getName());
		root.addAttribute("phone", client.getPhone());
		root.addAttribute("photo", Util.getPhotoURL(client.getPhoto()).toString());
		root.addAttribute("qq", client.getQq());
		root.addAttribute("sex", client.getSex());
		Element category = root.addElement("category");

		category.addAttribute("id", client.getCategory().getId());
		category.addAttribute("name", client.getCategory().getName());
		
		Element company = root.addElement("company");
		company.addAttribute("id", client.getCompany().getId());
		company.addAttribute("address", client.getCompany().getAddress());
		company.addAttribute("name", client.getCompany().getName());
		
		
		return doc;
	}

	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) {
		Client client = (Client) event.getNewValue();
		try {
			setClient(client);
		} catch (FormatException e) {
			e.printStackTrace();
			Util.message(e.getMessage());
		}
	}

	public void clientChanged(CRMServiceEvent event) {
		
		if(this.client == null)
			return;
		
		Client client = (Client) event.getNewValue();
		
		if(client.equals(this.client)){
			try {
				setClient(client);
			} catch (FormatException e) {
				e.printStackTrace();
				Util.message(e.getMessage());
			}
		}
	}

	public void clientRemoved(CRMServiceEvent event) {
		Client client = (Client) event.getOldValue();
		
		if(client.equals(this.client)){
			try {
				setClient(null);
			} catch (FormatException e) {
				e.printStackTrace();
				Util.message(e.getMessage());
			}
		}
	}

}

⌨️ 快捷键说明

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