Exemplo n.º 1
0
  /** Removes the Object identified by the specified id from this Surface's {@link Layout}. */
  @Override
  public void requestRemove(String id) {
    Node<T> node = layout.getNode(id);
    if (node == null) {
      return;
    }

    List<Node<T>> affectedNodes = engine.requestRemoveElement(this, node);

    if (!affectedNodes.isEmpty()) {
      engine.adjustWeights(this);

      // Signal the client to remove the object associated with the removed "node".
      node.force(
          this, /* isMoveOperation() ? ChangeType.REMOVE_RETAIN : */ ChangeType.REMOVE_DISCARD);

      for (Node<T> n : affectedNodes) {
        n.set(this, ChangeType.RESIZE_RELOCATE);
      }

      removeNodeReferences(node);

      getPathIterator().assemblePaths(layout.getRoot());
    } else {
      //////////  VETO REMOVE /////////
    }
  }