TreeItem ClickHandler в GWT - PullRequest
       12

TreeItem ClickHandler в GWT

5 голосов
/ 27 апреля 2010

Как вы добавляете Clickhandler в TreeItem со стандартным API GWT 2.0.3? Я надеюсь реализовать асинхронные вызовы на сервере, которые будут извлекать результирующие TreeItems, которые расширены.

К сожалению FastTree не работает в приложениях GXT. Поэтому я возвращаюсь к первоначальному этапу необходимости прикреплять обработчики к TreeItem s!

Есть ли какие-либо заметные ошибки с этим кодом:

Tree.addSelectionHandler(new SelectionHandler<TreeItem>()
{
    @Override
    public void onSelection(SelectionEvent event()
    {
        if(event.getSelectedItem == someTreeItem)
        {
            //Something
        }
    }
});

Ответы [ 2 ]

12 голосов
/ 27 апреля 2010

С GWT по умолчанию Tree нет обработчиков для определенных TreeItem с, только один SelectionHandler для всего дерева:

tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
  @Override
  public void onSelection(SelectionEvent<TreeItem> event) {
    TreeItem item = event.getSelectedItem();
    // expand the selected item
  }
});

Однако инкубатор GWT FastTree был буквально создан для того, что вы пытаетесь сделать, - ленивая загрузка дерева по мере расширения элементов, поэтому я начал бы там. Не стесняйтесь задавать больше вопросов, если у вас есть какие-либо вопросы.

0 голосов
/ 18 января 2013
// First create a new treeitem-class with a new method:
public class TreeItemAdv extends TreeItem {
    protected void doSelectionAction() {
        // TODO: The child should overwrite this method!
        System.out.println("The child should overwrite this method!");
    }
}

...
    // define your tree:
    Tree tree = new Tree();
    tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
        @Override
        public void onSelection(SelectionEvent<TreeItem> event) {               
            TreeItemAdv item = (TreeItemAdv) event.getSelectedItem();
            item.doSelectionAction(); // do item-specific stuff
        }
    });

    // define and add your items:
    TreeItemAdv ti1 = new TreeItemAdv() {
        @Override
        protected void doSelectionAction() {
            // TODO: Do some stuff.
            System.out.println("1: Here I am.");
        }           
    };      
    ti1.setText("Item 1");      
    tree.addItem(ti1);
    // and an other item:
    TreeItemAdv ti2 = new TreeItemAdv() {
        @Override
        protected void doSelectionAction() {
            // TODO: Do some stuff.
            System.out.println("2: Here I am.");
        }           
    };      
    ti2.setText("Item 2");      
    tree.addItem(ti2);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...