*/
package org.mxchange.addressbook.menu;
+import java.text.MessageFormat;
import java.util.List;
import org.apache.logging.log4j.Logger;
-import org.mxchange.addressbook.BaseFrameworkSystem;
-import org.mxchange.addressbook.client.Client;
+import org.mxchange.addressbook.BaseAddressbookSystem;
+import org.mxchange.addressbook.client.AddressbookClient;
import org.mxchange.addressbook.menu.item.SelectableMenuItem;
+import org.mxchange.jcore.client.Client;
/**
* Utility class for menu structure
*
* @author Roland Haeder
*/
-public class AddressbookMenu extends BaseFrameworkSystem {
+public class AddressbookMenu extends BaseAddressbookSystem {
/**
* Copies entries for given type into the menu list
// Get logger
Logger log = new AddressbookMenu().getLogger();
+ // Trace call
+ log.trace(MessageFormat.format("menuList={0},menuType={1},client={2} - CALLED!", menuList, menuType, client)); //NOI18N
+
+ // Some instances must be set
+ if (menuList == null) {
+ // Abort here
+ throw new NullPointerException("menuList is null"); //NOI18N
+ } else if (client == null) {
+ // Abort here
+ throw new NullPointerException("contact is null"); //NOI18N
+ } else if (!(client instanceof AddressbookClient)) {
+ // Not correct instance
+ throw new IllegalArgumentException(MessageFormat.format("client{0} must implement AddressbookClient", client));
+ }
+
+ // Cast client to proper interface
+ AddressbookClient c = (AddressbookClient) client;
+
// Get list size
int size = menuList.size();
// Debug message
- log.debug("Adding menu for '" + menuType + "' (old size: '" + size + "') ...");
+ log.debug(MessageFormat.format("Adding menu for '{0}' (old size: '{1}') ...", menuType, size)); //NOI18N
// Depends on type
switch (menuType) {
- case "main": // Main menu
+ case "main": // Main menu //NOI18N
// Enter own data
- menuList.add(client.getMenuItem('1', "Eigene Adresse anlegen"));
+ menuList.add(c.getMenuItem('1', "Eigene Adresse anlegen"));
// Change own data
- menuList.add(client.getMenuItem('2', "Eigene Adresse ändern"));
+ menuList.add(c.getMenuItem('2', "Eigene Adresse ändern"));
// Add new addess
- menuList.add(client.getMenuItem('3', "Neue Adresse hinzufügen"));
+ menuList.add(c.getMenuItem('3', "Neue Adresse hinzufügen"));
// List entries
- menuList.add(client.getMenuItem('4', "Adressbuch anzeigen"));
+ menuList.add(c.getMenuItem('4', "Adressbuch anzeigen"));
// Address search
- menuList.add(client.getMenuItem('5', "Adresse suchen"));
+ menuList.add(c.getMenuItem('5', "Adresse suchen"));
// Change other address
- menuList.add(client.getMenuItem('6', "Adresse ändern"));
+ menuList.add(c.getMenuItem('6', "Adresse ändern"));
// Delete other address
- menuList.add(client.getMenuItem('7', "Adresse löschen"));
+ menuList.add(c.getMenuItem('7', "Adresse löschen"));
// Always last line: Exit program
- menuList.add(client.getMenuItem('0', "Programm verlassen"));
+ menuList.add(c.getMenuItem('0', "Programm verlassen"));
break;
default: // Not supported
- log.error("Menu type '" + menuType + "' ont supported");
+ log.error(MessageFormat.format("Menu type '{0}' ont supported", menuType)); //NOI18N
System.exit(1);
}