系统吧 专业的电脑操作系统,支持重装各种原版系统xp/win7/win8/win10 这个系统怎么样?试试系统吧系统,体验办公系统畅快愉悦感。 各种电脑系统安装过程一样,神一般的畅快!
-->
当前位置:主页 > 电脑技术 >

大师为您详解rcp视图之间使用监听传递参数

作者:李香主 分类:电脑技术 发布时间:2017-09-19 18:04:36

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到rcp视图之间使用监听传递参数的问题,如果我们遇到了rcp视图之间使用监听传递参数的情况,该怎么处理怎么才能解决rcp视图之间使用监听传递参数带来的困扰呢,对于这样的问题其实我们只需要eclipse新建一个插件项目,项目的名称为jianting.在项目中新建2个视图view1,view2,打开Perspective.java这个文件,把视图打开。IFolderLayout left=layout.createFolder("left", IPageLayout.LEF...

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到rcp视图之间使用监听传递参数的问题,如果我们遇到了rcp视图之间使用监听传递参数的情况,该怎么处理怎么才能解决rcp视图之间使用监听传递参数带来的困扰呢,对于这样的问题其实我们只需要eclipse新建一个插件项目,项目的名称为jianting.在项目中新建2个视图view1,view2,打开Perspective.java这个文件,把视图打开。IFolderLayout left=layout.createFolder("left", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);left.addView(view1.这样就解决了这样的问题,接下来给大家带来rcp视图之间使用监听传递参数的详细操作步骤。

工具/原料

eclipse

方法/步骤

新建一个插件项目,项目的名称为jianting.

大师为您详解rcp视图之间使用监听传递参数

在项目中新建2个视图view1,view2,打开Perspective.java这个文件,把视图打开。

IFolderLayout left=layout.createFolder("left", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);

left.addView(view1.ID);

IFolderLayout bottom=layout.createFolder("bottom", IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);

bottom.addView(view2.ID);

大师为您详解rcp视图之间使用监听传递参数

在view1视图中建立一个发送类:

public class fasong implements ISelectionProvider{

List<ISelectionChangedListener> listeners = new ArrayList<ISelectionChangedListener>();

ISelection theselection = StructuredSelection.EMPTY;

@Override

public void addSelectionChangedListener(ISelectionChangedListener listener) {

listeners.add(listener);

}

@Override

public ISelection getSelection() {

return theselection;

}

@Override

public void removeSelectionChangedListener(ISelectionChangedListener listener) {

listeners.remove(listener);

}

@Override

public void setSelection(ISelection selection) {

if(selection==null){

return;

}

theselection = selection;

final SelectionChangedEvent e = new SelectionChangedEvent(this, selection);

Object[] listenersArray = listeners.toArray();

for (int i = 0; i < listenersArray.length; i++) {

final ISelectionChangedListener l = (ISelectionChangedListener) listenersArray[0];

l.selectionChanged(e);

}

}

}

大师为您详解rcp视图之间使用监听传递参数

在view1视图初始化时,把发送类注册到视图中:

fasong fa=new fasong();

this.getSite().setSelectionProvider(fa);

大师为您详解rcp视图之间使用监听传递参数

编辑text key的事件,当有键按下时,把得到文本发送出去。

ISelection st=new StructuredSelection(((Text)e.getSource()).getText());

fa.setSelection(st);

大师为您详解rcp视图之间使用监听传递参数

在view2视图中写监听类,把监听的字符串显示在text中。

public class jieshou implements ISelectionListener{

@Override

public void selectionChanged(IWorkbenchPart part, ISelection selection) {

if(selection!=null ){

IStructuredSelection st = (IStructuredSelection)selection;

text.setText((String) st.getFirstElement());

}

}

}

大师为您详解rcp视图之间使用监听传递参数

在view2初始化时,增加监听类:

jieshou jie=new jieshou();

this.getViewSite().getWorkbenchWindow().getSelectionService().addSelectionListener(jie);

大师为您详解rcp视图之间使用监听传递参数

项目运行,在view1中输入字符串,同时view2视图的text框内一样显示。

大师为您详解rcp视图之间使用监听传递参数

xp 更多>>
win7 更多>>
win8 更多>>
win10 更多>>
U盘 更多>>
电脑技术 更多>>
网站地图 | 豫ICP备2021035069号-4 | 友情链接qq:191064436
系统吧

版权所有 © 2012-2023 系统吧 免责声明:本站资源均收集于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时删除相应资源。