]> git.mxchange.org Git - jbonuscard-lib.git/commitdiff
Introduced a lot Swing stuff + moved some attributes
authorRoland Haeder <roland@mxchange.org>
Tue, 21 Jul 2015 11:22:44 +0000 (13:22 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 21 Jul 2015 11:22:44 +0000 (13:22 +0200)
Signed-off-by:Roland Häder <roland@mxchange.org>

Addressbook/src/org/mxchange/addressbook/application/AddressbookApplication.java
Addressbook/src/org/mxchange/addressbook/client/BaseClient.java
Addressbook/src/org/mxchange/addressbook/client/console/ConsoleClient.java
Addressbook/src/org/mxchange/addressbook/client/gui/SwingClient.java [new file with mode: 0644]
Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java
Addressbook/src/org/mxchange/addressbook/manager/contact/ManageableContact.java
Addressbook/src/org/mxchange/addressbook/menu/BaseMenu.java [new file with mode: 0644]
Addressbook/src/org/mxchange/addressbook/menu/console/BaseMenu.java [deleted file]
Addressbook/src/org/mxchange/addressbook/menu/console/ConsoleMenu.java

index 2d3237a6bb74e056ac3cd3f232e89c5b18b2aac9..fcda1bca021f4c138bdefe0856442683fe4b0818 100644 (file)
  */\r
 package org.mxchange.addressbook.application;\r
 \r
+import java.text.MessageFormat;\r
 import org.mxchange.addressbook.BaseFrameworkSystem;\r
 import org.mxchange.addressbook.UnhandledUserChoiceException;\r
 import org.mxchange.addressbook.client.Client;\r
 import org.mxchange.addressbook.client.console.ConsoleClient;\r
+import org.mxchange.addressbook.client.gui.SwingClient;\r
 import org.mxchange.addressbook.manager.application.ApplicationManager;\r
 \r
 /**\r
@@ -117,7 +119,7 @@ public class AddressbookApplication extends BaseFrameworkSystem implements Appli
     /**\r
      * Application title\r
      */\r
-    public static final String APP_TITLE = "Addressbuch";\r
+    public static final String APP_TITLE = "Adressbuch";\r
 \r
     /**\r
      * Application version\r
@@ -125,14 +127,14 @@ public class AddressbookApplication extends BaseFrameworkSystem implements Appli
     public static final String APP_VERSION = "0.0";\r
 \r
     /**\r
-     * Main method (entry point)\r
-     *\r
-     * @param args the command line arguments\r
+     * Console client is enabled by default\r
      */\r
-    public static void main (String[] args) {\r
-       // Start application\r
-       new AddressbookApplication().start();\r
-    }\r
+    private boolean consoleClient = true;\r
+\r
+    /**\r
+     * GUI client is disabled by default\r
+     */\r
+    private boolean guiClient = false;\r
 \r
     /**\r
      * Bootstraps application\r
@@ -140,11 +142,30 @@ public class AddressbookApplication extends BaseFrameworkSystem implements Appli
     @Override\r
     public void doBootstrap () {\r
        this.getLogger().debug("Initializing application ...");\r
-       \r
-       // Init client instance\r
-       Client client = new ConsoleClient(this);\r
 \r
-               // Init client instance\r
+       // Init client variable\r
+       Client client = null;\r
+\r
+       // Is console or Swing choosen?\r
+       if (this.isConsole()) {\r
+           // Debug message\r
+           this.getLogger().debug("Initializing console client ...");\r
+\r
+           // Init console client instance\r
+           client = new ConsoleClient(this);\r
+       } else if (this.isGui()) {\r
+           // Debug message\r
+           this.getLogger().debug("Initializing GUI (Swing) client ...");\r
+\r
+           // Init console instance\r
+           client = new SwingClient(this);\r
+       } else {\r
+           // Not client choosen\r
+           this.getLogger().error("No client choosen. Cannot launch.");\r
+           System.exit(1);\r
+       }\r
+       \r
+       // Set client instance\r
        this.setClient(client);\r
        \r
        // The application is running at this point\r
@@ -182,6 +203,67 @@ public class AddressbookApplication extends BaseFrameworkSystem implements Appli
        this.getLogger().debug("Main loop exit - shutting down ...");\r
     }\r
 \r
+    /**\r
+     * Enables console client by setting propper flag\r
+     */\r
+    private void enableConsoleClient () {\r
+       this.getLogger().debug("Enabling console client (may become optional client) ...");\r
+       this.consoleClient = true;\r
+       this.guiClient = false;\r
+    }\r
+\r
+    /**\r
+     * Enables GUI client by setting propper flag\r
+     */\r
+    private void enableGuiClient () {\r
+       this.getLogger().debug("Enabling GUI client (may become new default client) ...");\r
+       this.consoleClient = false;\r
+       this.guiClient = true;\r
+    }\r
+\r
+    /**\r
+     * Checks whether the client shoule be console client should be launched by\r
+     * checking if -console is set.\r
+     * \r
+     * @return Whether console client should be taken\r
+     */\r
+    private boolean isConsole () {\r
+       return this.consoleClient;\r
+    }\r
+\r
+    /**\r
+     * Checks whether the client shoule be GUI client should be launched by\r
+     * checking if -gui is set.\r
+     * \r
+     * @return Whether GUI client should be taken\r
+     */\r
+    private boolean isGui () {\r
+       return this.guiClient;\r
+    }\r
+\r
+    /**\r
+     * Parses all given arguments\r
+     *\r
+     * @param args Arguments from program launch\r
+     */\r
+    private void parseArguments (final String[] args) {\r
+       // Debug message\r
+       this.getLogger().debug(MessageFormat.format("Parsing {0} arguments ...", args.length));\r
+       \r
+       for (final String arg : args) {\r
+           // Switch on it\r
+           switch (arg) {\r
+               case "-console":\r
+                   enableConsoleClient();\r
+                   break;\r
+                   \r
+               case "-gui":\r
+                   enableGuiClient();\r
+                   break;\r
+}\r
+       }\r
+    }\r
+\r
     /**\r
      * Show introduction which depends on client\r
      */\r
@@ -192,14 +274,28 @@ public class AddressbookApplication extends BaseFrameworkSystem implements Appli
 \r
     /**\r
      * Launches the application\r
+     * \r
+     * @param args Arguments handled to program\r
      */\r
-    private void start () {\r
+    private void start (final String args[]) {\r
        this.getLogger().info("Program is started.");\r
 \r
+       // Parse arguments\r
+       this.parseArguments(args);\r
+\r
        // Launch application\r
        ApplicationManager.getManager(this).start();\r
 \r
        this.getLogger().info("End of program (last line)");\r
     }\r
 \r
+    /**\r
+     * Main method (entry point)\r
+     *\r
+     * @param args the command line arguments\r
+     */\r
+    public static void main (String[] args) {\r
+       // Start application\r
+       new AddressbookApplication().start(args);\r
+    }\r
 }\r
index 706229c3036de3a5c9089f01a547a4f7a2d936ef..399ddb4ac1bc57272941224a59bce3ae7f7dfba7 100644 (file)
@@ -16,6 +16,8 @@
  */\r
 package org.mxchange.addressbook.client;\r
 \r
+import java.util.HashMap;\r
+import java.util.Map;\r
 import org.mxchange.addressbook.BaseFrameworkSystem;\r
 import org.mxchange.addressbook.menu.Menu;\r
 \r
@@ -36,11 +38,19 @@ public abstract class BaseClient extends BaseFrameworkSystem {
      */\r
     private boolean isRunning;\r
 \r
+    /**\r
+     * Menu system\r
+     */\r
+    private final Map<String, Menu> menus;\r
+\r
     /**\r
      * No instances can be created of this class\r
      */\r
     protected BaseClient () {\r
        super();\r
+\r
+       // Init menu map\r
+       this.menus = new HashMap<>(10);\r
     }\r
 \r
     /**\r
@@ -75,12 +85,24 @@ public abstract class BaseClient extends BaseFrameworkSystem {
     }\r
 \r
     /**\r
-     * Some kind of "getter" for a Menu instance from given menu type\r
+     * "Getter" for given menu type\r
      *\r
-     * @param menuType Menu type, e.g. "main" for main menu\r
-     * @return\r
+     * @param menuType Menu type instance to return\r
+     * @return Menu or null if not found\r
      */\r
-    public abstract Menu getMenu (final String menuType);\r
+    public Menu getMenu (final String menuType) {\r
+       // Default is not found\r
+       Menu menu = null;\r
+       \r
+       // Check array\r
+       if (this.getMenus().containsKey(menuType)) {\r
+           // Found!\r
+           menu = this.getMenus().get(menuType);\r
+       }\r
+       \r
+       // Return it\r
+       return menu;\r
+    }\r
 \r
     /**\r
      * Determines whether the application is still active by checking some\r
@@ -93,6 +115,19 @@ public abstract class BaseClient extends BaseFrameworkSystem {
        return this.isRunning;\r
     }\r
 \r
+    /**\r
+     * Fills menu map with swing menus\r
+     */\r
+    protected abstract void fillMenuMap ();\r
+\r
+    /**\r
+     * Getter for menus map\r
+     * @return Map of all menus\r
+     */\r
+    protected final Map<String, Menu> getMenus () {\r
+       return this.menus;\r
+    }\r
+\r
     /**\r
      * Shows given menu\r
      *\r
index 160eab33eb8a5bb31fb4990a3779d04a4ff98778..5249c5f9fecd2a958f884821f6a1323b0ef9b048 100644 (file)
@@ -18,8 +18,6 @@ package org.mxchange.addressbook.client.console;
 \r
 import java.text.MessageFormat;\r
 import java.util.Arrays;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
 import java.util.Scanner;\r
 import org.mxchange.addressbook.UnhandledUserChoiceException;\r
 import org.mxchange.addressbook.application.AddressbookApplication;\r
@@ -39,11 +37,6 @@ import org.mxchange.addressbook.menu.item.console.ConsoleMenuItem;
  * @author Roland Haeder\r
  */\r
 public class ConsoleClient extends BaseClient implements Client {\r
-    /**\r
-     * Menu system\r
-     */\r
-    private final Map<String, Menu> menus;\r
-\r
     /**\r
      * Scanner instance for reading data from console input\r
      */\r
@@ -65,11 +58,8 @@ public class ConsoleClient extends BaseClient implements Client {
        // Init scanner instance\r
        this.scanner = new Scanner(System.in);\r
 \r
-       // Init menu map\r
-       this.menus = new HashMap<>(10);\r
-\r
        // Fill menu map\r
-       this.fillConsoleMenuMap();\r
+       this.fillMenuMap();\r
     }\r
 \r
     /**\r
@@ -123,7 +113,7 @@ public class ConsoleClient extends BaseClient implements Client {
     @Override\r
     public void doUserMenuChoice () throws UnhandledUserChoiceException {\r
        // Get all access keys from menu\r
-       char[] accessKeys = MenuTools.getAccessKeysFromMenuMap(this.menus, this.getCurrentMenu());\r
+       char[] accessKeys = MenuTools.getAccessKeysFromMenuMap(this.getMenus(), this.getCurrentMenu());\r
 \r
        // Output textural message and ask for a char as input\r
        char choice = this.enterChar(accessKeys, "Bitte Auswahl eingeben (0=Programm beenden): ");\r
@@ -142,11 +132,19 @@ public class ConsoleClient extends BaseClient implements Client {
                this.getContactManager().addOtherAddress();\r
                break;\r
        \r
-           case '4': // Change other addess\r
+           case '4': // List contacts\r
+               this.getContactManager().listContacts();\r
+               break;\r
+       \r
+           case '5': // Search addresses\r
+               this.getContactManager().searchContacts();\r
+               break;\r
+\r
+           case '6': // Change other addess\r
                this.getContactManager().changeOtherAddress();\r
                break;\r
        \r
-           case '5': // Delete other address\r
+           case '7': // Delete other address\r
                this.getContactManager().deleteOtherAddress();\r
                break;\r
 \r
@@ -276,6 +274,11 @@ public class ConsoleClient extends BaseClient implements Client {
        this.showMenu(this.getCurrentMenu());\r
     }\r
 \r
+    /**\r
+     * Shows given menu entry to user\r
+     * \r
+     * @param item Menu entry\r
+     */\r
     @Override\r
     public void showEntry (final SelectableMenuItem item) {\r
        // Access key then text\r
@@ -293,7 +296,7 @@ public class ConsoleClient extends BaseClient implements Client {
        \r
        // Debug message\r
        this.getLogger().debug("Intro shown to user");\r
-     }\r
+    }\r
 \r
     @Override\r
     public void userChooseChangeContactData (final Contact contact) throws UnhandledUserChoiceException {\r
@@ -379,32 +382,12 @@ public class ConsoleClient extends BaseClient implements Client {
     /**\r
      * Fills menu map with menu entries\r
      */\r
-    protected void fillConsoleMenuMap () {\r
+    @Override\r
+    protected final void fillMenuMap () {\r
        // Initialize first (main) menu\r
        Menu menu = new ConsoleMenu("main", this);\r
        \r
        // Add it\r
-       this.menus.put("main", menu);\r
-    }\r
-\r
-    /**\r
-     * "Getter" for given menu type\r
-     *\r
-     * @param menuType Menu type instance to return\r
-     * @return Menu or null if not found\r
-     */\r
-    @Override\r
-    public Menu getMenu (final String menuType) {\r
-       // Default is not found\r
-       Menu menu = null;\r
-       \r
-       // Check array\r
-       if (this.menus.containsKey(menuType)) {\r
-           // Found!\r
-           menu = this.menus.get(menuType);\r
-       }\r
-       \r
-       // Return it\r
-       return menu;\r
+       this.getMenus().put("main", menu);\r
     }\r
 }\r
diff --git a/Addressbook/src/org/mxchange/addressbook/client/gui/SwingClient.java b/Addressbook/src/org/mxchange/addressbook/client/gui/SwingClient.java
new file mode 100644 (file)
index 0000000..83417e1
--- /dev/null
@@ -0,0 +1,136 @@
+/*\r
+ * Copyright (C) 2015 Roland Haeder\r
+ *\r
+ * This program is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation, either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
+ */\r
+package org.mxchange.addressbook.client.gui;\r
+\r
+import org.mxchange.addressbook.UnhandledUserChoiceException;\r
+import org.mxchange.addressbook.application.AddressbookApplication;\r
+import org.mxchange.addressbook.client.BaseClient;\r
+import org.mxchange.addressbook.client.Client;\r
+import org.mxchange.addressbook.contact.Contact;\r
+import org.mxchange.addressbook.menu.Menu;\r
+import org.mxchange.addressbook.menu.item.SelectableMenuItem;\r
+\r
+/**\r
+ *\r
+ * @author Roland Haeder\r
+ */\r
+public class SwingClient extends BaseClient implements Client {\r
+    /**\r
+     * Constructor with application instance\r
+     * @param application \r
+     */\r
+    public SwingClient (final AddressbookApplication application) {\r
+       super();\r
+\r
+       // Set application instance\r
+       this.setApplication(application);\r
+\r
+       // Init contact manager here\r
+       this.initContactManager(this);\r
+\r
+       // Fill menu map\r
+       this.fillMenuMap();\r
+    }\r
+\r
+    @Override\r
+    public void displayAddressBox (final Contact contact) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void displayNameBox (final Contact contact) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void displayOtherDataBox (final Contact contact) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void doUserMenuChoice () throws UnhandledUserChoiceException {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public char enterChar (final char[] validChars, String message) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public int enterInt (final int minimum, final int maximum, final String message) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public String enterString (final int minLength, final int maxLength, final String message, final boolean allowEmpty) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public Menu getMenu (final String menuType) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    /**\r
+     * Returns a Swing menu item\r
+     * \r
+     * @param accessKey Key to access the menu\r
+     * @param text Text to show to user\r
+     * @return A SelectableMenuItem\r
+     * @todo Make sure the access key is unique\r
+     */\r
+    @Override\r
+    public SelectableMenuItem getMenuItem (final char accessKey, final String text) {\r
+       // Returns null as the menu is now no longer controlled here.\r
+       return null;\r
+    }\r
+\r
+    @Override\r
+    public void outputMessage (final String message) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void showCurrentMenu () {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void showEntry (final SelectableMenuItem item) {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void showWelcome () {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    @Override\r
+    public void userChooseChangeContactData (final Contact contact) throws UnhandledUserChoiceException {\r
+       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.\r
+    }\r
+\r
+    /**\r
+     * Fills menu map with swing menus\r
+     */\r
+    @Override\r
+    protected final void fillMenuMap () {\r
+       // Nothing to fill here as the Swing frame is handling this all\r
+    }\r
+    \r
+}\r
index 419436dc4c5138fb812798ffd383d0f79060e084..049901197963149f28112ebcb53c9e920a1ff983 100644 (file)
@@ -289,6 +289,11 @@ public class ContactManager extends BaseManager implements ManageableContact {
        return Collections.unmodifiableList(this.contacts);\r
     }\r
 \r
+    @Override\r
+    public void listContacts () {\r
+       throw new UnsupportedOperationException("Not supported yet.");\r
+    }\r
+\r
     /**\r
      * Adds given contact to address book and flushes all entries to database\r
      *\r
@@ -316,6 +321,11 @@ public class ContactManager extends BaseManager implements ManageableContact {
        this.flush();\r
     }\r
 \r
+    @Override\r
+    public void searchContacts () {\r
+       throw new UnsupportedOperationException("Not supported yet.");\r
+    }\r
+\r
     /**\r
      * Getter for size\r
      *\r
index 94d4d55a5804d5af98010d62e397bbbf41f1e960..a9285059beef55085f8c59ef18f2500515252d07 100644 (file)
@@ -26,6 +26,12 @@ import org.mxchange.addressbook.manager.Manageable;
  * @author Roland Haeder\r
  */\r
 public interface ManageableContact extends Manageable {\r
+\r
+    /**\r
+     * List all contacts\r
+     */\r
+    public void listContacts ();\r
+\r
     /**\r
      * Adds given contact to address book\r
      *\r
@@ -98,6 +104,11 @@ public interface ManageableContact extends Manageable {
      */\r
     public List<Contact> getList ();\r
 \r
+    /**\r
+     * Searches address book for a contact\r
+     */\r
+    public void searchContacts ();\r
+\r
     /**\r
      * Getter for size\r
      *\r
diff --git a/Addressbook/src/org/mxchange/addressbook/menu/BaseMenu.java b/Addressbook/src/org/mxchange/addressbook/menu/BaseMenu.java
new file mode 100644 (file)
index 0000000..d81c071
--- /dev/null
@@ -0,0 +1,100 @@
+/*\r
+ * Copyright (C) 2015 Roland Haeder\r
+ *\r
+ * This program is free software: you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation, either version 3 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License\r
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
+ */\r
+package org.mxchange.addressbook.menu;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import org.mxchange.addressbook.BaseFrameworkSystem;\r
+import org.mxchange.addressbook.client.Client;\r
+import org.mxchange.addressbook.menu.item.SelectableMenuItem;\r
+\r
+/**\r
+ *\r
+ * @author Roland Haeder\r
+ */\r
+public class BaseMenu extends BaseFrameworkSystem {\r
+    /**\r
+     * Menu list\r
+     */\r
+    private List<SelectableMenuItem> menuList;\r
+\r
+    /**\r
+     * No instance from this object\r
+     */\r
+    protected BaseMenu () {\r
+       super();\r
+    }\r
+\r
+    /**\r
+     * Size of menu items\r
+     * @return Count of menu items\r
+     */\r
+    public int getMenuItemsCount () {\r
+       return this.menuList.size();\r
+    }\r
+\r
+    /**\r
+     * "Getter" for an iterator of this menu's items\r
+     *\r
+     * @return An iterator of all menu items\r
+     */\r
+    public Iterator<SelectableMenuItem> getMenuItemsIterator () {\r
+       return this.menuList.iterator();\r
+    }\r
+\r
+    /**\r
+     * Shows this menu\r
+     * \r
+     * @param client Client instance to call back\r
+     */\r
+    public void show (final Client client) {\r
+       // Get values\r
+       Iterator<SelectableMenuItem> iterator = this.menuList.iterator();\r
+\r
+       // Debug message\r
+       this.getLogger().debug("Showing menu with '" + this.menuList.size() + "' entries.");\r
+\r
+       // Output all menus\r
+       while (iterator.hasNext()) {\r
+           // Get item\r
+           SelectableMenuItem item = iterator.next();\r
+\r
+           // Show this item\r
+           item.show(client);\r
+       }\r
+    }\r
+\r
+    /**\r
+     * Getter for menu list\r
+     *\r
+     * @return menuList List of menu entries\r
+     */\r
+    protected final List<SelectableMenuItem> getMenuList () {\r
+       return this.menuList;\r
+    }\r
+\r
+    /**\r
+     * Initializes menu\r
+     * @param menuType Menu type to initialize\r
+     * @param client CLient to call back\r
+     */\r
+    protected void initMenu (final String menuType, final Client client) {\r
+       // Init menu list\r
+       this.menuList = new ArrayList<>(5);\r
+    }\r
+}\r
diff --git a/Addressbook/src/org/mxchange/addressbook/menu/console/BaseMenu.java b/Addressbook/src/org/mxchange/addressbook/menu/console/BaseMenu.java
deleted file mode 100644 (file)
index afa83c3..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*\r
- * Copyright (C) 2015 Roland Haeder\r
- *\r
- * This program is free software: you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation, either version 3 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
- */\r
-package org.mxchange.addressbook.menu.console;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import org.mxchange.addressbook.BaseFrameworkSystem;\r
-import org.mxchange.addressbook.client.Client;\r
-import org.mxchange.addressbook.menu.AddressbookMenu;\r
-import org.mxchange.addressbook.menu.item.SelectableMenuItem;\r
-\r
-/**\r
- *\r
- * @author Roland Haeder\r
- */\r
-public class BaseMenu extends BaseFrameworkSystem {\r
-    /**\r
-     * Menu list\r
-     */\r
-    private List<SelectableMenuItem> menuList;\r
-\r
-    /**\r
-     * No instance from this object\r
-     */\r
-    protected BaseMenu () {\r
-       super();\r
-    }\r
-\r
-    /**\r
-     * Size of menu items\r
-     * @return Count of menu items\r
-     */\r
-    public int getMenuItemsCount () {\r
-       return this.menuList.size();\r
-    }\r
-\r
-    /**\r
-     * "Getter" for an iterator of this menu's items\r
-     *\r
-     * @return An iterator of all menu items\r
-     */\r
-    public Iterator<SelectableMenuItem> getMenuItemsIterator () {\r
-       return this.menuList.iterator();\r
-    }\r
-\r
-    /**\r
-     * Shows this menu\r
-     * \r
-     * @param client Client instance to call back\r
-     */\r
-    public void show (final Client client) {\r
-       // Get values\r
-       Iterator<SelectableMenuItem> iterator = this.menuList.iterator();\r
-\r
-       // Debug message\r
-       this.getLogger().debug("Showing menu with '" + this.menuList.size() + "' entries.");\r
-\r
-       // Output all menus\r
-       while (iterator.hasNext()) {\r
-           // Get item\r
-           SelectableMenuItem item = iterator.next();\r
-\r
-           // Show this item\r
-           item.show(client);\r
-       }\r
-    }\r
-\r
-    /**\r
-     * Initializes menu\r
-     * @param menuType Menu type to initialize\r
-     * @param client CLient to call back\r
-     */\r
-    protected void initMenu (final String menuType, final Client client) {\r
-       // Init menu list\r
-       this.menuList = new ArrayList<>(5);\r
-       \r
-       // Add all items\r
-       AddressbookMenu.addItemsToList(this.menuList, menuType, client);\r
-    }\r
-}\r
index 82d9f6b5b597a95986dd934c614c6e0524bb5827..cefa2c54d845a8ad05d55ee6eb6f86cf8a171785 100644 (file)
@@ -17,6 +17,8 @@
 package org.mxchange.addressbook.menu.console;\r
 \r
 import org.mxchange.addressbook.client.Client;\r
+import org.mxchange.addressbook.menu.AddressbookMenu;\r
+import org.mxchange.addressbook.menu.BaseMenu;\r
 import org.mxchange.addressbook.menu.Menu;\r
 \r
 /**\r
@@ -31,5 +33,8 @@ public class ConsoleMenu extends BaseMenu implements Menu {
      */\r
     public ConsoleMenu (final String menuType, final Client client) {\r
        this.initMenu(menuType, client);\r
+       \r
+       // Add all items\r
+       AddressbookMenu.addItemsToList(this.getMenuList(), menuType, client);\r
     }\r
 }\r