GWT Tree, открытие мероприятия - PullRequest
3 голосов
/ 02 июня 2010

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 02 июня 2010

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

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

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

1 голос
/ 16 июля 2010

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

Чтобы ответить на мой оригинальный вопрос: Событие, которое мы получаем в 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, чтобы создать свой собственный Widget. Поэтому мне просто нужно event.getTarget(), чтобы получить к нему доступ.

О FastTree:

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

...