Groovy Swingbuilder привязка к нескольким целям - PullRequest
0 голосов
/ 12 марта 2019

Вот фрагмент с флажком, который переключает другой флажок, когда выбран или не выбран.

    import javax.swing.*
    import groovy.beans.Bindable
    import groovy.swing.SwingBuilder


    new SwingBuilder().edt {
     frame(title: 'Frame', pack: true, show: true) {
         panel(id:'eventPanel',border:BorderFactory.createEmptyBorder(10,10,10,10)){
         check = checkBox(text: 'Toggle the other checkbox!')
         label(text: bind( source:check, sourceProperty: 'selected',converter:{v->v ? "Selected!" : "Not Selected!==>"}))
         check = checkBox(text: 'Toggle enabled!',selected: bind(target:check,targetProperty:'selected'))
         }
      }
    }

Хотелось бы узнать, есть ли способ в свингбилдере связать объект с несколькими целями? Т.е. вместо нацеливания одного атрибута из одного флажка:

checkBox(text: 'Toggle enabled!',selected: bind(target:checkbox1,targetProperty:'selected'))

Можем ли мы нацелить один атрибут (один и тот же) из группы флажков?

Если у меня есть карта, которая содержит несколько объектов-флажков, могу ли я сделать что-то подобное?

def array = ['ckb1','ckb2','ckb3']
checkbox(
selected:bind(target: map.each{checkboxes [it]},targetProperty:'selected'))

с 'флажками' карты, ключи которой равны строке, содержащейся в 'массиве'.

С уважением,

...