Generate Cayenne docs link and copyright year at runtime
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DocumentationAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DocumentationAction.java
index 5403d9c..7c01a3e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DocumentationAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DocumentationAction.java
@@ -24,10 +24,11 @@
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.util.BrowserControl;
import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.util.LocalizedStringsHandler;
public class DocumentationAction extends CayenneAction {
- public final static String getActionName() {
+ public static String getActionName() {
return "Documentation";
}
@@ -35,7 +36,14 @@
super(getActionName(), application);
}
+ @Override
public void performAction(ActionEvent e) {
- BrowserControl.displayURL("http://cayenne.apache.org");
+ String version = LocalizedStringsHandler.getString("cayenne.version");
+ String url = "https://cayenne.apache.org";
+ if(!"".equals(version)) {
+ String majorVersion = version.substring(0, version.lastIndexOf('.'));
+ url = url + "/docs/" + majorVersion + "/cayenne-guide/";
+ }
+ BrowserControl.displayURL(url);
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/AboutDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/AboutDialog.java
index a811a74..097a2a0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/AboutDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/AboutDialog.java
@@ -30,6 +30,7 @@
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+import java.time.LocalDate;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
@@ -49,7 +50,6 @@
// triad, though it might be beneficial to use strings file
public class AboutDialog extends JFrame implements FocusListener, KeyListener, MouseListener {
- private JLabel license, info;
private static String infoString;
private static ImageIcon logoImage;
@@ -70,20 +70,18 @@
double totalMemory = (double) Runtime.getRuntime().totalMemory() / 1024 / 1024;
double freeMemory = (double) Runtime.getRuntime().freeMemory() / 1024 / 1024;
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
buffer.append("<html>");
buffer.append("<font size='-1' face='Arial,Helvetica'>");
- buffer.append(ModelerUtil.getProperty("cayenne.modeler.about.info"));
+ buffer.append(String.format(ModelerUtil.getProperty("cayenne.modeler.about.info"), LocalDate.now().getYear()));
buffer.append("</font>");
buffer.append("<font size='-2' face='Arial,Helvetica'>");
- buffer.append("<br>JVM: " + System.getProperty("java.vm.name") + " " + System.getProperty("java.version"));
+ buffer.append("<br>JVM: ").append(System.getProperty("java.vm.name")).append(" ").append(System.getProperty("java.version"));
buffer.append(String.format("<br>Memory: used %.2f MB, max %.2f MB", totalMemory - freeMemory, maxMemory));
String version = LocalizedStringsHandler.getString("cayenne.version");
- if (version != null) {
- buffer.append("<br>Version: ").append(version);
- }
+ buffer.append("<br>Version: ").append(version);
String buildDate = LocalizedStringsHandler.getString("cayenne.build.date");
if (!Util.isEmptyString(buildDate)) {
@@ -119,7 +117,7 @@
JLabel image = new JLabel(getLogoImage());
panel.add(image, new GridBagConstraints());
- license = new JLabel();
+ JLabel license = new JLabel();
final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints();
gridBagConstraints_1.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints_1.anchor = GridBagConstraints.NORTHWEST;
@@ -129,7 +127,7 @@
panel.add(license, gridBagConstraints_1);
license.setText("<html><font size='-1' face='Arial,Helvetica'>Available under the Apache license.</font></html>");
- info = new JLabel();
+ JLabel info = new JLabel();
final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints();
gridBagConstraints_2.fill = GridBagConstraints.HORIZONTAL;
gridBagConstraints_2.anchor = GridBagConstraints.NORTHWEST;
diff --git a/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/cayennemodeler-strings.properties b/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/cayennemodeler-strings.properties
index dbc7e95..541b9ba 100644
--- a/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/cayennemodeler-strings.properties
+++ b/modeler/cayenne-modeler/src/main/resources/org/apache/cayenne/modeler/cayennemodeler-strings.properties
@@ -17,8 +17,8 @@
cayenne.bugreport.url = http://issues.apache.org/jira/browse/CAY
-cayenne.modeler.about.info = (c) 2001-2020 Apache Software Foundation and individual authors.\
- <br><br>http://cayenne.apache.org/<br>
+cayenne.modeler.about.info = (c) 2001-%d Apache Software Foundation and individual authors.\
+ <br><br>https://cayenne.apache.org/<br>
# "New Project" dialog.