AS3 PCode serach

This commit is contained in:
2016-12-25 20:22:24 +01:00
parent bf59e9e5fb
commit 0850723795
15 changed files with 194 additions and 35 deletions
@@ -121,7 +121,8 @@ public class ASMSourceEditorPane extends DebuggableEditorPane implements CaretLi
if (trait != null && exportMode != ScriptExportMode.AS && exportMode != ScriptExportMode.AS_METHOD_STUBS) {
trait.convertTraitHeader(abc, writer);
}
abc.bodies.get(bodyIndex).getCode().toASMSource(abc.constants, abc.method_info.get(abc.bodies.get(bodyIndex).method_info), abc.bodies.get(bodyIndex), exportMode, writer);
MethodBody body = abc.bodies.get(bodyIndex);
abc.bodies.get(bodyIndex).getCode().toASMSource(abc.constants, abc.method_info.get(body.method_info), body, exportMode, writer);
if (trait != null) {
writer.appendNoHilight("end ; trait").newLine();
}
@@ -74,9 +74,9 @@ public class TraitsList extends JList<Object> implements ListSelectionListener {
if (classIndex >= abc.instance_info.size()) {
return;
}
this.classIndex = classIndex;
setModel(new TraitsListModel(abc, classIndex, scriptIndex, sorted));
}
private int lastSelected = -1;
@@ -117,15 +117,17 @@ public class TraitsListItem {
}
} else if (isStatic) {
ConvertData convertData = new ConvertData();
abc.class_info.get(classIndex).static_traits.traits.get(index).convertHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
Trait trait = abc.class_info.get(classIndex).static_traits.traits.get(index);
trait.convertHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
HighlightedTextWriter writer = new HighlightedTextWriter(Configuration.getCodeFormatting(), false);
abc.class_info.get(classIndex).static_traits.traits.get(index).toStringHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
trait.toStringHeader(null, convertData, "", abc, true, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
s = writer.toString();
} else {
ConvertData convertData = new ConvertData();
abc.instance_info.get(classIndex).instance_traits.traits.get(index).convertHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
Trait trait = abc.instance_info.get(classIndex).instance_traits.traits.get(index);
trait.convertHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, new NulWriter(), new ArrayList<>(), false);
HighlightedTextWriter writer = new HighlightedTextWriter(Configuration.getCodeFormatting(), false);
abc.instance_info.get(classIndex).instance_traits.traits.get(index).toStringHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
trait.toStringHeader(null, convertData, "", abc, false, ScriptExportMode.AS, scriptIndex, classIndex, writer, new ArrayList<>(), false);
s = writer.toString();
}
} catch (InterruptedException ex) {
@@ -144,7 +146,6 @@ public class TraitsListItem {
}
public enum Type {
METHOD,
VAR,
CONST,
@@ -17,6 +17,7 @@
package com.jpexs.decompiler.flash.gui.abc;
import com.jpexs.decompiler.flash.abc.ABC;
import com.jpexs.decompiler.flash.abc.types.traits.Trait;
import com.jpexs.decompiler.flash.configuration.Configuration;
import java.util.ArrayList;
import java.util.Collections;
@@ -55,19 +56,24 @@ public final class TraitsListModel implements ListModel<Object> {
private void reset() {
items = new ArrayList<>();
if (classIndex > -1) {
for (int t = 0; t < abc.class_info.get(classIndex).static_traits.traits.size(); t++) {
if (abc.class_info.get(classIndex).static_traits.traits.get(t).isVisible(true, abc)) {
items.add(new TraitsListItem(TraitsListItem.Type.getTypeForTrait(abc.class_info.get(classIndex).static_traits.traits.get(t)), t, true, abc, classIndex, scriptIndex));
List<Trait> traits = abc.class_info.get(classIndex).static_traits.traits;
for (int t = 0; t < traits.size(); t++) {
if (traits.get(t).isVisible(true, abc)) {
items.add(new TraitsListItem(TraitsListItem.Type.getTypeForTrait(traits.get(t)), t, true, abc, classIndex, scriptIndex));
}
}
for (int t = 0; t < abc.instance_info.get(classIndex).instance_traits.traits.size(); t++) {
if (abc.instance_info.get(classIndex).instance_traits.traits.get(t).isVisible(false, abc)) {
items.add(new TraitsListItem(TraitsListItem.Type.getTypeForTrait(abc.instance_info.get(classIndex).instance_traits.traits.get(t)), t, false, abc, classIndex, scriptIndex));
traits = abc.instance_info.get(classIndex).instance_traits.traits;
for (int t = 0; t < traits.size(); t++) {
if (traits.get(t).isVisible(false, abc)) {
items.add(new TraitsListItem(TraitsListItem.Type.getTypeForTrait(traits.get(t)), t, false, abc, classIndex, scriptIndex));
}
}
items.add(new TraitsListItem(TraitsListItem.Type.INITIALIZER, 0, false, abc, classIndex, scriptIndex));
items.add(new TraitsListItem(TraitsListItem.Type.INITIALIZER, 0, true, abc, classIndex, scriptIndex));
}
if (Configuration.enableScriptInitializerDisplay.get()) {
items.add(new TraitsListItem(TraitsListItem.Type.SCRIPT_INITIALIZER, 0, true, abc, classIndex, scriptIndex));
}