diff --git a/src/eva2/tools/StringSelection.java b/src/eva2/tools/StringSelection.java index 2c41b90d..ecb6cbed 100644 --- a/src/eva2/tools/StringSelection.java +++ b/src/eva2/tools/StringSelection.java @@ -18,25 +18,28 @@ import eva2.gui.BeanInspector; public class StringSelection implements Serializable { private static final long serialVersionUID = -1512329288445831907L; private String[] strObjects; + private String[] toolTips; boolean[] selStates; private transient HashMap stringToIndexHash = null; private transient Class enumClass = null; - public StringSelection(String[] sArr) { + public StringSelection(String[] sArr, String[] tips) { strObjects = sArr; + toolTips=tips; selStates=new boolean[sArr.length]; stringToIndexHash = null; enumClass = null; } - public StringSelection(String[] sArr, int initialSel) { - this(sArr); + public StringSelection(String[] sArr, String[] tips, int initialSel) { + this(sArr, tips); if (initialSel e) { + public StringSelection(Enum e, String[] tips) { strObjects = new String[e.getClass().getEnumConstants().length]; + toolTips=tips; selStates = new boolean[strObjects.length]; for (int i = 0; i < strObjects.length; i++) { strObjects[i] = e.getClass().getEnumConstants()[i].toString(); @@ -49,6 +52,7 @@ public class StringSelection implements Serializable { public StringSelection(StringSelection stringSelection) { strObjects = stringSelection.strObjects.clone(); selStates = stringSelection.selStates.clone(); + toolTips = stringSelection.toolTips.clone(); stringToIndexHash = null; enumClass = stringSelection.enumClass; } @@ -60,9 +64,10 @@ public class StringSelection implements Serializable { * @param e * @param headerFields */ - public StringSelection(Enum e, - List headerFields) { - this(ToolBox.appendEnumAndArray(e, headerFields.toArray(new String[headerFields.size()]))); + public StringSelection(Enum e, String[] enumTips, + List headerFields, String[] addTips) { + this(ToolBox.appendEnumAndArray(e, headerFields.toArray(new String[headerFields.size()])), + ToolBox.appendArrays(enumTips, addTips)); enumClass = e.getClass(); } @@ -78,6 +83,11 @@ public class StringSelection implements Serializable { return strObjects[i]; } + public String getElementInfo(int i) { + if (toolTips!=null && (toolTips.length>i)) return toolTips[i]; + else return null; + } + public String[] getStrings() { return strObjects; } diff --git a/src/eva2/tools/ToolBox.java b/src/eva2/tools/ToolBox.java index 65931dc5..0c5c73f4 100644 --- a/src/eva2/tools/ToolBox.java +++ b/src/eva2/tools/ToolBox.java @@ -29,19 +29,44 @@ public class ToolBox { return ret; } + /** + * Append two String arrays. If both are null, null is returned. + * + * @param strArr1 + * @param strArr2 + * @return + */ public static String[] appendArrays(String[] strArr1, String[] strArr2) { + if (strArr1==null) return strArr2; + if (strArr2==null) return strArr1; String[] ret = new String[strArr1.length + strArr2.length]; System.arraycopy(strArr1, 0, ret, 0, strArr1.length); System.arraycopy(strArr2, 0, ret, strArr1.length, strArr2.length); return ret; } - public static Object[] appendArrays(Object[] strArr1, - Object[] strArr2) { - Object[] ret = new Object[strArr1.length + strArr2.length]; + public static String[] appendArrays(String[] strArr1, + String str) { + String[] ret = new String[strArr1.length+1]; System.arraycopy(strArr1, 0, ret, 0, strArr1.length); - System.arraycopy(strArr2, 0, ret, strArr1.length, strArr2.length); + ret[ret.length-1]=str; + return ret; + } + + public static Object[] appendArrays(Object[] objArr1, + Object o) { + Object[] ret = new Object[objArr1.length + 1]; + System.arraycopy(objArr1, 0, ret, 0, objArr1.length); + ret[ret.length-1]=o; + return ret; + } + + public static Object[] appendArrays(Object[] objArr1, + Object[] objArr2) { + Object[] ret = new Object[objArr1.length + objArr2.length]; + System.arraycopy(objArr1, 0, ret, 0, objArr1.length); + System.arraycopy(objArr2, 0, ret, objArr1.length, objArr2.length); return ret; }