]> git.mxchange.org Git - jaddressbook-lib.git/commitdiff
Introduced more methods + added first dialog call (yes, it is still visible by startu...
authorRoland Haeder <roland@mxchange.org>
Tue, 28 Jul 2015 12:20:57 +0000 (14:20 +0200)
committerRoland Haeder <roland@mxchange.org>
Tue, 28 Jul 2015 12:20:57 +0000 (14:20 +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/localization/bundle_de_DE.properties
Addressbook/src/org/mxchange/addressbook/localization/bundle_en_US.properties
Addressbook/src/org/mxchange/addressbook/manager/contact/ContactManager.java

index 92e8dfe375646bba016972fa4d2fc863ae1ce076..ea74026336507034521e9e9ae1c67eebd33d29b8 100644 (file)
@@ -46,6 +46,7 @@ import javax.swing.table.TableModel;
 import org.mxchange.addressbook.BaseFrameworkSystem;
 import org.mxchange.addressbook.application.AddressbookApplication;
 import org.mxchange.addressbook.client.Client;
+import org.mxchange.addressbook.contact.Contact;
 import org.mxchange.addressbook.contact.Gender;
 import org.mxchange.addressbook.exceptions.FrameAlreadyInitializedException;
 import org.mxchange.addressbook.model.contact.ContactTableModel;
@@ -140,6 +141,24 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                this.setClient(client);
        }
 
+       @Override
+       public Contact doEnterOwnData () {
+               // Is the "add contact" window visible?
+               if (this.addContact.isVisible()) {
+                       // Something bad happened
+                       throw new IllegalStateException("Window addContact is already visible.");
+               }
+
+               // Disable main window
+               this.frame.setEnabled(false);
+
+               // Make other window visible
+               this.addContact.setVisible(true);
+
+               // Return value is not supported
+               return null;
+       }
+
        /**
         * Shutdown this frame
         */
@@ -149,6 +168,19 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                this.updateStatus("shutdown"); //NOI18N
        }
 
+
+       /**
+        * Enables main window (frame)
+        */
+       @Override
+       public void enableMainWindow () {
+               // Enable it again
+               this.frame.setEnabled(true);
+
+               // Request focus for this window
+               this.frame.requestFocus();
+       }
+
        /**
         * Setups the frame, do not set isInitialized here
         *
@@ -262,6 +294,12 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                return title;
        }
 
+       /**
+        * Initializes "add" and "cancel" buttons
+        */
+       private void initAddCancelButtons () {
+       }
+
        /**
         * Initializes "add contact" dialog
         */
@@ -284,32 +322,58 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                // Initial dimension
                this.addContact.setSize(500, 500);
 
+               // And it is not resizeable
+               this.addContact.setResizable(false);
+
                /*
                 * Add listener which asks for confirmation, if data has been entered
                 * but not saved yet. The user may appriciate this ... ;-)
                 *
                 * @TODO Unfinished
                 */
+               this.addContact.addWindowListener(new WindowAdapter() {
+                       /**
+                        * Invoked when a window has been closed.
+                        */
+                       @Override
+                       public void windowClosed (final WindowEvent e) {
+                               // Enable main window again
+                               AddressbookFrame.getSelfInstance(null).enableMainWindow();
+                       }
+
+                       /**
+                        * Invoked when a window is in the process of being closed. The
+                        * close operation can be overridden at this point.
+                        */
+                       @Override
+                       public void windowClosing (final WindowEvent e) {
+                               e.getWindow().dispose();
+                       }
+               });
+
                // Init 3 panels:
                // 1) "name" panel
-               initNameDataPanel();
+               initNameDataPanel(this.addContact);
 
                // 2) "address" panel
-               initAddressDataPanel();
+               initAddressDataPanel(this.addContact);
 
                // 3) "other" panel
-               initOtherDataPanel();
+               initOtherDataPanel(this.addContact);
+
+               // 4) "Add" and "Cancel" buttons
+               initAddCancelButtons();
 
                // x)Only for developing:
-               /*
-                * DEBUG:
-                */ this.addContact.setVisible(true);
+               /* DEBUG: */ this.addContact.setVisible(true);
        }
 
        /**
         * Initializes address panel
+        *
+        * @param dialog A JDialog instance to this components to
         */
-       private void initAddressDataPanel () {
+       private void initAddressDataPanel (final JDialog dialog) {
                // Panel "address" input boxes
                JPanel addressPanel = new JPanel();
                addressPanel.setLayout(new BoxLayout(addressPanel, BoxLayout.Y_AXIS));
@@ -437,7 +501,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                addressPanel.add(zipCityPanel);
 
                // Add panel to dialog
-               this.addContact.add(addressPanel);
+               dialog.add(addressPanel);
        }
 
        /**
@@ -584,8 +648,10 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
 
        /**
         * Initializes name panel
+        *
+        * @param dialog A JDialog instance to this components to
         */
-       private void initNameDataPanel () {
+       private void initNameDataPanel (final JDialog dialog) {
                // Panel "name" input boxes
                JPanel namePanel = new JPanel();
                namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.Y_AXIS));
@@ -651,13 +717,25 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame
                namePanel.add(fPanel);
 
                // Finally add panel to dialog
-               this.addContact.add(namePanel);
+               dialog.add(namePanel);
        }
 
        /**
         * Initializes "other" data panel
+        *
+        * @param dialog A JDialog instance to this components to
+        * @todo Fill this with life
         */
