定制Eclipse IDE之功能篇(二)

简介:
 
这一篇文章将记录一些Eclipse插件小功能,Smart but Useful。
 
一、设置工作空间 文本文件的编码
 
解决办法:
在org.eclipse.ui.startup拓展里执行这一句(只需执行一次):
ResourcesPlugin.getPlugin().getPluginPreferences().setValue("encoding", "UTF-8");

 

二、默认显示行号

 
解决办法:
在org.eclipse.ui.startup拓展里执行这一句(只需执行一次):
EditorsPlugin.getDefault().getPreferenceStore().setValue("lineNumberRuler", "true");

 

三、Combo控件的显示label获取value
有可能我们要在Combo控件显示label,但获取值的时候拿到value。
 
解决办法:
设置label和value:
复制代码
Combo combo = (Combo)control;
combo.removeAll();
for (int i = 0; i < list.size(); i++) {
     DeviceInfo obj=list.get(i);
     combo.add(obj.getName());  //label
     combo.setData(i +"", obj.getSerialNumber());  //value
}
复制代码
获取value:
String key = "" + comboDevice.getSelectionIndex();
String value= String.valueOf(comboDevice.getData(key));

 

四、写文件,生成文件编码问题
一开始我这样写文件,但发现另外插件读取这文件时(以UTF-8 ),乱码了(检查生成的文件编码是ANSI):
 PrintWriter pw = new PrintWriter(new FileWriter(filePath));
 pw.print(content);
 pw.close(); 
解决办法;
OutputStreamWriter outputStream = new OutputStreamWriter(new FileOutputStream(filePath), "UTF-8");  
outputStream.write(content);  
outputStream.close();

 

五、System.out.println可以在控制台显示
如果你的插件没有做什么处理,那你插件里面System.out.println输出的内容是不会在控制台显示。
解决办法:
复制代码
import java.io.PrintStream;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleFactory;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;

public class ConsoleFactory implements IConsoleFactory {

     static MessageConsole console = new MessageConsole("console log",null);

     public void openConsole() {
          showConsole();
     }

     public static void showConsole() {
          if (console != null) {
               IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
               IConsole[] existing = manager.getConsoles();
               boolean exists = false;
               for (int i = 0; i < existing.length; i++) {
                    if (console == existing[i])
                         exists = true;
               }
               if (!exists) {
                    manager.addConsoles(new IConsole[] { console });
               }
               manager.showConsoleView(console);

               MessageConsoleStream stream = console.newMessageStream();
               System.setOut(new PrintStream(stream));
          }
     }

     public static void closeConsole() {
          IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager();
          if (console != null) {
               manager.removeConsoles(new IConsole[] { console });
          }
     }

     public static MessageConsole getConsole() {
          return console;
     }
}
复制代码
这个是我从网上找到的类,另外在System.out.println之前调用ConsoleFactory.showConsole();
 
六、隐藏quickAccess
有时我们并不想显示右上角那个quickAccess,我们想办法去隐藏,并不是说手动关闭。
解决办法:
在org.eclipse.ui.startup拓展里执行(每次打开eclipse都执行):
复制代码
UIJob jobH = new UIJob("hide quick access") {
     @Override
     public IStatus runInUIThread(IProgressMonitor monitor) {
          IWorkbenchWindow window = PlatformUI.getWorkbench()
                    .getActiveWorkbenchWindow();
          if (window == null)
               return Status.CANCEL_STATUS;
          if (window instanceof WorkbenchWindow) {
               MTrimBar topTrim = ((WorkbenchWindow) window).getTopTrim();
               for (MTrimElement element : topTrim.getChildren()) {
                    if ("SearchField".equals(element.getElementId())) {
                         Control contorl = (Control) element.getWidget();
                         contorl.setVisible(false);
                         break;
                    }
               }
          }
          return Status.OK_STATUS;
     }
};
jobH.schedule(0L); 
复制代码
PS:没有找到一劳永逸的办法,网上传说的用样式可以隐藏是不行的。
 
七、文件自动更新
我这里说的是文件自动更新,并不是说eclipse自动更新,可以说只是更新部分eclipse内容。这里主要谈的是一种简单检查更新的办法,无后端服务实现。
服务端:
仅仅只是在服务器里面放这些资源,而里面的版本由一个version.properties决定,每一个版本对应一条记录。
 
客户端:
每次打开eclipse时,自动去下载远端version.properties文件,比对本地的version.properties文件。当有新的版本或者版本后面的时间戳有变更时候下载覆盖本地的文件。
 
功能篇就先到这里,其他篇章待续。
 
本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。
本文地址 : http://www.cnblogs.com/lovesong/p/4694522.html
分类:  6.前后端工具


本文转自 海角在眼前 博客园博客,原文链接: http://www.cnblogs.com/lovesong/p/4694522.html  ,如需转载请自行联系原作者
相关文章
|
6月前
|
IDE 小程序 API
【社区每周】IDE 3.8.10 Beta 版新增按需编译功能(1月第四期)
【社区每周】IDE 3.8.10 Beta 版新增按需编译功能(1月第四期)
59 6
|
6月前
|
IDE 小程序 JavaScript
6月开发者日回顾|IDE多功能更新,质量洞察、全息检测工具全新升级
6月开发者日回顾|IDE多功能更新,质量洞察、全息检测工具全新升级
52 0
|
6月前
|
前端开发 Java Maven
Eclipse里使用Servlet实现简单的登录功能
Maven是一款非常方便的Java开发插件,它可以自动管理好开发过程中需要的jar包,提升开发者们的开发效率。在这里,我手把手教给大家如何新建一个Maven项目,并实现简单的用户登录功能。
182 0
|
6月前
|
IDE Java 开发工具
【 编程 IDE】Eclipse软件的安装
【 编程 IDE】Eclipse软件的安装
74 1
|
6月前
|
IDE 小程序 开发工具
【社区每周】商家平台数据中心功能升级;IDE 3.4.1 Beta 版本上线(1月第一期)
【社区每周】商家平台数据中心功能升级;IDE 3.4.1 Beta 版本上线(1月第一期)
65 11
|
6月前
|
IDE 小程序 JavaScript
【意见征集】IDE 3.0 Beta版上线,有什么功能意见想对产品经理说?
【意见征集】IDE 3.0 Beta版上线,有什么功能意见想对产品经理说?
39 0
|
12月前
|
Web App开发 前端开发 JavaScript
JavaScript浏览器开发者工具和常用的IDE的调试功能
JavaScript浏览器开发者工具和常用的IDE的调试功能
|
Java Android开发 Windows
Eclipse代码自动补全功能
Eclipse代码自动补全功能
109 0
|
数据可视化 Java API
【Eclipse设计】Excel表格的读写功能
【Eclipse设计】Excel表格的读写功能
169 0
|
缓存 IDE 安全
Tomcat与IDE的整合 - Eclipse(结尾附视频)
Tomcat与IDE的整合 - Eclipse(结尾附视频)
106 0