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;
// 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.");
+ }
+
+ // Disable main window
+ this.frame.setEnabled(false);
+
+ // Make other window visible
+ this.addContact.setVisible(true);
+
+ // Trace message
+ this.getLogger().trace("Returning null : EXIT!"); //NOI18N
+
+ // Return value is not supported
+ return null;
}
/**
*/
@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
+ }
+
+
+ /**
+ * Enables main window (frame)
+ */
+ @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
}
/**
// All done here
this.updateStatus("done"); //NOI18N
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
// Set flag
this.isInitialized = true;
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
*/
@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
}
/**
return title;
}
+ /**
+ * Initializes "add" and "cancel" buttons
+ */
+ private void initAddCancelButtons () {
+ }
+
/**
* Initializes "add contact" dialog
*/
private void initAddContactDialog () {
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
+
// Instance dialog and set title
this.addContact = new JDialog();
this.addContact.setTitle(this.generateFrameTitle("dialog.addContact")); //NOI18N
// 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);
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
* Initializes address panel
+ *
+ * @param dialog A JDialog instance to this components to
*/
- private void initAddressDataPanel () {
+ 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.add(zipCityPanel);
// Add panel to dialog
- this.addContact.add(addressPanel);
+ dialog.add(addressPanel);
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
// Init other windows
initOtherDialogs();
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
* 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;
// Add menu bar -> frame
this.frame.add(menuBar, BorderLayout.NORTH);
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
* Initializes name panel
+ *
+ * @param dialog A JDialog instance to this components to
*/
- private void initNameDataPanel () {
+ private void initNameDataPanel (final JDialog dialog) {
+ // Trace message
+ this.getLogger().trace("CALLED!"); //NOI18N
+
// Panel "name" input boxes
JPanel namePanel = new JPanel();
namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.Y_AXIS));
namePanel.add(fPanel);
// Finally add panel to dialog
- this.addContact.add(namePanel);
+ dialog.add(namePanel);
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
* 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) {
+ // Trace message
+ this.getLogger().trace("CALLED!"); //NOI18N
+
+ // 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);
+
+ // 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
// 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());
// Add pane to frame
this.frame.add(scroller, BorderLayout.CENTER);
+
+ // Trace message
+ this.getLogger().trace("EXIT!"); //NOI18N
}
/**
* @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
}
}