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

📄 simplefiletransfer.java

📁 mywork是rcp开发的很好的例子
💻 JAVA
字号:
package net.sf.component.simplenote;import org.eclipse.swt.dnd.ByteArrayTransfer;import org.eclipse.swt.dnd.FileTransfer;import org.eclipse.swt.dnd.Transfer;import org.eclipse.swt.dnd.TransferData;/** * 实现支持gtk和win32的文件拷贝 * @author levin */public class SimpleFileTransfer extends ByteArrayTransfer {	private static SimpleFileTransfer _instance = new SimpleFileTransfer();	private static final String GNOME_LIST = "x-special/gnome-copied-files"; //$NON-NLS-1$	private static final int GNOME_LIST_ID = registerType(GNOME_LIST);	private static final String CF_HDROP = "CF_HDROP "; //$NON-NLS-1$	private static final int CF_HDROPID = 15; //COM.CF_HDROP 跨平台,直接用常量		private SimpleFileTransfer() {}		public static Transfer getInstance() {		return _instance;	}	@Override	protected int[] getTypeIds() {		return new int[]{CF_HDROPID,GNOME_LIST_ID};	}	@Override	protected String[] getTypeNames() {		return new String[]{CF_HDROP,GNOME_LIST};	}	@Override	protected Object nativeToJava(TransferData transferData) {		if (!isSupportedType(transferData)) return null;		//直接处理gtk-gnome下的文件拷贝,是用copy file:///file1 file://file2这样的格式		if(transferData.type == GNOME_LIST_ID){			byte[] data=(byte[]) super.nativeToJava(transferData);			if(data == null) return null;			String fnames=new String(data);			if(fnames == null || fnames.length() < 5)				return null;			fnames=fnames.substring(5);			String[] fs=fnames.split("\n");			for(int i=0;i<fs.length;i++){				if(fs[i] != null && fs[i].length() >8)					fs[i]=fs[i].substring(7);			}			return fs;		}else if(transferData.type == CF_HDROPID){			//win32下是正常的,直接调度一下			return FileTransfer.getInstance().nativeToJava(transferData);		}		//不会到这		return null;	}}

⌨️ 快捷键说明

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