*/\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
*/\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
}\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
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