Eclipse工具插件开发之ContainerSelectionDialog资源对话框只显示当前选中项目
来源:互联网 发布:linux中重启oracle 编辑:程序博客网 时间:2024/06/05 20:41
做插件开发得时候碰到了这个需求,要求只显示工作空间中当前选中的项目,当时弄了好久没啥办法,网上搜了好久也没有想要的,怎么办了?只有自己想办法了,一开始是想办法控制给它的值,发现不行,最后只能进行反编译,然后自己改源码咯
private void handleBrowse(Text selectTest) {String project = containerText.getText().replace("/","").trim();ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), ResourcesPlugin.getWorkspace().getRoot(), false, "Select new file container");dialog.setProjectName(project);if (dialog.open() == ContainerSelectionDialog.OK) {Object[] result = dialog.getResult();if (result.length == 1) {String sour=containerText.getText();selectTest.setText(((Path) result[0]).toString().substring(sour.length()+1).replace("/", "."));}}}这是对它基础调用,ContainerSelectionDialog对它翻译之后会在类开头看到一个ContainerSelectionGroup类的声明,这个类里面才是封装ContainerSelectionDialog里面的树状菜单,然后继续反编译,ContainerSelectionGroup类反编译之后找到createTreeViewer方法,在这个方法最后一行有一个this.treeViewer.setInput(
ResourcesPlugin.getWorkspace()<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">);代码,这就是传值到树状菜单了,然后把这个改掉,我改成的是IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();hide(root); this.treeViewer.setInput(root); 先获取项目空间所有项目,然后把当前选中得项目名传过来遍历对比,不是当前项目就全部隐藏掉</span><pre name="code" class="java">private void hide(IWorkspaceRoot root){try {iproject =root.getProjects();if(iproject==null || iproject.length==0){ return;}for (int i = 0; i < iproject.length; i++) { if(!projectName.equals(iproject[i].getName())){ iproject[i].setHidden(true); }}} catch (Exception e) {e.printStackTrace();}}
最后在设值,显示出来之后再把值还原回去,需要在ContainerSelectionDialog类里面createDialogArea方法中设置<pre name="code" class="java">public void show(){try {if(iproject==null || iproject.length==0){ return;}for (int i = 0; i < iproject.length; i++) { iproject[i].setHidden(false);}} catch (Exception e) {e.printStackTrace();}}
<span style="white-space:pre"></span>然后就搞定了
0 0
- Eclipse工具插件开发之ContainerSelectionDialog资源对话框只显示当前选中项目
- Eclipse在插件开发中对话框FileDialog、DirectoryDialog、ContainerSelectionDialog的整理
- Eclipse插件开发之获得当前项目
- eclipse插件开发--获取当前项目路径
- Eclipse插件开发中获取当前选中工程的几种方法
- Eclipse插件开发对话框介绍
- eclipse 插件项目开发之前言
- IOS开发之tableview只选中一行
- Eclipse插件开发资源查找
- eclipse中svn插件,就是点项目右键team后,只显示Apply Patch、Share Project
- 菜鸟教程之工具使用(十二)——Eclipse突出显示选中的相同变量
- 开发工具:eclipse 插件集锦
- 开发工具eclipse: subclipse插件
- Rcp(插件开发) 如何获取当前视图选中的对象
- 获取当前选中项目
- Eclipse插件开发WEB项目
- Eclipse插件开发JAVAEE项目
- Eclipse插件开发WEB项目
- 2016/3/11:敏捷测试用例设计
- 安装apache和phpadmin小结
- 从李世石与AlphaGo对战说开去-软件研发中这么多坑,你选手动还是自动?
- Linux命令行下vim指令笔记
- Sublime Text 2使用技巧
- Eclipse工具插件开发之ContainerSelectionDialog资源对话框只显示当前选中项目
- Java知识点总结
- c# 进程间同步实现 进程之间通讯的几种方法
- Ajax如何工作的学习
- JDK7新特性
- 不错的手机应用APP(未完待续)
- RSA加密的填充模式
- Eclipse Maven WebApp迁移至MyEcipse
- HTML滚动文字代码 marquee标签