29 import java.awt.Component;
30 import java.lang.reflect.Array;
31 import java.util.Collection;
32 import java.util.Map;
33 import javax.swing.JEditorPane;
34 import javax.swing.JScrollPane;
35
36 class XArrayDataViewer {
37
38 private XArrayDataViewer() {}
39
40 public static boolean isViewableValue(Object value) {
41 return Utils.canBeRenderedAsArray(value);
42 }
43
44 public static Component loadArray(Object value) {
45 Component comp = null;
46 if (isViewableValue(value)) {
47 Object[] arr;
48 if (value instanceof Collection) {
49 arr = ((Collection) value).toArray();
50 } else if (value instanceof Map) {
51 arr = ((Map) value).entrySet().toArray();
52 } else if (value instanceof Object[]) {
53 arr = (Object[]) value;
54 } else {
55 int length = Array.getLength(value);
56 arr = new Object[length];
57 for (int i = 0; i < length; i++) {
58 arr[i] = Array.get(value, i);
59 }
60 }
61 JEditorPane arrayEditor = new JEditorPane();
62 arrayEditor.setContentType("text/html");
63 arrayEditor.setEditable(false);
64 Color evenRowColor = arrayEditor.getBackground();
65 int red = evenRowColor.getRed();
66 int green = evenRowColor.getGreen();
67 int blue = evenRowColor.getBlue();
68 String evenRowColorStr =
69 "rgb(" + red + "," + green + "," + blue + ")";
70 Color oddRowColor = new Color(
71 red < 20 ? red + 20 : red - 20,
|
29 import java.awt.Component;
30 import java.lang.reflect.Array;
31 import java.util.Collection;
32 import java.util.Map;
33 import javax.swing.JEditorPane;
34 import javax.swing.JScrollPane;
35
36 class XArrayDataViewer {
37
38 private XArrayDataViewer() {}
39
40 public static boolean isViewableValue(Object value) {
41 return Utils.canBeRenderedAsArray(value);
42 }
43
44 public static Component loadArray(Object value) {
45 Component comp = null;
46 if (isViewableValue(value)) {
47 Object[] arr;
48 if (value instanceof Collection) {
49 arr = ((Collection<?>) value).toArray();
50 } else if (value instanceof Map) {
51 arr = ((Map<?,?>) value).entrySet().toArray();
52 } else if (value instanceof Object[]) {
53 arr = (Object[]) value;
54 } else {
55 int length = Array.getLength(value);
56 arr = new Object[length];
57 for (int i = 0; i < length; i++) {
58 arr[i] = Array.get(value, i);
59 }
60 }
61 JEditorPane arrayEditor = new JEditorPane();
62 arrayEditor.setContentType("text/html");
63 arrayEditor.setEditable(false);
64 Color evenRowColor = arrayEditor.getBackground();
65 int red = evenRowColor.getRed();
66 int green = evenRowColor.getGreen();
67 int blue = evenRowColor.getBlue();
68 String evenRowColorStr =
69 "rgb(" + red + "," + green + "," + blue + ")";
70 Color oddRowColor = new Color(
71 red < 20 ? red + 20 : red - 20,
|