З.К. Как получить все компоненты на странице? - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь получить все компоненты на странице и установить их ограничения.Все компоненты имеют идентификатор. Я пытаюсь использовать IdSpace, чтобы получить все идентификаторы на странице, но как получить Idspace?Я использовал

Window main ;
Page page ; 
page = main.getPage(); // This is null

Как получить IdSpace?

1 Ответ

2 голосов
/ 09 августа 2011

Где вы написали код?

Я предлагаю применить компоновщик к корневому компоненту и выполнить итерацию всех компонентов внутри.

Вот пригодный для выполнения пример для итерации всего компонентаи установить значение для всех меток.http://zkfiddle.org/sample/36t45ag/1-Iterate-all-the-components

И код здесь.

<window border="normal" title="hello" apply="pkg$.TestComposer">
    <label ></label>
    <vlayout>
            <label ></label>
            <label ></label>
            <label ></label>
            <div>
                <label ></label>
                <label ></label>                                    
            </div>                              
    </vlayout>
</window>

public void doAfterCompose(Component comp) throws Exception {
    super.doAfterCompose(comp);
    iterate(comp);
}

public void iterate(Component comp){

    /*
     * do something for the component 
     */

    if(comp instanceof Label){
        ((Label)comp).setValue("Found label!");
    }


    List<Component> list = comp.getChildren();
    for(Component child:list){
        iterate(child);
    }

}
...