#429 Disable/Enable rename identifiers feature implemented

This commit is contained in:
Honfika
2013-12-23 18:18:54 +01:00
parent 11ee052e33
commit 9a48403138
8 changed files with 86 additions and 22 deletions

View File

@@ -954,7 +954,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
}
}
tagTree.setModel(new TagTreeModel(this, swfs, hasAbc ? abcPanel : null));
tagTree.setModel(new TagTreeModel(this, swfs));
expandSwfRoots();
for (Tag t : swf.tags) {
@@ -968,6 +968,20 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
swf.characters = new HashMap<>();
parseCharacters(swf, list2);
if (Configuration.autoRenameIdentifiers.get()) {
try {
swf.deobfuscateIdentifiers(RenameType.TYPENUMBER);
swf.assignClassesToSymbols();
clearCache();
if (abcPanel != null) {
abcPanel.reload();
}
updateClassesList();
} catch (InterruptedException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
showDetail(DETAILCARDEMPTYPANEL);
showCard(CARDEMPTYPANEL);
updateUi(swf);
@@ -1036,7 +1050,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
}
private void updateTagTree() {
tagTree.setModel(new TagTreeModel(this, swfs, null));
tagTree.setModel(new TagTreeModel(this, swfs));
expandSwfRoots();
}
@@ -1062,6 +1076,28 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
}
}
public void updateClassesList() {
List<TagNode> nodes = getASTagNode(tagTree);
boolean updateNeeded = false;
for (TagNode n : nodes) {
if (n.tag instanceof ClassesListTreeModel) {
((ClassesListTreeModel) n.tag).update();
updateNeeded = true;
}
}
refreshTree();
if (updateNeeded) {
View.execInEventDispatch(new Runnable() {
@Override
public void run() {
tagTree.updateUI();
}
});
}
}
public void doFilter() {
List<TagNode> nodes = getASTagNode(tagTree);
boolean updateNeeded = false;
@@ -1408,7 +1444,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
if (!oldName.equals(newName)) {
swf.renameAS2Identifier(oldName, newName);
View.showMessageDialog(null, translate("rename.finished.identifier"));
doFilter();
updateClassesList();
reload(true);
}
}
@@ -1441,7 +1477,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
if (abcPanel != null) {
abcPanel.reload();
}
doFilter();
updateClassesList();
reload(true);
abcPanel.hilightScript(abcPanel.decompiledTextArea.getScriptLeaf().getPath().toString());
}
@@ -1613,7 +1649,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
TreeNode treeNode = (TreeNode) tagTree.getLastSelectedPathComponent();
if (treeNode == null) {
return null;
return swfs.get(0);
}
return treeNode.getSwf();
@@ -1658,7 +1694,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
abcPanel.reload();
}
reload(true);
doFilter();
updateClassesList();
}
public void searchAs() {
@@ -1715,7 +1751,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
abcPanel.reload();
}
reload(true);
doFilter();
updateClassesList();
}
public void renameOneIdentifier(final SWF swf) {
@@ -1932,7 +1968,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
@Override
public void run() {
abcPanel.reload();
doFilter();
updateClassesList();
}
});
}
@@ -1967,7 +2003,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
if (abcPanel != null) {
abcPanel.reload();
}
doFilter();
updateClassesList();
reload(true);
} catch (Exception ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, "Error during renaming identifiers", ex);
@@ -2036,7 +2072,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
public void run() {
clearCache();
abcPanel.reload();
doFilter();
updateClassesList();
}
});
}
@@ -2062,7 +2098,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
abcPanel.reload();
}
reload(true);
doFilter();
updateClassesList();
}
@Override
@@ -2865,7 +2901,7 @@ public final class MainFrame extends AppRibbonFrame implements ActionListener, T
public void refreshTree() {
List<List<String>> expandedNodes = getExpandedNodes(tagTree);
tagTree.setModel(new TagTreeModel(this, swfs, abcPanel));
tagTree.setModel(new TagTreeModel(this, swfs));
expandSwfRoots();
expandTreeNodes(tagTree, expandedNodes);