whitespace fixups
[jSite2.git] / src / net / pterodactylus / jsite / gui / AboutDialog.java
index a8ae223..8f79a52 100644 (file)
@@ -55,15 +55,18 @@ import net.pterodactylus.util.swing.SwingUtils;
  * An “about” dialog.
  *
  * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
  */
 public class AboutDialog extends JDialog implements I18nable {
 
        /** A list of all contributors. */
        private static final List<Contributor> CONTRIBUTORS = new ArrayList<Contributor>();
 
+       /** A list of all code usages. */
+       private static final List<CodeUsage> CODE_USAGES = new ArrayList<CodeUsage>();
+
        static {
                CONTRIBUTORS.add(new Contributor("David ‘Bombe’ Roden", "bombe@freenetproject.org", "Main code"));
+               CODE_USAGES.add(new CodeUsage("Tango Desktop Project", "http://tango.freedesktop.org/", "Creative Commons Attribution-Share Alike 2.5", "Icons"));
        }
 
        /** The “okay” button action. */
@@ -78,6 +81,9 @@ public class AboutDialog extends JDialog implements I18nable {
        /** The i18n maintainer’s name label. */
        private JLabel i18nMaintainerNameLabel;
 
+       /** The “other people’s code used” label. */
+       private I18nLabel codeUsageLabel;
+
        /** The license header. */
        private I18nLabel licenseHeaderLabel;
 
@@ -164,7 +170,7 @@ public class AboutDialog extends JDialog implements I18nable {
                textPanel.add(Box.createVerticalStrut(12));
                contributorsLabel.setFont(contributorsLabel.getFont().deriveFont(Font.BOLD));
 
-               for (Contributor contributor: CONTRIBUTORS) {
+               for (Contributor contributor : CONTRIBUTORS) {
                        JLabel contributorLabel = new JLabel(contributor.getName() + " <" + contributor.getEmail() + "> (" + contributor.getPart() + ")");
                        textPanel.add(contributorLabel);
                }
@@ -177,6 +183,17 @@ public class AboutDialog extends JDialog implements I18nable {
 
                i18nMaintainerNameLabel = new JLabel(I18n.get("i18n.maintainer.name") + " <" + I18n.get("i18n.maintainer.email") + ">");
                textPanel.add(i18nMaintainerNameLabel);
+               textPanel.add(Box.createVerticalStrut(24));
+
+               codeUsageLabel = new I18nLabel("aboutDialog.page.about.label.codeUsage");
+               codeUsageLabel.setFont(codeUsageLabel.getFont().deriveFont(Font.BOLD));
+               textPanel.add(codeUsageLabel);
+               textPanel.add(Box.createVerticalStrut(12));
+
+               for (CodeUsage codeUsage : CODE_USAGES) {
+                       JLabel usageLabel = new JLabel(codeUsage.getName() + " (" + codeUsage.getURL() + ", " + codeUsage.getLicense() + ")");
+                       textPanel.add(usageLabel);
+               }
 
                return aboutPanel;
        }
@@ -253,6 +270,7 @@ public class AboutDialog extends JDialog implements I18nable {
                contributorsLabel.updateI18n();
                licenseHeaderLabel.updateI18n();
                i18nMaintainerLabel.updateI18n();
+               codeUsageLabel.updateI18n();
                i18nMaintainerNameLabel.setText(I18n.get("i18n.maintainer.name") + " <" + I18n.get("i18n.maintainer.email") + ">");
                okayAction.updateI18n();
                setTitle(I18n.get("aboutDialog.title"));
@@ -267,7 +285,6 @@ public class AboutDialog extends JDialog implements I18nable {
         * Container for a contributor.
         *
         * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
-        * @version $Id$
         */
        private static class Contributor {
 
@@ -325,4 +342,81 @@ public class AboutDialog extends JDialog implements I18nable {
 
        }
 
+       /**
+        * A code usage object describes code or other resources that have been
+        * taken from other projects.
+        *
+        * @author David ‘Bombe’ Roden &lt;bombe@freenetproject.org&gt;
+        */
+       private static class CodeUsage {
+
+               /** The name of the project. */
+               private final String name;
+
+               /** The URL of the project. */
+               private final String url;
+
+               /** The license of the project. */
+               private final String license;
+
+               /** The part that is used. */
+               private final String part;
+
+               /**
+                * Creates a new code usage object.
+                *
+                * @param name
+                *            The name of the project
+                * @param url
+                *            The URL of the project
+                * @param license
+                *            The license of the used code
+                * @param part
+                *            The part that is used
+                */
+               public CodeUsage(String name, String url, String license, String part) {
+                       this.name = name;
+                       this.url = url;
+                       this.license = license;
+                       this.part = part;
+               }
+
+               /**
+                * Returns the name of the project.
+                *
+                * @return The name of the project
+                */
+               public String getName() {
+                       return name;
+               }
+
+               /**
+                * Returns the URL of the project.
+                *
+                * @return The URL of the project
+                */
+               public String getURL() {
+                       return url;
+               }
+
+               /**
+                * Returns the license of the used part.
+                *
+                * @return The license of the used part
+                */
+               public String getLicense() {
+                       return license;
+               }
+
+               /**
+                * Returns the used part.
+                *
+                * @return The used part
+                */
+               public String getPart() {
+                       return part;
+               }
+
+       }
+
 }