]> git.mxchange.org Git - jaddressbook-lib.git/blob - src/org/mxchange/addressbook/menu/AddressbookMenu.java
Fixed call + introduced getColumnCount()
[jaddressbook-lib.git] / src / org / mxchange / addressbook / menu / AddressbookMenu.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;\r
18 \r
19 import java.util.List;\r
20 import org.apache.logging.log4j.Logger;\r
21 import org.mxchange.addressbook.BaseFrameworkSystem;\r
22 import org.mxchange.addressbook.client.Client;\r
23 import org.mxchange.addressbook.menu.item.SelectableMenuItem;\r
24 \r
25 /**\r
26  * Utility class for menu structure\r
27  * \r
28  * @author Roland Haeder\r
29  */\r
30 public class AddressbookMenu extends BaseFrameworkSystem {\r
31     /**\r
32      * Copies entries for given type into the menu list\r
33      *\r
34      * @param menuList Menu list for later showing\r
35      * @param menuType Type of menu\r
36      * @param client Client instance to call back\r
37      */\r
38     public static void addItemsToList (final List<SelectableMenuItem> menuList, final String menuType, final Client client) {\r
39         // Get logger\r
40         Logger log = new AddressbookMenu().getLogger();\r
41 \r
42         // Get list size\r
43         int size = menuList.size();\r
44 \r
45         // Debug message\r
46         log.debug("Adding menu for '" + menuType + "' (old size: '" + size + "') ...");\r
47 \r
48         // Depends on type\r
49         switch (menuType) {\r
50             case "main": // Main menu\r
51                 // Enter own data\r
52                 menuList.add(client.getMenuItem('1', "Eigene Adresse anlegen"));\r
53 \r
54                 // Change own data\r
55                 menuList.add(client.getMenuItem('2', "Eigene Adresse ändern"));\r
56 \r
57                 // Add new addess\r
58                 menuList.add(client.getMenuItem('3', "Neue Adresse hinzufügen"));\r
59 \r
60                 // List entries\r
61                 menuList.add(client.getMenuItem('4', "Adressbuch anzeigen"));\r
62 \r
63                 // Address search\r
64                 menuList.add(client.getMenuItem('5', "Adresse suchen"));\r
65 \r
66                 // Change other address\r
67                 menuList.add(client.getMenuItem('6', "Adresse ändern"));\r
68 \r
69                 // Delete other address\r
70                 menuList.add(client.getMenuItem('7', "Adresse löschen"));\r
71 \r
72                 // Always last line: Exit program\r
73                 menuList.add(client.getMenuItem('0', "Programm verlassen"));\r
74                 break;\r
75 \r
76             default: // Not supported\r
77                 log.error("Menu type '" + menuType + "' ont supported");\r
78                 System.exit(1);\r
79         }\r
80 \r
81         // Size must have changed to more entries than before\r
82         assert(menuList.size() > size);\r
83     }\r
84 \r
85 }\r