eclipse 多页编辑器 multi editor
(2010-06-24 15:52:48)
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();
}
public class HouseMultiPageEditorPart
}
2.在Plugin.xml中对org.eclipse.ui.editors进行扩展。
id*:houseMultiPageEditorPart
name : New MultiPageEditorPart
class : package.HouseMultiPageEditorPart
3.实现接口IEditorInput,里面描述的是Editor的一些基本信息。
public class HouseEditorInput implements IEditorInput {
}
4.在HouseMultiPageEditorPart
@Override
5.打开此Editor。
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow
try {
} catch (PartInitException e1) {
}