TreeItem с I18N GWT - PullRequest
       35

TreeItem с I18N GWT

0 голосов
/ 03 ноября 2010

Мне интересно, как создать TreeItem с I18N и не иметь разные токены для пункта меню.

Если я создаю TreeItem следующим образом:

 @UiField
    Tree tree;

    TreeItem customer = new TreeItem(customerGroup");
       customer.addItem("searchCustomer");
       customer.addItem("create");
       customer.setState(true);

                            tree.clear();
   tree.addItem(customer);


                  @UiHandler("tree")
  public void onSelection(SelectionEvent<TreeItem> event) {
    eventBus.fireEvent(event);
   }

токен ValueChange, который я получаю, когда пользователь нажимает на узел «создать», это «создать», а затем я получаю код, подобный

 public void onValueChange(ValueChangeEvent<String> event) {
  String token = event.getValue();
     if(token.equals("create") 
    {
    CreateCustomerView create = new CreateCustomerView(eventBus,
         customerService);
       content.setContent(create);
    } 

...

Но что, если я хочу иметь разные языки в узлах TreeItem, тогда я хочу что-то другое, кроме текста в качестве токена, возможно, идентификатора. Могу ли я решить эту проблему с помощью шаблона Places из шаблона MVP, и если да, то как это работает?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2010

Почему бы вам не сравнить выбранный элемент, прикрепленный к SelectionEvent, с элементами, которые вы добавили ранее? Как то так:

public void onModuleLoad() {
    Tree tree = new Tree();
    final TreeItem item1 = new TreeItem("item 1");
    TreeItem item2 = new TreeItem("item 2");
    TreeItem item3 = new TreeItem("item 3");
    TreeItem item4 = new TreeItem("item 4");

    tree.addItem(item1);
    tree.addItem(item2);
    tree.addItem(item3);
    tree.addItem(item4);

    tree.addSelectionHandler(new SelectionHandler<TreeItem>() {

        @Override
        public void onSelection(SelectionEvent<TreeItem> event) {
            if (event.getSelectedItem().equals(item1)) {
                Window.alert("item1 selected");
            }
        }
    });

    RootPanel.get().add(tree);
}

Или я что-то упустил?

0 голосов
/ 06 ноября 2010

На TreeItem есть 2 метода setUserObject(Object userObject) и getUserObject.Вы можете использовать их для или установить Id, который вы можете использовать для проверки.Однако я не вижу, как вы переходите с SelectionEvent на ValueChangeEvent.Вы теряете некоторую информацию между ними.

...