X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=Addressbook%2Fsrc%2Forg%2Fmxchange%2Faddressbook%2Fclient%2Fgui%2FAddressbookFrame.java;h=8dcddcbeb3937a2c3c140dee09e55d156270d082;hb=16289838616dbf25d96a20f82164415d40181e46;hp=ea74026336507034521e9e9ae1c67eebd33d29b8;hpb=59a751b134cdf4bd0f30e3065c6cf544edcf027c;p=addressbook-lib.git diff --git a/Addressbook/src/org/mxchange/addressbook/client/gui/AddressbookFrame.java b/Addressbook/src/org/mxchange/addressbook/client/gui/AddressbookFrame.java index ea74026..8dcddcb 100644 --- a/Addressbook/src/org/mxchange/addressbook/client/gui/AddressbookFrame.java +++ b/Addressbook/src/org/mxchange/addressbook/client/gui/AddressbookFrame.java @@ -28,10 +28,10 @@ import java.text.MessageFormat; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.DefaultComboBoxModel; -import javax.swing.InputVerifier; +import javax.swing.JButton; import javax.swing.JComboBox; -import javax.swing.JComponent; import javax.swing.JDialog; +import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; @@ -40,22 +40,25 @@ import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; +import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import javax.swing.table.TableModel; -import org.mxchange.addressbook.BaseFrameworkSystem; +import org.mxchange.addressbook.BaseAddressbookSystem; 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.exceptions.ContactAlreadyAddedException; +import org.mxchange.addressbook.manager.contact.ManageableContact; import org.mxchange.addressbook.model.contact.ContactTableModel; +import org.mxchange.jcore.client.Client; +import org.mxchange.jcore.exceptions.FrameAlreadyInitializedException; /** * * @author Roland Haeder */ -public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame { +public class AddressbookFrame extends BaseAddressbookSystem implements ClientFrame { /** * Own instance @@ -112,12 +115,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame /** * Whether this frame has been initialized */ - private boolean isInitialized; - - /** - * Layout instance - */ - private GridLayout layout; + private boolean initialized; /** * Status label needs to be updated @@ -139,14 +137,20 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Set client here this.setClient(client); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } @Override public Contact doEnterOwnData () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Is the "add contact" window visible? if (this.addContact.isVisible()) { // Something bad happened - throw new IllegalStateException("Window addContact is already visible."); + throw new IllegalStateException("Window addContact is already visible."); //NOI18N } // Disable main window @@ -155,6 +159,9 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Make other window visible this.addContact.setVisible(true); + // Trace message + this.getLogger().trace("Returning null : EXIT!"); //NOI18N + // Return value is not supported return null; } @@ -164,8 +171,14 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public void doShutdown () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // First only show shutdown status this.updateStatus("shutdown"); //NOI18N + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } @@ -174,11 +187,17 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public void enableMainWindow () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Enable it again this.frame.setEnabled(true); // Request focus for this window this.frame.requestFocus(); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -191,8 +210,11 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Debug line this.getLogger().trace(MessageFormat.format("client={0}: CALLED!", client)); //NOI18N + // Get and cast manager instance + ManageableContact manager = (ManageableContact) this.getClient().getManager(); + // Has the user entered own data? - if (this.getClient().getContactManager().isOwnContactAdded()) { + if (manager.isOwnContactAdded()) { // Debug message this.getLogger().debug("Disabling menus: isOwnContactAdded()=false"); //NOI18N @@ -208,6 +230,9 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // All done here this.updateStatus("done"); //NOI18N + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -234,7 +259,10 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame this.initComponents(); // Set flag - this.isInitialized = true; + this.initialized = true; + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -245,7 +273,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public final boolean isInitialized () { - return this.isInitialized; + return this.initialized; } /** @@ -253,13 +281,47 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public void shutdownApplication () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // To do this, the frame must be initialized if (!this.isInitialized()) { // Not initalized, so bad call this.getLogger().fatal("Bad call of shutdownApplication(). Please report this."); //NOI18N return; } + + // Call shutdown method this.getClient().getApplication().doShutdown(); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N + } + + /** + * Adds a JTextField with label and tool tip to given panel + * + * @param panel Panel instance to add text field + * @param key Part of message key from resource bundle + * @param fieldLength Length of text field + */ + private void addTextFieldWithLabelToPanel (final JPanel panel, final String key, final int fieldLength) { + // Trace message + this.getLogger().trace(MessageFormat.format("panel={0},key={1},fieldLength={2} - CALLED!", panel, key, fieldLength)); //NOI18N + + // Init label for given key + JLabel label = new JLabel(this.getBundle().getString(String.format("AddressbookFrame.%s.text", key))); //NOI18N + + // And input box wih tool tip + JTextField field = new JTextField(fieldLength); + field.setToolTipText(this.getBundle().getString(String.format("AddressbookFrame.%s.toolTipText", key))); //NOI18N + + // Add both to panel + panel.add(label); + panel.add(field); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -298,12 +360,45 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame * Initializes "add" and "cancel" buttons */ private void initAddCancelButtons () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + + // Init panel + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(1, 2, 10, 10)); + + // Generate "add" button + JButton addButton = new JButton(this.getBundle().getString("AddressbookFrame.button.addAddress.text")); + + // Add listener + addButton.addActionListener(new AddActionListener(this.addContact, this)); + + // Add button to panel + panel.add(addButton); + + // Generate "cancel" button + JButton cancelButton = new JButton(this.getBundle().getString("AddressbookFrame.button.cancel.text")); + + // Add listener + cancelButton.addActionListener(new CancelActionListener(this.addContact, this)); + + // Add button to panel + panel.add(cancelButton); + + // Add panel to main panel + this.addContact.add(panel); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** * Initializes "add contact" dialog */ private void initAddContactDialog () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Instance dialog and set title this.addContact = new JDialog(); this.addContact.setTitle(this.generateFrameTitle("dialog.addContact")); //NOI18N @@ -313,7 +408,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Only hide it on close and make it appear in middle of screen this.addContact.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); - this.addContact.setLocationRelativeTo(null); + this.addContact.setLocationRelativeTo(this.frame); // Set always on top and auto-focus this.addContact.setAlwaysOnTop(true); @@ -361,11 +456,14 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // 3) "other" panel initOtherDataPanel(this.addContact); - // 4) "Add" and "Cancel" buttons + // 4) "Add" and "Cancel" buttons, combined they are unique for this dialog initAddCancelButtons(); // x)Only for developing: /* DEBUG: */ this.addContact.setVisible(true); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -374,134 +472,49 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame * @param dialog A JDialog instance to this components to */ private void initAddressDataPanel (final JDialog dialog) { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Panel "address" input boxes JPanel addressPanel = new JPanel(); - addressPanel.setLayout(new BoxLayout(addressPanel, BoxLayout.Y_AXIS)); + addressPanel.setLayout(new GridLayout(0, 4, 3, 3)); // Set border to titled version addressPanel.setBorder(new TitledBorder(this.generateBorderTitle("address"))); //NOI18N - // Init all elements: - // 1) Street and number together - JPanel streetNumberPanel = new JPanel(); - streetNumberPanel.setLayout(new GridLayout(1, 4, 5, 5)); - - // Label for street - JLabel streetLabel = new JLabel(this.getBundle().getString("AddressbookFrame.street.text")); - - // Init text field with label - JTextField street = new JTextField(20); - street.setToolTipText(this.getBundle().getString("AddressbookFrame.street.tooltipText")); - - // Add both to street panel - streetNumberPanel.add(streetLabel); - streetNumberPanel.add(street); + // Add text field for street + this.addTextFieldWithLabelToPanel(addressPanel, "street", 20); //NOI18N // Number label JLabel numberLabel = new JLabel(this.getBundle().getString("AddressbookFrame.number.text")); // And text field, but only accept numbers - JTextField number = new JTextField(4); - number.setToolTipText(this.getBundle().getString("AddressbookFrame.number.tooltipText")); - - // Add number verifier - number.setInputVerifier(new InputVerifier() { - - /** - * Method to verify that the entered data is a number. - * - * @param input Input to verify - * @return Whether the data is a number - */ - @Override - public boolean verify (final JComponent input) { - // Cast on text field - JTextField text = (JTextField) input; - - // Default is passed - boolean isValid = true; - - // Try to convert input text to a number - try { - int num = Integer.valueOf(text.getText()); - } catch (final NumberFormatException ex) { - // Didn't work - isValid = false; - } - - // Return status - return isValid; - } - }); + JFormattedTextField number = new JFormattedTextField(); + number.setToolTipText(this.getBundle().getString("AddressbookFrame.number.toolTipText")); // Add both to street panel - streetNumberPanel.add(numberLabel); - streetNumberPanel.add(number); - - // Add panel to address panel - addressPanel.add(streetNumberPanel); - - // 2) ZIP code and ccity name - JPanel zipCityPanel = new JPanel(); - zipCityPanel.setLayout(new GridLayout(1, 4, 5, 5)); + addressPanel.add(numberLabel); + addressPanel.add(number); // Label for ZIP code, again numbers only JLabel zipLabel = new JLabel(this.getBundle().getString("AddressbookFrame.zip.text")); // Init text field with label - JTextField zip = new JTextField(20); - zip.setToolTipText(this.getBundle().getString("AddressbookFrame.zip.tooltipText")); - - // Add number verifier - zip.setInputVerifier(new InputVerifier() { - - /** - * Method to verify that the entered data is a number. - * - * @param input Input to verify - * @return Whether the data is a number - */ - @Override - public boolean verify (final JComponent input) { - // Cast on text field - JTextField text = (JTextField) input; - - // Default is passed - boolean isValid = true; - - // Try to convert input text to a number - try { - int num = Integer.valueOf(text.getText()); - } catch (final NumberFormatException ex) { - // Didn't work - isValid = false; - } - - // Return status - return isValid; - } - }); - - // Add both to street panel - zipCityPanel.add(zipLabel); - zipCityPanel.add(zip); - - // Label for street - JLabel cityLabel = new JLabel(this.getBundle().getString("AddressbookFrame.city.text")); - - // Init text field with label - JTextField city = new JTextField(20); - city.setToolTipText(this.getBundle().getString("AddressbookFrame.city.tooltipText")); + JFormattedTextField zip = new JFormattedTextField(); + zip.setToolTipText(this.getBundle().getString("AddressbookFrame.zip.toolTipText")); // Add both to street panel - zipCityPanel.add(cityLabel); - zipCityPanel.add(city); + addressPanel.add(zipLabel); + addressPanel.add(zip); - // Add panel to address panel - addressPanel.add(zipCityPanel); + // Add text field for city name + this.addTextFieldWithLabelToPanel(addressPanel, "city", 20); //NOI18N // Add panel to dialog dialog.add(addressPanel); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -556,12 +569,38 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Init other windows initOtherDialogs(); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N + } + + /** + * Initializes a menu item instance with tool tip + * + * @param key Message key part + * @return A finished JMenuItem instance + */ + private JMenuItem initMenuItemWithTooltip (final String key) { + // Debug line + this.getLogger().trace(MessageFormat.format("key={0} - CALLED!", key)); //NOI18N + + JMenuItem item = new JMenuItem(this.getBundle().getString(String.format("AddressbookFrame.menuItem.%s.text", key))); //NOI18N + item.setToolTipText(this.getBundle().getString(String.format("AddressbookFrame.menuItem.%s.toolTipText", key))); //NOI18N + + // Trace message + this.getLogger().trace(MessageFormat.format("item={0} - EXIT!", item)); //NOI18N + + // Return it + return item; } /** * Initializes the menu system */ private void initMenuSystem () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Init menu bar, menu and item instances JMenuBar menuBar = new JMenuBar(); JMenu menu; @@ -573,11 +612,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Add menu items: // 1.x) Exit program (should be last) - item = new JMenuItem(this.getBundle().getString("AddressbookFrame.menuItem.exitProgram.text")); - item.setToolTipText(this.getBundle().getString("AddressbookFrame.menuItem.exitProgram.toolTipText")); - - // Add listener to exit menu - item.addActionListener(new ActionListener() { + this.addMenuItem(menu, "exitProgram", new ActionListener() { //NOI18N /** * If the user has performed this action * @@ -589,9 +624,6 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame } }); - // Add item -> menu - menu.add(item); - // Add menu -> menu bar menuBar.add(menu); @@ -600,8 +632,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame menu = new JMenu(this.getBundle().getString("AddressbookFrame.menu.addressbook.text")); // 2.1) Add own data - this.addOwnItem = new JMenuItem(this.getBundle().getString("AddressbookFrame.menuItem.addOwnData.text")); - this.addOwnItem.setToolTipText(this.getBundle().getString("AddressbookFrame.menuItem.addOwnData.toolTipText")); + this.addOwnItem = this.initMenuItemWithTooltip("addOwnData"); //NOI18N // Add listener to exit menu this.addOwnItem.addActionListener(new ActionListener() { @@ -612,7 +643,14 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public void actionPerformed (final ActionEvent e) { - self.getClient().getContactManager().doEnterOwnData(); + try { + ManageableContact manager = (ManageableContact) self.getClient().getManager(); + manager.doEnterOwnData(); + } catch (final ContactAlreadyAddedException ex) { + // Already added, log away + // @TODO maybe output message here? + self.logException(ex); + } } }); @@ -620,8 +658,7 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame menu.add(this.addOwnItem); // 2.2) Edit own data - this.editOwnItem = new JMenuItem(this.getBundle().getString("AddressbookFrame.menuItem.editOwnData.text")); - this.editOwnItem.setToolTipText(this.getBundle().getString("AddressbookFrame.menuItem.editOwnData.toolTipText")); + this.editOwnItem = this.initMenuItemWithTooltip("editOwnData"); //NOI18N // Add listener to exit menu this.editOwnItem.addActionListener(new ActionListener() { @@ -632,18 +669,61 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame */ @Override public void actionPerformed (final ActionEvent e) { - self.getClient().getContactManager().doChangeOwnData(); + ManageableContact manager = (ManageableContact) self.getClient().getManager(); + manager.doChangeOwnData(); } }); // Add item -> menu menu.add(this.editOwnItem); + // Init more menus: + // 1) Add new contact + this.addMenuItem(menu, "addNewContact", new ActionListener() { //NOI18N + /** + * If the user has performed this action + * + * @param e An instance of an ActionEvent class + */ + @Override + public void actionPerformed (final ActionEvent e) { + ManageableContact manager = (ManageableContact) self.getClient().getManager(); + manager.doAddOtherAddress(); + } + }); + // Add menu -> menu bar menuBar.add(menu); // Add menu bar -> frame this.frame.add(menuBar, BorderLayout.NORTH); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N + } + + /** + * Adds a new menu item with given key to menu instance + * + * @param menu Menu instance to add item to + * @param key Message key part + * @param listener Listener instance + */ + private void addMenuItem (final JMenu menu, final String key, final ActionListener listener) { + // Trace message + this.getLogger().trace(MessageFormat.format("menu={0},key={1},listener={2} - CALLED!", menu, key, listener)); //NOI18N + + // New instance + JMenuItem item = this.initMenuItemWithTooltip(key); + + // Add listener + item.addActionListener(listener); + + // Add item -> menu + menu.add(item); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -652,17 +732,16 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame * @param dialog A JDialog instance to this components to */ private void initNameDataPanel (final JDialog dialog) { + // Trace message + this.getLogger().trace(MessageFormat.format("dialog={0} - CALLED!", dialog)); //NOI18N + // Panel "name" input boxes JPanel namePanel = new JPanel(); - namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.Y_AXIS)); + namePanel.setLayout(new GridLayout(0, 2, 3, 3)); // Set border to titled version namePanel.setBorder(new TitledBorder(this.generateBorderTitle("name"))); //NOI18N - // Panel for gender - JPanel gPanel = new JPanel(); - gPanel.setLayout(new GridLayout(1, 2, 5, 5)); - // Gender text field JLabel gLabel = new JLabel(this.getBundle().getString("AddressbookFrame.gender.text")); @@ -671,53 +750,23 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Init gender combo box with tool tip JComboBox gender = new JComboBox<>(new DefaultComboBoxModel<>(genders)); - gender.setToolTipText(this.getBundle().getString("AddressbookFrame.gender.tooltipText")); + gender.setToolTipText(this.getBundle().getString("AddressbookFrame.gender.toolTipText")); // Add both to gender panel - gPanel.add(gLabel); - gPanel.add(gender); - - // Add gender panel to "name" panel - namePanel.add(gPanel); - - // Panel for surname - JPanel sPanel = new JPanel(); - sPanel.setLayout(new GridLayout(1, 2, 5, 5)); - - // New label for surname is not needed - JLabel sLabel = new JLabel(this.getBundle().getString("AddressbookFrame.surname.text")); - - // And input box wih tool tip - JTextField surname = new JTextField(20); - surname.setToolTipText(this.getBundle().getString("AddressbookFrame.surname.tooltipText")); + namePanel.add(gLabel); + namePanel.add(gender); - // Add both to surname panel - sPanel.add(sLabel); - sPanel.add(surname); + // Add text field for surname + this.addTextFieldWithLabelToPanel(namePanel, "surname", 20); //NOI18N - // Add surname panel to "name" panel - namePanel.add(sPanel); - - // Panel for surname - JPanel fPanel = new JPanel(); - fPanel.setLayout(new GridLayout(1, 2)); - - // New label for surname is not needed - JLabel fLabel = new JLabel(this.getBundle().getString("AddressbookFrame.familyName.text")); - - // And input box wih tool tip - JTextField familyName = new JTextField(20); - familyName.setToolTipText(this.getBundle().getString("AddressbookFrame.familyName.tooltipText")); - - // Add both to surname panel - fPanel.add(fLabel); - fPanel.add(familyName); - - // Add family namepanel to "name" panel - namePanel.add(fPanel); + // Add text field for family name + this.addTextFieldWithLabelToPanel(namePanel, "familyName", 20); //NOI18N // Finally add panel to dialog dialog.add(namePanel); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -727,30 +776,66 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame * @todo Fill this with life */ private void initOtherDataPanel (final JDialog dialog) { + // Trace message + this.getLogger().trace(MessageFormat.format("dialog={0} - CALLED!", dialog)); //NOI18N + // Panel "other" input boxes JPanel otherPanel = new JPanel(); - otherPanel.setLayout(new BoxLayout(otherPanel, BoxLayout.Y_AXIS)); - - // Set border to titled version + otherPanel.setLayout(new GridLayout(0, 2, 3, 3)); otherPanel.setBorder(new TitledBorder(this.generateBorderTitle("other"))); //NOI18N + // Add text field for email address + this.addTextFieldWithLabelToPanel(otherPanel, "emailAddress", 20); //NOI18N + + // Add text field for phone number + this.addTextFieldWithLabelToPanel(otherPanel, "phoneNumber", 20); //NOI18N + + // Add text field for cellphone number + this.addTextFieldWithLabelToPanel(otherPanel, "cellphoneNumber", 20); //NOI18N + + // Add text field for fax number + this.addTextFieldWithLabelToPanel(otherPanel, "faxNumber", 20); //NOI18N + + // Init label + JLabel commentLabel = new JLabel(this.getBundle().getString("AddressbookFrame.comment.text")); + + // Init text area with tool tip + JTextArea comment = new JTextArea(5, 20); + comment.setToolTipText(this.getBundle().getString("AddressbookFrame.comment.toolTipText")); + + // Add both to panel + otherPanel.add(commentLabel); + otherPanel.add(comment); + // Finally add panel to dialog dialog.add(otherPanel); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** * Initialize other dialogs (e.g. "Add contact") */ private void initOtherDialogs () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Init other windows: // 1) Add contact initAddContactDialog(); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** * Initializes status panel */ private void initStatusPanel () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Init status label (which needs to be updated this.statusLabel = new JLabel(); this.updateStatus("initializing"); //NOI18N @@ -763,12 +848,18 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Add panel to frame this.frame.add(panel, BorderLayout.SOUTH); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** * Initializes the table which will show all contacts */ private void initTable () { + // Trace message + this.getLogger().trace("CALLED!"); //NOI18N + // Instance table model this.dataModel = new ContactTableModel(this.getClient()); @@ -798,6 +889,9 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame // Add pane to frame this.frame.add(scroller, BorderLayout.CENTER); + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N } /** @@ -806,7 +900,87 @@ public class AddressbookFrame extends BaseFrameworkSystem implements ClientFrame * @param type Status type */ private void updateStatus (final String type) { + // Trace message + this.getLogger().trace(MessageFormat.format("type={0} - CALLED!", type)); //NOI18N + // Set status message this.statusLabel.setText(this.getBundle().getString(String.format("AddressbookFrame.statusLabel.%s.text", type))); //NOI18N + + // Trace message + this.getLogger().trace("EXIT!"); //NOI18N + } + + /** + * Class for "add address" button + */ + private static class AddActionListener extends BaseAddressbookSystem implements ActionListener { + /** + * Dialog instance + */ + private final JDialog dialog; + + /** + * Frame (not JFrame) instance + */ + private final ClientFrame frame; + + /** + * Constructor for action listener + * + * @param dialog Dialog instance to call back + * @param frame Frame instance (not JFrame) + */ + protected AddActionListener (final JDialog dialog, final ClientFrame frame) { + // Set dialog and frame here + this.dialog = dialog; + this.frame = frame; + } + + /** + * If the action has been performed + * + * @param e The performed action event + */ + @Override + public void actionPerformed (final ActionEvent e) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + } + + /** + * Class for "cancel address" button + */ + private static class CancelActionListener extends BaseAddressbookSystem implements ActionListener { + /** + * Dialog instance + */ + private final JDialog dialog; + + /** + * Frame (not JFrame) instance + */ + private final ClientFrame frame; + + /** + * Constructor for action listener + * + * @param dialog Dialog instance to call back + * @param frame Frame instance (not JFrame) + */ + protected CancelActionListener (final JDialog dialog, final ClientFrame frame) { + // Set dialog and frame here + this.dialog = dialog; + this.frame = frame; + } + + /** + * If the action has been performed + * + * @param e The performed action event + */ + @Override + public void actionPerformed (final ActionEvent e) { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } }