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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fileviewer.java

?? 利用SWT作為開發(fā)用戶界面
?? JAVA
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
		createTreeDragSource(tree);		createTreeDropTarget(tree);	}	/**	 * Creates the Drag & Drop DragSource for items being dragged from the tree.	 * 	 * @return the DragSource for the tree	 */	private DragSource createTreeDragSource(final Tree tree){		DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY);		dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });		dragSource.addDragListener(new DragSourceListener() {			TreeItem[] dndSelection = null;			String[] sourceNames = null;			public void dragStart(DragSourceEvent event){				dndSelection = tree.getSelection();				sourceNames = null;				event.doit = dndSelection.length > 0;				isDragging = true;				processedDropFiles = null;			}			public void dragFinished(DragSourceEvent event){				dragSourceHandleDragFinished(event, sourceNames);				dndSelection = null;				sourceNames = null;				isDragging = false;				processedDropFiles = null;				handleDeferredRefresh();			}			public void dragSetData(DragSourceEvent event){				if (dndSelection == null || dndSelection.length == 0) return;				if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;								sourceNames  = new String[dndSelection.length];				for (int i = 0; i < dndSelection.length; i++) {					File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE);					sourceNames[i] = file.getAbsolutePath();				}				event.data = sourceNames;			}		});		return dragSource;	}	/**	 * Creates the Drag & Drop DropTarget for items being dropped onto the tree.	 * 	 * @return the DropTarget for the tree	 */	private DropTarget createTreeDropTarget(final Tree tree) {		DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY);		dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });		dropTarget.addDropListener(new DropTargetAdapter() {			public void dragEnter(DropTargetEvent event) {				isDropping = true;			}			public void dragLeave(DropTargetEvent event) {				isDropping = false;				handleDeferredRefresh();			}			public void dragOver(DropTargetEvent event) {				dropTargetValidate(event, getTargetFile(event));				event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;			}			public void drop(DropTargetEvent event) {				File targetFile = getTargetFile(event);				if (dropTargetValidate(event, targetFile))					dropTargetHandleDrop(event, targetFile);			}			private File getTargetFile(DropTargetEvent event) {				// Determine the target File for the drop 				TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y)));				File targetFile = null;				if (item != null) {					// We are over a particular item in the tree, use the item's file					targetFile = (File) item.getData(TREEITEMDATA_FILE);				}				return targetFile;			}		});		return dropTarget;		}	/**	 * Handles expand events on a tree item.	 * 	 * @param item the TreeItem to fill in	 */	private void treeExpandItem(TreeItem item) {		shell.setCursor(iconCache.stockCursors[iconCache.cursorWait]);		final Object stub = item.getData(TREEITEMDATA_STUB);		if (stub == null) treeRefreshItem(item, true);		shell.setCursor(iconCache.stockCursors[iconCache.cursorDefault]);	}		/**	 * Traverse the entire tree and update only what has changed.	 * 	 * @param roots the root directory listing	 */	private void treeRefresh(File[] masterFiles) {		TreeItem[] items = tree.getItems();		int masterIndex = 0;		int itemIndex = 0;		for (int i = 0; i < items.length; ++i) {			final TreeItem item = items[i];			final File itemFile = (File) item.getData(TREEITEMDATA_FILE);			if ((itemFile == null) || (masterIndex == masterFiles.length)) {				// remove bad item or placeholder				item.dispose();				continue;			}			final File masterFile = masterFiles[masterIndex];			int compare = compareFiles(masterFile, itemFile);			if (compare == 0) {				// same file, update it				treeRefreshItem(item, false);				++itemIndex;				++masterIndex;			} else if (compare < 0) {				// should appear before file, insert it				TreeItem newItem = new TreeItem(tree, SWT.NULL, itemIndex);				treeInitVolume(newItem, masterFile);				new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button				++itemIndex;				++masterIndex;				--i;			} else {				// should appear after file, delete stale item				item.dispose();			}		}		for (;masterIndex < masterFiles.length; ++masterIndex) {			final File masterFile = masterFiles[masterIndex];			TreeItem newItem = new TreeItem(tree, SWT.NULL);			treeInitVolume(newItem, masterFile);			new TreeItem(newItem, SWT.NULL); // placeholder child item to get "expand" button		}			}		/**	 * Traverse an item in the tree and update only what has changed.	 * 	 * @param dirItem the tree item of the directory	 * @param forcePopulate true iff we should populate non-expanded items as well	 */	private void treeRefreshItem(TreeItem dirItem, boolean forcePopulate) {		final File dir = (File) dirItem.getData(TREEITEMDATA_FILE);				if (! forcePopulate && ! dirItem.getExpanded()) {			// Refresh non-expanded item			if (dirItem.getData(TREEITEMDATA_STUB) != null) {				treeItemRemoveAll(dirItem);				new TreeItem(dirItem, SWT.NULL); // placeholder child item to get "expand" button				dirItem.setData(TREEITEMDATA_STUB, null);			}			return;		}		// Refresh expanded item		dirItem.setData(TREEITEMDATA_STUB, this); // clear stub flag		/* Get directory listing */		File[] subFiles = (dir != null) ? FileViewer.getDirectoryList(dir) : null;		if (subFiles == null || subFiles.length == 0) {			/* Error or no contents */			treeItemRemoveAll(dirItem);			dirItem.setExpanded(false);			return;		}		/* Refresh sub-items */		TreeItem[] items = dirItem.getItems();		final File[] masterFiles = subFiles;		int masterIndex = 0;		int itemIndex = 0;		File masterFile = null;		for (int i = 0; i < items.length; ++i) {			while ((masterFile == null) && (masterIndex < masterFiles.length)) {				masterFile = masterFiles[masterIndex++];				if (! masterFile.isDirectory()) masterFile = null;			}			final TreeItem item = items[i];			final File itemFile = (File) item.getData(TREEITEMDATA_FILE);			if ((itemFile == null) || (masterFile == null)) {				// remove bad item or placeholder				item.dispose();				continue;			}			int compare = compareFiles(masterFile, itemFile);			if (compare == 0) {				// same file, update it				treeRefreshItem(item, false);				masterFile = null;				++itemIndex;			} else if (compare < 0) {				// should appear before file, insert it				TreeItem newItem = new TreeItem(dirItem, SWT.NULL, itemIndex);				treeInitFolder(newItem, masterFile);				new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button				masterFile = null;				++itemIndex;				--i;			} else {				// should appear after file, delete stale item				item.dispose();			}		}		while ((masterFile != null) || (masterIndex < masterFiles.length)) {			if (masterFile != null) {				TreeItem newItem = new TreeItem(dirItem, SWT.NULL);				treeInitFolder(newItem, masterFile);				new TreeItem(newItem, SWT.NULL); // add a placeholder child item so we get the "expand" button				if (masterIndex == masterFiles.length) break;			}			masterFile = masterFiles[masterIndex++];			if (! masterFile.isDirectory()) masterFile = null;		}	}	/**	 * Foreign method: removes all children of a TreeItem.	 * @param treeItem the TreeItem	 */	private static void treeItemRemoveAll(TreeItem treeItem) {		final TreeItem[] children = treeItem.getItems();		for (int i = 0; i < children.length; ++i) {			children[i].dispose();		}	}	/**	 * Initializes a folder item.	 * 	 * @param item the TreeItem to initialize	 * @param folder the File associated with this TreeItem	 */	private void treeInitFolder(TreeItem item, File folder) {		item.setText(folder.getName());		item.setImage(iconCache.stockImages[iconCache.iconClosedFolder]);		item.setData(TREEITEMDATA_FILE, folder);		item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenFolder]);		item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedFolder]);	}	/**	 * Initializes a volume item.	 * 	 * @param item the TreeItem to initialize	 * @param volume the File associated with this TreeItem	 */	private void treeInitVolume(TreeItem item, File volume) {		item.setText(volume.getPath());		item.setImage(iconCache.stockImages[iconCache.iconClosedDrive]);		item.setData(TREEITEMDATA_FILE, volume);		item.setData(TREEITEMDATA_IMAGEEXPANDED, iconCache.stockImages[iconCache.iconOpenDrive]);		item.setData(TREEITEMDATA_IMAGECOLLAPSED, iconCache.stockImages[iconCache.iconClosedDrive]);	}	/**	 * Creates the file details table.	 * 	 * @param parent the parent control	 */	private void createTableView(Composite parent) {		Composite composite = new Composite(parent, SWT.NONE);		GridLayout gridLayout = new GridLayout();		gridLayout.numColumns = 1;		gridLayout.marginHeight = gridLayout.marginWidth = 2;		gridLayout.horizontalSpacing = gridLayout.verticalSpacing = 0;		composite.setLayout(gridLayout);		tableContentsOfLabel = new Label(composite, SWT.BORDER);		tableContentsOfLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL));		table = new Table(composite, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);		table.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL));		for (int i = 0; i < tableTitles.length; ++i) {			TableColumn column = new TableColumn(table, SWT.NONE);			column.setText(tableTitles[i]);			column.setWidth(tableWidths[i]);		}		table.setHeaderVisible(true);		table.addSelectionListener(new SelectionAdapter() {			public void widgetSelected(SelectionEvent event) {				notifySelectedFiles(getSelectedFiles());			}			public void widgetDefaultSelected(SelectionEvent event) {				doDefaultFileAction(getSelectedFiles());			}			private File[] getSelectedFiles() {				final TableItem[] items = table.getSelection();				final File[] files = new File[items.length];								for (int i = 0; i < items.length; ++i) {					files[i] = (File) items[i].getData(TABLEITEMDATA_FILE);				}				return files;			}		});		createTableDragSource(table);		createTableDropTarget(table);	}	/**	 * Creates the Drag & Drop DragSource for items being dragged from the table.	 * 	 * @return the DragSource for the table	 */	private DragSource createTableDragSource(final Table table) {		DragSource dragSource = new DragSource(table, DND.DROP_MOVE | DND.DROP_COPY);		dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });		dragSource.addDragListener(new DragSourceListener() {			TableItem[] dndSelection = null;			String[] sourceNames = null;			public void dragStart(DragSourceEvent event){				dndSelection = table.getSelection();				sourceNames = null;				event.doit = dndSelection.length > 0;				isDragging = true;			}			public void dragFinished(DragSourceEvent event){				dragSourceHandleDragFinished(event, sourceNames);				dndSelection = null;				sourceNames = null;				isDragging = false;				handleDeferredRefresh();			}			public void dragSetData(DragSourceEvent event){				if (dndSelection == null || dndSelection.length == 0) return;				if (! FileTransfer.getInstance().isSupportedType(event.dataType)) return;								sourceNames  = new String[dndSelection.length];				for (int i = 0; i < dndSelection.length; i++) {					File file = (File) dndSelection[i].getData(TABLEITEMDATA_FILE);					sourceNames[i] = file.getAbsolutePath();				}				event.data = sourceNames;			}		});		return dragSource;	}	/**	 * Creates the Drag & Drop DropTarget for items being dropped onto the table.	 * 	 * @return the DropTarget for the table	 */	private DropTarget createTableDropTarget(final Table table){		DropTarget dropTarget = new DropTarget(table, DND.DROP_MOVE | DND.DROP_COPY);		dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() });		dropTarget.addDropListener(new DropTargetAdapter() {			public void dragEnter(DropTargetEvent event) {				isDropping = true;			}			public void dragLeave(DropTargetEvent event) {				isDropping = false;				handleDeferredRefresh();			}			public void dragOver(DropTargetEvent event) {				dropTargetValidate(event, getTargetFile(event));				event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;			}			public void drop(DropTargetEvent event) {				File targetFile = getTargetFile(event);				if (dropTargetValidate(event, targetFile))					dropTargetHandleDrop(event, targetFile);			}			private File getTargetFile(DropTargetEvent event) {				// Determine the target File for the drop 				TableItem item = table.getItem(table.toControl(new Point(event.x, event.y)));				File targetFile = null;				if (item == null) {					// We are over an unoccupied area of the table.					// If it is a COPY, we can use the table's root file.					if (event.detail == DND.DROP_COPY) {						targetFile = (File) table.getData(TABLEDATA_DIR);					}				} else {					// We are over a particular item in the table, use the item's file					targetFile = (File) item.getData(TABLEITEMDATA_FILE);				}				return targetFile;			}		});		return dropTarget;	}	/**	 * Notifies the application components that a new current directory has been selected	 * 	 * @param dir the directory that was selected, null is ignored	 */	void notifySelectedDirectory(File dir) {		if (dir == null) return;		if (currentDirectory != null && dir.equals(currentDirectory)) return;		currentDirectory = dir;		notifySelectedFiles(null);				/* Shell:		 * Sets the title to indicate the selected directory		 */		shell.setText(getResourceString("Title", new Object[] { currentDirectory.getPath() }));		/* Table view:		 * Displays the contents of the selected directory.		 */		workerUpdate(dir, false);		/* Combo view:		 * Sets the combo box to point to the selected directory.		 */		final File[] comboRoots = (File[]) combo.getData(COMBODATA_ROOTS);		int comboEntry = -1;		if (comboRoots != null) {					for (int i = 0; i < comboRoots.length; ++i) {				if (dir.equals(comboRoots[i])) {					comboEntry = i;					break;				}			}		}		if (comboEntry == -1) combo.setText(dir.getPath());		else combo.select(comboEntry);		/* Tree view:		 * If not already expanded, recursively expands the parents of the specified		 * directory until it is visible.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片在线不卡一二三区| 韩国在线一区二区| 中文字幕中文字幕在线一区 | 国产一区二区精品久久99| 亚洲最大色网站| 中文字幕一区免费在线观看| 国产日韩三级在线| 精品处破学生在线二十三| 色婷婷av一区二区| 欧美在线观看一区二区| 色素色在线综合| 色偷偷久久一区二区三区| 91麻豆精品在线观看| 成人av在线一区二区| 成人免费毛片app| 99久久777色| av动漫一区二区| av网站免费线看精品| 91在线视频播放地址| 91香蕉视频黄| 99国产精品国产精品毛片| 色诱视频网站一区| 欧美性生活久久| 欧美久久久久久久久久| 在线播放中文字幕一区| 69堂成人精品免费视频| 日韩欧美一区二区不卡| 久久久久久9999| 国产精品久久久久久久浪潮网站| xvideos.蜜桃一区二区| 久久久久久久久久久电影| 国产欧美一区视频| 国产精品久久久久久久久晋中| 中文字幕一区在线观看视频| 中文子幕无线码一区tr| 夜夜嗨av一区二区三区中文字幕| 亚洲国产精品久久不卡毛片 | 青青草原综合久久大伊人精品优势| 一区二区理论电影在线观看| 日韩精品一级中文字幕精品视频免费观看| 亚洲三级在线免费观看| 日日摸夜夜添夜夜添国产精品 | 国产精品伦理一区二区| 亚洲另类色综合网站| 亚洲欧美日韩在线播放| 亚洲电影中文字幕在线观看| 九一九一国产精品| 成人av在线观| 欧美福利视频导航| 日本一区二区三区在线观看| 亚洲激情在线激情| 蜜桃视频一区二区| 高清不卡一区二区| 欧美亚洲愉拍一区二区| 日韩欧美的一区二区| 欧美激情艳妇裸体舞| 天堂在线亚洲视频| 91在线观看视频| 精品精品国产高清a毛片牛牛| 一区二区三区蜜桃网| 国产一区在线观看麻豆| 欧美日韩中文国产| 1000部国产精品成人观看| 美女国产一区二区三区| 色综合咪咪久久| 久久久精品人体av艺术| 日韩精品一二三区| 91久久奴性调教| 国产日产欧产精品推荐色| 免费观看久久久4p| 欧美性生活久久| 亚洲色图视频网| 国产精品中文字幕一区二区三区| 4hu四虎永久在线影院成人| 亚洲欧美日韩久久精品| 懂色av一区二区三区免费观看| 欧美一区二区视频在线观看2022 | 国产成人免费网站| 欧美一区二区不卡视频| 亚洲成av人片在www色猫咪| 91在线码无精品| 国产精品免费久久| 国产成人激情av| 欧美大片一区二区| 奇米一区二区三区av| 欧美中文字幕亚洲一区二区va在线| 中文字幕巨乱亚洲| 韩日精品视频一区| 亚洲精品一区二区三区蜜桃下载 | 丝袜亚洲另类丝袜在线| 在线看国产日韩| 亚洲久草在线视频| 色屁屁一区二区| 亚洲欧美一区二区三区国产精品| 成人性视频免费网站| 国产婷婷精品av在线| 国产一级精品在线| 精品国产一区二区三区四区四 | 韩国欧美国产1区| 精品福利在线导航| 激情综合色丁香一区二区| 7777精品伊人久久久大香线蕉| 无吗不卡中文字幕| 欧美一区二区三区四区视频| 婷婷久久综合九色综合绿巨人| 欧美乱妇15p| 日韩成人免费电影| 日韩欧美在线网站| 久久草av在线| 亚洲精品一区二区三区蜜桃下载| 日本不卡一二三区黄网| 日韩视频免费直播| 国产真实乱子伦精品视频| 久久久91精品国产一区二区三区| 国产suv一区二区三区88区| 日本一区二区久久| 97se狠狠狠综合亚洲狠狠| 一区二区三区四区蜜桃| 538在线一区二区精品国产| 久久精品国产一区二区| 久久精品水蜜桃av综合天堂| 成人免费毛片片v| 亚洲人成在线播放网站岛国| 欧美日韩一区在线| 精品一区二区三区蜜桃| 欧美极品少妇xxxxⅹ高跟鞋| 91在线观看下载| 亚洲v日本v欧美v久久精品| 日韩欧美在线观看一区二区三区| 捆绑变态av一区二区三区| 久久久精品中文字幕麻豆发布| 成人av网站在线观看| 亚洲女人的天堂| 日韩一区二区精品葵司在线| 国产激情一区二区三区四区| 中文字幕一区二区5566日韩| 欧美日韩一区二区三区四区| 久久99久久久欧美国产| 国产欧美一区二区精品性| 91丝袜美女网| 蜜臀a∨国产成人精品| 国产精品国产三级国产普通话蜜臀| 色婷婷综合久色| 免费久久精品视频| 亚洲欧洲无码一区二区三区| 欧美日本乱大交xxxxx| 国内精品自线一区二区三区视频| 国产精品乱码人人做人人爱 | 欧美亚洲禁片免费| 狠狠狠色丁香婷婷综合激情| 综合久久久久久久| 日韩三级视频在线看| 成人激情免费视频| 亚洲成人资源网| 久久精品日韩一区二区三区| 色网站国产精品| 国产在线精品不卡| 亚洲在线免费播放| 久久久99久久| 欧美一区二区在线视频| 色综合天天综合给合国产| 精品综合久久久久久8888| 亚洲日本护士毛茸茸| 久久综合一区二区| 欧美日韩dvd在线观看| 91网站最新地址| 国产河南妇女毛片精品久久久| 视频一区二区不卡| 有码一区二区三区| 欧美国产日韩精品免费观看| 欧美一区二区三区性视频| 色综合色狠狠综合色| 国产jizzjizz一区二区| 男女性色大片免费观看一区二区| 亚洲免费观看高清| 国产精品色婷婷| 久久日一线二线三线suv| 91超碰这里只有精品国产| 91色.com| 99精品1区2区| 丁香一区二区三区| 极品少妇xxxx精品少妇| 天天影视网天天综合色在线播放| 亚洲日本va午夜在线电影| 欧美精品一区男女天堂| 日韩一区二区三| 欧美美女一区二区| 欧美午夜电影在线播放| 色激情天天射综合网| 成人黄色片在线观看| 国产成人精品免费一区二区| 韩国女主播一区二区三区| 蜜乳av一区二区三区| 午夜精品一区在线观看| 一区二区在线电影| 亚洲欧美日韩小说| 亚洲欧美一区二区三区久本道91| 亚洲欧美中日韩| 国产精品久久久久影院| 国产精品国产自产拍高清av王其|