X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FMainWindow.java;h=92b7ab06bfe22a3bf17198b97b36470c36fd2b8b;hb=2d12592a298c0f2d1b64635d51ad1c5453fc4532;hp=681cc322e2ffaf477bae130a9ba232793301c968;hpb=9177fca9e2b057256ccad6402aa7cabd6f9cf21b;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/gui/MainWindow.java b/src/net/pterodactylus/jsite/gui/MainWindow.java index 681cc32..92b7ab0 100644 --- a/src/net/pterodactylus/jsite/gui/MainWindow.java +++ b/src/net/pterodactylus/jsite/gui/MainWindow.java @@ -24,12 +24,14 @@ import java.awt.Container; import java.awt.Dimension; import javax.swing.JFrame; -import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JToolBar; import net.pterodactylus.jsite.i18n.I18n; +import net.pterodactylus.jsite.i18n.I18nable; +import net.pterodactylus.jsite.i18n.gui.I18nAction; +import net.pterodactylus.jsite.i18n.gui.I18nMenu; import net.pterodactylus.jsite.main.Version; import net.pterodactylus.util.swing.StatusBar; import net.pterodactylus.util.swing.SwingUtils; @@ -40,17 +42,23 @@ import net.pterodactylus.util.swing.SwingUtils; * @author David ‘Bombe’ Roden <bombe@freenetproject.org> * @version $Id$ */ -public class MainWindow extends JFrame { +public class MainWindow extends JFrame implements I18nable { /** The swing interface that receives all actions. */ private final SwingInterface swingInterface; /** The status bar. */ private StatusBar statusBar = new StatusBar(); - + /** The content pane. */ private JPanel contentPane = new JPanel(); + /** The node menu. */ + private I18nMenu nodeMenu; + + /** The language menu. */ + private I18nMenu languageMenu; + /** * Creates a new main window that redirects all actions to the given swing * interface. @@ -65,6 +73,7 @@ public class MainWindow extends JFrame { setPreferredSize(new Dimension(480, 280)); pack(); SwingUtils.center(this); + I18n.registerI18nable(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @@ -92,14 +101,20 @@ public class MainWindow extends JFrame { private void initWindow() { JMenuBar menuBar = new JMenuBar(); - final JMenu nodeMenu = new JMenu(I18n.get("mainWindow.menu.node.name")); + nodeMenu = new I18nMenu("mainWindow.menu.node"); menuBar.add(nodeMenu); - nodeMenu.setMnemonic(I18n.get("mainWindow.menu.node.mnemonic").charAt(0)); - nodeMenu.add(swingInterface.getManageNodesAction()); + nodeMenu.add(new FixedJMenuItem(swingInterface.getManageNodesAction())); nodeMenu.addSeparator(); - nodeMenu.add(swingInterface.getNodeConnectAction()); - nodeMenu.add(swingInterface.getNodeDisconnectAction()); + nodeMenu.add(new FixedJMenuItem(swingInterface.getNodeConnectAction())); + nodeMenu.add(new FixedJMenuItem(swingInterface.getNodeDisconnectAction())); + + languageMenu = new I18nMenu("mainWindow.menu.language"); + menuBar.add(languageMenu); + + for (I18nAction languageAction: swingInterface.getLanguageActions()) { + languageMenu.add(languageAction); + } setJMenuBar(menuBar); @@ -120,7 +135,7 @@ public class MainWindow extends JFrame { private void initComponents() { super.getContentPane().add(statusBar, BorderLayout.PAGE_END); } - + /** * {@inheritDoc} */ @@ -129,4 +144,21 @@ public class MainWindow extends JFrame { return contentPane; } + // + // INTERFACE I18nable + // + + /** + * {@inheritDoc} + */ + public void updateI18n() { + swingInterface.getManageNodesAction().updateI18n(); + swingInterface.getNodeConnectAction().updateI18n(); + swingInterface.getNodeDisconnectAction().updateI18n(); + nodeMenu.updateI18n(); + languageMenu.updateI18n(); + getJMenuBar().revalidate(); + SwingUtils.repackCentered(this); + } + }