X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWidget.java;h=91bcfced72e81128b581c6049975485fd0446f77;hb=a043164fd1cc1b38f03bb104f8b5240cdf5705c6;hp=7ea1a427cbb78227e40c9b4935139631a66b3919;hpb=7c870d89433346ccb5505f8f9ba62d3fc18fe996;p=fanfix.git diff --git a/src/jexer/TWidget.java b/src/jexer/TWidget.java index 7ea1a42..91bcfce 100644 --- a/src/jexer/TWidget.java +++ b/src/jexer/TWidget.java @@ -30,6 +30,7 @@ */ package jexer; +import java.io.IOException; import java.util.List; import java.util.LinkedList; @@ -370,19 +371,29 @@ public abstract class TWidget implements Comparable { } /** - * Comparison operator sorts on tabOrder for TWidgets and z for TWindows. + * Comparison operator sorts on: + * * - * @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); } @@ -751,8 +762,7 @@ public abstract class TWidget implements Comparable { public void onKeypress(final TKeypressEvent keypress) { if ((children.size() == 0) - // TODO - // || (cast(TTreeView)this) + || (this instanceof TTreeView) || (this instanceof TText) ) { @@ -1272,4 +1282,86 @@ public abstract class TWidget implements Comparable { 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); + } + }