Установка атрибута для опции DropDownChoice - PullRequest
1 голос
/ 10 мая 2011

У меня есть DropDownChoice:

        DropDownChoice dateSpanChoice = new DropDownChoice("dateSpan", new PropertyModel(getModel(), "dateSpan"), dateSpans, new IChoiceRenderer() {

            private static final long serialVersionUID = 10105L;

            @Override
            public String getIdValue(Object object, int index) {
                return ((DateSpan) object).getId() + "";
            }

            @Override
            public Object getDisplayValue(Object object) {
                DateTime today = new DateTime();
                DateTime currentDate = new DateTime(today.getYear(), today.getMonthOfYear(), today.getDayOfMonth(), 0, 0, 0, 0);
                DateSpan dateSpan = (DateSpan) object;
                DateTime fromDate = dateSpan.getFromDate();
                DateTime toDate = dateSpan.getToDate();
                boolean currentDateIsEqualOrAfterFromDate = currentDate.isEqual(fromDate) | currentDate.isAfter(fromDate);
                boolean currentDateIsEqualOrBeforeToDate = currentDate.isEqual(toDate) | currentDate.isBefore(toDate);
                boolean currentDateBelongsToCurrentRange = currentDateIsEqualOrAfterFromDate & currentDateIsEqualOrBeforeToDate;
                if (currentDateBelongsToCurrentRange) {
                    return ((DateSpan) object).getDisplayValue() + " *";
                } else {
                    return ((DateSpan) object).getDisplayValue();
                }
            }
        }) {

            private static final long serialVersionUID = 10106L;

            protected CharSequence getDefaultChoice(final Object selected) {
                CharSequence charSequence = super.getDefaultChoice(selected);                   
                System.out.println("=============================================================");
                //System.out.println(charSequence);
                //THIS CHARSEQUENCE IS RENRING EMPTY STRING
                if(StringUtils.isBlank(charSequence.toString())) {
                    System.out.println("CHARSEQUENCE IS BLANK");
                } else {
                    System.out.println("CHARSEQUENCE IS NOT BLANK");
                }
                return charSequence;
            }
        };
        dateSpanChoice.setNullValid(false);

Я пытаюсь добавить style = "background-color: red" к выбранной опции.Поэтому я переопределяю getDefaultChoice (), но, как вы можете видеть, это прокомментировано в коде, CharSequence пуст.

Есть ли способ установить атрибут для определенной опции DropDownChoice?

Спасибо и С уважением.

Примечание: DateTime - время Joda

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Вам нужно выбрать Select / SelectOption вместо DropDownChoice для более сложного использования элемента.

0 голосов
/ 10 мая 2011

Посмотрите на пакет поведения в Wicket.Например, вы можете использовать класс AttributeAppender .

...