Revision: 17900
http://sourceforge.net/p/gate/code/17900
Author: markagreenwood
Date: 2014-04-24 12:51:01 +0000 (Thu, 24 Apr 2014)
Log Message:
-----------
features in the annotation stack tooltips should now be in alphabetical order
Modified Paths:
--------------
gate/trunk/src/main/gate/gui/docview/AnnotationStack.java
Modified: gate/trunk/src/main/gate/gui/docview/AnnotationStack.java
===================================================================
--- gate/trunk/src/main/gate/gui/docview/AnnotationStack.java 2014-04-24
11:19:04 UTC (rev 17899)
+++ gate/trunk/src/main/gate/gui/docview/AnnotationStack.java 2014-04-24
12:51:01 UTC (rev 17900)
@@ -13,22 +13,37 @@
package gate.gui.docview;
+import gate.FeatureMap;
import gate.Node;
-import gate.FeatureMap;
+import gate.annotation.NodeImpl;
import gate.util.Strings;
-import gate.annotation.NodeImpl;
-import javax.swing.*;
-import javax.swing.event.MouseInputAdapter;
+import java.awt.Color;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.swing.BorderFactory;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.UIManager;
import javax.swing.border.CompoundBorder;
+import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
-import javax.swing.border.EmptyBorder;
+import javax.swing.event.MouseInputAdapter;
import org.apache.commons.lang.StringEscapeUtils;
-import java.util.*;
-import java.awt.*;
-
/**
* Stack of annotations in a JPanel.
* <br><br>
@@ -340,15 +355,26 @@
Integer.toHexString(color.getGreen()) +
Integer.toHexString(color.getBlue());
boolean odd = false; // alternate background color every other row
- for(Map.Entry<Object, Object> map : ann.getFeatures().entrySet()) {
+
+ List<Object> features = new
ArrayList<Object>(ann.getFeatures().keySet());
+ //sort the features into alphabetical order
+ Collections.sort(features, new Comparator<Object>() {
+ @Override
+ public int compare(Object o1, Object o2) {
+ return o1.toString().compareToIgnoreCase(o2.toString());
+ }
+ });
+
+ for (Object key : features) {
+ String fv = Strings.toString(ann.getFeatures().get(key));
toolTip +="<tr align=\"left\""
+ (odd?" bgcolor=\"#"+hexColor+"\"":"")+"><td><strong>"
- + map.getKey() + "</strong></td><td>"
- + ((Strings.toString(map.getValue()).length() > 500) ?
+ + key + "</strong></td><td>"
+ + ((fv.length() > 500) ?
"<textarea rows=\"20\" cols=\"40\" cellspacing=\"0\">"
- +
StringEscapeUtils.escapeHtml(Strings.toString(map.getValue()).replaceAll("(.{50,60})\\b",
"$1\n"))
+ + StringEscapeUtils.escapeHtml(fv.replaceAll("(.{50,60})\\b",
"$1\n"))
+ "</textarea>" :
-
StringEscapeUtils.escapeHtml(Strings.toString(map.getValue())).replaceAll("\n",
"<br>"))
+ StringEscapeUtils.escapeHtml(fv).replaceAll("\n", "<br>"))
+ "</td></tr>";
odd = !odd;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs