在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 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!