]> git.mxchange.org Git - addressbook-lib.git/commitdiff
the contact manager instance only exists when initFrame() is called and not on object...
authorRoland Haeder <roland@mxchange.org>
Wed, 22 Jul 2015 06:29:27 +0000 (08:29 +0200)
committerRoland Haeder <roland@mxchange.org>
Wed, 22 Jul 2015 06:29:27 +0000 (08:29 +0200)
Signed-off-by:Roland Häder <roland@mxchange.org>

Addressbook/src/org/mxchange/addressbook/client/gui/AddressbookFrame.java
Addressbook/src/org/mxchange/addressbook/client/gui/ClientFrame.java
Addressbook/src/org/mxchange/addressbook/client/gui/SwingClient.java
Addressbook/src/org/mxchange/addressbook/database/frontend/contact/ContactDatabaseFrontend.java
Addressbook/src/org/mxchange/addressbook/database/frontend/contact/ContactWrapper.java
Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java
Addressbook/src/org/mxchange/addressbook/manager/contact/ManageableContact.java

index bf3e8e917e18713b08b8b3c8ffc8b8186088e14c..ea890cc20063184eaf373a8dd9db3cc68491f268 100644 (file)
@@ -56,9 +56,6 @@ public class AddressbookFrame extends javax.swing.JFrame implements ClientFrame
        // Init components
        initComponents();
 
-       // Has the user entered own data?
-       //if (client.)
-
        // Set client here
        this.client = client;
     }
@@ -175,15 +172,26 @@ public class AddressbookFrame extends javax.swing.JFrame implements ClientFrame
     }//GEN-LAST:event_addOwnDataActionPerformed
 
     /**
-     * Initializes the frame
+     * Setups the frame
+     * 
+     * @param client Client instance
      */
     @Override
