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

📄 customerdetaileditor.java

📁 基于RCP实现的CRM系统, 数据库使用mysql数据库, 是学习RCP应用和插件的很好的例子
💻 JAVA
字号:
package superCRM.editor;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.TableWrapData;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import org.eclipse.ui.part.EditorPart;

import superCRM.model.ICustomerSerivce;
import superCRM.model.SuperFactory;
import superCRM.pojos.CustomerEO;
import superCRM.views.CustomerSummaryView;

public class CustomerDetailEditor extends EditorPart {
	/** 编辑器的ID */
	public static final String ID = "superCRM.editor.CustomerDetailEditor";

	/** 编辑器是否修改过的标记 */
	private boolean bDirty = false;

	/** 编辑器保存的客户对象 */
	private CustomerEO customer;

	/** 界面控件 */
	private Text displayName;

	private Text website;

	private Combo category;

	private Combo number;

	/** 表单工具对象 */
	private FormToolkit toolkit;

	public CustomerDetailEditor() {
		super();
	}

	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
		this.setSite(site);
		this.setInput(input);
		this.setPartName(input.getName());
		/** 将输入的编辑器对象的客户对象赋值给客户对象 */
		this.customer = ((CustomerDetailInput) input).getCustomer();
	}

	public void createPartControl(Composite parent) {
		/** 设置标单的基本属性 */
		toolkit = new FormToolkit(parent.getDisplay());
		ScrolledForm form = toolkit.createScrolledForm(parent);
		TableWrapLayout tableLayout = new TableWrapLayout();
		tableLayout.numColumns = 2;
		form.getBody().setLayout(tableLayout);
		form.setText("客户详细信息");
		toolkit.getColors().setForeground(form.getForeground());
		/** 创建界面的控件 */
		toolkit.createLabel(form.getBody(), "客户ID:");
		toolkit.createLabel(form.getBody(), customer.getId() + "");
		toolkit.createLabel(form.getBody(), "客户名称:");
		TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB);
		/** 客户名称 */
		displayName = toolkit.createText(form.getBody(), customer.getDisplayName(), SWT.BORDER);
		displayName.setLayoutData(data);
		ModifyListener listener = new ModifyListener() {
			public void modifyText(ModifyEvent e) {
				if (!isDirty()) {
					bDirty = true;
					firePropertyChange(IEditorPart.PROP_DIRTY);
				}
			}
		};
		displayName.addModifyListener(listener);

		/** 网址 */
		toolkit.createLabel(form.getBody(), "网址:");
		data = new TableWrapData(TableWrapData.FILL_GRAB);
		website = toolkit.createText(form.getBody(), customer.getWebSite(), SWT.BORDER);
		website.setLayoutData(data);
		website.addModifyListener(listener);

		/** 类别 */
		toolkit.createLabel(form.getBody(), "类别:");
		data = new TableWrapData(TableWrapData.FILL_GRAB);
		category = new Combo(form.getBody(), SWT.BORDER);
		toolkit.adapt(category, false, false);
		category.setItems(new String[] { "Customer", "Partener", "Competitor" });
		category.setLayoutData(data);
		category.setText(customer.getCategory());
		category.addModifyListener(listener);

		/** 公司人数 */
		toolkit.createLabel(form.getBody(), "公司人数:");
		data = new TableWrapData(TableWrapData.FILL_GRAB);
		number = new Combo(form.getBody(), SWT.BORDER);
		toolkit.adapt(number, false, false);
		number.setItems(new String[] { "1-10", "11-50", "51-100", "101-500", "500-" });
		number.setLayoutData(data);
		number.setText(customer.getNumberEmployee());
		number.addModifyListener(listener);
	}

	/** 保存编辑器 */
	public void doSave(IProgressMonitor monitor) {
		try {
			monitor.beginTask("保存客户...", 100);
			/** 获得修改后的客户信息 */
			customer.setDisplayName(displayName.getText());
			customer.setWebSite(website.getText());
			customer.setCategory(category.getText());
			customer.setNumberEmployee(number.getText());
			/** 调用业务层保存更新客户信息 */
			ICustomerSerivce customerSerivce = SuperFactory.getSuperApplication().getCustomerSerivce();
			customerSerivce.updateCustomer(customer);
			/** 更新客户列表视图数据 */
			refreshView();
			monitor.done();
			if (monitor.isCanceled())
				throw new InterruptedException("取消保存");
		} catch (InterruptedException e) {
			;
		}
	}

	public void doSaveAs() {

	}

	public boolean isDirty() {
		return bDirty;
	}

	public boolean isSaveAsAllowed() {
		return false;
	}

	public void setFocus() {
		displayName.setFocus();
	}

	/** 更新客户列表视图数据 */
	public void refreshView() {
		IViewPart view = getEditorSite().getPage().findView(CustomerSummaryView.ID);
		if (view == null)
			return;
		CustomerSummaryView customerSummaryView = (CustomerSummaryView) view;
		customerSummaryView.refreshData();
	}
}

⌨️ 快捷键说明

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