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

📄 kindview.java

📁 eclipse rcp 项目实例
💻 JAVA
字号:
package com.niis.myprice.views;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.ViewPart;

import com.niis.myprice.domain.Kind;
import com.niis.myprice.util.message.Messages;

public class KindView extends ViewPart {

	private Text descTxt;

	private Text nameTxt;

	private Text numTxt;

	private Kind kind;

	private Button okBtn;

	private Button cancelBtn;

	private Button addBtn;

	private Button delBtn;

	private Button modifyBtn;

	private Action okAction;

	private Action cancelAction;

	private Action addAction;

	private Action modifyAction;

	private Action deleteAction;

	private int flg;

	// insert flg=0 modify flg=1 delete flg=2 view flg=3
	private static final int INSERT = 0;

	private static final int MODIFY = 1;

	private static final int DELETE = 2;

	private static final int VIEW = 3;

	public static final String ID = "com.niis.myprice.views.KindView"; //$NON-NLS-1$

	/**
	 * Create contents of the view part
	 * 
	 * @param parent
	 */
	public void createPartControl(Composite parent) {
		Composite container = new Composite(parent, SWT.NONE);

		final Group kindGroup = new Group(container, SWT.NONE);
		kindGroup.setText(Messages.getString("KindView.kindmanager")); //$NON-NLS-1$
		kindGroup.setBounds(54, 28, 335, 269);

		numTxt = new Text(kindGroup, SWT.BORDER);
		numTxt.setBounds(127, 40, 178, 25);

		final Label numLab = new Label(kindGroup, SWT.NONE);
		numLab.setText(Messages.getString("KindView.kindnum")); //$NON-NLS-1$
		numLab.setBounds(24, 43, 85, 22);

		final Label nameLab = new Label(kindGroup, SWT.NONE);
		nameLab.setText(Messages.getString("KindView.kindname")); //$NON-NLS-1$
		nameLab.setBounds(24, 88, 85, 22);

		nameTxt = new Text(kindGroup, SWT.BORDER);
		nameTxt.setBounds(127, 85, 178, 25);

		descTxt = new Text(kindGroup, SWT.BORDER|SWT.WRAP);
		descTxt.setBounds(127, 127, 178, 96);

		final Label descLab = new Label(kindGroup, SWT.NONE);
		descLab.setText(Messages.getString("KindView.kinddesc")); //$NON-NLS-1$
		descLab.setBounds(24, 130, 85, 22);

		okBtn = new Button(kindGroup, SWT.NONE);
		okBtn.setBounds(70, 237, 75, 22);
		okBtn.setText(Messages.getString("KindView.ok")); //$NON-NLS-1$
		addListener2OkBtn(okBtn);

		cancelBtn = new Button(kindGroup, SWT.NONE);
		cancelBtn.setText(Messages.getString("KindView.cancel")); //$NON-NLS-1$
		cancelBtn.setBounds(200, 237, 75, 22);
		addListener2CancelBtn(cancelBtn);

		addBtn = new Button(container, SWT.NONE);
		addBtn.setText(Messages.getString("KindView.add")); //$NON-NLS-1$
		addBtn.setBounds(54, 314, 75, 22);
		addListener2AddBtn(addBtn);

		delBtn = new Button(container, SWT.NONE);
		delBtn.setText(Messages.getString("KindView.delete")); //$NON-NLS-1$
		delBtn.setBounds(293, 314, 75, 22);
		addListener2DelBtn(delBtn);

		modifyBtn = new Button(container, SWT.NONE);
		modifyBtn.setText(Messages.getString("KindView.modify")); //$NON-NLS-1$
		modifyBtn.setBounds(174, 314, 75, 22);
		addListener2ModifyBtn(modifyBtn);
		//
		createActions();
		initializeToolBar();
		initializeMenu();
		refreshData();
	}

