定制Eclipse IDE之功能篇(二)

转载 2016年05月30日 09:58:54
上文回顾:定制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

定制Eclipse IDE之插件篇(一)

上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来。 一、汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉...
  • MitKey
  • MitKey
  • 2016年05月30日 10:00
  • 1292

定制Eclipse IDE之插件篇(二)

上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana。 一、aptana插件 官方的解释我就不说了,从下面图可以看到插件...
  • MitKey
  • MitKey
  • 2016年05月30日 10:01
  • 1219

定制Eclipse IDE之界面篇

为什么要定制IDE?      在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身、文档、工具、教程等等。工具之中最重要的莫过...
  • MitKey
  • MitKey
  • 2016年05月30日 09:56
  • 1006

eclipse ide 变得如此热门

  • 2008年10月27日 14:28
  • 2KB
  • 下载

将 Maven生成的java项目转化为支持 Eclipse IDE的项目

将 Maven生成的java项目转化为支持 Eclipse IDE的项目 在前一篇文章中,我们使用maven创建了一个java 项目, 但是这个项目不能导入 Eclipse IDE,...
  • ichsonx
  • ichsonx
  • 2013年04月15日 10:44
  • 4584

eclipse ide for java x64

  • 2017年07月16日 17:00
  • 179.46MB
  • 下载

eclipse IDE配置最佳实践

1 JDK安装 JDK安装和环境变量配置教程参考:http://jingyan.baidu.com/article/bea41d435bc695b4c41be648.html 下载攻略参考: h...
  • warrah
  • warrah
  • 2016年09月04日 09:37
  • 910

ride eclipse ide

  • 2015年11月05日 23:10
  • 493KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定制Eclipse IDE之功能篇(二)
举报原因:
原因补充:

(最多只允许输入30个字)