Содействие в строке состояния / Trim в Eclipse RCP - PullRequest
6 голосов
/ 11 мая 2010

У меня есть требование отображать индикатор состояния в строке состояния приложения Eclipse. Я не могу внести свой вклад через ApplicationWindowAdviser (другой группе принадлежит основной продукт), но я уверен, что смогу внести свой вклад через точку расширения. Несмотря на то, что я много гуглюсь, я не могу найти ничего, описывающего, как это сделать.

Ответы [ 3 ]

8 голосов
/ 02 марта 2011

В расширениях org.eclipse.ui.menuContributions используйте "панель инструментов: org.eclipse.ui.trim.status" в качестве locationURI. Вы можете добавлять команды / пользовательские элементы управления в строку состояния.

1 голос
/ 11 мая 2010

Возможное решение для проверки:
Вы должны иметь возможность определить фрагмент , чтобы иметь возможность добавить к функциональности основного продукта. ( см. Здесь для другого примера).

Идея состоит в том, чтобы добавить функциональность в основной плагин. Может быть, ваш вклад может быть объединен с этим основным продуктом таким образом.

0 голосов
/ 01 апреля 2016

Во-первых, добавление строки состояния в application.e4xmi («Приложение»> «Окна и диалоговые окна»> «Подстриженное окно»> «TrimBars»> «WindowTrim (внизу)»> «Панель инструментов»> «Управление инструментами»)

Создайте класс .java и укажите адрес на панели инструментов (класс uri).

Реализация строки состояния e4 отличается от реализации e3. В e4 вы можете использовать eventbroker для отправки текста (информации) в строку состояния.

@Inject
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar";

@Inject @Optional
public void  getEvent(@UIEventTopic(STATUSBAR) String message) {
    updateInterface(message); 
}

@PostConstruct
public void createControls(Composite parent) {
   .... \\ swt definitions e.g. label 
}

public void updateInterface(String message)
    {
        try{
            Display.getDefault().asyncExec(new Runnable() {
              @Override
              public void run() {
                 try{
                        label.setText(message);  
                    }
                    catch(Exception exc){
                        System.out.println(exc);
                    }               
              }
            });
        }
        catch(Exception exception){
            System.out.println(exception);
        }   
    }

Также не забудьте добавить eventbrokersender в другой класс Java.

@Inject
private IEventBroker eventBroker; 
private static final String STATUSBAR ="statusbar";
eventBroker.send(STATUSBAR, "status bar test message..");
...