*/
package jexer;
+import java.io.IOException;
import java.util.List;
import java.util.LinkedList;
}
/**
- * Comparison operator sorts on tabOrder for TWidgets and z for TWindows.
+ * Comparison operator sorts on:
+ * <ul>
+ * <li>tabOrder for TWidgets</li>
+ * <li>z for TWindows</li>
+ * <li>text for TTreeItems</li>
+ * </ul>
*
- * @param that another TWidget or TWindow instance
+ * @param that another TWidget, TWindow, or TTreeItem instance
* @return difference between this.tabOrder and that.tabOrder, or
- * difference between this.z and that.z
+ * difference between this.z and that.z, or String.compareTo(text)
*/
- @Override
public final int compareTo(final TWidget that) {
if ((this instanceof TWindow)
&& (that instanceof TWindow)
) {
return (((TWindow) this).getZ() - ((TWindow) that).getZ());
}
+ if ((this instanceof TTreeItem)
+ && (that instanceof TTreeItem)
+ ) {
+ return (((TTreeItem) this).getText().compareTo(
+ ((TTreeItem) that).getText()));
+ }
return (this.tabOrder - that.tabOrder);
}
public void onKeypress(final TKeypressEvent keypress) {
if ((children.size() == 0)
- // TODO
- // || (cast(TTreeView)this)
+ || (this instanceof TTreeView)
|| (this instanceof TText)
) {
updateAction);
}
+ /**
+ * Convenience function to add a tree view to this container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of tree view
+ * @param height height of tree view
+ */
+ public final TTreeView addTreeView(final int x, final int y,
+ final int width, final int height) {
+
+ return new TTreeView(this, x, y, width, height);
+ }
+
+ /**
+ * Convenience function to add a tree view to this container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of tree view
+ * @param height height of tree view
+ * @param action action to perform when an item is selected
+ */
+ public final TTreeView addTreeView(final int x, final int y,
+ final int width, final int height, final TAction action) {
+
+ return new TTreeView(this, x, y, width, height, action);
+ }
+
+ /**
+ * Convenience function to spawn a file open box.
+ *
+ * @param path path of selected file
+ * @return the result of the new file open box
+ */
+ public final String fileOpenBox(final String path) throws IOException {
+ return getApplication().fileOpenBox(path);
+ }
+
+ /**
+ * Convenience function to spawn a file open box.
+ *
+ * @param path path of selected file
+ * @param type one of the Type constants
+ * @return the result of the new file open box
+ */
+ public final String fileOpenBox(final String path,
+ final TFileOpenBox.Type type) throws IOException {
+
+ return getApplication().fileOpenBox(path, type);
+ }
+ /**
+ * Convenience function to add a directory list to this container/window.
+ *
+ * @param path directory path, must be a directory
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of text area
+ * @param height height of text area
+ */
+ public final TDirectoryList addDirectoryList(final String path, final int x,
+ final int y, final int width, final int height) {
+
+ return new TDirectoryList(this, path, x, y, width, height, null);
+ }
+
+ /**
+ * Convenience function to add a directory list to this container/window.
+ *
+ * @param path directory path, must be a directory
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of text area
+ * @param height height of text area
+ * @param action action to perform when an item is selected
+ */
+ public final TDirectoryList addDirectoryList(final String path, final int x,
+ final int y, final int width, final int height, final TAction action) {
+
+ return new TDirectoryList(this, path, x, y, width, height, action);
+ }
+
}