From 73d5a047c5f8b27c11fd1aa8b68daf2b7d23f70d Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Mon, 2 Feb 2015 18:25:29 +0100 Subject: [PATCH] #788 Add DefineCompactedFont Tag to gfx file: fixed Faster raw editing --- .../flash/gui/GenericTagTreePanel.java | 36 +++++++++++-------- .../decompiler/flash/gui/tagtree/TagTree.java | 5 +-- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java index e1780ce00..ee38727cd 100644 --- a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java @@ -86,6 +86,8 @@ public class GenericTagTreePanel extends GenericTagPanel { private Tag editedTag; + private static final Map> fieldCache = new HashMap<>(); + private class MyTree extends JTree { public MyTree() { @@ -821,22 +823,26 @@ public class GenericTagTreePanel extends GenericTagPanel { } private static List getAvailableFields(Class cls) { - List ret = new ArrayList<>(); - Field fields[] = cls.getFields(); - for (Field f : fields) { - if (Modifier.isStatic(f.getModifiers())) { - continue; + List ret = fieldCache.get(cls); + if (ret == null) { + ret = new ArrayList<>(); + Field fields[] = cls.getFields(); + for (Field f : fields) { + if (Modifier.isStatic(f.getModifiers())) { + continue; + } + f.setAccessible(true); + Internal inter = f.getAnnotation(Internal.class); + if (inter != null) { + continue; + } + HideInRawEdit hide = f.getAnnotation(HideInRawEdit.class); + if (hide != null) { + continue; + } + ret.add(f); } - f.setAccessible(true); - Internal inter = f.getAnnotation(Internal.class); - if (inter != null) { - continue; - } - HideInRawEdit hide = f.getAnnotation(HideInRawEdit.class); - if (hide != null) { - continue; - } - ret.add(f); + fieldCache.put(cls, ret); } return ret; } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java index b9e951e2a..91d8234e7 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java @@ -372,9 +372,10 @@ public class TagTree extends JTree { ret = Arrays.asList(DefineButtonTag.ID, DefineButton2Tag.ID); break; case TagTreeModel.FOLDER_FONTS: - ret = Arrays.asList(DefineFontTag.ID, DefineFont2Tag.ID, DefineFont3Tag.ID, DefineFont4Tag.ID); if (gfx) { - ret.add(DefineCompactedFont.ID); + ret = Arrays.asList(DefineFontTag.ID, DefineFont2Tag.ID, DefineFont3Tag.ID, DefineFont4Tag.ID, DefineCompactedFont.ID); + } else { + ret = Arrays.asList(DefineFontTag.ID, DefineFont2Tag.ID, DefineFont3Tag.ID, DefineFont4Tag.ID); } break; case TagTreeModel.FOLDER_BINARY_DATA: