From c886e3749577e73c0d5a3779bd5db8eed126e70a Mon Sep 17 00:00:00 2001 From: serge-rider Date: Sat, 2 Mar 2019 00:00:57 +0300 Subject: [PATCH] #89 Version update dialog --- .../update/DBeaverVersionChecker.java | 1 + .../update/VersionUpdateDialog.java | 39 ++++++++++++++++++- .../registry/updater/VersionDescriptor.java | 11 ++++++ 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/DBeaverVersionChecker.java b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/DBeaverVersionChecker.java index 66c12abb77..55f4b04e6e 100644 --- a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/DBeaverVersionChecker.java +++ b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/DBeaverVersionChecker.java @@ -30,6 +30,7 @@ import org.jkiss.dbeaver.registry.updater.VersionDescriptor; import org.jkiss.dbeaver.runtime.DBWorkbench; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.utils.GeneralUtils; +import org.osgi.framework.Version; import java.io.IOException; import java.util.Calendar; diff --git a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/VersionUpdateDialog.java b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/VersionUpdateDialog.java index cb32332e34..69445a6625 100644 --- a/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/VersionUpdateDialog.java +++ b/plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/update/VersionUpdateDialog.java @@ -32,6 +32,7 @@ import org.jkiss.dbeaver.registry.updater.VersionDescriptor; import org.jkiss.dbeaver.ui.ActionUtils; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.utils.GeneralUtils; +import org.jkiss.utils.CommonUtils; public class VersionUpdateDialog extends Dialog { @@ -56,6 +57,10 @@ public class VersionUpdateDialog extends Dialog { return showConfig; } + public Font getBoldFont() { + return boldFont; + } + @Override protected boolean isResizable() { return true; @@ -100,10 +105,16 @@ public class VersionUpdateDialog extends Dialog { notesLabel.setLayoutData(gd); final Text notesText = new Text(propGroup, SWT.READ_ONLY | SWT.WRAP | SWT.V_SCROLL); - notesText.setText(newVersion.getReleaseNotes()); + String releaseNotes = CommonUtils.notEmpty(newVersion.getReleaseNotes()); + if (releaseNotes.isEmpty()) { + releaseNotes = "No release notes"; + } + releaseNotes = formatReleaseNotes(releaseNotes); + + notesText.setText(releaseNotes); gd = new GridData(GridData.FILL_BOTH); gd.horizontalSpan = 2; - gd.heightHint = notesText.getLineHeight() * 20; + //gd.heightHint = notesText.getLineHeight() * 20; notesText.setLayoutData(gd); final Label hintLabel = new Label(propGroup, SWT.NONE); @@ -119,6 +130,30 @@ public class VersionUpdateDialog extends Dialog { return parent; } + private static String formatReleaseNotes(String releaseNotes) { + while (releaseNotes.startsWith("\n")) { + releaseNotes = releaseNotes.substring(1); + } + String[] rnLines = releaseNotes.split("\n"); + int leadSpacesNum = 0; + for (int i = 0; i < rnLines[0].length(); i++) { + if (rnLines[0].charAt(i) == ' ') { + leadSpacesNum++; + } else { + break; + } + } + StringBuilder result = new StringBuilder(); + for (String rnLine : rnLines) { + if (rnLine.length() > leadSpacesNum) { + if (result.length() > 0) result.append("\n"); + result.append(rnLine.substring(leadSpacesNum)); + } + } + + return result.toString(); + } + protected void createTopArea(Composite composite) { } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/updater/VersionDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/updater/VersionDescriptor.java index 336387b5cc..ff9086d4ed 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/updater/VersionDescriptor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/updater/VersionDescriptor.java @@ -27,8 +27,11 @@ import org.xml.sax.Attributes; import java.io.IOException; import java.io.InputStream; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; +import java.util.Date; import java.util.List; /** @@ -78,6 +81,14 @@ public class VersionDescriptor { this.updateTime = updateTime; } + public Date getVersionReleaseTimestamp() { + try { + return new SimpleDateFormat("dd.MM.yyyy").parse(updateTime); + } catch (ParseException e) { + return new Date(); + } + } + public String getBaseURL() { return baseURL; } -- GitLab