在rcp插件之中视图间的信息怎么传递到其他视图中的呢?在打开视图的方式中也没有参数机关方式,插件中利用监听来传递参数。我写的经验对你进修java有帮忙的话,给我投票、点赞或者保藏!
1中表格隔行变色
1中怎么利用自界说窗口
1数据库怎么利用游标
新建一个插件项目,项目标名称为jianting.
在项目中新建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);
在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);
}
}
}
在view1视图初始化时,把发送类注册到视图中:
fasong fa=new fasong();
this.getSite().setSelectionProvider(fa);
编纂text key的事务,当有键按下时,把获得文本发送出去。
ISelection st=new StructuredSelection(((Text)e.getSource()).getText());
fa.setSelection(st);
在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());
}
}
}
在view2初始化时,增添监听类:
jieshou jie=new jieshou();
this.getViewSite().getWorkbenchWindow().getSelectionService().addSelectionListener(jie);
项目运行,在view1中输入字符串,同时view2视图的text框内一样显示。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!