--- /dev/null
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.addressbook.menu;
+
+import java.util.Iterator;
+import java.util.Map;
+import org.apache.logging.log4j.Logger;
+import org.mxchange.addressbook.BaseAddressbookSystem;
+import org.mxchange.addressbook.menu.item.SelectableMenuItem;
+
+/**
+ *
+ * @author Roland Haeder
+ */
+public class MenuTools extends BaseAddressbookSystem {
+
+ /**
+ * Gets an array with all available access keys back from given menu map.
+ * This can later be handle to the client's enterChar() method.
+ *
+ * @param menus A Map with all menus and their entries
+ * @param menuType Menu type
+ * @return An array with available access chars
+ */
+ public static char[] getAccessKeysFromMenuMap (final Map<String, Menu> menus, final String menuType) {
+ // Get logger
+ Logger logger = new MenuTools().getLogger();
+
+ // First search for the proper menu class
+ Menu menu = menus.get(menuType);
+
+ // Is it there?
+ if (!(menu instanceof Menu)) {
+ // Not found
+ // @todo Rewrite to exception
+ logger.error("Menu '" + menuType + "' not found.");
+ System.exit(1);
+ }
+
+ // Get iterator
+ Iterator<SelectableMenuItem> iterator = menu.getMenuItemsIterator();
+
+ // Init return array and counter 'i'
+ char[] accessKeys = new char[menu.getMenuItemsCount()];
+ int i = 0;
+
+ // Now "walk" through all menu entries
+ while (iterator.hasNext()) {
+ // Get item
+ SelectableMenuItem item = iterator.next();
+ //* NOISY-DEBUG: */ logger.debug("item=" + item);
+
+ // Get access key from item and add it to the array
+ accessKeys[i] = item.getAccessKey();
+ //* NOISY-DEBUG: */ logger.debug("accessKeys[" + i + "]=" + accessKeys[i]);
+
+ // Increment counter
+ i++;
+ }
+
+ // Return finished array
+ return accessKeys;
+ }
+}