提交 c886e374 编写于 作者: S serge-rider

#89 Version update dialog

上级 324714b5
......@@ -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;
......
......@@ -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) {
}
......
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册