- 浏览: 2469437 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
在Eclipse中一个Wizard=WizardDialog+Wizard+WizardPage,在这三者中,可以把前者看成后者的容器(container),看看这些类里面的代码就知道,Eclipse自己也是这么认为的,而我们最终看到的东西是WizardPage,在一个Wizard中虽然我们看到的是每一个WizardPage都是在点击next的时候一个一个显示的,但是他们的创建却是在Wizard初始化的时候一起被实例化的,因此这个给我们制造联动效果的WizardPage(也就是后一个WizardPage的内容是根据前面的WizardPage的操作动态生成的)造成了麻烦,不过这个问题也很好解决,这里(http://www.cnblogs.com/bjzhanghao/archive/2007/06/07/775314.html)已经给出了答案.即复写Wizard的createPageControls()方法,给一个空实现即可.
不过还有另外一个问题没有解决,就是如果我现在一个Wizard中有a,b两个WizardPage,目前我停留在b WizardPage中,我现在点击back回到a WizardPage中,然后对内容做了修改,此次我希望再回到b WizardPage的时候,里面的内容也同时跟着发生改变,但是仅仅是复写Wizard的createPageControls()方法是无法实现,我们通过查看源代码,发现在org.eclipse.jface.wizard.WizardDialog.updateForPage(IWizardPage page)中:
- private void updateForPage(IWizardPage page) {
- // ensure this page belongs to the current wizard
- if (wizard != page.getWizard()) {
- setWizard(page.getWizard());
- }
- // ensure that page control has been created
- // (this allows lazy page control creation)
- if (page.getControl() == null) {
- page.createControl(pageContainer);
- // the page is responsible for ensuring the created control is accessable
- // via getControl.
- Assert.isNotNull(page.getControl());
- // ensure the dialog is large enough for this page
- updateSize(page);
- }
- // make the new page visible
- IWizardPage oldPage = currentPage;
- currentPage = page;
- currentPage.setVisible(true);
- if (oldPage != null) {
- oldPage.setVisible(false);
- }
- // update the dialog controls
- update();
- }
也就是在调用WizardPage的createControl()方法之前要做一个判断page.getControl() == null,因此我们只要将想办法在调转到某个WizardPage的时候,将其control设置为null就可以了.于是我们在a WizardPage中引起b WizardPage的内容发生改变的方法中添加如下代码:
- // 对参数页必须重绘
- IWizardPage page = getNextPage();
- if (page.getControl() != null)
- page.dispose();
然后复写b WizardPage的dispose方法:
- public void dispose() {
- super.dispose();
- setControl(null);
- }
这样我们就大功告成了.
评论
我很久不做eclipse插件了,不好意思,帮不了你了
很希望能与你成为朋友!不知你的QQ或MSN多少?以后还想向你多请教呢。。。
发表评论
-
Java程序员25个必备的Eclipse插件
2012-01-12 22:36 21926原文:http://www.fromdev.com/2012/ ... -
关于插件更新安装的错误
2007-12-21 20:12 2209在更新插件的时候出现这样的错误: Unable to comp ... -
最近做eclipse branding, features的一些经验
2007-12-16 01:24 4527知道eclipse的splash怎么做 ... -
GEF学习笔记
2007-12-07 20:20 4151GEF以前学习过, 而且还 ... -
SWT布局深入学习
2007-11-30 23:00 7939以下内容是学习"The Definitive Gui ... -
Eclipse Action 深入学习笔记(3)
2007-11-25 17:59 4079filter元素是用来指定当 ... -
Eclipse Action 深入学习笔记(2)
2007-11-25 17:14 5201Object Action 这种Action是跟弹出的上下文菜 ... -
Eclipse Action 深入学习笔记(1)
2007-11-25 17:07 7663以前做插件用到的ActionSet都只是依葫芦画瓢,没有真正理 ... -
JFace Text Editor完全掌握之终极指南(4)
2007-11-24 17:08 5671错误标识(Error Marking) Error Marki ... -
JFace Text Editor完全掌握之终极指南(3)
2007-11-24 16:56 5499内容大纲 之所以要给编 ... -
JFace Text Editor完全掌握之终极指南(2)
2007-11-24 16:53 6723最后一步就是实现各种功能 语法高亮 首先我们要实现的是语法高亮 ... -
JFace Text Editor完全掌握之终极指南(1)
2007-11-24 16:17 9986JFace Text Editor是JFace里面一个功能强大 ... -
最近的Eclipse plugin开发总结
2007-11-24 11:30 4936List控件没有提供addDblClickListener方法 ... -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
2007-11-24 11:22 4667在eclipse3.3中,JavaFileEditor ... -
Eclipse WTP Projects Facets实战指南(2)
2007-11-21 21:13 5251修饰工作 给facet在选择列表中添加图标 格式如下: xml ... -
Eclipse WTP Projects Facets实战指南(1)
2007-11-21 20:21 9583这个文章基本是"Building Project F ... -
关于多页编辑器中不同Editor之间的Redo&Undo冲突的解决
2007-09-03 15:17 4056在我们的插件工具的开 ... -
TextEditor原理分析笔记
2007-08-23 15:48 3376Editor的语法着色原理:Eclipse使用damage , ... -
最近的Eclipse开发总结
2007-08-23 15:46 2105java.lang.IllegalAccessError: t ... -
如何判断一个eclipse的版本的代码
2007-08-23 15:41 2961java 代码 String version = ...
相关推荐
Eclipse代码生成器插件开发 在本节中,我们将探讨Eclipse代码生成器插件开发的相关知识点。 一、插件开发基本概念 在Eclipse中,插件是一种可以扩展Eclipse功能的组件。插件可以提供新的功能、视图、编辑器等。要...
下面是关于自定义向导的设计和实现的详细信息。 概述 ---- 自定义向导(wizard)是通过 org.eclipse.ui.ide.wizard 和 org.eclipse.ui.ide.wizardpage 接口来实现的。每个向导页面都描述了一步任务,向导页面被...
总的来说,SWT 和 JFace Wizard 在 Eclipse 插件开发中提供了灵活且强大的用户界面构建能力。Wizard 可以帮助开发者创建多步骤的交互流程,使得用户能够更容易地理解和操作复杂任务。在实际开发中,Wizard 可能包括...
\n\n**Wizard类与INewWizard接口**\n\n在新创建的插件项目中,会生成几个类,如`NewXHTMLFileWizard`、`NewXHTMLFileWizardPage`和`Activator`。`NewXHTMLFileWizard`类是实现向导逻辑的主要类,它需要实现`...
React简单向导 一个简单的分步向导组件。 用法 具有两个公共方法来导航步骤的父组件: WizardRef.next() // goes to the next step WizardRef.jump(step) // jumps to the desired step 将您的导航组件作为此...
每个步骤对应一个WizardPage,用户按顺序完成所有步骤。 3. **QDialog和QMainWindow**:QDialog通常用于弹出对话框,而QMainWindow是主窗口的基础类,两者结合可以实现不同界面间的跳转。 4. **QQuickView和QML**...
它通过一系列的`WizardPage`组件来构建整个向导流程,每个页面都负责展示一部分用户界面,并处理相应的业务逻辑。 ##### 2.1 JFaceWizard原理 - **数据模型**:JFaceWizard中每个页面都可以包含自己的数据模型,但...
标题中的“Proc.zip_菜单_Visual_C++_”表明这是一个关于使用Visual C++进行菜单设计的项目。在这个项目中,开发者可能包含了实现属性页、向导功能以及在菜单栏中展示用户选择信息的代码和资源。Visual C++是微软...
- **构造函数**:`WizardPage(QWidget *parent = nullptr)`用于创建一个新的向导页面实例。 - **成员函数**: - `void set_text(const QString &title, const QString &subtitle)`:设置页面的标题和副标题。 - `...
此外,`PreferencePage`类用于表示首选项中的一个页面,类似于向导式对话框中的单个步骤(WizardPage)。`PreferenceNode`代表了首选项界面中的一个节点,它可以链接到一个`PreferencePage`。而`PreferenceManager`...
- 插件可以动态加载,无需重启Eclipse即可生效。 - **作用**:通过插件,开发者可以根据需要定制自己的开发环境,实现特定的功能需求。 ##### 三、Eclipse插件开发环境与开发入门 - **开发环境搭建**: - 使用...
总的来说,QT提供了一系列灵活的工具来实现界面跳转,开发者可以根据需求选择合适的方法。无论是在大型项目还是小型应用中,理解并熟练运用这些技巧都能帮助我们构建更加用户友好的图形界面应用程序。
- **WizardPage**: WizardPage是构成向导的基本单元,每个页面可以包含不同的控件和逻辑。 #### 12. 高级特性 - **数据绑定**: JFace支持数据模型与UI元素之间的自动绑定,减少了大量手动同步代码的编写。 - **...
JFace的源码分析可以帮助我们深入理解其内部工作原理,提高开发效率,特别是对于那些需要定制化Eclipse插件或者RCP(Rich Client Platform)应用的开发者来说,研究源码是非常有价值的。 首先,JFace的核心概念包括...
2. 页面创建:对于`WizardDialog`,需要了解如何创建和添加`WizardPage`,并定义每个页面的UI和逻辑。 3. 控件布局:理解如何使用SWT中的布局管理器(如`GridLayout`、`FormLayout`等)来排列对话框中的控件。 4. ...
7. **对话框和页**:除了基本的组件外,Eclipse SWT还提供了如`MessageDialog`、`InputDialog`等对话框以及`WizardPage`等高级组件,用于创建更复杂的功能,如文件选择、用户输入验证等。 8. **插件开发**:在...
QWizard提供了一种分步的界面布局,每一步都是一个WizardPage。用户只能按顺序前进或后退,直到完成所有步骤。 在实际项目中,可能需要结合以上多种方法,根据应用的具体需求灵活运用。同时,为了保持主窗口的稳定...
- 实现addPages()方法以添加WizardPage。 #### 9. 首选项 - **概述**: 首选项用于存储用户的个性化设置。 - **使用首选项**: - 获取PreferenceStore实例。 - 通过set/get方法存储/获取偏好值。 - 实现...