亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? myactiongroup.java

?? SWTJFace篇項目源程序該項目包含 包含了Eclipse下構建swt的基本工程
?? JAVA
字號:
package cn.com.chengang.jface.tableviewer;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.actions.ActionGroup;

public class MyActionGroup extends ActionGroup {
	private TableViewer tv;
	private CheckboxTableViewer ctv;// 14.7節增加的代碼

	// 在Action要使用到TableViewer對象,所以通過構造函數把它傳進來
	public MyActionGroup(TableViewer tv) {
		this.tv = tv;
	}

	// 14.7節增加的代碼
	public MyActionGroup(TableViewer tv, CheckboxTableViewer ctv) {
		this.tv = tv;
		this.ctv = ctv;
	}

	// 生成菜單Menu,并將兩個Action傳入
	public void fillContextMenu(IMenuManager mgr) {
		// 加入兩個Action對象到菜單管理器
		MenuManager menuManager = (MenuManager) mgr;
		menuManager.add(new OpenAction());
		menuManager.add(new RefreshAction());

		// 生成Menu并掛在表格table上。menu和table兩個對象互為對方的參數
		Table table = tv.getTable();
		Menu menu = menuManager.createContextMenu(table);
		table.setMenu(menu);
	}

	// “打開”的Action類
	private class OpenAction extends Action {
		public OpenAction() {
			setText("打開");
		}

		public void run() {// 繼承自Action的方法,動作代碼寫此方法中
			IStructuredSelection selection = (IStructuredSelection) tv.getSelection();
			PeopleEntity o = (PeopleEntity) selection.getFirstElement();
			if (o == null)
				MessageDialog.openInformation(null, null, "請先選擇記錄");
			else
				MessageDialog.openInformation(null, null, o.getName());
		}
	}

	// 刷新的Action類
	private final class RefreshAction extends Action {
		public RefreshAction() {
			// 給Action設置圖像。getImageDesc為自定義方法,得到一個圖像
			setHoverImageDescriptor(getImageDesc("refresh.gif"));
			setText("刷新");
		}

		public void run() {
			tv.refresh();
		}
	}

	// 增加的Action類
	private class AddAction extends Action {
		public AddAction() {
			setHoverImageDescriptor(getImageDesc("project.gif"));// 正常狀態下的圖標
			setText("增加");
		}

		public void run() {
			PeopleEntity o = createPeople();// 創建一個新實體對象
			tv.add(o);// 增加到表格界面中
			List list = (List) tv.getInput();
			list.add(o); // 增加到數據模型的List容器中
			// ....向數據庫增加記錄(略)
		}

		private PeopleEntity createPeople() {// 創建一個新實體對象
			PeopleEntity o = new PeopleEntity();
			o.setId(5L);
			o.setName("新人");
			o.setSex(true);
			o.setAge(15);
			o.setCreateDate(new Date());
			return o;
		}
	}

	private class RemoveAction extends Action {
		public RemoveAction() {
			setHoverImageDescriptor(getImageDesc("remove.gif"));// 正常狀態下的圖標
			// 按鈕無效狀態下的圖標。不設也可以,當按鈕失效時會自動使正常圖片變灰。
			setDisabledImageDescriptor(getImageDesc("disremove.gif"));
			setText("刪除");
		}

		// 這里演示了如何從表格中刪除所選的多個記錄
		public void run() {
			if (ctv != null) {
				Object[] checkObj = ctv.getCheckedElements(); // 取得打勾的記錄
				if (checkObj.length == 0) {// 判斷是否有勾選復選框
					MessageDialog.openInformation(null, "提示", "請先勾選記錄");
					return;
				}
				for (int i = 0; i < checkObj.length; i++) {
					PeopleEntity o = (PeopleEntity) checkObj[i];
					ctv.remove(o);// 從表格界面上刪除
					List list = (List) tv.getInput();
					list.remove(o);// 從數據模型的List容器中刪除
					// ....,從數據庫中刪除記錄(略)
				}
			} else {
				IStructuredSelection s = (IStructuredSelection) tv.getSelection();// 得到選擇的對象集
				if (s.isEmpty()) {// 判斷是否有選擇
					MessageDialog.openInformation(null, "提示", "請先選擇");
					return;
				}
				for (Iterator it = s.iterator(); it.hasNext();) {
					PeopleEntity o = (PeopleEntity) it.next();
					tv.remove(o);// 從表格界面上刪除
					List list = (List) tv.getInput();
					list.remove(o); // 從數據模型的List容器中刪除
					// ....,從數據庫中刪除記錄(略)
				}
			}

		}
	}

