2010-06-02 6 views
3

Я использую управление деревьями в GWT. У меня есть собственный виджет, который я добавляю в качестве TreeItem:Дерево GWT, событие открытия

Tree testTree = new Tree(); 
testTree.addItem(myWidget); 

Я хотел бы получить MyWidget экземпляр на церемонии открытия узла. Является ли это возможным ? Кто-нибудь знает, какое событие я должен использовать?

Я пробовал openHandler<TreeItem>, но то, что я получаю, является ... элементом дерева.

ответ

1

Я искал далеко.

Чтобы ответить на мой первоначальный вопрос: Событие, которое мы получаем в openHandler, имеет всю необходимую мне информацию.

public void onOpen(OpenEvent<TreeItem> event) { 
// The TreeItem 
TreeItem ti = event.getTarget(); 

// The widget added in the treeItem 
CustomWidget cw = (CustomWidget)event.getTarget().getWidget(); 
} 

Просто для информации:

Вместо добавления виджета (который я не использовал в другом месте) на мой TreeItem я расширенной TreeItem, чтобы создать свой собственный виджет. Поэтому я просто нуждался в event.getTarget(), чтобы получить к нему доступ.

О FastTree:

За то, что я читал людей, работающих с GWT обычно идут прямо к использованию FastTree, который, как сказал Джейсон, предлагает больше возможностей и лучшие характеристики. У меня возникла проблема с запуском FastTree в моей конфигурации (даже с кодом примера) и мало времени для решения этой проблемы, поэтому я придерживался виджета Tree Tree.

2

Почти в каждом случае, в котором вы используете GWT-х Tree, вы действительно хотите быть с помощью GWT инкубатора FastTree, который имеет addBeforeOpenHandler() метод, который принимает BeforeOpenHandler<FastTreeItem> который проходит BeforeOpenEvent к onBeforeOpen() предоставлению в распоряжение source из событие (это был полный рот ...)

Короче говоря, FastTree>Tree, и вы хотите использовать addBeforeOpenHandler() на самом FastTree.

Чтобы добавить виджеты в свое дерево (вместо FastTreeItem), вы можете добавить свой виджет в прилагаемый FastTreeItem или просто подкласс FastTreeItem, чтобы сделать то, что вы хотите.

Смежные вопросы