rcp视图之间使用监听传递参数

在rcp插件之中视图间的信息怎么传递到其他视图中的呢?在打开视图的方式中也没有参数机关方式 , 插件中利用监听来传递参数 。 我写的经验对你进修java有帮忙的话 , 给我投票、点赞或者保藏!
1eclipse中表格(table)隔行变色
1eclipse中怎么利用自界说Dialog窗口
1mysql数据库怎么利用游标

需要这些哦
eclipse
方式/
1新建一个插件项目 , 项目标名称为jianting.

rcp视图之间使用监听传递参数



2在项目中新建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视图之间使用监听传递参数



3在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++) {
【rcp视图之间使用监听传递参数】 final ISelectionChangedListener l = (ISelectionChangedListener) listenersArray[0];
                 l.selectionChanged(e);
}
}
}

rcp视图之间使用监听传递参数



4在view1视图初始化时 , 把发送类注册到视图中:
fasong fa=new fasong();
this.getSite().setSelectionProvider(fa);

rcp视图之间使用监听传递参数



5编纂text key的事务 , 当有键按下时 , 把获得文本发送出去 。
ISelection st=new StructuredSelection(((Text)e.getSource()).getText());
fa.setSelection(st);

rcp视图之间使用监听传递参数



6在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());
}
}

}

猜你喜欢