release 1.1.6
[debian/openrocket] / src / net / sf / openrocket / gui / dialogs / AboutDialog.java
index 69146435eb9a94ef5f40d66d786ad7e5ce31d43f..9a10d9c345c1081ebed176ae9705f1d7ea55ca9f 100644 (file)
@@ -10,8 +10,12 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 
 import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.gui.components.DescriptionArea;
 import net.sf.openrocket.gui.components.StyledLabel;
+import net.sf.openrocket.gui.components.StyledLabel.Style;
 import net.sf.openrocket.gui.components.URLLabel;
+import net.sf.openrocket.l10n.Translator;
+import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.Chars;
 import net.sf.openrocket.util.GUIUtil;
 import net.sf.openrocket.util.Icons;
@@ -20,6 +24,21 @@ import net.sf.openrocket.util.Prefs;
 public class AboutDialog extends JDialog {
        
        public static final String OPENROCKET_URL = "http://openrocket.sourceforge.net/";
+       private static final Translator trans = Application.getTranslator();
+       
+       private static final String CREDITS = "<html><center>" +
+                       "<font size=\"+1\"><b>OpenRocket has been developed by:</b></font><br><br>" +
+                       "Sampo Niskanen (main developer)<br>" +
+                       "Doug Pedrick (RockSim file format, printing)<br>" +
+                       "Boris du Reau (internationalization, translation lead)<br><br>" +
+                       "<b>Translations by:</b><br><br>" +
+                       "Tripoli France (French)<br>" +
+                       "Stefan Lobas / ERIG e.V. (German)<br>" +
+                       "Tripoli Spain (Spanish)<br><br>" +
+                       "<b>OpenRocket utilizes the following libraries:</b><br><br>" +
+                       "MiG Layout (http://www.miglayout.com/)<br>" +
+                       "JFreeChart (http://www.jfree.org/jfreechart/)<br>" +
+                       "iText (http://www.itextpdf.com/)";
        
        
        public AboutDialog(JFrame parent) {
@@ -28,28 +47,63 @@ public class AboutDialog extends JDialog {
                final String version = Prefs.getVersion();
                
                JPanel panel = new JPanel(new MigLayout("fill"));
+               JPanel sub;
+               
+
+               // OpenRocket logo
+               panel.add(new JLabel(Icons.loadImageIcon("pix/icon/icon-about.png", "OpenRocket")), "top");
+               
+
+               // OpenRocket version info + copyright
+               sub = new JPanel(new MigLayout("fill"));
+               
+               sub.add(new StyledLabel("OpenRocket", 20), "ax 50%, growy, wrap para");
+               sub.add(new StyledLabel(trans.get("lbl.version").trim() + " " + version, 3), "ax 50%, growy, wrap rel");
+               sub.add(new StyledLabel("Copyright " + Chars.COPY + " 2007-2011 Sampo Niskanen"), "ax 50%, growy, wrap para");
                
-               panel.add(new JLabel(Icons.loadImageIcon("pix/icon/icon-about.png", "OpenRocket")),
-                               "spany 5, top");
+               sub.add(new URLLabel(OPENROCKET_URL), "ax 50%, growy, wrap para");
+               panel.add(sub, "grow");
                
-               panel.add(new StyledLabel("OpenRocket", 20), "ax 50%, growy, wrap para");
-               panel.add(new StyledLabel("Version " + version, 3), "ax 50%, growy, wrap rel");
+
+               // Translation information (if present)
+               String translation = trans.get("lbl.translation").trim();
+               String translator = trans.get("lbl.translator").trim();
+               String translatorWebsite = trans.get("lbl.translatorWebsite").trim();
+               String translatorIcon = trans.get("lbl.translatorIcon").trim();
                
-               //              String source = Prefs.getBuildSource();
-               //              if (!Prefs.DEFAULT_BUILD_SOURCE.equalsIgnoreCase(source)) {
-               //                      panel.add(new StyledLabel("Distributed by " + source, -1), 
-               //                                      "ax 50%, growy, wrap para");
-               //              } else {
-               //                      panel.add(new StyledLabel(" ", -1), "ax 50%, growy, wrap para");
-               //              }
+               if (translator.length() > 0 || translatorWebsite.length() > 0 || translatorIcon.length() > 0) {
+                       sub = new JPanel(new MigLayout("fill"));
+                       
+                       sub.add(new StyledLabel(translation, Style.BOLD), "ax 50%, growy, wrap para");
+                       
+                       if (translatorIcon.length() > 0) {
+                               sub.add(new JLabel(Icons.loadImageIcon("pix/translators/" + translatorIcon, translator)),
+                                               "ax 50%, growy, wrap para");
+                       }
+                       if (translator.length() > 0) {
+                               sub.add(new JLabel(translator), "ax 50%, growy, wrap rel");
+                       }
+                       if (translatorWebsite.length() > 0) {
+                               sub.add(new URLLabel(translatorWebsite), "ax 50%, growy, wrap para");
+                       }
+                       
+                       panel.add(sub);
+               }
                
-               panel.add(new StyledLabel("Copyright " + Chars.COPY + " 2007-2011 Sampo Niskanen"),
-                               "ax 50%, growy, wrap para");
+
+               DescriptionArea info = new DescriptionArea(5);
+               info.setText(CREDITS);
+               panel.add(info, "newline, width 10px, height 100lp, grow, spanx, wrap para");
                
-               panel.add(new URLLabel(OPENROCKET_URL), "ax 50%, growy, wrap para");
+               //              JTextArea area = new JTextArea(CREATORS);
+               //              area.setEditable(false);
+               //              area.setLineWrap(true);
+               //              area.setWrapStyleWord(true);
+               //              panel.add(new JScrollPane(area), "width 10px, height 100lp, grow, spanx, wrap para");
                
 
-               JButton close = new JButton("Close");
+               //Close button
+               JButton close = new JButton(trans.get("button.close"));
                close.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
@@ -67,5 +121,4 @@ public class AboutDialog extends JDialog {
                GUIUtil.setDisposableDialogOptions(this, close);
        }
        
-
 }