ViewPart中的ActionFactory.SAVE

时间:2014-11-06 03:46:28

标签: eclipse-rcp rcp

我的应用程序有一个编辑器,一些View扩展了ViewPart。在编辑器中,我可以像这样创建一个保存动作

Action action = (Action) ActionFactory.SAVE.create(PlatformUI.getWorkbench().getActiveWorkbenchWindow());

和ToolBar中的添加操作。我可以通过覆盖isDirty()doSave()方法来控制此SAVE操作。我的问题是:

  1. 我可以在ViewPart中添加SAVE ActionFactory吗?
  2. 如何在ViewPart中覆盖SAVE方法?
  3. 还有其他办法吗?
  4. 我的观点如下:

        GridLayout layoutProperties = new GridLayout(2, false);
        layoutProperties.marginHeight = 0;
        layoutProperties.marginWidth = 0;
        propertiesVersion.setLayout(layoutProperties);
        propertiesVersion.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    
        toolkitProperties = new FormToolkit(propertiesVersion.getDisplay());
        sectionProperties = toolkitProperties.createSection(propertiesVersion, Section.TITLE_BAR);
        sectionProperties.setText("Version Properties");
        sectionProperties.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 0));
        //some Label and Text here
    

1 个答案:

答案 0 :(得分:0)

对于RCP,您通常会在ActionBarAdvisor中创建保存操作,例如:

@Override
protected void makeActions(IWorkbenchWindow window) 
{
  saveAction = ActionFactory.SAVE.create(window);
  register(saveAction);

  ... more ...
}

然后,保存操作将与实现ISaveablePart的任何部分一起使用,正是此界面定义了isDirtydoSave,...因此,如果您在视图部分中实现此功能你会得到拯救支持。