List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Tree Tree
public Tree(TreeStyle style)
From source file:com.badlogic.gdx.ai.tests.BehaviorTreeViewer.java
License:Apache License
@Override public void create() { step = 0;/*ww w . j av a 2s. co m*/ taskNodes = new ObjectMap<Task<Dog>, TaskNode>(); BehaviorTreeParser<Dog> parser = new BehaviorTreeParser<Dog>(BehaviorTreeParser.DEBUG_NONE); BehaviorTree<Dog> tree = parser.parse(Gdx.files.internal("data/dog.tree"), null); dog = new Dog("Dog 1", tree); tree.addListener(new BehaviorTree.Listener<Dog>() { @Override public void statusUpdated(Task<Dog> task, Task.Status previousStatus) { TaskNode tn = taskNodes.get(task); tn.updateStatus(previousStatus, step); } @Override public void childAdded(Task<Dog> task, int index) { TaskNode parentNode = taskNodes.get(task); Task<Dog> child = task.getChild(index); addToTree(displayTree, parentNode, child, null, 0); displayTree.expandAll(); } }); KryoUtils.initKryo(); skin = new Skin(Gdx.files.internal("data/uiskin.json")); treeStatus = SUSPENDED; runDelaySlider = new Slider(0, 5, 0.01f, false, skin); runDelaySlider.setValue(.5f); runButton = new TextButton("Run", skin); stepButton = new TextButton("Step", skin); loadButton = new TextButton("Load", skin); loadButton.setDisabled(true); saveButton = new TextButton("Save", skin); stepLabel = new Label(new StringBuilder(LABEL_STEP + step), skin); stage = new Stage(new ScreenViewport()); Table table = new Table(); table.row().height(20).fillX(); table.add(runDelaySlider); table.add(runButton); table.add(stepButton); table.add(saveButton); table.add(loadButton); table.add(stepLabel); table.row(); displayTree = new Tree(skin); redrawTree(); table.add(displayTree).colspan(3).fillX().fillY().expand(true, true); stage.addActor(table); table.setFillParent(true); saveButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { save(); saved = true; loadButton.setDisabled(false); } }); loadButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { load(); } }); stepButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { treeStatus = STEP; // step(); } }); runButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (treeStatus == SUSPENDED) { treeStatus = RUNNING; delay = runDelaySlider.getValue(); // this makes it start immediately runButton.setText("Suspend"); stepButton.setDisabled(true); saveButton.setDisabled(true); loadButton.setDisabled(true); } else { treeStatus = SUSPENDED; runButton.setText("Run"); stepButton.setDisabled(false); saveButton.setDisabled(false); loadButton.setDisabled(!saved); } } }); Gdx.input.setInputProcessor(stage); setScreen(this); }
From source file:com.badlogic.gdx.ai.tests.btree.BehaviorTreeViewer.java
License:Apache License
public BehaviorTreeViewer(BehaviorTree<E> tree, boolean loadAndSave, Skin skin) { super(skin);/*w w w .j a va 2 s .c o m*/ this.tree = tree; step = 0; taskNodes = new ObjectMap<Task<E>, TaskNode>(); tree.addListener(new BehaviorTree.Listener<E>() { @Override public void statusUpdated(Task<E> task, Task.Status previousStatus) { TaskNode tn = taskNodes.get(task); if (tn != null) tn.updateStatus(previousStatus, step); } @Override public void childAdded(Task<E> task, int index) { TaskNode parentNode = taskNodes.get(task); Task<E> child = task.getChild(index); addToTree(displayTree, parentNode, child, null, 0); displayTree.expandAll(); } }); treeStatus = BT_SUSPENDED; runDelaySlider = new Slider(0, 5, 0.01f, false, skin); runDelaySlider.setValue(.5f); runButton = new TextButton("Run", skin); runButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { if (treeStatus == BT_SUSPENDED) { treeStatus = BT_RUNNING; runDelayAccumulator = runDelaySlider.getValue(); // this makes it start immediately runButton.setText("Suspend"); stepButton.setDisabled(true); if (saveButton != null) saveButton.setDisabled(true); if (loadButton != null) loadButton.setDisabled(true); } else { treeStatus = BT_SUSPENDED; runButton.setText("Run"); stepButton.setDisabled(false); if (saveButton != null) saveButton.setDisabled(false); if (loadButton != null) loadButton.setDisabled(!saved); } } }); stepButton = new TextButton("Step", skin); stepButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { treeStatus = BT_STEP; } }); resetButton = new TextButton("Reset", skin); resetButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { BehaviorTreeViewer.this.tree.reset(); rebuildDisplayTree(); } }); if (loadAndSave) { loadButton = new TextButton("Load", skin); loadButton.setDisabled(true); loadButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { load(); } }); saveButton = new TextButton("Save", skin); saveButton.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { save(); saved = true; loadButton.setDisabled(false); } }); } stepLabel = new Label(new StringBuilder(LABEL_STEP + step), skin); this.row().height(26).fillX(); this.add(runDelaySlider); this.add(runButton); this.add(stepButton); this.add(resetButton); if (loadAndSave) { this.add(saveButton); this.add(loadButton); } this.add(stepLabel); this.row(); displayTree = new Tree(skin); rebuildDisplayTree(); this.add(displayTree).colspan(5 + (loadAndSave ? 2 : 0)).grow(); }
From source file:com.bladecoder.engineeditor.ui.components.EditTree.java
License:Apache License
public EditTree(Skin skin) { super(skin);/*from w w w . ja v a2 s . com*/ this.skin = skin; upBtn = new ImageButton(skin); downBtn = new ImageButton(skin); leftBtn = new ImageButton(skin); rightBtn = new ImageButton(skin); tree = new Tree(skin); ScrollPane scrollPane = new ScrollPane(tree, skin); container = new Container<ScrollPane>(scrollPane); container.fill(); container.prefHeight(1000); toolbar = new EditToolbar(skin); // debug(); add(toolbar).expandX().fillX(); row().fill(); add(container).expandY().fill(); toolbar.addToolBarButton(upBtn, "ic_up", "Move up", "Move up"); toolbar.addToolBarButton(downBtn, "ic_down", "Move down", "Move down"); toolbar.addToolBarButton(leftBtn, "ic_left", "Child", "Move to child option"); toolbar.addToolBarButton(rightBtn, "ic_right", "Parent", "Move to parent option"); toolbar.addCreateListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { create(); } }); toolbar.addEditListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { edit(); } }); toolbar.addDeleteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { delete(); } }); toolbar.addCopyListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { copy(); } }); toolbar.addPasteListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { paste(); } }); upBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { upNode(); } }); downBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { downNode(); } }); leftBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { leftNode(); } }); rightBtn.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { rightNode(); } }); tree.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Selection<Node> selection = tree.getSelection(); if (selection.isEmpty()) { upBtn.setDisabled(true); downBtn.setDisabled(true); leftBtn.setDisabled(true); rightBtn.setDisabled(true); } else { Node nodeSel = selection.first(); int level = nodeSel.getLevel(); Array<Node> siblings = getSiblings(); upBtn.setDisabled(siblings.get(0) == nodeSel); downBtn.setDisabled(siblings.get(siblings.size - 1) == nodeSel); leftBtn.setDisabled(level == 1); rightBtn.setDisabled(siblings.get(0) == nodeSel); } toolbar.disableEdit(selection == null); } }); }
From source file:com.blastedstudios.gdxworld.util.ui.TreeFileChooser.java
License:Apache License
/** builds {@link #chooseButton}, {@link #cancelButtonListener}, {@link #tree}, {@link #treePane} */ protected void buildWidgets() { (tree = new Tree(style.treeStyle)).addListener(treeListener); if (style.scrollPaneStyle != null) treePane = new ScrollPane(tree, style.scrollPaneStyle); else/* w w w .jav a2s . co m*/ treePane = new ScrollPane(tree); (chooseButton = Scene2DUtils.newButton(style.selectButtonStyle, "select")) .addListener(chooseButtonListener); chooseButton.setDisabled(true); (cancelButton = Scene2DUtils.newButton(style.cancelButtonStyle, "cancel")) .addListener(cancelButtonListener); }
From source file:com.ray3k.skincomposer.RootTable.java
License:Open Source License
public void refreshPreview() { if (previewTable != null) { previewTable.clear();// ww w . ja va2 s. c om previewTable.setColor((Color) previewProperties.get("bgcolor")); for (BitmapFont font : previewFonts) { font.dispose(); } if (classSelectBox.getSelectedIndex() >= 0) { StyleData styleData = getSelectedStyle(); Class clazz = Main.BASIC_CLASSES[classSelectBox.getSelectedIndex()]; if (!styleData.hasMandatoryFields()) { Label label; if (clazz.equals(SelectBox.class)) { label = new Label( "Please fill all mandatory fields\n(Highlighted on the left)\n\nscrollStyle and listStyle\nmust already be defined", getSkin()); } else if (clazz.equals(TextTooltip.class)) { label = new Label( "Please fill all mandatory fields\n(Highlighted on the left)\n\nlabel must already be defined", getSkin()); } else { label = new Label("Please fill all mandatory fields\n(Highlighted on the left)", getSkin()); } label.setAlignment(Align.center); previewTable.add(label); } else if (styleData.hasAllNullFields()) { Label label; label = new Label( "All fields are empty!\nEmpty classes are not exported\nAdd style properties in the menu to the left", getSkin()); label.setAlignment(Align.center); previewTable.add(label); } else { Actor widget = null; if (clazz.equals(Button.class)) { Button.ButtonStyle style = createPreviewStyle(Button.ButtonStyle.class, styleData); widget = new Button(style); ((Button) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(CheckBox.class)) { CheckBox.CheckBoxStyle style = createPreviewStyle(CheckBox.CheckBoxStyle.class, styleData); widget = new CheckBox("", style); ((CheckBox) widget).setDisabled((boolean) previewProperties.get("disabled")); ((CheckBox) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(ImageButton.class)) { ImageButtonStyle style = createPreviewStyle(ImageButtonStyle.class, styleData); widget = new ImageButton(style); ((ImageButton) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(ImageTextButton.class)) { ImageTextButton.ImageTextButtonStyle style = createPreviewStyle( ImageTextButton.ImageTextButtonStyle.class, styleData); widget = new ImageTextButton("", style); ((ImageTextButton) widget).setDisabled((boolean) previewProperties.get("disabled")); ((ImageTextButton) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(Label.class)) { LabelStyle style = createPreviewStyle(LabelStyle.class, styleData); widget = new Label("", style); ((Label) widget).setText((String) previewProperties.get("text")); } else if (clazz.equals(List.class)) { ListStyle style = createPreviewStyle(ListStyle.class, styleData); widget = new List(style); Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n")); ((List) widget).setItems(items); widget.addListener(main.getHandListener()); } else if (clazz.equals(ProgressBar.class)) { ProgressBar.ProgressBarStyle style = createPreviewStyle(ProgressBar.ProgressBarStyle.class, styleData); widget = new ProgressBar((float) (double) previewProperties.get("minimum"), (float) (double) previewProperties.get("maximum"), (float) (double) previewProperties.get("increment"), (boolean) previewProperties.get("orientation"), style); ((ProgressBar) widget).setValue((float) (double) previewProperties.get("value")); ((ProgressBar) widget).setDisabled((boolean) previewProperties.get("disabled")); } else if (clazz.equals(ScrollPane.class)) { ScrollPaneStyle style = createPreviewStyle(ScrollPaneStyle.class, styleData); Label label = new Label("", getSkin()); widget = new ScrollPane(label, style); ((ScrollPane) widget) .setScrollbarsOnTop((boolean) previewProperties.get("scrollbarsOnTop")); ((ScrollPane) widget).setScrollBarPositions( (boolean) previewProperties.get("hScrollBarPosition"), (boolean) previewProperties.get("vScrollBarPosition")); ((ScrollPane) widget).setScrollingDisabled( (boolean) previewProperties.get("hScrollDisabled"), (boolean) previewProperties.get("vScrollDisabled")); ((ScrollPane) widget).setForceScroll((boolean) previewProperties.get("forceHscroll"), (boolean) previewProperties.get("forceVscroll")); ((ScrollPane) widget) .setVariableSizeKnobs((boolean) previewProperties.get("variableSizeKnobs")); ((ScrollPane) widget).setOverscroll((boolean) previewProperties.get("hOverscroll"), (boolean) previewProperties.get("vOverscroll")); ((ScrollPane) widget).setFadeScrollBars((boolean) previewProperties.get("fadeScroll")); ((ScrollPane) widget).setSmoothScrolling((boolean) previewProperties.get("smoothScroll")); ((ScrollPane) widget).setFlickScroll((boolean) previewProperties.get("flickScroll")); ((ScrollPane) widget).setClamp((boolean) previewProperties.get("clamp")); label.setText((String) previewProperties.get("text")); } else if (clazz.equals(SelectBox.class)) { SelectBox.SelectBoxStyle style = createPreviewStyle(SelectBox.SelectBoxStyle.class, styleData); widget = new SelectBox(style); ((SelectBox) widget).setDisabled((boolean) previewProperties.get("disabled")); Array<String> items = new Array<>(((String) previewProperties.get("text")).split("\\n")); ((SelectBox) widget).setItems(items); widget.addListener(main.getHandListener()); } else if (clazz.equals(Slider.class)) { Slider.SliderStyle style = createPreviewStyle(Slider.SliderStyle.class, styleData); widget = new Slider((float) (double) previewProperties.get("minimum"), (float) (double) previewProperties.get("maximum"), (float) (double) previewProperties.get("increment"), (boolean) previewProperties.get("orientation"), style); ((Slider) widget).setDisabled((boolean) previewProperties.get("disabled")); widget.addListener(main.getHandListener()); } else if (clazz.equals(SplitPane.class)) { SplitPane.SplitPaneStyle style = createPreviewStyle(SplitPane.SplitPaneStyle.class, styleData); Label label1 = new Label("", getSkin()); Label label2 = new Label("", getSkin()); widget = new SplitPane(label1, label2, (boolean) previewProperties.get("orientation"), style); label1.setText((String) previewProperties.get("text")); label2.setText((String) previewProperties.get("text")); if ((boolean) previewProperties.get("orientation")) { widget.addListener(vSplitPaneDragListener); widget.addListener(vSplitPaneInputListener); } else { widget.addListener(hSplitPaneDragListener); widget.addListener(hSplitPaneInputListener); } } else if (clazz.equals(TextButton.class)) { TextButtonStyle style = createPreviewStyle(TextButtonStyle.class, styleData); widget = new TextButton("", style); ((TextButton) widget).setDisabled((boolean) previewProperties.get("disabled")); ((TextButton) widget).setText((String) previewProperties.get("text")); widget.addListener(main.getHandListener()); } else if (clazz.equals(TextField.class)) { TextFieldStyle style = createPreviewStyle(TextFieldStyle.class, styleData); widget = new TextField("", style); ((TextField) widget).setFocusTraversal(false); ((TextField) widget).setDisabled((boolean) previewProperties.get("disabled")); ((TextField) widget).setPasswordMode((boolean) previewProperties.get("passwordMode")); ((TextField) widget).setAlignment((int) previewProperties.get("alignment")); ((TextField) widget).setText((String) previewProperties.get("text")); ((TextField) widget).setMessageText((String) previewProperties.get("message")); String string = (String) previewProperties.get("password"); if (string.length() > 0) { ((TextField) widget).setPasswordCharacter(string.charAt(0)); } widget.addListener(main.getIbeamListener()); } else if (clazz.equals(TextTooltip.class)) { TextTooltip.TextTooltipStyle style = createPreviewStyle(TextTooltip.TextTooltipStyle.class, styleData); TooltipManager manager = new TooltipManager(); manager.animations = false; manager.initialTime = 0.0f; manager.resetTime = 0.0f; manager.subsequentTime = 0.0f; manager.hideAll(); manager.instant(); TextTooltip toolTip = new TextTooltip((String) previewProperties.get("text"), manager, style); widget = new Label("Hover over me", getSkin()); widget.addListener(toolTip); } else if (clazz.equals(Touchpad.class)) { Touchpad.TouchpadStyle style = createPreviewStyle(Touchpad.TouchpadStyle.class, styleData); widget = new Touchpad(0, style); widget.addListener(main.getHandListener()); } else if (clazz.equals(Tree.class)) { Tree.TreeStyle style = createPreviewStyle(Tree.TreeStyle.class, styleData); widget = new Tree(style); String[] lines = { "this", "is", "a", "test" }; Tree.Node parentNode = null; for (String line : lines) { Label label = new Label(line, getSkin()); Tree.Node node = new Tree.Node(label); if (parentNode == null) { ((Tree) widget).add(node); } else { parentNode.add(node); } parentNode = node; } widget.addListener(main.getHandListener()); } else if (clazz.equals(Window.class)) { Window.WindowStyle style = createPreviewStyle(Window.WindowStyle.class, styleData); Label sampleText = new Label("", getSkin()); sampleText.setText((String) previewProperties.get("text")); widget = new Window((String) previewProperties.get("title"), style); ((Window) widget).add(sampleText); } if (widget != null) { switch ((int) previewProperties.get("size")) { case (0): previewTable.add(widget).size(10.0f); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (1): previewTable.add(widget); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (2): previewTable.add(widget).size(200.0f); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (3): previewTable.add(widget).growX(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (4): previewTable.add(widget).growY(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (5): previewTable.add(widget).grow(); previewSizeSelectBox.setItems(DEFAULT_SIZES); break; case (6): Actor addWidget = widget; TextField widthField = new TextField("", getSkin()); TextField heightField = new TextField("", getSkin()); System.out.println("trigger"); Dialog dialog = new Dialog("Enter dimensions...", getSkin()) { @Override protected void result(Object object) { if ((boolean) object) { previewTable.add(addWidget).size(Integer.parseInt(widthField.getText()), Integer.parseInt(heightField.getText())); Array<String> items = new Array<>(DEFAULT_SIZES); items.add(widthField.getText() + "x" + heightField.getText()); previewProperties.put("sizeX", Integer.parseInt(widthField.getText())); previewProperties.put("sizeY", Integer.parseInt(heightField.getText())); previewSizeSelectBox.setItems(items); previewSizeSelectBox.setSelectedIndex(7); } else { previewSizeSelectBox.setSelectedIndex(1); } } }; dialog.getTitleTable().getCells().first().padLeft(5.0f); dialog.text("Enter the preview dimensions: "); dialog.getContentTable().getCells().first().pad(10.0f); dialog.getContentTable().row(); Table sizeTable = new Table(); sizeTable.add(widthField).padLeft(10.0f); sizeTable.add(new Label(" x ", getSkin())); sizeTable.add(heightField).padRight(10.0f); dialog.getContentTable().add(sizeTable); dialog.getButtonTable().defaults().padBottom(10.0f).minWidth(50.0f); dialog.button("OK", true); dialog.button("Cancel", false); dialog.key(Input.Keys.ESCAPE, false); dialog.key(Input.Keys.ENTER, true); dialog.show(stage); stage.setKeyboardFocus(widthField); break; case (7): previewTable.add(widget).size((int) previewProperties.get("sizeX"), (int) previewProperties.get("sizeY")); break; } } } } } }
From source file:com.uwsoft.editor.gdx.ui.UIItemsBox.java
License:Apache License
public void initContent() { for (int i = 0; i < this.getChildren().size; i++) { if (this.getChildren().get(i).getName() != null && this.getChildren().get(i).getName().equals("treeTable")) { this.getChildren().get(i).remove(); break; }//from w ww . j av a 2 s.c om } skin = stage.textureManager.editorSkin; tree = new Tree(skin); CompositeItem sceneItems = stage.getSandbox().getCurrentScene(); Node root = addTree(sceneItems, stage.getCompositePanel().isRootScene()); for (int i = 0; i < sceneItems.getItems().size(); i++) { if (sceneItems.getItems().get(i).isComposite()) { innerComposite(sceneItems.getItems().get(i), root); } else { addTree(sceneItems.getItems().get(i), root); } } //expand root if (root != null && root.getChildren() != null && root.getChildren().size > 0 && root.getChildren().get(0) != null) { root.getChildren().get(0).expandTo(); } Table scrolltable = new Table(); scrolltable.padBottom(20); scrolltable.add(tree).fill().expand(); final ScrollPane scroller = new ScrollPane(scrolltable, skin); scroller.setFlickScroll(false); final Table table = new Table(); table.setFillParent(true); table.padTop(10); table.add(scroller).fill().expand(); table.setName("treeTable"); addActor(table); tree.addListener(new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { Array<Node> selectedNodes = tree.getSelection().toArray(); for (int i = 0; i < selectedNodes.size; i++) { System.out.println(); IBaseItem baseItem = (IBaseItem) selectedNodes.get(i).getObject(); IBaseItem item = getCurrentSceneItem(stage.getSandbox().getCurrentScene(), baseItem); if (item != null) { addSelectionAction(item); } } } }); }
From source file:net.dermetfan.gdx.scenes.scene2d.ui.TreeFileChooser.java
License:Apache License
/** builds {@link #chooseButton}, {@link #cancelButtonListener}, {@link #tree}, {@link #treePane} */ protected void buildWidgets() { (tree = new Tree(style.treeStyle)).addListener(treeListener); if (style.scrollPaneStyle != null) treePane = new ScrollPane(tree, style.scrollPaneStyle); else//from ww w .j av a 2 s .c o m treePane = new ScrollPane(tree); (chooseButton = UIUtils.newButton(style.selectButtonStyle, "select")).addListener(chooseButtonListener); chooseButton.setDisabled(true); (cancelButton = UIUtils.newButton(style.cancelButtonStyle, "cancel")).addListener(cancelButtonListener); }