Version 2.0.0: update sources
[jvcard.git] / src / com / googlecode / lanterna / gui2 / dialogs / ListSelectDialog.java
diff --git a/src/com/googlecode/lanterna/gui2/dialogs/ListSelectDialog.java b/src/com/googlecode/lanterna/gui2/dialogs/ListSelectDialog.java
deleted file mode 100644 (file)
index e434311..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-package com.googlecode.lanterna.gui2.dialogs;
-
-import com.googlecode.lanterna.TerminalTextUtils;
-import com.googlecode.lanterna.TerminalSize;
-import com.googlecode.lanterna.gui2.*;
-
-import java.util.List;
-
-/**
- * Dialog that allows the user to select an item from a list
- *
- * @param <T> Type of elements in the list
- * @author Martin
- */
-public class ListSelectDialog<T> extends DialogWindow {
-    private T result;
-
-    ListSelectDialog(
-            String title,
-            String description,
-            TerminalSize listBoxPreferredSize,
-            boolean canCancel,
-            List<T> content) {
-
-        super(title);
-        this.result = null;
-        if(content.isEmpty()) {
-            throw new IllegalStateException("ListSelectDialog needs at least one item");
-        }
-
-        ActionListBox listBox = new ActionListBox(listBoxPreferredSize);
-        for(final T item: content) {
-            listBox.addItem(item.toString(), new Runnable() {
-                @Override
-                public void run() {
-                    onSelect(item);
-                }
-            });
-        }
-
-        Panel mainPanel = new Panel();
-        mainPanel.setLayoutManager(
-                new GridLayout(1)
-                        .setLeftMarginSize(1)
-                        .setRightMarginSize(1));
-        if(description != null) {
-            mainPanel.addComponent(new Label(description));
-            mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
-        }
-        listBox.setLayoutData(
-                GridLayout.createLayoutData(
-                        GridLayout.Alignment.FILL,
-                        GridLayout.Alignment.CENTER,
-                        true,
-                        false))
-                .addTo(mainPanel);
-        mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
-
-        if(canCancel) {
-            Panel buttonPanel = new Panel();
-            buttonPanel.setLayoutManager(new GridLayout(2).setHorizontalSpacing(1));
-            buttonPanel.addComponent(new Button(LocalizedString.Cancel.toString(), new Runnable() {
-                @Override
-                public void run() {
-                    onCancel();
-                }
-            }).setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.CENTER, GridLayout.Alignment.CENTER, true, false)));
-            buttonPanel.setLayoutData(
-                    GridLayout.createLayoutData(
-                            GridLayout.Alignment.END,
-                            GridLayout.Alignment.CENTER,
-                            false,
-                            false))
-                    .addTo(mainPanel);
-        }
-        setComponent(mainPanel);
-    }
-
-    private void onSelect(T item) {
-        result = item;
-        close();
-    }
-
-    private void onCancel() {
-        close();
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * @param textGUI Text GUI to add the dialog to
-     * @return The item in the list that was selected or {@code null} if the dialog was cancelled
-     */
-    @Override
-    public T showDialog(WindowBasedTextGUI textGUI) {
-        result = null;
-        super.showDialog(textGUI);
-        return result;
-    }
-
-    /**
-     * Shortcut for quickly creating a new dialog
-     * @param textGUI Text GUI to add the dialog to
-     * @param title Title of the dialog
-     * @param description Description of the dialog
-     * @param items Items in the dialog
-     * @param <T> Type of items in the dialog
-     * @return The selected item or {@code null} if cancelled
-     */
-    public static <T> T showDialog(WindowBasedTextGUI textGUI, String title, String description, T... items) {
-        return showDialog(textGUI, title, description, null, items);
-    }
-
-    /**
-     * Shortcut for quickly creating a new dialog
-     * @param textGUI Text GUI to add the dialog to
-     * @param title Title of the dialog
-     * @param description Description of the dialog
-     * @param listBoxHeight Maximum height of the list box, scrollbars will be used if there are more items
-     * @param items Items in the dialog
-     * @param <T> Type of items in the dialog
-     * @return The selected item or {@code null} if cancelled
-     */
-    public static <T> T showDialog(WindowBasedTextGUI textGUI, String title, String description, int listBoxHeight, T... items) {
-        int width = 0;
-        for(T item: items) {
-            width = Math.max(width, TerminalTextUtils.getColumnWidth(item.toString()));
-        }
-        width += 2;
-        return showDialog(textGUI, title, description, new TerminalSize(width, listBoxHeight), items);
-    }
-
-    /**
-     * Shortcut for quickly creating a new dialog
-     * @param textGUI Text GUI to add the dialog to
-     * @param title Title of the dialog
-     * @param description Description of the dialog
-     * @param listBoxSize Maximum size of the list box, scrollbars will be used if the items cannot fit
-     * @param items Items in the dialog
-     * @param <T> Type of items in the dialog
-     * @return The selected item or {@code null} if cancelled
-     */
-    public static <T> T showDialog(WindowBasedTextGUI textGUI, String title, String description, TerminalSize listBoxSize, T... items) {
-        ListSelectDialog<T> listSelectDialog = new ListSelectDialogBuilder<T>()
-                .setTitle(title)
-                .setDescription(description)
-                .setListBoxSize(listBoxSize)
-                .addListItems(items)
-                .build();
-        return listSelectDialog.showDialog(textGUI);
-    }
-}