]> git.mxchange.org Git - addressbook-swing.git/blob - Addressbook/src/org/mxchange/addressbook/menu/console/BaseMenu.java
Initial commit
[addressbook-swing.git] / Addressbook / src / org / mxchange / addressbook / menu / console / BaseMenu.java
1 /*\r
2  * Copyright (C) 2015 Roland Haeder\r
3  *\r
4  * This program is free software: you can redistribute it and/or modify\r
5  * it under the terms of the GNU General Public License as published by\r
6  * the Free Software Foundation, either version 3 of the License, or\r
7  * (at your option) any later version.\r
8  *\r
9  * This program is distributed in the hope that it will be useful,\r
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
12  * GNU General Public License for more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License\r
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
16  */\r
17 package org.mxchange.addressbook.menu.console;\r
18 \r
19 import java.util.ArrayList;\r
20 import java.util.Iterator;\r
21 import java.util.List;\r
22 import org.mxchange.addressbook.BaseFrameworkSystem;\r
23 import org.mxchange.addressbook.client.Client;\r
24 import org.mxchange.addressbook.menu.AddressbookMenu;\r
25 import org.mxchange.addressbook.menu.item.SelectableMenuItem;\r
26 \r
27 /**\r
28  *\r
29  * @author Roland Haeder\r
30  */\r
31 public class BaseMenu extends BaseFrameworkSystem {\r
32     /**\r
33      * Menu list\r
34      */\r
35     private List<SelectableMenuItem> menuList;\r
36 \r
37     /**\r
38      * No instance from this object\r
39      */\r
40     protected BaseMenu () {\r
41         super();\r
42     }\r
43 \r
44     /**\r
45      * "Getter" for an iterator of this menu's items\r
46      *\r
47      * @return An iterator of all menu items\r
48      */\r
49     public Iterator<SelectableMenuItem> getMenuItemsIterator () {\r
50         return this.menuList.iterator();\r
51     }\r
52 \r
53     /**\r
54      * Size of menu items\r
55      * @return Count of menu items\r
56      */\r
57     public int getMenuItemsCount () {\r
58         return this.menuList.size();\r
59     }\r
60 \r
61     /**\r
62      * Shows this menu\r
63      * \r
64      * @param client Client instance to call back\r
65      */\r
66     public void show (final Client client) {\r
67         // Get values\r
68         Iterator<SelectableMenuItem> iterator = this.menuList.iterator();\r
69 \r
70         // Debug message\r
71         this.getLogger().debug("Showing menu with '" + this.menuList.size() + "' entries.");\r
72 \r
73         // Output all menus\r
74         while (iterator.hasNext()) {\r
75             // Get item\r
76             SelectableMenuItem item = iterator.next();\r
77 \r
78             // Show this item\r
79             item.show(client);\r
80         }\r
81     }\r
82 \r
83     /**\r
84      * Initializes menu\r
85      * @param menuType  Menu type to initialize\r
86      * @param client CLient to call back\r
87      */\r
88     protected void initMenu (final String menuType, final Client client) {\r
89         // Init menu list\r
90         this.menuList = new ArrayList<>(5);\r
91         \r
92         // Add all items\r
93         AddressbookMenu.addItemsToList(this.menuList, menuType, client);\r
94     }\r
95 }\r