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

在rcp插件之中视图间的信息怎么传递到其他视图中的呢?在打开视图的方式中也没有参数机关方式,插件中利用监听来传递参数。我写的经验对你进修java有帮忙的话,给我投票、点赞或者保藏!

1中表格隔行变色

1中怎么利用自界说窗口

1数据库怎么利用游标

东西/原料

  • eclipse

方式/步调

  1. 1

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

  2. 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);

  3. 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++) {

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

                     l.selectionChanged(e);

    }

    }

    }

  4. 4

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

    fasong fa=new fasong();

    this.getSite().setSelectionProvider(fa);

  5. 5

    编纂text key的事务,当有键按下时,把获得文本发送出去。

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

    fa.setSelection(st);

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

    }

    }

    }

  7. 7

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

    jieshou jie=new jieshou();

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

  8. 8

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

  • 发表于 2019-01-18 00:00
  • 阅读 ( 997 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具