	// 新增的“全選”Action
	private class SelectAllAction extends Action {
		public SelectAllAction() {
			setHoverImageDescriptor(getImageDesc("selectall.gif"));
			setText("全選");
		}

		public void run() {
			if (ctv != null)
				ctv.setAllChecked(true); // 將所有復選框打勾
		}
	}

	// 新增的“全不選”Action
	private class DeselectAction extends Action {
		public DeselectAction() {
			setHoverImageDescriptor(getImageDesc("deselect.gif"));
			setText("全不選");
		}

		public void run() {
			if (ctv != null)
				ctv.setAllChecked(false); // 取消所有復選框打勾
		}
	}

	// 自定義方法。生成Action對象,并通過工具欄管理器ToolBarManager填充進工具欄
	public void fillActionToolBars(ToolBarManager actionBarManager) {
		// 創建Action對象,一個按鈕對應一個個的Action
		Action refreshAction = new RefreshAction();
		Action addAction = new AddAction();
		Action removeAction = new RemoveAction();
		Action selAllAction = new SelectAllAction();
		Action deselAction = new DeselectAction();

		// 將按鈕通過工具欄管理器ToolBarManager填充進工具欄,如果用add(action)
		// 也是可以的,只不過只有文字沒有圖像。要顯示圖像需要將Action包裝成
		// ActionContributionItem,在這里我們將包裝的處理過程寫成了一個方法
		actionBarManager.add(createContributionItem(refreshAction));
		actionBarManager.add(createContributionItem(addAction));
		actionBarManager.add(createContributionItem(removeAction));
		actionBarManager.add(createContributionItem(selAllAction));
		actionBarManager.add(createContributionItem(deselAction));

		actionBarManager.update(true);// 更新工具欄,否則工具欄不顯示任何按鈕
	}

	// 將Action包裝成ActionContributionItem類的方法。實際上Action加入到
	// ToolBarManager或MenuManager里時,也做了ActionContributionItem的包裝,
	// 大家可以看它ToolBarManager的add(IAction)的源代碼即知
	private IContributionItem createContributionItem(IAction action) {
		ActionContributionItem aci = new ActionContributionItem(action);
		aci.setMode(ActionContributionItem.MODE_FORCE_TEXT);// 顯示圖像+文字
		return aci;
	}

