定制Eclipse IDE之功能篇(二)

上文回顾:定制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

时间: 2024-10-08 11:24:36

定制Eclipse IDE之功能篇(二)的相关文章

定制Eclipse IDE之功能篇(一)

上文回顾:定制Eclipse IDE之界面篇 这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细. 我的主要插件的拓展如下: 一.org.eclipse.ui.startup 这一个拓展可以说很关键,他可以让我们在eclipse启动时候做一些事件(之后很多小功能东西依靠它做的). XML配置: <extension point="org.eclipse.ui.startup"> <startup class=&

定制Eclipse IDE之插件篇(一)

上文回顾:定制Eclipse IDE之功能篇(二) 在这篇文章中,我会将我定制eclipse用到的其他插件罗列出来. 一.汉化插件 Eclipse本身是英文显示的,我们能够通过插件汉化. 1. 选择对应的Eclipse版本. 下载地址:http://www.eclipse.org/babel/downloads.php 2. 选择需要下载的语言 3.解压后直接拷贝到Eclipse的dropins目录即可. 二.打开文件夹位置插件 点击工程或工程文件时候,可以直接打开目录位置. 下载地址:http

定制Eclipse IDE之插件篇(二)

上文回顾:定制Eclipse IDE之插件篇(一) 延续上一篇的插件篇,这一篇将会讲到一个最关键的插件aptana. 一.aptana插件 官方的解释我就不说了,从下面图可以看到插件提供了什么功能,列举一些我觉得重要的. 1. Contnet Assist : 代码提示 2. Editors:5种文件编辑器 3. Themes : 主题 4. Validation : 代码校验 提供这几点能力直击我eclipse前端开发的要害,就决定使用,下面是我对aptana做的一些调整. 1. 下载apta

定制Eclipse IDE之杂症篇

上文回顾:定制Eclipse IDE之插件篇(二) 该篇将讲述在开发Eclipse 插件过程发生的疑难杂症.不谈功能,只说病症. 前言.拿哪个Eclipse作为定制的基础? 我建议是你用哪个Eclipse做开发,就使用那个Eclipse作为定制的基础,因为你的插件是在这上面开发的,决对不会出现缺少必要的依赖插件.如果觉得有些插件没必要的话,也自行删除. 一.插件存在缓存的现象 在开发插件的时候,有时会存在缓存了上一次运行插件结果的现象. 解决办法: 1.在run configurations的E

定制Eclipse IDE之界面篇

为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候,我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具. 我在公司里面做的是一个hybrid框架,而一个配套的IDE是比不可少的,主要用来开发HTML5.这个IDE可以算是框架东西的聚合,可以将在线文档.工程模板.打包调试等功能都揉合在IDE.当我们提供给开发者东西时,我们只需要提供一个IDE,里面已经包含所有框架的东西. 我花费了一个月

Eclipse - 定制Eclipse IDE之界面篇

为什么要定制IDE? 在工作时候,当公司有了自己的框架,给自己开放人员用,甚至是可以卖的时候, 我们可以做成一个产品,而这个产品将包括框架本身.文档.工具.教程等等.工具之中最重要的莫过于开发工具(IDE).调试工具. 目前apicloud或dcloud这些hybrid框架都是基于Eclipse做定制的,只不过dcloud做得比较彻底. 怎么定制IDE? 我们之所以能够定制Eclipse IDE,并不是我们写的东西有多厉害, 而是Eclipse的本身,它是一个平台,能够让我们编写插件拓展功能,达

Maven、gradle、Ant、Eclipse IDE

Maven.gradle.Ant.Eclipse IDE之间的关系 http://wenku.baidu.com/view/d33208810912a21615792910.html?from=search 觉得应该很多同学有和我一样的疑惑,所以分享下. 1.使用github上的开源项目时是不是经常发现有个叫maven的东西? 2.第一次使用Android studio时是不是要下载一个gradle的玩意? 折腾了一天,想导入下github的客户端源码.当然现在还没成功...各种看不懂的错误.郁

eclipse ide for java ee developers 开发环境搭建详解图文(j2ee)

使用eclipse真的有年头了,相信java程序员没有不知道它的,最近在给团队中新来的应届生做指导,专门讲解了一下Eclipse开发环境的搭建过程,一是帮助他们尽快的熟悉IDE的使用,二也是保证团队开发环境的一致性(顺便说一下,这点在敏捷开发团队中尤为重要,方便知识传播,提升团队快速响应能力). 培训的过程中想起了自己当年初涉java时的情景,不免感慨万千啊.正所谓"工欲善其事必先利其器",话不多说,赶紧搭吧. 一.jdk安装与配置 jdk7于3月份刚刚发布,目前eclipse的最新版

Eclipse使用方法和技巧二十七:定义自己的高速联想词

某天在调试代码的时候.尽管是android的project还是习惯的输入syso.然后在ALT+/一下. 旁边的同事就问了一下,这个log打印输出的tag是什么. 接着又问了为什么syso可以智能联想出这个.第一个问题非常好回答,只是对于第二个问题还真答不上来.大学里面第一次见某个学长使用这个技能之后,就默默的记住了.也没有多想是什么回事. 这两天留意了一下.原来是类似java代码模版的一个东东.在一想为什么不自定义android的联想词呢. .. 步骤一:打开preference.搜索edit