import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.MessageFormat;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
+import javax.swing.JTable;
+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.exceptions.FrameAlreadyInitializedException;
+import org.mxchange.addressbook.model.address.AddressTableModel;
/**
*
*/
private JMenuItem addOwnItem;
+ /**
+ * Instance to table model
+ */
+ private TableModel dataModel;
+
+ /**
+ * Table instance
+ */
+ private JTable dataTable;
+
/**
* Frame instance for "edit own data"
*/
@Override
public void doShutdown () {
// First only show shutdown status
- this.statusLabel.setText(this.getBundle().getString("AddressbookFrame.statusLabel.shutdown.text"));
+ this.updateStatus("shutdown");
}
/**
this.frame.setVisible(true);
// All done here
- this.statusLabel.setText(this.getBundle().getString("AddressbookFrame.statusLabel.done.text"));
+ this.updateStatus("done");
}
/**
return this.isInitialized;
}
+ /**
+ * Shuts down the application.
+ */
+ @Override
+ public void shutdownApplication () {
+ // 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.");
+ return;
+ }
+ this.getClient().getApplication().doShutdown();
+ }
+
/**
* Initialize components
*/
@Override
public void windowClosed(final WindowEvent e) {
// Shutdown application cleanly
- self.getClient().getApplication().doShutdown();
+ self.shutdownApplication();
}
/**
@Override
public void windowClosing(final WindowEvent e) {
// Also shutdown cleanly here
- self.getClient().getApplication().doShutdown();
+ self.shutdownApplication();
}
});
// Init menu system
initMenuSystem();
- // Init status label (which needs to be updated
- this.statusLabel = new JLabel(this.getBundle().getString("AddressbookFrame.statusLabel.initializing.text"));
+ // Init table
+ initTable();
// Init status panel
initStatusPanel();
*/
@Override
public void actionPerformed (final ActionEvent e) {
- self.getClient().getApplication().doShutdown();
+ self.shutdownApplication();
}
});
* Initializes status panel
*/
private void initStatusPanel () {
+ // Init status label (which needs to be updated
+ this.statusLabel = new JLabel();
+ this.updateStatus("initializing");
+
// Init status bar in south
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
// Add panel to frame
this.frame.add(panel, BorderLayout.SOUTH);
}
+
+ /**
+ * Initializes the table which will show all contacts
+ */
+ private void initTable () {
+ // Instance table model
+ this.dataModel = new AddressTableModel(this.getClient());
+
+ // Instance table
+ this.dataTable = new JTable(this.dataModel);
+
+ // Add mouse listener
+ this.dataTable.addMouseListener(new MouseAdapter() {
+ /**
+ * If the user peformed a click on a cell
+ *
+ * @param e Mouse event instance
+ */
+ @Override
+ public void mouseClicked(final MouseEvent e) {
+ }
+ });
+
+ // Add table to frame
+ this.frame.add(this.dataTable);
+ }
+
+ /**
+ * Updates status to given type
+ *
+ * @param type Status type
+ */
+ private void updateStatus (final String type) {
+ // Set status message
+ this.statusLabel.setText(this.getBundle().getString("AddressbookFrame.statusLabel." + type + ".text"));
+ }
}