2016-10-04 2 views
0

У меня есть быстрый вопрос. В jenkins при создании файла конфигурации jelly для gui вы можете открыть радиокнопку и показать больше элементов, это можно сделать и с выпадающим списком? Если да, есть ли у кого-нибудь пример? Я знаю, как это сделать с помощью переключателей, но я не хочу радиокнопки, мне нужно, чтобы контент зависел от выбора.Jelly Config Expand Elements

Edit: На данный момент у меня есть следующие:

<f:entry title="${%Authentication}" field="authMode"> 
     <f:select /> 
    </f:entry> 

и в файле Java:

public ListBoxModel doFillAuthModeItems() { 
     ListBoxModel items = new ListBoxModel(); 
     items.add("None"); 
     items.add("Form Based Authentication"); 
     items.add("Script Based Authentication"); 
     return items; 
     } 

Это создает выпадающий список из 3-х элементов, я просто нужно показать различное содержание, основанное на выбор, например. Ни у кого не будет нового контента, Form Based будет показывать имя пользователя и текстовое поле пароля.

ответ

1

Что нужно исследовать - это тег гетеро-списка желе. Существует хорошая страница на него с cloud bees их код закрыт, хотя

Я поставил с открытым исходным кодом, один вместе для selenium-axis-plugin но это в заводной и с помощью заводной форм

namespace(lib.FormTagLib).with { 
    entry(title: _("Name"), field:"name") { 
     textbox(default:"label") 
    } 
    block{ 
     entry(field:"seleniumCapabilities") { 
      hetero_list(name: "seleniumCapabilities", 
         hasHeader: true, 
         descriptors:descriptor.axisItemTypes(), 
         items:  instance? 
          instance.getSeleniumCapabilities(): 
          descriptor.loadDefaultItems()) 
     } 
    } 
} 

source

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

List<ItemDescriptor> axisItemTypes() { 
    def ait = Jenkins.instance.<Item,ItemDescriptor>getDescriptorList(Item) 

    def ret = [] 

    for (int i = 0; i < ait.size(); i++) { 
     /*code removed*/ 
     ret.add(ait.get(i)) 
    } 
    ret 
} 

source

Все вложенные элементы должны иметь свои собственные дескрипторы, а также @DataBoundConstructor

+0

Я действительно ценю это! Я посмотрю. У меня больше опыта с groovy, но проект, который я взял на себя, - это желе, и я не совсем знаком с тем, как это сделать в желе, и не смог найти учебник под рукой. Но вы дали мне отличное место для начала, спасибо – codeCompiler77