// Return instance
return self;
}
+ /**
+ * Frame instance for "add own data"
+ */
+ private JMenuItem addOwnItem;
+
+ /**
+ * Frame instance for "edit own data"
+ */
+ private JMenuItem editOwnItem;
/**
* Frame instance
// Set frame instance
this.frame = new JFrame(AddressbookApplication.printableTitle());
- // Set default close operation
- this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
// Set client here
this.setClient(client);
}
// Debug message
this.getLogger().debug("Disabling menus: isOwnContactAdded()=false");
- // Not entered yet, so enable menu
- //addOwnData.setEnabled(false);
+ // Not entered yet, so disable "add" menu
+ this.addOwnItem.setEnabled(false);
+ } else {
+ // Disable "edit"
+ this.editOwnItem.setEnabled(false);
}
// Make the frame visible
* @throws org.mxchange.addressbook.FrameAlreadyInitializedException If this method has been called twice
*/
@Override
- public void initFrame () throws FrameAlreadyInitializedException {
+ public void init () throws FrameAlreadyInitializedException {
// Debug line
this.getLogger().trace("CALLED!");
// Debug line
this.getLogger().trace("CALLED!");
+ // Set default close operation
+ this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
// Register shutdown listener
this.frame.addWindowListener(new WindowAdapter() {
/**
// Center window in middle of screen, instead of top-left corner
this.frame.setLocationRelativeTo(null);
- // Init menu bar in north
+ // Init menu system
+ initMenuSystem();
+
+ // Init status label (which needs to be updated
+ this.statusLabel = new JLabel(this.getBundle().getString("AddressbookFrame.statusLabel.initializing.text"));
+
+ // Init status panel
+ initStatusPanel();
+ }
+
+ /**
+ * Initializes the menu system
+ */
+ private void initMenuSystem () {
+ // Init menu bar, menu and item instances
JMenuBar menuBar = new JMenuBar();
+ JMenu menu;
+ JMenuItem item;
// Init some menus:
// 1) File menu
- JMenu menu = new JMenu(this.getBundle().getString("AddressbookFrame.menu.file.text"));
+ menu = new JMenu(this.getBundle().getString("AddressbookFrame.menu.file.text"));
// Add menu items:
// 1.x) Exit program (should be last)
- JMenuItem item = new JMenuItem(this.getBundle().getString("AddressbookFrame.menuItem.exitProgram.text"));
+ item = new JMenuItem(this.getBundle().getString("AddressbookFrame.menuItem.exitProgram.text"));
item.setToolTipText(this.getBundle().getString("AddressbookFrame.menuItem.exitProgram.toolTipText"));
// Add listener to exit menu
// Add menu -> menu bar
menuBar.add(menu);
+ // Init some menus:
+ // 2) Addressbook menu
+ 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"));
+
+ // Add listener to exit menu
+ this.addOwnItem.addActionListener(new ActionListener() {
+ /**
+ * If the user has performed this action
+ *
+ * @param e An instance of an ActionEvent class
+ */
+ @Override
+ public void actionPerformed (final ActionEvent e) {
+ self.getClient().getContactManager().doEnterOwnData();
+ }
+ });
+
+ // Add item -> menu
+ 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"));
+
+ // Add listener to exit menu
+ this.editOwnItem.addActionListener(new ActionListener() {
+ /**
+ * If the user has performed this action
+ *
+ * @param e An instance of an ActionEvent class
+ */
+ @Override
+ public void actionPerformed (final ActionEvent e) {
+ self.getClient().getContactManager().doChangeOwnData();
+ }
+ });
+
+ // Add item -> menu
+ menu.add(this.editOwnItem);
+
+ // Add menu -> menu bar
+ menuBar.add(menu);
+
// Add menu bar -> frame
this.frame.add(menuBar, BorderLayout.NORTH);
+ }
- // Init status label (which needs to be updated
- this.statusLabel = new JLabel(this.getBundle().getString("AddressbookFrame.statusLabel.initializing.text"));
-
+ /**
+ * Initializes status panel
+ */
+ private void initStatusPanel () {
// Init status bar in south
- JPanel statusPanel = new JPanel();
- statusPanel.setLayout(new BoxLayout(statusPanel, BoxLayout.X_AXIS));
- statusPanel.add(this.statusLabel);
- statusPanel.setBorder(BorderFactory.createEtchedBorder());
-
+ JPanel panel = new JPanel();
+ panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
+ panel.add(this.statusLabel);
+ panel.setBorder(BorderFactory.createEtchedBorder());
+
// Add panel to frame
- this.frame.add(statusPanel, BorderLayout.SOUTH);
+ this.frame.add(panel, BorderLayout.SOUTH);
}
-
}