コード例 #1
0
 @Override
 public void setStructure(List<Node> nodes) {
   tree.getNodeStorage().clear();
   for (Node node : nodes) {
     tree.getNodeStorage().add(node);
   }
 }
コード例 #2
0
 @Override
 public void show() {
   super.show(tree);
   if (!tree.getRootNodes().isEmpty()) {
     tree.getSelectionModel().select(tree.getRootNodes().get(0), false);
   }
 }
コード例 #3
0
  private void acceptButtonClicked() {
    List<Node> nodes = tree.getSelectionModel().getSelectedNodes();
    if (nodes.isEmpty()) {
      return;
    }
    Node selectedNode = nodes.get(0);
    delegate.setSelectedPath(((HasStorablePath) selectedNode).getStorablePath());

    hide();
  }
コード例 #4
0
  @Inject
  public SelectPathViewImpl(CoreLocalizationConstant locale, SelectPathViewImplUiBinder uiBinder) {
    setTitle(locale.selectPathWindowTitle());

    Widget widget = uiBinder.createAndBindUi(this);
    setWidget(widget);

    UniqueKeyProvider<Node> uniqueKeyProvider =
        new NodeUniqueKeyProvider() {
          @NotNull
          @Override
          public String getKey(@NotNull Node item) {
            if (item instanceof HasStorablePath) {
              return ((HasStorablePath) item).getStorablePath();
            } else {
              return String.valueOf(item.hashCode());
            }
          }
        };
    FolderNodeInterceptor interceptor = new FolderNodeInterceptor();
    Set<NodeInterceptor> interceptors = new HashSet<>();
    interceptors.add(interceptor);
    NodeLoader loader = new NodeLoader(interceptors);
    NodeStorage nodeStorage = new NodeStorage(uniqueKeyProvider);

    tree = new Tree(nodeStorage, loader);
    tree.setAutoSelect(true);
    tree.getSelectionModel().setSelectionMode(SINGLE);
    treeContainer.add(tree);

    KeyboardNavigationHandler handler =
        new KeyboardNavigationHandler() {
          @Override
          public void onEnter(NativeEvent evt) {
            evt.preventDefault();
            acceptButtonClicked();
          }
        };

    handler.bind(tree);

    cancelButton =
        createButton(
            locale.cancel(),
            "select-path-cancel-button",
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                hide();
              }
            });

    acceptButton =
        createPrimaryButton(
            locale.ok(),
            "select-path-ok-button",
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                acceptButtonClicked();
              }
            });

    addButtonToFooter(acceptButton);
    addButtonToFooter(cancelButton);
  }