	public void addListener2OkBtn(Button okBtn) {
		okBtn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				okAction.run();
			}
		});
	}

	public void addListener2CancelBtn(Button cancelBtn) {
		cancelBtn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				cancelAction.run();
			}
		});
	}

	public void addListener2AddBtn(Button addBtn) {
		addBtn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				addAction.run();
			}
		});
	}

	public void addListener2ModifyBtn(Button modifyBtn) {
		modifyBtn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				modifyAction.run();
			}
		});
	}

	public void addListener2DelBtn(Button delBtn) {
		delBtn.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				deleteAction.run();
			}
		});
	}

	/**
	 * Create the actions
	 */
	private void createActions() {
		makeOkAction();
		makeCancelAction();
		makeAddAction();
		makeModifyAction();
		makeDeleteAction();
	}

	private void makeOkAction() {
		okAction = new Action() {
			public void run() {
				if ("".equals(numTxt.getText()) || "".equals(nameTxt.getText())) { //$NON-NLS-1$ //$NON-NLS-2$
					showMessage(Messages.getString("KindView.numandnamecannotbeempty")); //$NON-NLS-1$
					return;
				} else {
					try {
						int num = Integer.parseInt(numTxt.getText());
						kind.setNum(num);
					} catch (NumberFormatException e) {
						showMessage(Messages.getString("KindView.nummustbedigital")); //$NON-NLS-1$
						return;
					}
				}
				kind.setName(nameTxt.getText());
				kind.setDesc(descTxt.getText());
				try {
					IViewPart view = getSite().getWorkbenchWindow()
							.getActivePage().showView(KindTreeView.ID);
					if (view instanceof KindTreeView) {
						KindTreeView ktv = (KindTreeView) view;
						showMessage(Messages.getString("KindView.kindsavesuccess")); //$NON-NLS-1$
						ktv.refresh(kind);
						refreshData();
					}
				} catch (PartInitException e) {
					MessageDialog.openError(getSite().getShell(), "Error", //$NON-NLS-1$
							"Error opening view:" + e.getMessage()); //$NON-NLS-1$
				}
			}
		};
	}

	private void makeCancelAction() {
		cancelAction = new Action() {
			public void run() {
				if (flg == 0) {
					Kind parentKind = kind.getParent();
					parentKind.removeChild(kind);
					kind = parentKind;
				}
				refreshData(VIEW);
			}
		};
	}

	private void makeAddAction() {
		addAction = new Action() {
			public void run() {
				kind = new Kind(kind);
				refreshData(INSERT);
			}
		};
	}

	private void makeModifyAction() {
		modifyAction = new Action() {
			public void run() {
				refreshData(MODIFY);
			}
		};
	}

	private void makeDeleteAction() {
		deleteAction = new Action() {
			public void run() {
				boolean result = MessageDialog.openConfirm(
						getSite().getShell(), Messages.getString("KindView.confirmmessage"), Messages.getString("KindView.deletekindandware")); //$NON-NLS-1$ //$NON-NLS-2$
				if(result){
					Kind parentKind = kind.getParent();
					parentKind.removeChild(kind);
					kind = parentKind;
					try {
						IViewPart view = getSite().getWorkbenchWindow()
								.getActivePage().showView(KindTreeView.ID);
						if (view instanceof KindTreeView) {
							KindTreeView ktv = (KindTreeView) view;
							showMessage(Messages.getString("KindView.kinddeletesuccess")); //$NON-NLS-1$
							ktv.refresh(kind);
							refreshData();
						}
					} catch (PartInitException e) {
						MessageDialog.openError(getSite().getShell(), "Error", //$NON-NLS-1$
								"Error opening view:" + e.getMessage()); //$NON-NLS-1$
					}
				}

			}
		};
	}

	/**
	 * Initialize the toolbar
	 */
	private void initializeToolBar() {
		IToolBarManager toolbarManager = getViewSite().getActionBars()
				.getToolBarManager();
	}

	/**
	 * Initialize the menu
	 */
	private void initializeMenu() {
		IMenuManager menuManager = getViewSite().getActionBars()
				.getMenuManager();
	}

	public void setFocus() {
		KindTreeView.activeViewId=ID;
	}

	public Kind getKind() {
		return kind;
	}

	public void setKind(Kind kind) {
		this.kind = kind;
	}

	/**
	 * 
	 * @param kind
	 * @param flg
	 *            insert flg=0 modify flg=1 delete flg=2 view flg=3
	 */
	public void refreshData(Kind kind, int flg) {
		this.flg = flg;
		if (kind != null) {
			this.kind = kind;
			this.numTxt.setText(kind.getDisplayNum());
			this.nameTxt.setText(kind.getDisplayName());
			this.descTxt.setText(kind.getDisplayDesc());
		}
		switch (flg) {
		case INSERT:
			numTxt.setEditable(true);
			nameTxt.setEditable(true);
			descTxt.setEditable(true);
			addBtn.setEnabled(false);
			modifyBtn.setEnabled(false);
			delBtn.setEnabled(false);
			okBtn.setEnabled(true);
			cancelBtn.setEnabled(true);
			break;
		case MODIFY:
			numTxt.setEditable(false);
			nameTxt.setEditable(true);
			descTxt.setEditable(true);
			addBtn.setEnabled(true);
			modifyBtn.setEnabled(false);
			delBtn.setEnabled(true);
			okBtn.setEnabled(true);
			cancelBtn.setEnabled(true);
			break;
		case DELETE:
			numTxt.setEditable(false);
			nameTxt.setEditable(false);
			descTxt.setEditable(false);
			addBtn.setEnabled(false);
			modifyBtn.setEnabled(false);
			delBtn.setEnabled(true);
			okBtn.setEnabled(false);
			cancelBtn.setEnabled(false);
			break;
		case VIEW:
		default:
			numTxt.setEditable(false);
			nameTxt.setEditable(false);
			descTxt.setEditable(false);
			addBtn.setEnabled(true);
			modifyBtn.setEnabled(true);
			delBtn.setEnabled(true);
			okBtn.setEnabled(false);
			cancelBtn.setEnabled(false);

		}
	}

	public void refreshData(Kind kind) {
		refreshData(kind, VIEW);
	}

	public void refreshData(int flg) {
		refreshData(kind, flg);
	}

	public void refreshData() {
		refreshData(VIEW);
	}

	public void showMessage(String message) {
		MessageDialog.openInformation(getSite().getShell(), Messages.getString("KindView.prompt"), message); //$NON-NLS-1$
	}
}

⌨️ 快捷键说明

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