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