GEF MultiEditor

eclipse 多页编辑器 multi editor

  (2010-06-24 15:52:48)
标签: 

eclipse

 

多页编辑器

 

multi

 

editor

 

it

分类: Eclipse
1.首先写的个类继承MultiPageEditorPart。
public class HouseMultiPageEditorPart  extends MultiPageEditorPart {

       public static final String ID = "houseMultiPageEditorPart "; //$NON-NLS-1$

       public HouseMultiPageEditorPart () {
       }

       @Override
       protected void createPages() {

       }

       @Override
       public boolean isSaveAsAllowed() {
              // TODO Auto-generated method stub
              return false;
       }
}
2.在Plugin.xml中对org.eclipse.ui.editors进行扩展。
id*:houseMultiPageEditorPart
name : New MultiPageEditorPart
class : package.HouseMultiPageEditorPart
3.实现接口IEditorInput,里面描述的是Editor的一些基本信息。
public class HouseEditorInput implements IEditorInput {

       public boolean exists() {
              // TODO Auto-generated method stub
              return false;
       }

       public ImageDescriptor getImageDescriptor() {
              // TODO Auto-generated method stub
              return null;
       }

       public String getName() {
              // TODO Auto-generated method stub
              return "House";
       }

       public IPersistableElement getPersistable() {
              // TODO Auto-generated method stub
              return null;
       }

       public String getToolTipText() {
              // TODO Auto-generated method stub
              return "House";
       }

       public Object getAdapter(Class adapter) {
              // TODO Auto-generated method stub
              return null;
       }

}
4.在HouseMultiPageEditorPart .java的createPages方法中加入两个页面(可以是Swt的容器,也可是其它的Editor)
@Override
       protected void createPages() {

              Composite composite = new Composite(getContainer(), SWT.NONE);
              GridLayout layout = new GridLayout();
              composite.setLayout(layout);
              layout.numColumns = 2;

              Button fontButton = new Button(composite, SWT.NONE);
              GridData gd = new GridData(GridData.BEGINNING);
              gd.horizontalSpan = 2;
              fontButton.setLayoutData(gd);
              fontButton.setText("one");

              int index = addPage(composite);
              setPageText(index, "Properties");
            

              Composite composite1 = new Composite(getContainer(), SWT.NONE);
              GridLayout layout1 = new GridLayout();
              composite1.setLayout(layout1);
              layout1.numColumns = 2;

              Button fontButton1 = new Button(composite1, SWT.NONE);
              GridData gd1 = new GridData(GridData.BEGINNING);
              gd1.horizontalSpan = 2;
              fontButton1.setLayoutData(gd);
              fontButton1.setText("two");
            
              index = addPage(composite1);
              setPageText(index, "Properties1");
       }
5.打开此Editor。

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow ().getActivePage();

try {
     page.openEditor(new HouseEditorInput(), HouseMultiPageEditorPart .ID);
} catch (PartInitException e1) {
     // TODO Auto-generated catch block
       e1.printStackTrace();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值