SWT / JFace Свернуть / Развернуть EditorArea - PullRequest
2 голосов
/ 19 января 2012

Мне не удалось найти какие-либо функции для минимизации / максимизации программно. Я хочу свести к минимуму мой редактор, когда все редакторы закрыты. Есть предложения?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 20 января 2012

Я нашел обходной путь для минимизации редактора области. Это не очень хорошо, но это делает работу.

      WorkbenchPage page = (WorkbenchPage)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
  IEditorReference[] editorReferences = page.getEditorReferences();
  if(editorReferences.length==0){
     page.getActivePerspective().setEditorAreaState(IStackPresentationSite.STATE_MINIMIZED);    
  }

Мне действительно не нравится этот состав, но я не могу получить конкретный класс. Любые предложения по улучшению этого?

2 голосов
/ 19 января 2012

Вы можете показать / скрыть область редактора, используя IWorkbenchPage. setEditorAreaVisible().Вы можете сделать это, добавив IPerspectiveListener к окну.

public void perspectiveChanged(IWorkbenchPage page,
        IPerspectiveDescriptor perspective, String changeId) {
    if (changeId == IWorkbenchPage.CHANGE_EDITOR_CLOSE) {
        if (page.isEditorAreaVisible() && page.getEditorReferences().length == 0)
            page.setEditorAreaVisible(false);
    }
}

Хотя можно также уменьшить область редактора, используя метод setPartState() страницы, это небыть сделано после того, как все редакторы закрыты.Хотя последняя ссылка на редактор доступна в обработчике событий закрытия редактора, ссылка на ILayoutContainer уже удалена и поэтому не может использоваться для изменения состояния.

0 голосов
/ 20 января 2012

Я нашел эту ошибку на bugs.eclipse.com: https://bugs.eclipse.org/bugs/show_bug.cgi?id=29840, но не могу найти ZoomManagement.

...