]> git.mxchange.org Git - jfinancials-swing.git/blobdiff - Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java
The NetBeans-created GUI was buggy, maybe because of the .form file. So I better...
[jfinancials-swing.git] / Addressbook / src / org / mxchange / addressbook / manager / contact / ContactManager.java
index e89b7081d72838f5fa4b38b23a3e3101be8a23d0..fefd2c1410e9473d13d7aadaf2e78764e1228931 100644 (file)
@@ -23,7 +23,6 @@ import java.util.Iterator;
 import java.util.List;\r
 import org.mxchange.addressbook.UnhandledUserChoiceException;\r
 import org.mxchange.addressbook.client.Client;\r
-import org.mxchange.addressbook.contact.BaseContact;\r
 import org.mxchange.addressbook.contact.Contact;\r
 import org.mxchange.addressbook.database.frontend.contact.ContactDatabaseFrontend;\r
 import org.mxchange.addressbook.database.frontend.contact.ContactWrapper;\r
@@ -37,6 +36,10 @@ import org.mxchange.addressbook.manager.BaseManager;
  * @version 0.0\r
  */\r
 public class ContactManager extends BaseManager implements ManageableContact {\r
+    /**\r
+     * Column name list\r
+     */\r
+    private final List<String> columnNames;\r
 \r
     /**\r
      * A ContactWrapper instance\r
@@ -48,6 +51,7 @@ public class ContactManager extends BaseManager implements ManageableContact {
      */\r
     private final List<Contact> contacts;\r
 \r
+\r
     /**\r
      * @param maxContacts Maximum allowed contacts\r
      * @param client Client instance to use\r
@@ -56,20 +60,26 @@ public class ContactManager extends BaseManager implements ManageableContact {
        // Always call super constructor first\r
        super();\r
 \r
+       // Set client instance\r
+       this.setClient(client);\r
+\r
        // Init contacts\r
        this.contacts = new ArrayList<>(maxContacts);\r
 \r
        // Init database connection\r
        this.contactDatabase = new ContactDatabaseFrontend(this);\r
 \r
+       // Initialize list\r
+       this.columnNames = new ArrayList<>(15);\r
+\r
+       // And fill it\r
+       this.fillColumnNamesFromBundle();\r
+\r
        // Read all entries\r
        this.contactDatabase.readAllContacts();\r
 \r
        // Debug message\r
        //* NOISY-DEBUG: */ this.getLogger().debug("client=" + client);\r
-\r
-       // Init client\r
-       this.setClient(client);\r
     }\r
 \r
     /**\r
@@ -364,11 +374,7 @@ public class ContactManager extends BaseManager implements ManageableContact {
 \r
     @Override\r
     public int getColumnCount () {\r
-       /*\r
-        * Return constant, may look useful. But without this, e.g. the\r
-        * AddressTableModel have a hard-coded value.\r
-        */\r
-       return BaseContact.COLUMN_COUNT;\r
+       return this.columnNames.size();\r
     }\r
 \r
     /**\r
@@ -463,6 +469,29 @@ public class ContactManager extends BaseManager implements ManageableContact {
        return this.contacts.size();\r
     }\r
 \r
+    /**\r
+     * Fills the column names array with strings from bundle\r
+     */\r
+    private void fillColumnNamesFromBundle () {\r
+       // First get an iterator from key set to iterate over\r
+       Iterator<String> iterator = this.getBundle().keySet().iterator();\r
+\r
+       // Then iterate over all\r
+       while (iterator.hasNext()) {\r
+           // Get next element\r
+           String key = iterator.next();\r
+\r
+           // Does the key start with ContactManager.columnName ?\r
+           if (key.startsWith("ContactManager.columnName")) {\r
+               // This is the wanted entry.\r
+               this.getLogger().debug(MessageFormat.format("key={0}", key));\r
+\r
+               // So add it\r
+               this.columnNames.add(this.getBundle().getString(key));\r
+           }\r
+       }\r
+    }\r
+\r
     /**\r
      * Flushes all entries by calling database backend\r
      */\r