Как узнать, когда пользователь минимизирует / максимизирует Eclipse? - PullRequest
0 голосов
/ 27 октября 2008

Мне нужно реагировать на события минимизации / максимизации окна Eclipse. Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 21 июля 2009

Нашел способ сделать это легко: вам нужно создать ShellListener или ShellAdapter, у которых есть методы, которые вызываются, когда оболочка отображается, деиконифицируется, активируется, деактивируется и закрывается.

После создания добавьте его в качестве прослушивателя со следующей строкой:

int i;

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().addShellListener( yourListenerHere);

Если вы когда-либо удаляете его из списка слушателей оболочки, убедитесь, что Workbench, ActiveWorkbnchWindow и Shell не равны нулю.

1 голос
/ 29 октября 2008

Я могу предложить способ: вы можете написать плагин для него.
Например, посмотрите этот импровизированный «учебник», я его сделал, попробовал, он работает на Ганимеде. Немного некрасиво в последней переменной Shell, но работает. Если вы знаете более хорошее решение, просто стреляйте :) ((на самом деле есть способ: расширить собственный класс ControlListener, но для этого нужно больше кодирования:))

  1. Создайте новый проект плагина, назовите его как хотите, создайте его из шаблона с именем: Hello World Command
  2. Откройте класс SampleHandler и замените функцию execute () этим кодом.

    public Object execute(ExecutionEvent event) throws ExecutionException {
            IWorkbenchWindow window = HandlerUtil
                    .getActiveWorkbenchWindowChecked(event);
            final Shell s = window.getShell();
    
    
    window.getShell().addControlListener(new ControlListener() {
    
            @Override
            public void controlMoved(ControlEvent e) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void controlResized(ControlEvent e) {
                MessageDialog.openInformation(s,
                        "WindowEventHandler Plug-in", "RESIZED: "
                                + e.toString() + "\nHello, Eclipse world");
            }
    
        });
        MessageDialog.openInformation(window.getShell(),
                "WindowEventHandler Plug-in",
                "Hello, Eclipse world, resize will be taken care of.");
    
        return null;
    }
    
  3. сейчас. Запустите проект (Run As-> Eclipse application), и вы увидите кнопку Eclipse на панели инструментов. Нажмите здесь! Он запускает приведенный выше код, суть в том, что window.getShell () возвращается с компонентом главного окна, поэтому вы можете добавить к нему слушателей.

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

Надеюсь, это поможет.

b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...