2014-09-01 3 views
0

Как-то я не могу хранить значения из раскрывающихся меню, которые я добавил в jelly.xml для моего плагина Jenkins. Текстовые поля прекрасно работают с другой стороныВыпадающее меню плагина Jenkins

желе:

<f:entry title="Catch+ Version" field="selection"> 
    <f:select/> 
</f:entry> 

Я ничего не добавил к конструктору DataBound. Возможно, это уже проблема. Я не знал, как добавить его, так как это не строка, а список ?!

Поэтому я добавил только функцию doFillSelectionItems, которая работает так, как должна.

public ListBoxModel doFillSelectionItems() 
{ 
    return new ListBoxModel(new Option("1.13", "1.13"), 
        new Option("1.14", "1.14"), 
        new Option("1.15", "1.15")); 
} 

, а также способ настроить перед сохранением():

catchVersion = formData.getString("selection"); 

можно переключаться между тремя вариантами и значение сохраняется, не вызывает сомнений. Я могу запустить сборку несколько раз и использовать выбранное значение, НО: если я снова перейду к настройке проекта, всегда будет выбран первый вариант, независимо от того, что я выбрал раньше. Как я могу сделать сохраненное значение здесь?

ответ

2

Существует третий параметр конструктора Option, который определяет текущий выбор. Вы также можете передать текущее значение в

public ListBoxModel doFillSelectionItems(@QueryParameter String selection) { 
    return new ListBoxModel(new Option("1.13", "1.13", selection.matches("1.13")), 
        new Option("1.14", "1.14", selection.matches("1.14")), 
        new Option("1.15", "1.15", selection.matches("1.15"))); 
} 

Адаптировано из here, но это пример использования глобальной конфигурации

+0

Это был похож на то, что я уже пробовал. Но, к сожалению, это просто делает список пустым. Если я нажму на раскрывающееся меню, больше ничего не появится. – Matthias

+0

Ой, прости, я ошибся. Я пропустил «выбор строки @QueryParameter» в качестве аргумента функции doFill. Теперь я добавил его, и он работает. Большое спасибо! :) – Matthias