import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
import javax.swing.Action;
import javax.swing.Box;
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
* @version $Id$
*/
-public class MainWindow extends JFrame implements I18nable {
+public class MainWindow extends JFrame implements WindowListener, I18nable {
/** The swing interface that receives all actions. */
private final SwingInterface swingInterface;
pack();
SwingUtils.center(this);
I18n.registerI18nable(this);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ addWindowListener(this);
}
//
for (Action nodeConnectAction: swingInterface.getNodeConnectActions()) {
connectMenu.add(nodeConnectAction);
}
+ if (connectMenu.getMenuComponentCount() == 0) {
+ JMenuItem noNodeAvailableItem = new JMenuItem(I18n.get("mainWindow.menu.connectNoNodeAvailable.name"));
+ noNodeAvailableItem.setEnabled(false);
+ connectMenu.add(noNodeAvailableItem);
+ }
disconnectMenu.removeAll();
for (Action nodeDisconnectAction: swingInterface.getNodeDisconnectActions()) {
disconnectMenu.add(nodeDisconnectAction);
}
+ if (disconnectMenu.getMenuComponentCount() == 0) {
+ JMenuItem noNodeAvailableItem = new JMenuItem(I18n.get("mainWindow.menu.disconnectNoNodeAvailable.name"));
+ noNodeAvailableItem.setEnabled(false);
+ disconnectMenu.add(noNodeAvailableItem);
+ }
}
//
nodeMenu.add(connectMenu);
nodeMenu.add(disconnectMenuItem = new FixedJMenuItem(swingInterface.getNodeDisconnectAction()));
nodeMenu.add(disconnectMenu);
+ refreshNodeMenuItems();
languageMenu = new I18nMenu("mainWindow.menu.language");
menuBar.add(languageMenu);
for (int componentIndex = 0; componentIndex < projectPane.getTabCount(); componentIndex++) {
projectPane.setTitleAt(componentIndex, projectPane.getComponentAt(componentIndex).getName());
}
+ refreshNodeMenuItems();
SwingUtils.repackCentered(this);
}
+ //
+ // INTERFACE WindowListener
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowActivated(WindowEvent e) {
+ /* do nothing. */
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowClosed(WindowEvent e) {
+ /* do nothing. */
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowClosing(WindowEvent e) {
+ swingInterface.getQuitAction().actionPerformed(null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowDeactivated(WindowEvent e) {
+ /* do nothing. */
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowDeiconified(WindowEvent e) {
+ /* do nothing. */
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowIconified(WindowEvent e) {
+ /* do nothing. */
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void windowOpened(WindowEvent e) {
+ /* do nothing. */
+ }
+
}