From f15b2ae4365d69fac9415b16ea464d6304debee1 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Sat, 18 May 2019 00:46:27 -0500 Subject: [PATCH 1/2] [FEATURE] Added valid class path --- .../core/asm/redirect/SystemRedirect.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/SystemRedirect.java b/src/main/java/org/parabot/core/asm/redirect/SystemRedirect.java index d00fc1f..5c28a6a 100644 --- a/src/main/java/org/parabot/core/asm/redirect/SystemRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/SystemRedirect.java @@ -9,7 +9,7 @@ public class SystemRedirect { public static PrintStream out = System.out; public static PrintStream err = System.err; - public static InputStream in = System.in; + public static InputStream in = System.in; public static long currentTimeMillis() { return System.currentTimeMillis(); @@ -23,11 +23,23 @@ public class SystemRedirect { System.exit(i); } + private static String getClassPath(){ + String classPath = System.getProperty("java.class.path"); + StringBuilder finalClassPath = new StringBuilder(); + for (String path : classPath.split(":")) { + if (!path.toLowerCase().contains("parabot")) { + finalClassPath.append(path).append(":"); + } + } + + return finalClassPath.toString(); + } + public static String getProperty(String s) { String value; switch (s) { case "java.class.path": - value = "."; + value = getClassPath(); break; default: value = System.getProperty(s); @@ -42,14 +54,14 @@ public class SystemRedirect { String value = null; switch (s2) { case "java.class.path": - value = "."; + value = getClassPath(); break; } if (value == null) { switch (s) { case "java.class.path": - value = "."; + value = getClassPath(); break; default: value = System.getProperty(s); From 08e7e59d5739d7f2b8167edc847bd8a2f2145622 Mon Sep 17 00:00:00 2001 From: Jeroen Ketelaar Date: Sat, 18 May 2019 01:08:39 -0500 Subject: [PATCH 2/2] [FEATURE] Added values view for int-array --- .../java/org/parabot/core/ui/ReflectUI.java | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/parabot/core/ui/ReflectUI.java b/src/main/java/org/parabot/core/ui/ReflectUI.java index a35ba39..9475ce0 100644 --- a/src/main/java/org/parabot/core/ui/ReflectUI.java +++ b/src/main/java/org/parabot/core/ui/ReflectUI.java @@ -27,11 +27,11 @@ import java.util.HashMap; */ public class ReflectUI extends JFrame { private static final long serialVersionUID = 98565034137367257L; - private JTree tree; + private JTree tree; private DefaultMutableTreeNode root; - private DefaultTreeModel model; - private JEditorPane basicInfoPane; - private JEditorPane selectionInfoPane; + private DefaultTreeModel model; + private JEditorPane basicInfoPane; + private JEditorPane selectionInfoPane; private Object instance; @@ -82,7 +82,7 @@ public class ReflectUI extends JFrame { @Override public void actionPerformed(ActionEvent e) { RefField result = null; - String search = searchFunction.getText(); + String search = searchFunction.getText(); for (RefField f : fields.values()) { if (f != null && (f.asObject()) != null) { String value; @@ -137,9 +137,9 @@ public class ReflectUI extends JFrame { @Override public void valueChanged(TreeSelectionEvent event) { - TreePath path = event.getPath(); + TreePath path = event.getPath(); Object[] pathElements = path.getPath(); - Object element = pathElements[pathElements.length - 1]; + Object element = pathElements[pathElements.length - 1]; if (pathElements.length == 2) { setClassInfo(classes.get(element)); } else if (pathElements.length == 3) { @@ -179,7 +179,7 @@ public class ReflectUI extends JFrame { content.add(searchContent); JScrollPane contentPane = new JScrollPane(content); - Dimension prefSize = content.getPreferredSize(); + Dimension prefSize = content.getPreferredSize(); contentPane.setPreferredSize(new Dimension(prefSize.width + contentPane.getVerticalScrollBar().getPreferredSize().width, prefSize.height + contentPane.getHorizontalScrollBar().getPreferredSize().height)); setContentPane(contentPane); pack(); @@ -188,8 +188,8 @@ public class ReflectUI extends JFrame { } private void fillModel() { - Context context = Context.getInstance(); - ClassPath classPath = context.getClassPath(); + Context context = Context.getInstance(); + ClassPath classPath = context.getClassPath(); ASMClassLoader classLoader = context.getASMClassLoader(); for (String className : classPath.classNames) { try { @@ -219,7 +219,7 @@ public class ReflectUI extends JFrame { } private void fillBasicInfoPane() { - Context context = Context.getInstance(); + Context context = Context.getInstance(); ClassPath classPath = context.getClassPath(); StringBuilder builder = new StringBuilder(); @@ -231,8 +231,8 @@ public class ReflectUI extends JFrame { } private void setFieldInfo(RefField refField) { - StringBuilder builder = new StringBuilder(); - RefClass refClass = refField.getOwner(); + StringBuilder builder = new StringBuilder(); + RefClass refClass = refField.getOwner(); builder.append("

").append(refClass.getClassName()).append(".").append(refField.getName()).append("


"); builder.append("Class: ").append(refClass.getClassName()).append("
"); builder.append("Value: ").append(refField.asObject()).append("
"); @@ -240,11 +240,23 @@ public class ReflectUI extends JFrame { 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); + if (refField.isArray()) { + if (refField.getArrayDimensions() == 1) { + if (refField.getASMType().getClassName().contains("int")) { + int[] ints = (int[]) refField.asObject(); + String values = ""; + for (int i = 0; i < ints.length; i++) { + values += (ints[i] + (i < ints.length - 1 ? ", " : "")); + } - builder.append("Values: ").append(values).append("
"); + builder.append("Values: ").append(values).append("
"); + } else if (refField.getASMType().getClassName().contains("String")) { + String[] strings = (String[]) refField.asObject(); + String values = StringUtils.implode(", ", strings); + + builder.append("Values: ").append(values).append("
"); + } + } } selectionInfoPane.setText(builder.toString());