-       private void initOtherDataPanel () {
+       private void initOtherDataPanel (final JDialog dialog) {
+               // Panel "other" input boxes
+               JPanel otherPanel = new JPanel();
+               otherPanel.setLayout(new BoxLayout(otherPanel, BoxLayout.Y_AXIS));
+
+               // Set border to titled version
+               otherPanel.setBorder(new TitledBorder(this.generateBorderTitle("other"))); //NOI18N
+
+               // Finally add panel to dialog
+               dialog.add(otherPanel);
        }
 
        /**
index 6a7d6b0b6b232df76c59b6952e3668e30031ab35..ce9b49f9fab44e90b61f609bee9c637863231a71 100644 (file)
@@ -18,6 +18,7 @@ package org.mxchange.addressbook.client.gui;
 
 import org.mxchange.addressbook.FrameworkInterface;
 import org.mxchange.addressbook.client.Client;
+import org.mxchange.addressbook.contact.Contact;
 import org.mxchange.addressbook.exceptions.FrameAlreadyInitializedException;
 
 /**
@@ -27,11 +28,23 @@ import org.mxchange.addressbook.exceptions.FrameAlreadyInitializedException;
  */
 public interface ClientFrame extends FrameworkInterface {
 
+       /**
+        * Shows the user the "add contact" form with some special text
+        * 
+        * @return Contact instance
+        */
+       public Contact doEnterOwnData ();
+
        /**
         * Shutdown this frame
         */
        public void doShutdown ();
 
+       /**
+        * Enables main window (frame)
+        */
+       public void enableMainWindow ();
+
        /**
         * Setups the frame (and starts it). You have to call init() before you can
         * call this method.
index 17d3e1b05ae300c444f5678a85b3c335fed43bd4..a8c1a72910e14f39b1de5455d4bc296a475e96a5 100644 (file)
@@ -46,7 +46,7 @@ public class SwingClient extends BaseClient implements Client {
                super();
 
                // Debug message
-               this.getLogger().trace("CALLED!");
+               this.getLogger().trace("CALLED!"); //NOI18N
 
                // Set application instance
                this.setApplication(application);
@@ -57,32 +57,32 @@ public class SwingClient extends BaseClient implements Client {
 
        @Override
        public void displayAddressBox (final Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void displayNameBox (final Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void displayOtherDataBox (final Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void doChangeOwnAddressData (Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void doChangeOwnNameData (Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void doChangeOwnOtherData (Contact contact) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        /**
@@ -92,7 +92,8 @@ public class SwingClient extends BaseClient implements Client {
         */
        @Override
        public Contact doEnterOwnData () {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               // Deligate this call to the frame
+               return this.frame.doEnterOwnData();
        }
 
        /**
@@ -101,7 +102,7 @@ public class SwingClient extends BaseClient implements Client {
        @Override
        public void doShutdown () {
                // Debug message
-               this.getLogger().trace("CALLED!");
+               this.getLogger().trace("CALLED!"); //NOI18N
 
                // Parent call
                super.doShutdown();
@@ -111,7 +112,7 @@ public class SwingClient extends BaseClient implements Client {
 
                // @TODO Add other shutdown stuff
                // Debug message
-               this.getLogger().trace("EXIT!");
+               this.getLogger().trace("EXIT!"); //NOI18N
        }
 
        @Override
@@ -124,27 +125,27 @@ public class SwingClient extends BaseClient implements Client {
 
        @Override
        public char enterChar (final char[] validChars, String message) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public Gender enterGender (final String message) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public int enterInt (final int minimum, final int maximum, final String message) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public String enterString (final int minLength, final int maxLength, final String message, final boolean allowEmpty) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public Menu getMenu (final String menuType) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        /**
@@ -157,7 +158,7 @@ public class SwingClient extends BaseClient implements Client {
        @Override
        public SelectableMenuItem getMenuItem (final char accessKey, final String text) {
                // Debug message
-               this.getLogger().trace("CALLED!");
+               this.getLogger().trace("CALLED!"); //NOI18N
 
                // Returns null as the menu is now no longer controlled here.
                return null;
@@ -169,7 +170,7 @@ public class SwingClient extends BaseClient implements Client {
        @Override
        public void init () {
                // Debug message
-               this.getLogger().trace("CALLED!");
+               this.getLogger().trace("CALLED!"); //NOI18N
 
                // Init contact manager here
                this.initContactManager();
@@ -186,12 +187,12 @@ public class SwingClient extends BaseClient implements Client {
                this.frame.setupFrame(this);
 
                // Debug message
-               this.getLogger().trace("EXIT!");
+               this.getLogger().trace("EXIT!"); //NOI18N
        }
 
        @Override
        public void outputMessage (final String message) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
@@ -204,20 +205,20 @@ public class SwingClient extends BaseClient implements Client {
 
        @Override
        public void showEntry (final SelectableMenuItem item) {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        @Override
        public void showWelcome () {
                // Debug message
-               this.getLogger().trace("CALLED!");
+               this.getLogger().trace("CALLED!"); //NOI18N
 
                // Not implemented here
        }
 
        @Override
        public void userChooseChangeContactData (final Contact contact) throws UnhandledUserChoiceException {
-               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+               throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. //NOI18N
        }
 
        /**
@@ -226,6 +227,6 @@ public class SwingClient extends BaseClient implements Client {
        @Override
        protected final void fillMenuMap () {
                // Nothing to fill here as the Swing frame is handling this all
-               throw new UnsupportedOperationException("Not implemented.");
+               throw new UnsupportedOperationException("Not implemented."); //NOI18N
        }
 }
index 570c12fede8eecbabe2f57bc296d44e7ff96bdef..4cf5579038a744a5efeff8e44e41435a0365bd24 100644 (file)
@@ -13,6 +13,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+AddressbookFrame.border.name.title.text=Anrede, Vorname, Nachname:
+AddressbookFrame.border.address.title.text=Anschrift:
+AddressbookFrame.border.other.title.text=Andere Angaben:
 AddressbookFrame.menu.file.text=Datei
 AddressbookFrame.menu.addressbook.text=Adressbuch
 AddressbookFrame.statusLabel.initializing.text=Initialisiere ...
@@ -26,8 +29,6 @@ AddressbookFrame.menuItem.editOwnData.text=Eigene Adresse \u00e4ndern
 AddressbookFrame.menuItem.editOwnData.toolTipText=Erlaubt das \u00c4ndern eigener Daten.
 AddressbookFrame.dialog.addContact.title.text=Neue Adresse hinzuf\u00fcgen
 AddressbookFrame.main.title.text=Adressen auflisten
-AddressbookFrame.border.name.title.text=Anrede, Vorname, Nachname:
-AddressbookFrame.border.address.title.text=Anschrift:
 AddressbookFrame.gender.text=Anrede:
 AddressbookFrame.gender.tooltipText=W\u00e4hlen Sie die Anrede aus.
 AddressbookFrame.surname.text=Vorname:
index 7800af35131ed987a4d44cf9ae8816ff16433609..412617379a373c3aabad837a762f93ee16e76ba6 100644 (file)
@@ -13,6 +13,9 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+AddressbookFrame.border.name.title.text=Gender, surname, family name:
+AddressbookFrame.border.address.title.text=Address:
+AddressbookFrame.border.other.title.text=Other data:
 AddressbookFrame.menu.file.text=File
 AddressbookFrame.menu.addressbook.text=Addressbook
 AddressbookFrame.statusLabel.initializing.text=Initializing ...
@@ -26,8 +29,6 @@ AddressbookFrame.menuItem.editOwnData.text=Edit own data
 AddressbookFrame.menuItem.editOwnData.toolTipText=Allows the user to edit own address data
 AddressbookFrame.dialog.addContact.title.text=Add new address
 AddressbookFrame.main.title.text=List addresses
-AddressbookFrame.border.name.title.text=Gender, surname, family name:
-AddressbookFrame.border.address.title.text=Anschrift:
 AddressbookFrame.gender.text=Gender:
 AddressbookFrame.gender.tooltipText=Choose gender.
 AddressbookFrame.surname.text=Surname:
index 62bcfbd484c678bdfe1095beedc0dfd655572557..f502e1e3daef2001ddb543f90fdf2eea557392af 100644 (file)
@@ -237,8 +237,11 @@ public class ContactManager extends BaseManager implements ManageableContact {
                // Deligate this call to the client
                Contact contact = this.getClient().doEnterOwnData();
 
-               // Add it to contact "book"
-               this.registerContact(contact);
+               // Is it set?
+               if (contact instanceof Contact) {
+                       // Add it to contact "book"
+                       this.registerContact(contact);
+               }
        }
 
        @Override
@@ -474,6 +477,12 @@ public class ContactManager extends BaseManager implements ManageableContact {
         */
        @Override
        public void registerContact (final Contact contact) {
+               // Sanity check
+               if (contact == null) {
+                       // Abort here
+                       throw new NullPointerException("contact is null");
+               }
+
                // Check if contact is found
                if (this.isContactAlreadyAdded(contact)) {
                        // Contact already added
@@ -484,9 +493,7 @@ public class ContactManager extends BaseManager implements ManageableContact {
                }
 
                // Debug message
-       /*
-                * NOISY-DEBUG:
-                */ this.getLogger().debug(MessageFormat.format("Adding '{0}' '{1}' at pos '{2}' ...", contact.getSurname(), contact.getFamilyName(), this.size()));
+               /* NOISY-DEBUG: */ this.getLogger().debug(MessageFormat.format("Adding '{0}' '{1}' at pos '{2}' ...", contact.getSurname(), contact.getFamilyName(), this.size()));
 
                // Add contact to internal list
                this.addContact(contact);