X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Forg%2Fmxchange%2Faddressbook%2Fclient%2FBaseAddressbookClient.java;h=effa814cc046867f8493481c1733f0e5ff2171cc;hb=d320d13f3f26ab01c36a7d6857918b141977454a;hp=8f0dc1aae6374bae4484b98b46cc7718980b52b7;hpb=9463b102fdbe8ffed4f69353190b9106a581387b;p=addressbook-swing.git diff --git a/src/org/mxchange/addressbook/client/BaseAddressbookClient.java b/src/org/mxchange/addressbook/client/BaseAddressbookClient.java index 8f0dc1a..effa814 100644 --- a/src/org/mxchange/addressbook/client/BaseAddressbookClient.java +++ b/src/org/mxchange/addressbook/client/BaseAddressbookClient.java @@ -20,17 +20,21 @@ import java.sql.SQLException; import java.text.MessageFormat; import java.util.HashMap; import java.util.Map; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; import org.mxchange.addressbook.manager.contact.AddressbookContactManager; -import org.mxchange.addressbook.manager.contact.ManageableAddressbookContact; +import org.mxchange.addressbook.manager.contact.ManageableContactAddressbook; import org.mxchange.addressbook.menu.Menu; import org.mxchange.jcore.client.BaseClient; import org.mxchange.jcore.client.Client; +import org.mxchange.jcoreeelogger.beans.local.logger.Log; +import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal; /** * A general addressbook client - * - * @author Roland Haeder - * TODO: Find better name + *

+ * @author Roland Haeder TODO: Find better name */ public abstract class BaseAddressbookClient extends BaseClient implements AddressbookClient { @@ -39,6 +43,12 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres */ private String currentMenu; + /** + * Logger instance + */ + @Log + private LoggerBeanLocal logger; + /** * Menu system */ @@ -50,11 +60,23 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres protected BaseAddressbookClient () { // Init menu map this.menus = new HashMap<>(10); + + // Try it + try { + // Get context + Context context = new InitialContext(); + + // Lookup logger + this.logger = (LoggerBeanLocal) context.lookup("java:global/jcore-logger-ejb/logger!org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal"); + } catch (final NamingException ex) { + // Continue to throw + throw new RuntimeException(ex); + } } /** * Current menu choice - * + *

* @return the currentMenu */ public final String getCurrentMenu () { @@ -68,11 +90,11 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres /** * "Getter" for given menu type - * + *

* @param menuType Menu type instance to return * @return Menu or null if not found */ - public Menu getMenu (final String menuType) { + private Menu getMenu (final String menuType) { // Default is not found Menu menu = null; @@ -86,14 +108,36 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres return menu; } + /** + * Logs exception and exits program + *

+ * @param throwable Throwable + */ + protected void abortProgramWithException (final Throwable throwable) { + // Log exception + this.logException(throwable); + + // Abort here + System.exit(1); + } + /** * Fills menu map with swing menus */ protected abstract void fillMenuMap (); + /** + * Getter for logger instance + *

+ * @return Logger instance + */ + protected LoggerBeanLocal getLogger () { + return this.logger; + } + /** * Getter for menus map - * + *

* @return Map of all menus */ protected final Map getMenus () { @@ -102,39 +146,50 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres /** * Initializes contact manager - * + *

* @throws java.sql.SQLException If any SQL error occurs */ protected void initContactManager () throws SQLException { // Trace message - this.getLogger().trace("CALLED!"); //NOI18N + this.getLogger().logTrace("CALLED!"); //NOI18N // Debug message - this.getLogger().debug("Initializing contact manager ..."); //NOI18N + this.getLogger().logDebug("Initializing contact manager ..."); //NOI18N // Init contact manager with console client // TODO Static initial amount of contacts - ManageableAddressbookContact manager = new AddressbookContactManager((Client) this); + ManageableContactAddressbook manager = new AddressbookContactManager((Client) this); // Set it here this.setManager(manager); // Debug message - this.getLogger().debug("Contact manager has been initialized."); //NOI18N + this.getLogger().logDebug("Contact manager has been initialized."); //NOI18N // Trace message - this.getLogger().trace("EXIT!"); //NOI18N + this.getLogger().logTrace("EXIT!"); //NOI18N + } + + /** + * Logs an exception + *

+ * @param throwable Throwable + */ + protected void logException (final Throwable throwable) { + // Deligate to logger + this.getLogger().logException(throwable); } /** * Shows given menu - * + *

* @param menuType Given menu to show */ protected void showMenu (final String menuType) { // Trace message - this.getLogger().trace(MessageFormat.format("menuType={0} - CALLED!", menuType)); //NOI18N + this.getLogger().logTrace(MessageFormat.format("menuType={0} - CALLED!", menuType)); //NOI18N + // Get menu from type Menu menu = this.getMenu(menuType); // Is the menu set? @@ -148,6 +203,6 @@ public abstract class BaseAddressbookClient extends BaseClient implements Addres menu.show(this); // Trace message - this.getLogger().trace("EXIT!"); //NOI18N + this.getLogger().logTrace("EXIT!"); //NOI18N } }