Есть ли способ указать несколько классов обработчиков для представления затмения? - PullRequest
0 голосов
/ 08 января 2020

Я работаю над задачей в разработке плагинов Eclipse. Мне нужно создать представление, содержимое которого изменяется на основе флага.

if(flag == 1){
// show 1 button in view
}
if(flag == 2){
// show 2 buttons in view
}

Я не хочу помещать эти условия в класс обработчика представления. Вместо этого я хочу иметь два отдельных класса для обработки отдельного ввода для представления.

if(flag == 1){
// show view with handler class 1
}
if(flag == 2){
// show view with handler class 2
}

Таким образом, я могу иметь несколько классов обработчиков для представления?

Редактировать 1: Как это сделать Я определяю представление в плагине. xml

<extension
         point="org.eclipse.ui.views">
  <view
        category="views"
        class="GitView"
        icon="icons/view/git.png"
        id="GitView"
        name="%git.repository.view.name">
  </view>
</extension>

Класс "GitView" является классом обработчика для представления, которое должно реализовывать интерфейс IViewPart.

1 Ответ

0 голосов
/ 08 января 2020

Просто создайте два класса с конструкторами. И сделать функции в новых классах.

if(flag == 1){
    Class1 object1 = new Class1(Button button1);
    object1.showbutton1();
}
if(flag == 2){
    Class2 object2 = new Class2(Button button2);
    object2.showbutton2();
}

А для новых классов это примерно так:

public class Class1{
    private Button button;

    public Class1(Button buttonparam){
        this.button = buttonparam;
    }

    public void showbutton1(){
        //create your view with button and show it 
    }
}
...