2008-10-27 3 views

ответ

1

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

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

int i; 

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

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

1

Я могу предложить способ: вы можете написать для него плагин.
Например, см. Этот импровизированный «учебник», я сделал это, пробовал работать над Ганимедом. Немного уродливое в последней переменной 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. сейчас. Запустите проект (Запустите приложение As-> Eclipse), и вы нажмете кнопку Eclipse на панели инструментов. Нажмите здесь! Он запускает приведенный выше код, в котором суть заключается в том, что window.getShell() возвращается с компонентом основного окна, поэтому вы можете добавить к нему слушателей.

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

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

б

Смежные вопросы