use of org.jboss.hal.ballroom.tree.Node in project console by hal.
the class CreateSingletonStep method onShow.
@Override
protected void onShow(SingletonContext context) {
Elements.removeChildrenFrom(root);
Node<Context> parent = wizard().getContext().parent;
ResourceAddress singletonAddress = parent.data.getAddress().getParent().add(parent.text, wizard().getContext().singleton);
AddressTemplate template = ModelBrowser.asGenericTemplate(parent, singletonAddress);
metadataProcessor.lookup(template, progress.get(), new MetadataProcessor.MetadataCallback() {
@Override
public void onError(Throwable error) {
MessageEvent.fire(eventBus, Message.error(resources.messages().metadataError(), error.getMessage()));
}
@Override
public void onMetadata(Metadata metadata) {
String id = Ids.build(Ids.MODEL_BROWSER_CREATE_SINGLETON_FORM, Ids.FORM);
form = new ModelNodeForm.Builder<>(id, metadata).fromRequestProperties().onSave((f, changedValues) -> wizard().getContext().modelNode = f.getModel()).build();
root.appendChild(form.element());
PatternFly.initComponents();
form.attach();
form.edit(new ModelNode());
}
});
}
use of org.jboss.hal.ballroom.tree.Node in project console by hal.
the class BrowseContentElement method saveContent.
private void saveContent() {
Node<ContentEntry> selection = tree.getSelected();
if (selection != null) {
String filename = selection.data.path.contains("/") ? Strings.substringAfterLast(selection.data.path, "/") : selection.data.path;
String editorContent = editor.getEditor().getSession().getValue();
ResourceAddress address = new ResourceAddress().add(DEPLOYMENT, content.getName());
ModelNode contentNode = new ModelNode();
contentNode.get(INPUT_STREAM_INDEX).set(0);
contentNode.get(TARGET_PATH).set(selection.data.path);
Operation operation = new Operation.Builder(address, ADD_CONTENT).param(CONTENT, new ModelNode().add(contentNode)).build();
dispatcher.upload(file(filename, editorContent), operation).doOnSuccess(result -> saveContentButton.ifPresent(button -> button.disabled = true)).toCompletable().andThen(browseContent()).andThen(awaitTreeReady()).subscribe(() -> {
MessageEvent.fire(eventBus, Message.success(resources.messages().saveContentSuccess(content.getName(), filename)));
tree.selectNode(selection.id);
});
}
}
use of org.jboss.hal.ballroom.tree.Node in project console by hal.
the class BrowseContentElement method browseContent.
private Completable browseContent() {
ResourceAddress address = new ResourceAddress().add(DEPLOYMENT, content.getName());
Operation operation = new Operation.Builder(address, BROWSE_CONTENT).build();
return dispatcher.execute(operation).doOnSuccess(result -> {
String contentName = SafeHtmlUtils.htmlEscapeAllowEntities(content.getName());
Node<ContentEntry> root = new Node.Builder<>(Ids.CONTENT_TREE_ROOT, contentName, new ContentEntry()).root().folder().open().build();
JsArray<Node<ContentEntry>> nodes = new JsArray<>();
new ContentParser().parse(root, nodes, result.isDefined() ? result.asList() : emptyList());
if (tree != null) {
tree.destroy();
tree = null;
}
tree = new Tree<>(Ids.CONTENT_TREE, nodes);
Elements.removeChildrenFrom(treeContainer);
treeContainer.appendChild(tree.element());
tree.attach();
tree.onSelectionChange((event, selectionContext) -> {
if (!"ready".equals(selectionContext.action)) {
// NON-NLS
onNodeSelected(selectionContext);
}
});
}).toCompletable();
}
use of org.jboss.hal.ballroom.tree.Node in project console by hal.
the class JndiParser method readChildren.
private void readChildren(JsArray<Node<JndiContext>> nodes, Node<JndiContext> parent, List<Property> children) {
children.stream().filter(child -> child.getValue().isDefined()).forEach(child -> {
ModelNode modelNode = child.getValue();
JndiContext jndiContext = jndiContext(parent, child.getName(), modelNode);
if (modelNode.hasDefined(VALUE)) {
pushEntry(nodes, parent, child.getName(), jndiContext);
} else {
Node<JndiContext> node = pushFolder(nodes, parent, child.getName(), jndiContext);
if (modelNode.hasDefined(CHILDREN)) {
readChildren(nodes, node, modelNode.get(CHILDREN).asPropertyList());
} else if (child.getValue().getType() == ModelType.OBJECT) {
readChildren(nodes, node, child.getValue().asPropertyList());
}
}
});
}
Aggregations