==================
1.得到Eclipse安装目录(eclipse.exe所在的目录)绝对路径:
Platform.getInstallLocation().getURL().getPath().substring(1);
2.得到项目中资源路径(常用的比如图片等)
e.g.:getPluginResourcePath(“org.xxxx.xxx.xx.pluginId”,"icons/xxx.jpg");//就可以得到图片的绝对路径了
public static String getPluginResourcePath(String pluginId, String relativePathName) {
try {
Bundle bundle = Platform.getBundle(pluginId);
URL url = bundle.getResource(relativePathName);
if (url != null) {
return FileLocator.toFileURL(url).getPath().substring(1);
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
3.得到Eclipse的工作空间
(1)得到工作空间路径
org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();
(2) 得到工作空间中的项目
IProject[] pros=ResourcesPlugin.getWorkspace().getRoot().getProjects();
4.缓存资源相关,包括字体、颜色、图像等
org.eclipse.jface.resource.JFaceResources
(1)FontRegistry fontRegistry=JFaceResources.getFontRegistry();//注册字体,用于缓存
fontRegistry.put(key, new FontData[] { new FontData(fontName, height, style) });//填充数据
(2)ColorRegistry colorRegistry = JFaceResources.getColorRegistry();//注册颜色
colorRegistry .put(key, new RGB(red, green, blue));
(3)ImageRegistry imageRegistry = JFaceResources.getImageRegistry();
//Image image = new Image(Display.getDefault(), fullPathString);
// ImageDescriptor descriptor = ImageDescriptor.createFromImage(image);
ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imageFilePath);
imageRegistry .put(key, descriptor);
-----
Image的渐变效果:color1/color2是提供的原始颜色
Image image = new Image(null, width, height);
GC gc = new GC(image);
gc.setForeground(color1);
gc.setBackground(color2);
gc.fillGradientRectangle(0, 0, width, height, true);//设置有颜色梯度的效果
gc.dispose();
---------------------------------
5.Eclipse编辑器Editor相关:
IWorkbenchPage page =PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
(1) IEditorPart part=IDE.openEditor(page, input, editorId);//通过page,input,和editorID 打开并获得EditorPart
(2)part = IDE.openEditor(page, input);//打开默认编辑器
(3)通过文件打开对应的编辑器
IPath path = new Path(filePath);
IFileStore fileStore = EFS.getLocalFileSystem().getStore(path);
part = IDE.openEditorOnFileStore(page, fileStore);
6.Eclipse视图相关的
(1)page.findView(viewId)//通过ID找视图
(2)page.showView(viewId)//视图显示
(3)IViewReference viewRef = page.findViewReference(viewId);
page.hideView(viewRef);//视图隐藏
7.Eclipse中透视图转换
IPerspectiveRegistry reg = PlatformUI.getWorkbench().getPerspectiveRegistry();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.setPerspective(reg.findPerspectiveWithId(perspectiveID));//perspectiveID为所要转换透视图的ID
8. 通过反射给菜单区域添加背景色
public void setMenuBG(Color bgColor) {
Menu menu = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getMenuBar();
//反射的好处,只需要知道方法名及参数类型就可以调用
invoke("setBackground", menu, new Class[] { Color.class }, new Color[] { bgColor });
}
Object invoke(String methodName, Object object, Class<?>[] argsTypes, Object[] args) {
Object result = null;
try {
Method m = object.getClass().getDeclaredMethod(methodName, argsTypes);
m.setAccessible(true);
result = m.invoke(object, args);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
9.设置标题工具栏可见(可以动态设定)
WorkbenchWindow activeWorkbenchWindow = (WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow();
activeWorkbenchWindow.setCoolBarVisible(true);
10.