package com.github.czyzby.lml.vis.parser.impl.nongwt.attribute.file;

import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Array;
import com.kotcrab.vis.ui.widget.file.FileChooser;
import com.kotcrab.vis.ui.widget.file.FileChooser.SelectionMode;

/** Constructs a {@link FileChooser} that will be shown after the widget is clicked (unless it's disabled). Attribute
 * expects a reference to a method that consumes a single {@link FileHandle} or an {@link Array} of files. File chooser
 * allows to select only directories. If the file chooser is cancelled, file handle-consuming method will receive null;
 * array-consuming method will receive empty array. Mapped to "directoriesChooser".
 *
 * @author MJ */
public class DirectoryChooserLmlAttribute extends FileChooserLmlAttribute {
    @Override
    protected SelectionMode getSelectionMode() {
        return SelectionMode.DIRECTORIES;
    }
}

@@ -133,19 +133,230 @@
 gdx.
-utils.Array
+scenes.scene2d.Actor;%0Aimport com.badlogic.gdx.utils.Array;%0Aimport com.github.czyzby.lml.parser.LmlParser;%0Aimport com.github.czyzby.lml.parser.tag.LmlTag;%0Aimport com.github.czyzby.lml.vis.parser.impl.action.VisStageAttacher
 ;%0Aim
@@ -879,16 +879,52 @@
 y array.
+ This can select hidden directories.
  Mapped 
@@ -1107,16 +1107,16 @@
 ode() %7B%0A
-
         
@@ -1154,11 +1154,499 @@
 S;%0A    %7D
+%0A%0A    @Override%0A    public void process(LmlParser parser, LmlTag tag, Actor actor, String rawAttributeData) %7B%0A        final FileChooser fileChooser = new FileChooser(FileChooser.Mode.OPEN);%0A        fileChooser.setSelectionMode(getSelectionMode());%0A        fileChooser.setFileFilter(file -%3E true);%0A        FileChooserListenerLmlAttribute.addFileChooserListener(parser, rawAttributeData, fileChooser);%0A        actor.addListener(new VisStageAttacher.PopupAttacher(fileChooser, actor));%0A    %7D
 %0A%7D%0A

Allow hidden folders to be selected! Yay!