From db180661adfdbd9fe5027e342fbb41f5546dbba1 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 23 Jan 2017 14:55:00 +0100 Subject: [PATCH] [FEATURE] Added String array reader, to display in Reflection GUI --- src/main/java/org/parabot/core/ui/ReflectUI.java | 10 ++++++++++ .../parabot/environment/api/utils/StringUtils.java | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/main/java/org/parabot/core/ui/ReflectUI.java b/src/main/java/org/parabot/core/ui/ReflectUI.java index 351ca66..c57a943 100644 --- a/src/main/java/org/parabot/core/ui/ReflectUI.java +++ b/src/main/java/org/parabot/core/ui/ReflectUI.java @@ -5,6 +5,7 @@ import org.parabot.core.asm.ASMClassLoader; import org.parabot.core.classpath.ClassPath; import org.parabot.core.reflect.RefClass; import org.parabot.core.reflect.RefField; +import org.parabot.environment.api.utils.StringUtils; import javax.swing.*; import javax.swing.event.TreeSelectionEvent; @@ -91,6 +92,8 @@ public class ReflectUI extends JFrame { result = f; } else if (value.toLowerCase().endsWith(search.toLowerCase())) { result = f; + } else if (value.toLowerCase().contains(search.toLowerCase())){ + result = f; } } } @@ -238,6 +241,13 @@ public class ReflectUI extends JFrame { builder.append("Type: ").append(refField.getASMType().getClassName()).append("
"); builder.append("Static: ").append(refField.isStatic() ? "yes" : "no").append("
"); builder.append("Array: ").append(refField.isArray() ? refField.getArrayDimensions() + " dimension(s)" : "no").append("
"); + + if (refField.isArray() && refField.getASMType().getClassName().contains("String") && refField.getArrayDimensions() == 1){ + String[] strings = (String[]) refField.asObject(); + String values = StringUtils.implode(", ", strings); + + builder.append("Values: ").append(values).append("
"); + } selectionInfoPane.setText(builder.toString()); fillBasicInfoPane(); diff --git a/src/main/java/org/parabot/environment/api/utils/StringUtils.java b/src/main/java/org/parabot/environment/api/utils/StringUtils.java index 573d5a1..892c75b 100644 --- a/src/main/java/org/parabot/environment/api/utils/StringUtils.java +++ b/src/main/java/org/parabot/environment/api/utils/StringUtils.java @@ -28,6 +28,19 @@ public class StringUtils { return sb.toString(); } + public static String implode(String separator, String... data) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < data.length - 1; i++) { + //data.length - 1 => to not add separator at the end + if (!data[i].matches(" *")) {//empty string are ""; " "; " "; and so on + sb.append(data[i]); + sb.append(separator); + } + } + sb.append(data[data.length - 1].trim()); + return sb.toString(); + } + public static String randomString(final int length) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 20; i++) {