如何将MasterDetailsBlock插入View(ViewPart)?

时间:2016-08-04 06:09:51

标签: eclipse eclipse-plugin eclipse-rcp

通常将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);
       }        
  }

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

不支持此功能。 FormPage期望成为FormEditor的一部分或者至少包含在实施IManagedForm的内容中。 IManagedForm的唯一现有实现位于表单编辑器代码中。