+ /**
+ * Convenience function to add a scrollable 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
+ * @return the new tree view
+ */
+ public final TTreeViewWidget addTreeViewWidget(final int x, final int y,
+ final int width, final int height) {
+
+ return new TTreeViewWidget(this, x, y, width, height);
+ }
+
+ /**
+ * Convenience function to add a scrollable 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
+ * @return the new tree view
+ */
+ public final TTreeViewWidget addTreeViewWidget(final int x, final int y,
+ final int width, final int height, final TAction action) {
+
+ return new TTreeViewWidget(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
+ * @throws IOException if a java.io operation throws
+ */
+ public final String fileOpenBox(final String path) throws IOException {
+ return getApplication().fileOpenBox(path);
+ }
+
+ /**
+ * Convenience function to spawn a file save box.
+ *
+ * @param path path of selected file
+ * @return the result of the new file open box
+ * @throws IOException if a java.io operation throws
+ */
+ public final String fileSaveBox(final String path) throws IOException {
+ return getApplication().fileOpenBox(path, TFileOpenBox.Type.SAVE);
+ }
+
+ /**
+ * 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
+ * @throws IOException if a java.io operation throws
+ */
+ public final String fileOpenBox(final String path,
+ final TFileOpenBox.Type type) throws IOException {
+
+ return getApplication().fileOpenBox(path, type);
+ }
+
+ /**
+ * Convenience function to spawn a file open box.
+ *
+ * @param path path of selected file
+ * @param type one of the Type constants
+ * @param filter a string that files must match to be displayed
+ * @return the result of the new file open box
+ * @throws IOException of a java.io operation throws
+ */
+ public final String fileOpenBox(final String path,
+ final TFileOpenBox.Type type, final String filter) throws IOException {
+
+ ArrayList<String> filters = new ArrayList<String>();
+ filters.add(filter);
+
+ return getApplication().fileOpenBox(path, type, filters);
+ }
+
+ /**
+ * Convenience function to spawn a file open box.
+ *
+ * @param path path of selected file
+ * @param type one of the Type constants
+ * @param filters a list of strings that files must match to be displayed
+ * @return the result of the new file open box
+ * @throws IOException of a java.io operation throws
+ */
+ public final String fileOpenBox(final String path,
+ final TFileOpenBox.Type type,
+ final List<String> filters) throws IOException {
+
+ return getApplication().fileOpenBox(path, type, filters);
+ }
+
+ /**
+ * 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
+ * @return the new directory list
+ */
+ 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 (enter or
+ * double-click)
+ * @return the new directory list
+ */
+ 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);
+ }
+
+ /**
+ * 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 (enter or
+ * double-click)
+ * @param singleClickAction action to perform when an item is selected
+ * (single-click)
+ * @return the new directory list
+ */
+ public final TDirectoryList addDirectoryList(final String path, final int x,
+ final int y, final int width, final int height, final TAction action,
+ final TAction singleClickAction) {
+
+ return new TDirectoryList(this, path, x, y, width, height, action,
+ singleClickAction);
+ }
+
+ /**
+ * 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 (enter or
+ * double-click)
+ * @param singleClickAction action to perform when an item is selected
+ * (single-click)
+ * @param filters a list of strings that files must match to be displayed
+ * @return the new directory list
+ */
+ public final TDirectoryList addDirectoryList(final String path, final int x,
+ final int y, final int width, final int height, final TAction action,
+ final TAction singleClickAction, final List<String> filters) {
+
+ return new TDirectoryList(this, path, x, y, width, height, action,
+ singleClickAction, filters);
+ }
+
+ /**
+ * Convenience function to add a list to this container/window.
+ *
+ * @param strings list of strings to show
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of text area
+ * @param height height of text area
+ * @return the new directory list
+ */
+ public final TList addList(final List<String> strings, final int x,
+ final int y, final int width, final int height) {
+
+ return new TList(this, strings, x, y, width, height, null);
+ }
+
+ /**
+ * Convenience function to add a list to this container/window.
+ *
+ * @param strings list of strings to show
+ * @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 enterAction action to perform when an item is selected
+ * @return the new directory list
+ */
+ public final TList addList(final List<String> strings, final int x,
+ final int y, final int width, final int height,
+ final TAction enterAction) {
+
+ return new TList(this, strings, x, y, width, height, enterAction);
+ }
+
+ /**
+ * Convenience function to add a list to this container/window.
+ *
+ * @param strings list of strings to show
+ * @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 enterAction action to perform when an item is selected
+ * @param moveAction action to perform when the user navigates to a new
+ * item with arrow/page keys
+ * @return the new directory list
+ */
+ public final TList addList(final List<String> strings, final int x,
+ final int y, final int width, final int height,
+ final TAction enterAction, final TAction moveAction) {
+
+ return new TList(this, strings, x, y, width, height, enterAction,
+ moveAction);
+ }
+
+ /**
+ * Convenience function to add a list to this container/window.
+ *
+ * @param strings list of strings to show. This is allowed to be null
+ * and set later with setList() or by subclasses.
+ * @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 enterAction action to perform when an item is selected
+ * @param moveAction action to perform when the user navigates to a new
+ * item with arrow/page keys
+ * @param singleClickAction action to perform when the user clicks on an
+ * item
+ */
+ public TList addList(final List<String> strings, final int x,
+ final int y, final int width, final int height,
+ final TAction enterAction, final TAction moveAction,
+ final TAction singleClickAction) {
+
+ return new TList(this, strings, x, y, width, height, enterAction,
+ moveAction, singleClickAction);
+ }
+
+
+ /**
+ * Convenience function to add an image to this container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width number of text cells for width of the image
+ * @param height number of text cells for height of the image
+ * @param image the image to display
+ * @param left left column of the image. 0 is the left-most column.
+ * @param top top row of the image. 0 is the top-most row.
+ */
+ public final TImage addImage(final int x, final int y,
+ final int width, final int height,
+ final BufferedImage image, final int left, final int top) {
+
+ return new TImage(this, x, y, width, height, image, left, top);
+ }
+
+ /**
+ * Convenience function to add an image to this container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width number of text cells for width of the image
+ * @param height number of text cells for height of the image
+ * @param image the image to display
+ * @param left left column of the image. 0 is the left-most column.
+ * @param top top row of the image. 0 is the top-most row.
+ * @param clickAction function to call when mouse is pressed
+ */
+ public final TImage addImage(final int x, final int y,
+ final int width, final int height,
+ final BufferedImage image, final int left, final int top,
+ final TAction clickAction) {
+
+ return new TImage(this, x, y, width, height, image, left, top,
+ clickAction);
+ }
+
+ /**
+ * Convenience function to add an editable 2D data table to this
+ * container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of widget
+ * @param height height of widget
+ */
+ public TTableWidget addTable(final int x, final int y, final int width,
+ final int height) {
+
+ return new TTableWidget(this, x, y, width, height);
+ }
+
+ /**
+ * Convenience function to add an editable 2D data table to this
+ * container/window.
+ *
+ * @param x column relative to parent
+ * @param y row relative to parent
+ * @param width width of widget
+ * @param height height of widget
+ * @param gridColumns number of columns in grid
+ * @param gridRows number of rows in grid
+ */
+ public TTableWidget addTable(final int x, final int y, final int width,
+ final int height, final int gridColumns, final int gridRows) {
+
+ return new TTableWidget(this, x, y, width, height, gridColumns,
+ gridRows);
+ }
+