You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/08/30 02:48:44 UTC
openmeetings git commit: [OPENMEETINGS-1685] language export is fixed
to to produce ordered startings
Repository: openmeetings
Updated Branches:
refs/heads/master d7ab3a96c -> 99ede5cab
[OPENMEETINGS-1685] language export is fixed to to produce ordered startings
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/99ede5ca
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/99ede5ca
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/99ede5ca
Branch: refs/heads/master
Commit: 99ede5cabaeb499c3fe5cb3643c572d247a9672b
Parents: d7ab3a9
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Wed Aug 30 09:48:37 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Wed Aug 30 09:48:37 2017 +0700
----------------------------------------------------------------------
.../openmeetings/db/dao/label/LabelDao.java | 49 +++++++++++++-------
.../org/apache/openmeetings/util/XmlExport.java | 23 ++++-----
2 files changed, 43 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/99ede5ca/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
----------------------------------------------------------------------
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
index e02a11b..18ad071 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
@@ -138,7 +138,8 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
private static void storeLabels(Locale l) throws Exception {
Document d = XmlExport.createDocument();
Element r = XmlExport.createRoot(d);
- List<StringLabel> labels = labelCache.get(l);
+ List<StringLabel> labels = new ArrayList<>(labelCache.get(l));
+ Collections.sort(labels, new LabelComparator());
for (StringLabel sl : labels) {
r.addElement(ENTRY_ELEMENT).addAttribute(KEY_ATTR, sl.getKey()).addCDATA(sl.getValue());
}
@@ -218,23 +219,7 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
public List<StringLabel> get(Locale l, final String search, int start, int count, final SortParam<String> sort) {
List<StringLabel> result = getLabels(l, search);
if (sort != null) {
- Collections.sort(result, new Comparator<StringLabel>() {
- @Override
- public int compare(StringLabel o1, StringLabel o2) {
- int val = 0;
- if (KEY_ATTR.equals(sort.getProperty())) {
- try {
- int i1 = Integer.parseInt(o1.getKey()), i2 = Integer.parseInt(o2.getKey());
- val = i1 - i2;
- } catch (Exception e) {
- val = o1.getKey().compareTo(o2.getKey());
- }
- } else {
- val = o1.getValue().compareTo(o2.getValue());
- }
- return (sort.isAscending() ? 1 : -1) * val;
- }
- });
+ Collections.sort(result, new LabelComparator(sort));
}
return result.subList(start, start + count > result.size() ? result.size() : start + count);
}
@@ -302,4 +287,32 @@ public class LabelDao implements IDataProviderDao<StringLabel>{
log.error("Unexpected error while deleting language", e);
}
}
+
+ private static class LabelComparator implements Comparator<StringLabel> {
+ final SortParam<String> sort;
+
+ LabelComparator() {
+ this.sort = new SortParam<>(KEY_ATTR, true);
+ }
+
+ LabelComparator(SortParam<String> sort) {
+ this.sort = sort;
+ }
+
+ @Override
+ public int compare(StringLabel o1, StringLabel o2) {
+ int val = 0;
+ if (KEY_ATTR.equals(sort.getProperty())) {
+ try {
+ int i1 = Integer.parseInt(o1.getKey()), i2 = Integer.parseInt(o2.getKey());
+ val = i1 - i2;
+ } catch (Exception e) {
+ val = o1.getKey().compareTo(o2.getKey());
+ }
+ } else {
+ val = o1.getValue().compareTo(o2.getValue());
+ }
+ return (sort.isAscending() ? 1 : -1) * val;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/99ede5ca/openmeetings-util/src/main/java/org/apache/openmeetings/util/XmlExport.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/XmlExport.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/XmlExport.java
index 07ebab3..a010bfa 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/XmlExport.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/XmlExport.java
@@ -33,9 +33,9 @@ import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
- *
+ *
* @author sebastianwagner
- *
+ *
*/
public class XmlExport {
public static final String FILE_COMMENT = ""
@@ -58,11 +58,10 @@ public class XmlExport {
+ " under the License.\n"
+ "\n"
+ "\n"
- + "\n"
+ "###############################################\n"
- + "This File is auto-generated by the LanguageEditor \n"
- + "to add new Languages or modify/customize it use the LanguageEditor \n"
- + "see http://openmeetings.apache.org/LanguageEditor.html for Details \n"
+ + "This File is auto-generated by the LanguageEditor\n"
+ + "to add new Languages or modify/customize it use the LanguageEditor\n"
+ + "see http://openmeetings.apache.org/LanguageEditor.html for Details\n"
+ "###############################################\n";
public static Document createDocument() {
@@ -71,20 +70,22 @@ public class XmlExport {
document.addComment(XmlExport.FILE_COMMENT);
return document;
}
-
+
public static Element createRoot(Document document) {
document.addDocType("properties", null, "http://java.sun.com/dtd/properties.dtd");
Element root = document.addElement("properties");
return root;
}
-
+
public static Element createRoot(Document document, String _root) {
Element root = document.addElement(_root);
return root;
}
-
+
public static void toXml(Writer out, Document doc) throws Exception {
OutputFormat outformat = OutputFormat.createPrettyPrint();
+ outformat.setIndentSize(1);
+ outformat.setIndent("\t");
outformat.setEncoding(UTF_8.name());
XMLWriter writer = new XMLWriter(out, outformat);
writer.write(doc);
@@ -92,11 +93,11 @@ public class XmlExport {
out.flush();
out.close();
}
-
+
public static void toXml(File f, Document doc) throws Exception {
toXml(new FileOutputStream(f), doc);
}
-
+
public static void toXml(OutputStream out, Document doc) throws Exception {
toXml(new OutputStreamWriter(out, "UTF8"), doc);
}