通常将Master详细信息块插入Formpage,如下面的代码。
public class UnitConfigurationEditorPage extends FormPage {
@Override
Protected void createFormContent(IManagedForm managedForm) {
FormToolkit toolkit = managedForm.getToolkit();
form = managedForm.getForm();
form.setText("Unit Configuration");
unitConfigurationMasterDetailsBlock = new UnitConfigurationMasterDetailsBlock(this,prepMasterProject);
unitConfigurationMasterDetailsBlock.createContent(managedForm);
}
}
但我不期待编辑,我想作为观点展示。所以我想将MasterDetailsBlock添加到View(ViewPart)而不是FormPage。
我尝试过以下代码,但收到了此错误。
Error: "java.lang.ClassCastException: org.eclipse.ui.forms.widgets.ScrolledForm cannot be cast to org.eclipse.ui.forms.IManagedForm"
public class MasterBlockView extends ViewPart {
@Override
public void createPartControl(Composite parent) {
Composite composite = formToolkit.createComposite(parent, SWT.NONE);
formToolkit.paintBordersFor(composite);
composite.setLayout(new GridLayout(1, false));
ScrolledForm scrldfrmNewScrolledform = formToolkit.createScrolledForm(composite);
scrldfrmNewScrolledform.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
formToolkit.paintBordersFor(scrldfrmNewScrolledform);
scrldfrmNewScrolledform.setText("New ScrolledForm");
JobMasterDetailsBlock jobMasterDetailsBlock = new JobMasterDetailsBlock(this);
jobMasterDetailsBlock.createContent((IManagedForm) scrldfrmNewScrolledform);
}
}
请帮我解决这个问题。
答案 0 :(得分:1)
不支持此功能。 FormPage
期望成为FormEditor
的一部分或者至少包含在实施IManagedForm
的内容中。 IManagedForm
的唯一现有实现位于表单编辑器代码中。