	// 得到一個圖像的ImageDescriptor對象
	private ImageDescriptor getImageDesc(String fileName) {
		try {
			URL url = new URL("file:icons/" + fileName);
			return ImageDescriptor.createFromURL(url);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		return null;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情视频网站| 久久综合九色综合欧美就去吻| 日韩一区二区在线免费观看| 国产精品天美传媒沈樵| 首页国产欧美久久| av网站免费线看精品| 久久综合狠狠综合久久综合88| 一区二区三区在线视频播放| 国产成人精品亚洲日本在线桃色| 日韩亚洲欧美综合| 一区二区三区四区高清精品免费观看| 国产高清久久久| 欧美一级生活片| 久久精品国产精品亚洲红杏| 在线观看日韩高清av| 中文字幕一区二区三区色视频| 美女视频一区二区三区| 欧美体内she精高潮| 国产精品国产自产拍高清av王其 | 免费在线一区观看| 久久久.com| 日韩片之四级片| 久久超碰97中文字幕| 亚洲嫩草精品久久| 欧美日韩成人一区| 色哟哟一区二区在线观看| 国内精品免费在线观看| 天堂va蜜桃一区二区三区漫画版| 国产精品无圣光一区二区| 日韩美女一区二区三区四区| 欧美人xxxx| 欧美精品一卡二卡| 欧美日韩一区高清| 欧美日韩视频不卡| 精品国产电影一区二区| 日韩欧美国产成人一区二区| 麻豆国产精品一区二区三区 | 欧美激情一区二区三区不卡| 日韩精品在线网站| 亚洲第一精品在线| 91精品国产色综合久久不卡电影 | 国产精品国产三级国产普通话蜜臀| 国产剧情一区在线| 国产亚洲欧美日韩在线一区| 国产精品18久久久久久久久| 国产欧美日韩综合精品一区二区| 国产高清精品久久久久| 亚洲欧洲日韩综合一区二区| 99v久久综合狠狠综合久久| 久久久久久97三级| 99在线精品观看| 亚洲综合久久久| 欧美一区二区高清| 国产精品一线二线三线精华| 国产精品久久久久影院色老大 | 国产精品嫩草99a| 91色.com| 热久久久久久久| 国产亚洲制服色| 欧美性极品少妇| 久久精品999| 亚洲日本va在线观看| 欧美疯狂做受xxxx富婆| 国产精品自拍av| 亚洲一区二区在线免费观看视频| 日韩一区二区免费在线电影 | 国产精品久久久久四虎| 欧美午夜免费电影| 国产成人免费高清| 亚洲成人av一区二区三区| 久久久亚洲国产美女国产盗摄| 91免费观看国产| 精品亚洲国产成人av制服丝袜 | 久久精品日韩一区二区三区| 一本到一区二区三区| 久久99国产精品久久99果冻传媒| ...xxx性欧美| 欧美成人伊人久久综合网| 91麻豆.com| 国产成人精品aa毛片| 美洲天堂一区二卡三卡四卡视频| 中文字幕制服丝袜一区二区三区| 日韩美女视频在线| 91麻豆国产自产在线观看| 国内精品伊人久久久久影院对白| 亚洲综合一区在线| 国产精品区一区二区三区| 欧美一区二区三区四区视频 | 国产成人精品免费| 蜜臀99久久精品久久久久久软件| 亚洲免费成人av| 欧美精彩视频一区二区三区| 日韩欧美综合在线| 在线观看亚洲a| 91麻豆国产香蕉久久精品| 国产传媒久久文化传媒| 另类小说图片综合网| 亚洲成人综合视频| 亚洲精品在线三区| 国产一区二区在线看| 日韩影院在线观看| 国产精品久久久久久久午夜片| 欧美日韩美少妇| 91福利社在线观看| 91香蕉视频污在线| 北岛玲一区二区三区四区| 久久成人免费网| 久久99精品久久久久久动态图 | 亚洲人123区| 亚洲视频一区二区在线观看| 中文在线免费一区三区高中清不卡| 精品成人a区在线观看| 日韩女优av电影在线观看| 制服丝袜av成人在线看| 5566中文字幕一区二区电影| 欧美日韩视频一区二区| 欧美精品v国产精品v日韩精品 | 久草这里只有精品视频| 蜜臀av在线播放一区二区三区| 日韩不卡手机在线v区| 日韩国产欧美三级| 日本亚洲电影天堂| 蜜臀久久久99精品久久久久久| 免费成人美女在线观看| 日本v片在线高清不卡在线观看| 蜜桃av一区二区三区| 精品一区二区三区免费毛片爱 | 欧美国产日本韩| 亚洲天堂精品视频| 亚洲国产精品综合小说图片区| 日韩精品一二三| 伦理电影国产精品| 国产成人精品三级麻豆| 91在线云播放| 欧美老女人第四色| 2023国产精华国产精品| 国产精品福利在线播放| 亚洲图片欧美综合| 成人午夜看片网址| 粉嫩一区二区三区性色av| 99精品国产热久久91蜜凸| 欧美日韩在线播放三区| 欧美r级电影在线观看| 久久婷婷国产综合精品青草| 亚洲欧洲色图综合| 日韩不卡一二三区| 成人网在线免费视频| 色一情一伦一子一伦一区| 欧美精品一级二级| 久久久久久久久97黄色工厂| 亚洲色图欧美偷拍| 免费久久99精品国产| www.爱久久.com| 制服丝袜亚洲色图| 国产精品欧美久久久久一区二区| 亚洲成人av一区二区| 成人午夜看片网址| 欧美一区二区三区四区久久| 1区2区3区精品视频| 精彩视频一区二区| 欧美日韩在线一区二区| 日本一区二区三区电影| 蜜乳av一区二区| 欧美性猛交一区二区三区精品| 久久久精品人体av艺术| 午夜欧美一区二区三区在线播放| 国产精品77777竹菊影视小说| 欧美日韩一级黄| 成人欧美一区二区三区| 狠狠色丁香久久婷婷综| 欧美日韩一区成人| 亚洲啪啪综合av一区二区三区| 久久精品久久99精品久久| 日本精品一级二级| 国产精品久久综合| 国产精品资源网| 日韩精品一区二区三区在线观看 | 国产精品另类一区| 久久国产剧场电影| 在线不卡的av| 亚洲综合在线电影| 91在线观看高清| 国产精品毛片a∨一区二区三区| 国产在线麻豆精品观看| 日韩欧美国产午夜精品| 亚洲成av人片| 欧美亚洲高清一区| 亚洲蜜臀av乱码久久精品| 成人午夜av电影| 欧美高清在线一区二区| 成人综合婷婷国产精品久久蜜臀 | 视频一区免费在线观看| 欧美午夜一区二区| 亚洲一区二区三区四区在线 | 青青青爽久久午夜综合久久午夜| 欧美无人高清视频在线观看| 亚洲黄一区二区三区| 91一区二区三区在线播放| 亚洲老妇xxxxxx| 日本高清视频一区二区|