гетеро-радио не видно, плагин jenkins - PullRequest
0 голосов
/ 25 января 2019

Я играл с jenkins Привет мир плагин и пытался настроить его с гетеро-радио вместо текста, однако мой пользовательский интерфейс не виден. Я новичок в желе и Дженкинс. Может кто-нибудь, пожалуйста, помогите мне в этом. Я пытаюсь создать что-то вроде этого, выделенное красным Hetero-radio

Моя программа для этого Demo1.java


    private final HeteroRadioEntry projectVersion;
    public HeteroRadioEntry getProjectVersion() { return projectVersion; }

    @Override
    public void perform(@Nonnull Run<?, ?> run, @Nonnull FilePath filePath, @Nonnull Launcher launcher, @Nonnull TaskListener taskListener) throws InterruptedException, IOException { }

    public static abstract class Entry extends AbstractDescribableImpl<Entry> {}

    public static final class SimpleEntry extends Entry {
        private final String text;
        @DataBoundConstructor public SimpleEntry(String text) { this.text = text; }
        public String getText() { return text; }
        @Extension public static class DescriptorImpl extends Descriptor<Entry> {
            @Override public String getDisplayName() { return "Simple Entry"; }
        }
    }

    public static final class AutoEntry extends Entry {
        private final String text;
        @DataBoundConstructor public AutoEntry() { this.text = "Some fixed string"; }
        public String getText() { return text; }
        @Extension public static class DescriptorImpl extends Descriptor<Entry> {
            @Override public String getDisplayName() { return "Auto Entry"; }
        }
    }

    public static final class HeteroRadioEntry extends Entry {
        private final Entry entry;
        @DataBoundConstructor public HeteroRadioEntry(Entry entry) { this.entry = entry; }
        public Entry getEntry() { return entry; }
        @Extension public static class DescriptorImpl extends Descriptor<Entry> {
            @Override public String getDisplayName() { return "Hetero-Radio"; }
            public List<Descriptor> getEntryDescriptors() {
                Jenkins jenkins = Jenkins.getInstance();
                return ImmutableList.of(jenkins.getDescriptor(AutoEntry.class), jenkins.getDescriptor(SimpleEntry.class));
            }
        }
    }

    @DataBoundConstructor public Demo1(HeteroRadioEntry projectVersion) { this.projectVersion=projectVersion; }

    @Symbol("greet")
    @Extension
    public static final class DescriptorImpl extends BuildStepDescriptor<Builder> {
        @Override public boolean isApplicable(Class<? extends AbstractProject> aClass) { return true; }
        @Override public String getDisplayName() { return "Demo1"; }
    }

}

Желейная программа Demo1 / config.jelly

<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
    <f:entry field="projectVersion"></f:entry>
</j:jelly> 

Demo1 / HeteroListEntry / config.jelly

<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
    <f:entry title="Hetero-Choice">
        <f:hetero-radio field="entry" descriptors="${descriptor.entryDescriptors}" />
    </f:entry>
</j:jelly>

Demo1 / AutoEntry / config.jelly

<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
    <f:label field="text" />
</j:jelly>

Demo1 / SimpleEntry / config.jelly

<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
    <f:entry field="text">
        <f:textbox/>
    </f:entry>
</j:jelly>

1 Ответ

0 голосов
/ 25 января 2019

С огромными усилиями мне удалось достичь результата, хотя и неудовлетворительно, с помощью ссылки . Это объясняет функциональность гетеро-радио / гетеро-списка.Я перемещаю вложенные статические классы за пределы

...