/** 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. */
/** 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;
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;
}
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"));
}
+ /**
+ * A code usage object describes code or other resources that have been
+ * taken from other projects.
+ *
+ * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
+ */
+ 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;
+ }
+
+ }
+
}