- 浏览: 2445913 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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查询
From:http://www.eclipseworld.org/bbs/read.php?tid=1296
Master/Details是UI设计中常见的一种模式。他有一组(列表或成树状结构)的master和一个被选中 master驱动的details集组成。
master是一些不同的对象,通过对master的选择,驱动details的UI发生变化。在下面的图中,有3各不同的master,分别对应3种不同的UI:
描述:1 初始状态:只有master的树状列表
图片:
描述:2 选中一个master,是一个对象
图片:
描述:3 选中另外一个master,是一个不同的对象
图片:
描述:4 选中另外一个master,又是一个不同的对象
图片:
首先我们需要一个FormEditor,在这个FormEditor中添加我们要显示的页最后我们只要实现不同的page就可以了。
- public class AdvancedFormEditor extends FormEditor{
- public AdvancedFormEditor(){
- super();
- }
- protected void addPages(){
- try{
- addPage(new MainPage(this));
- }catch(PartInitException e){
- e.printStackTrace();
- }
- }
- public void doSave(IProgressMonitor monitor){
- }
- public void doSaveAs(){
- }
- public boolean isSaveAsAllowed(){
- return false;
- }
- }
然后来构造这个页,ScrolledPropertiesBlock对象就是我们存放master的地方。
在这个ScrolledPropertiesBlock中,我们将masters以树状结构显示出来。
- public class MainPage extends FormPage{
- private ScrolledPropertiesBlock block;
- public MainPage(FormEditor editor){
- super(editor,"main","Advanced Form Editor");
- block=new ScrolledPropertiesBlock();
- }
- /* ManagedForm封装了form元素的生命周期管理与各个form元素之间的事件通知
- * ManagedForm本身并不是一个form,他包含了一个form并且可以注册IFormPart。
- * 可以将ManagedForm看作是'viewers',form和managed form之间的关系就好像
- * Table与TableViewer的关系一样。
- */
- protected void createFormContent(IManagedForm managedForm){
- ScrolledForm form=managedForm.getForm();
- form.setText("Advanced Form Editor");
- form.setBackgroundImage(Images.getImage("icons/form_banner.gif"));
- //尽量在最后调用这个方法
- block.createContent(managedForm);
- }
- }
主要的内容还是在ScrolledPropertiesBlock这个类中。
Eclipse Forms对Master/Details 模式体供了一个实现。具备以下属性:
1、当details part被创建的时候, master part的工厂方法createMasterPart还是抽象的,必须先被其子类实现。
2、Master and details实际上是sash form的两个子元素。可以通过调整sash的大小来改变他们俩的区域。
3、由于sash form的特性, master 与 details parts可以被横向或纵向排列。
master/details 块的目的就是创建一个tree或table section,通过managed form来唤醒selection事件。
如果details part可以处理被选中的master对象,他就会切换不同的页来显示属性。
当子类在创建顶级master/details时应该注意:
1、创建一个用来驱动details的master part
2、为form tool bar提供actions,一般显示在form的右上方,与form标题区同排
3、注册detail页,master part可以条用注册的所有detail
- public class ScrolledPropertiesBlock extends MasterDetailsBlock {
- class MasterContentProvider...{
- ... ...
- }
- class MasterLabelProvider...{
- ... ...
- }
- protected void createMasterPart(final IManagedForm managedForm,Composite parent) {
- FormToolkit toolkit = managedForm.getToolkit();
- Section section = toolkit.createSection(parent, Section.DESCRIPTION|Section.TITLE_BAR);
- section.setText("模型列表");
- section.setDescription("以下把两种模型列在表中,可以通过选择不同的模型在右边切换编辑页面进行编辑");
- section.marginWidth = 10;
- section.marginHeight = 5;
- toolkit.createCompositeSeparator(section);
- Composite client = toolkit.createComposite(section, SWT.WRAP);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- client.setLayout(layout);
- Table t = toolkit.createTable(client, SWT.NULL);
- t.setLayoutData(new GridData(GridData.FILL_BOTH));
- /*
- * 为当前parent内,toolkit所创建的widget添加边框。如果widget已经设置了SWT.BORDER,
- * 则不会再为其添加边框。
- */
- toolkit.paintBordersFor(client);
- Button b = toolkit.createButton(client, "添加", SWT.PUSH);
- b.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
- /* IFormPart管理了整个Part的dirty state, saving, commit, focus, selection changes等等这样的事件。
- * 并不是form中的每一个control都需要成为一个form part,最好将一组control通过实现IFormPart变成一个Part.
- * 一般来说Section就是一个自然形成的组,所以Eclipse Form提供了一个SectionPart的实现,它包含一个Section
- * 的实例。
- */
- final SectionPart spart = new SectionPart(section);
- managedForm.addPart(spart);
- TableViewer viewer = new TableViewer(t);
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- managedForm.fireSelectionChanged(spart, event.getSelection());
- }
- });
- viewer.setContentProvider(new MasterContentProvider());
- viewer.setLabelProvider(new MasterLabelProvider());
- viewer.setInput(new SimpleFormEditorInput("simple "));
- /**
- * Sets the client of this expandable composite. The client must not be
- * null and must be a direct child of this container.
- */
- section.setClient(client);
- }
- protected void createToolBarActions(IManagedForm managedForm) {
- final ScrolledForm form = managedForm.getForm();
- Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
- public void run() {
- sashForm.setOrientation(SWT.HORIZONTAL);
- form.reflow(true);
- }
- };
- haction.setChecked(true);
- haction.setToolTipText("横向排列");
- haction.setImageDescriptor(Images.getImageDescriptor("icons/th_horizontal.gif"));
- Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
- public void run() {
- sashForm.setOrientation(SWT.VERTICAL);
- form.reflow(true);
- }
- };
- vaction.setChecked(false);
- vaction.setToolTipText("纵向排列");
- vaction.setImageDescriptor(Images.getImageDescriptor("icons/th_vertical.gif"));
- form.getToolBarManager().add(haction);
- form.getToolBarManager().add(vaction);
- }
- protected void registerPages(DetailsPart detailsPart){
- detailsPart.registerPage(TopicDatadefSet.class, new DatadefSetDetailsPage());
- detailsPart.registerPage(TopicCategory.class, new TopicCatalogDetailsPage());
- detailsPart.registerPage(TopicDef.class, new TopicDetailsPage());
- }
- }
大家应该注意到上面的程序中有两个很重要的方法:
- TableViewer viewer = new TableViewer(t);
- viewer.addSelectionChangedListener(new ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- managedForm.fireSelectionChanged(spart, event.getSelection());
- }
- });
这里面的event.getSelection()得到的就是这个master的对象,也就是下面这个方法中的
TopicDatadefSet、TopicCategory、TopicDef3个对象。而下面这个方法就是把每个master对象与其detail页关联起来:
- protected void registerPages(DetailsPart detailsPart){
- detailsPart.registerPage(TopicDatadefSet.class, new DatadefSetDetailsPage());
- detailsPart.registerPage(TopicCategory.class, new TopicCatalogDetailsPage());
- detailsPart.registerPage(TopicDef.class, new TopicDetailsPage());
- }
- public class DatadefSetDetailsPage implements IDetailsPage{
- ... ...
- }
评论
detailsPart.registerPage(TopicCategory.class, new TopicCatalogDetailsPage());
detailsPart.registerPage(TopicDef.class, new TopicDetailsPage());
}
这三个class文件怎么定义???
非常感谢。
发表评论
-
Java程序员25个必备的Eclipse插件
2012-01-12 22:36 21871原文:http://www.fromdev.com/2012/ ... -
关于插件更新安装的错误
2007-12-21 20:12 2177在更新插件的时候出现这样的错误: Unable to comp ... -
最近做eclipse branding, features的一些经验
2007-12-16 01:24 4463知道eclipse的splash怎么做 ... -
GEF学习笔记
2007-12-07 20:20 4116GEF以前学习过, 而且还 ... -
SWT布局深入学习
2007-11-30 23:00 7899以下内容是学习"The Definitive Gui ... -
Eclipse Action 深入学习笔记(3)
2007-11-25 17:59 4038filter元素是用来指定当 ... -
Eclipse Action 深入学习笔记(2)
2007-11-25 17:14 5142Object Action 这种Action是跟弹出的上下文菜 ... -
Eclipse Action 深入学习笔记(1)
2007-11-25 17:07 7619以前做插件用到的ActionSet都只是依葫芦画瓢,没有真正理 ... -
JFace Text Editor完全掌握之终极指南(4)
2007-11-24 17:08 5620错误标识(Error Marking) Error Marki ... -
JFace Text Editor完全掌握之终极指南(3)
2007-11-24 16:56 5452内容大纲 之所以要给编 ... -
JFace Text Editor完全掌握之终极指南(2)
2007-11-24 16:53 6674最后一步就是实现各种功能 语法高亮 首先我们要实现的是语法高亮 ... -
JFace Text Editor完全掌握之终极指南(1)
2007-11-24 16:17 9928JFace Text Editor是JFace里面一个功能强大 ... -
最近的Eclipse plugin开发总结
2007-11-24 11:30 4890List控件没有提供addDblClickListener方法 ... -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
2007-11-24 11:22 4633在eclipse3.3中,JavaFileEditor ... -
Eclipse WTP Projects Facets实战指南(2)
2007-11-21 21:13 5198修饰工作 给facet在选择列表中添加图标 格式如下: xml ... -
Eclipse WTP Projects Facets实战指南(1)
2007-11-21 20:21 9538这个文章基本是"Building Project F ... -
也说关于WizardPage的动态生成
2007-11-05 14:26 5121在Eclipse中一个Wizard=Wiza ... -
关于多页编辑器中不同Editor之间的Redo&Undo冲突的解决
2007-09-03 15:17 4029在我们的插件工具的开 ... -
TextEditor原理分析笔记
2007-08-23 15:48 3348Editor的语法着色原理:Eclipse使用damage , ... -
最近的Eclipse开发总结
2007-08-23 15:46 2026java.lang.IllegalAccessError: t ...
相关推荐
根据冀中能源峰峰集团新屯矿实际情况,研制了ZT19600/25/50端头液压支架。该端头支架的应用,降低了劳动强度,加快了推采进度,提高了生产效率和煤炭回收率,实现了巷道超前支护的机械化。
结合窑街海石湾煤矿6114综放工作面的情况,详细介绍了ZT18000/22/40型一主两副式端头液压支架在工作面的应用情况、支架结构特点和使用效果分析,对煤矿中相似工况下端头支架选型具有一定参考意义。
斑马打印机 ZT411 ZT421中文手册
ZT213/ZT213LEEA USB多通道收发/驱动芯片规格书V2.10及手册,内含ZT213规格参数说明,选型参考表以及应用原理图。更多USB相关应用及方案可查看作者文章了解....
超前支护替棚支架是煤矿井下液压支架技术的延伸和发展,主要用于解决...ZT9200/19/35超前支护替棚支架工阻大,结构简单、适应性强。采用四连杆机构,并且布置在两立柱中间,顶梁受力效果好,并能承受一定的水平力、侧向力。
欧姆龙光纤传感器E3X-SD/ZT/NApdf,欧姆龙光纤传感器E3X-SD/ZT/NA:可简易使用的通用性能:[距离]、[速度]、[精度]这3种基本性能达到高水准体现, 轻松排除机种选定的因素。稳定的检测性能与大范围的应用能力达到有效...
非常不错ttp://downloaddl.dongao.com/2010zj/kj/zzf/zt/mp3/001_10zj_zzfzt1_m.zip http://downloaddl.dongao.com/2010zj/kj/zzf/zt/mp3/002_10zj_zzfzt2_m.zip ...
目前市场上出现了多种以太网温湿度传感器,鱼龙混杂,良莠不齐,好像以太网接口+温湿度传感器就是以太网温湿度传感器,单看宣传页技术指标参数,好像都差不多,给工程师带来选择上的困惑,到底该选择哪种类型的...
斑马ZT230驱动及网络打印机设置代码,https://blog.csdn.net/shenwq/article/details/121683813
模仿天猫的整个网站,详细介绍请看我的博客https://blog.csdn.net/zt2650693774/article/details/103694439
斑马zt410中文库
Eclipse:eclipse官方下载网站, 或直接下载//www.jb51.net/zt/eclipse.html JDK: jdk官方下载网站,或直接下载//www.jb51.net/softs/75615.html SDK: sdk官方下载网站,或直接下载//...
ZT213LEEA,国外找到的数据手册。
兖州矿业(集团)公司兴隆庄煤矿在近年来研制的ZT9800/16/30型运输顺槽端头液压支架基础上,经重新优化设计了ZT24500/18/35型端头及超前运输顺槽液压支架。
android绘制饼图。详见博客:http://blog.csdn.net/z_zt_t/article/details/58588011
ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
介绍了ZT2×4000/18/35型巷道超前支架结构、技术参数、支护方式及使用注意事项。
斑马打印机ZT210用户指南