社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 1007阅读
  • 7回复
wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

倒序阅读   只看楼主      楼主   发表于: 2009-07-01
更多操作

还请各位高手们指点我一二呀!小弟感激不尽呀!

我现在想实现向eclipse 3.4中的那个功能,就是window-->show view -->other..,然后点击对应 的视图的名字
可以显示对应的视图的,
代码片段如下:
ApplicationActionBarAdvisor.java

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
              private IWorkbenchAction otherAction;

           protected void makeActions(IWorkbenchWindow window) {
                    otherAction = (IWorkbenchAction) new OtherAction(window);
                     otherAction.setText("other");
            }

           protected void fillMenuBar(IMenuManager menuBar) {
                   MenuManager menubj = new MenuManager("编辑(E)" , "menubj");
                   menubj.add(otherAction);
           }

}

对应 的Action(OtherAction)类

public class OtherAction extends Action implements IWorkbenchAction {
              private IWorkbenchWindow window ;
             public OtherAction (IWorkbenchWindow window){
                      if(window == null){
                               throw new IllegalArgumentException();
                       }
                        this.window = window;
              }
 
 @Override
 public void run() {
  if(null != window){
   try {  
      Others other = new Others(window.getShell());
      other.open();
//可以显示相应的树的,这个以经实现的,
   } catch (PartInitException ee) {
   // TODO Auto-generated catch block
    ee.printStackTrace();
   }  
  }
 }

 @Override
 public void dispose() {
  // TODO Auto-generated method stub
  window = null ;
 }
}

Others .java 片段


public class Others extends Dialog{
        protected Control createDialogArea(Composite parent) {
            Composite container = (Composite) super.createDialogArea(parent);
  {
   TreeViewer treeViewer = new TreeViewer(container, SWT.BORDER|SWT.H_SCROLL);
   Tree tree = treeViewer.getTree();
   tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
  //TreeColumn column = new TreeColumn(tree, SWT.NONE);
   treeViewer.setLabelProvider(new TreeLabelProvider());
  treeViewer.setContentProvider(new TreeContentProvider());
   treeViewer.setInput(Factory.createTree());
//可以显示相应的树视图的,现在的问题就是不知道该怎么写事件,根据不同的树子节点显示不同的视图,
  }
  return container;
          }
}


@Override
 protected void createButtonsForButtonBar(Composite parent) {
  createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
    true);
  createButton(parent, IDialogConstants.CANCEL_ID,
    IDialogConstants.CANCEL_LABEL, false);
 }

还请老大们指点一二,小弟先谢谢了,其实我是个新手,很多东西都不是很懂的,还请大家帮帮忙呀!谢谢了!!!!!!!!!!



wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

只看该作者      1楼  发表于: 2009-07-01
在线等待各位高手们的解答
wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

只看该作者      2楼  发表于: 2009-07-02
高手们都 去哪了呀?我都等待一天了,帮帮我呀
dollyn 离线

级别: CEC版主

显示用户信息 

只看该作者      3楼  发表于: 2009-07-02
为啥要自己实现,现成的拿来用不就行了
wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

只看该作者      4楼  发表于: 2009-07-03
楼上的大哥。哪里有现成的呀?告诉我吧!谢谢了!!!!!!!!!!!!!!
wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

只看该作者      5楼  发表于: 2009-07-03
在线等待解答 呀???
dollyn 离线

级别: CEC版主

显示用户信息 

只看该作者      6楼  发表于: 2009-07-03
ContributionItemFactory.VIEWS_SHORTLIST.create(window);
这个就是ShowView那个Action,直接通过菜单添加这个Action就行了。

这个教程里有介绍:
http://www.eclipseworld.org/bbs/read-cec-tid-4457.html
wyl8491797 离线

级别: CEC中级程序员

显示用户信息 

只看该作者      7楼  发表于: 2009-07-03
谢谢你了
描述
快速回复

验证问题:
十二除以四等于?请输入数字答案 正确答案:3
 回复后跳转到最后一页