-    public void initFrame (final Client client) {
+    public void setupFrame (final Client client) {
+       // Has the user entered own data?
+       if (!this.getClient().getContactManager().isOwnContactAdded()) {
+           // Debug message
+           this.getLogger().debug("Enabling menus: isOwnContactAdded()=false");
+
+           // Not entered yet, so enable menu
+           addOwnData.setEnabled(true);
+       }
+
        /*
         * Set the Nimbus look and feel
         */
-        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
-        /*
+       //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
+       /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
index 21a822b092155330d949814d8d9b59d0dcef895b..02f4cad2ed0660fa8fafa5463004ae99fc27ba3e 100644 (file)
@@ -25,9 +25,9 @@ import org.mxchange.addressbook.client.Client;
  */\r
 public interface ClientFrame extends FrameworkInterface {\r
     /**\r
-     * Initializes the frame\r
+     * Setups the frame\r
      * \r
      * @param client Client instance\r
      */\r
-    public void initFrame (final Client client);\r
+    public void setupFrame (final Client client);\r
 }\r
index 3aec6e512709d1af27cbf16f244081cb3ac1c8a8..4a51c942ac06cfac31c83eccd2ca2410943b490c 100644 (file)
@@ -17,7 +17,7 @@
 package org.mxchange.addressbook.client.gui;\r
 \r
 import org.mxchange.addressbook.UnhandledUserChoiceException;\r
-import org.mxchange.addressbook.application.AddressbookApplication;\r
+import org.mxchange.addressbook.application.Application;\r
 import org.mxchange.addressbook.client.BaseClient;\r
 import org.mxchange.addressbook.client.Client;\r
 import org.mxchange.addressbook.contact.Contact;\r
@@ -38,7 +38,7 @@ public class SwingClient extends BaseClient implements Client {
      * Constructor with application instance\r
      * @param application \r
      */\r
-    public SwingClient (final AddressbookApplication application) {\r
+    public SwingClient (final Application application) {\r
        super();\r
 \r
        // Set application instance\r
@@ -102,7 +102,6 @@ public class SwingClient extends BaseClient implements Client {
      * @param accessKey Key to access the menu\r
      * @param text Text to show to user\r
      * @return A SelectableMenuItem\r
-     * @todo Make sure the access key is unique\r
      */\r
     @Override\r
     public SelectableMenuItem getMenuItem (final char accessKey, final String text) {\r
@@ -119,7 +118,7 @@ public class SwingClient extends BaseClient implements Client {
        this.initContactManager();\r
        \r
        // Now start the frame\r
-       this.frame.initFrame(this);\r
+       this.frame.setupFrame(this);\r
     }\r
 \r
     @Override\r
index 4065c25521af951080337fef39cdd6ddcc52a764..df1854c93cb4bd3e601082b3e4d403c378df83a9 100644 (file)
@@ -24,7 +24,7 @@ import org.mxchange.addressbook.contact.Contact;
 import org.mxchange.addressbook.database.backend.csv.CsvBackend;\r
 import org.mxchange.addressbook.database.frontend.BaseDatabaseFrontend;\r
 import org.mxchange.addressbook.database.storage.Storeable;\r
-import org.mxchange.addressbook.manager.contact.ManageableContact;\r
+import org.mxchange.addressbook.manager.contact.ContactManager;\r
 \r
 /**\r
  * Stores and retrieves Contact instances\r
@@ -32,10 +32,22 @@ import org.mxchange.addressbook.manager.contact.ManageableContact;
  * @author Roland Haeder\r
  */\r
 public class ContactDatabaseFrontend extends BaseDatabaseFrontend implements ContactWrapper {\r
+    /**\r
+     * Constructor which accepts a contact manager\r
+     * @param manager\r
+     */\r
+    public ContactDatabaseFrontend (final ContactManager manager) {\r
+       // Call own constructor\r
+       this();\r
+       \r
+       // Set contact manager\r
+       this.setContactManager(manager);\r
+    }\r
+\r
     /**\r
      * Basic constrcutor\r
      */\r
-    public ContactDatabaseFrontend () {\r
+    protected ContactDatabaseFrontend () {\r
        super();\r
 \r
        // Set "table" name\r
@@ -56,12 +68,11 @@ public class ContactDatabaseFrontend extends BaseDatabaseFrontend implements Con
 \r
     /**\r
      * Flushes all contact entries to database\r
-     * @param contactManager An instance of a MangeableContact class\r
      */\r
     @Override\r
-    public void flushAllContacts (final ManageableContact contactManager) {\r
+    public void flushAllContacts () {\r
        // Get full list\r
-       List<Contact> contacts = contactManager.getList();\r
+       List<Contact> contacts = this.getContactManager().getList();\r
 \r
        // Get iterator\r
        Iterator<Contact> iterator = contacts.iterator();\r
@@ -88,11 +99,9 @@ public class ContactDatabaseFrontend extends BaseDatabaseFrontend implements Con
     /**\r
      * Reads all contacts from database backend and handles them over to the\r
      * contact manager\r
-     * \r
-     * @param contactManager Contact manager to handle loaded contacts\r
      */\r
     @Override\r
-    public void readAllContacts (final ManageableContact contactManager) {\r
+    public void readAllContacts () {\r
        // Get iterator and case it\r
        CsvBackend backend = (CsvBackend) this.getBackend();\r
        \r
@@ -114,7 +123,7 @@ public class ContactDatabaseFrontend extends BaseDatabaseFrontend implements Con
            Contact contact = iterator.next();\r
 \r
            // Add contact instance to manager\r
-           contactManager.addContact(contact);\r
+           this.getContactManager().addContact(contact);\r
        }\r
     }\r
 }\r
index e9f710ad05d0588d12cbc20c139ed67486f680a1..c14a3c33259dae6a0f920a5bc1e3c6728a539e61 100644 (file)
@@ -17,7 +17,6 @@
 package org.mxchange.addressbook.database.frontend.contact;\r
 \r
 import org.mxchange.addressbook.database.frontend.DatabaseWrapper;\r
-import org.mxchange.addressbook.manager.contact.ManageableContact;\r
 \r
 /**\r
  *\r
@@ -32,16 +31,12 @@ public interface ContactWrapper extends DatabaseWrapper {
 \r
     /**\r
      * Flushes all contact entries to database\r
-     * \r
-     * @param contactManager An instance of a MangeableContact class\r
      */\r
-    public void flushAllContacts (final ManageableContact contactManager);\r
+    public void flushAllContacts ();\r
 \r
     /**\r
      * Reads all contacts from database backend and handles them over to the\r
      * contact manager\r
-     * \r
-     * @param contactManager \r
      */\r
-    public void readAllContacts (final ManageableContact contactManager);\r
+    public void readAllContacts ();\r
 }\r
index 1b269ec3e2a0632fb4d178f4316c26ccf16fc72c..de1898996793fef34e2749855afe7558093f1f02 100644 (file)
@@ -61,10 +61,10 @@ public class ContactManager extends BaseManager implements ManageableContact {
        this.contacts = new ArrayList<>(maxContacts);\r
 \r
        // Init database connection\r
-       this.contactDatabase = new ContactDatabaseFrontend();\r
+       this.contactDatabase = new ContactDatabaseFrontend(this);\r
 \r
        // Read all entries\r
-       this.contactDatabase.readAllContacts(this);\r
+       this.contactDatabase.readAllContacts();\r
 \r
        // Debug message\r
        //* NOISY-DEBUG: */ this.getLogger().debug("client=" + client);\r
@@ -298,6 +298,41 @@ public class ContactManager extends BaseManager implements ManageableContact {
        return Collections.unmodifiableList(this.contacts);\r
     }\r
 \r
+    /**\r
+     * Checks whether own contact is already added by checking all entries for\r
+     * isOwnContact flag\r
+     *\r
+     * @return Whether own contact is already added\r
+     */\r
+    @Override\r
+    public boolean isOwnContactAdded () {\r
+       // Default is not added\r
+       boolean isAdded = false;\r
+       \r
+       // Now get it back from address book, first get an iterator\r
+       Iterator<Contact> iterator = this.contacts.iterator();\r
+       \r
+       // Check entries\r
+       while (iterator.hasNext()) {\r
+           // Get next entry\r
+           Contact contact = iterator.next();\r
+           \r
+           // Is it valid?\r
+           if (contact instanceof Contact) {\r
+               // Get flag\r
+               isAdded = contact.isOwnContact();\r
+               \r
+               // Is this own contact?\r
+               if (isAdded) {\r
+                   // Then abort loop\r
+                   break;\r
+               }\r
+           }\r
+       }\r
+       // Return result\r
+       return isAdded;\r
+    }\r
+\r
     @Override\r
     public void listContacts () {\r
        throw new UnsupportedOperationException("Not supported yet.");\r
@@ -463,7 +498,7 @@ public class ContactManager extends BaseManager implements ManageableContact {
      */\r
     private void flush () {\r
        // Flusgh all\r
-       this.getContactDatabase().flushAllContacts(this);\r
+       this.getContactDatabase().flushAllContacts();\r
     }\r
 \r
     /**\r
@@ -540,38 +575,4 @@ public class ContactManager extends BaseManager implements ManageableContact {
        // Return result\r
        return isFound;\r
     }\r
-\r
-    /**\r
-     * Checks whether own contact is already added by checking all entries for\r
-     * isOwnContact flag\r
-     * \r
-     * @return Whether own contact is already added\r
-     */\r
-    private boolean isOwnContactAdded () {\r
-       // Default is not added\r
-       boolean isAdded = false;\r
-\r
-       // Now get it back from address book, first get an iterator\r
-       Iterator<Contact> iterator = this.contacts.iterator();\r
-\r
-       // Check entries\r
-       while (iterator.hasNext()) {\r
-           // Get next entry\r
-           Contact contact = iterator.next();\r
-\r
-           // Is it valid?\r
-           if (contact instanceof Contact) {\r
-               // Get flag\r
-               isAdded = contact.isOwnContact();\r
-\r
-               // Is this own contact?\r
-               if (isAdded) {\r
-                   // Then abort loop\r
-                   break;\r
-               }\r
-           }\r
-       }\r
-       // Return result\r
-       return isAdded;\r
-    }\r
 }\r
index 520f4abaaa8bca000cf5e8700a3631dda17db4fd..3fd70631fa37eda564c3c76d0975b47fd5385c2c 100644 (file)
@@ -114,6 +114,14 @@ public interface ManageableContact extends Manageable {
      */\r
     public void searchContacts ();\r
 \r
+    /**\r
+     * Checks whether own contact is already added by checking all entries for\r
+     * isOwnContact flag\r
+     * \r
+     * @return Whether own contact is already added\r
+     */\r
+    public boolean isOwnContactAdded ();\r
+\r
     /**\r
      * Getter for size\r
      *\r