mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 09:10:48 +00:00
simplify TagTree nodes 11
This commit is contained in:
@@ -1060,7 +1060,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec
|
||||
|
||||
FrameNodeItem fni = (FrameNodeItem) d.getItem();
|
||||
Timelined parent = fni.getParent();
|
||||
int frame = fni.getFrame() - 1; //Fix to zero based
|
||||
int frame = fni.getFrame();
|
||||
int parentId = 0;
|
||||
if (parent instanceof CharacterTag) {
|
||||
parentId = ((CharacterTag) parent).getCharacterId();
|
||||
@@ -1109,25 +1109,17 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec
|
||||
new FramesExportSettings(export.getValue(FramesExportMode.class), export.getZoom())));
|
||||
}
|
||||
List<ABCContainerTag> abcList = swf.abcList;
|
||||
if (abcPanel != null) {
|
||||
if (swf.isAS3) {
|
||||
for (int i = 0; i < as3scripts.size(); i++) {
|
||||
ScriptPack tls = as3scripts.get(i);
|
||||
Main.startWork(translate("work.exporting") + " " + (i + 1) + "/" + as3scripts.size() + " " + tls.getPath() + " ...");
|
||||
ret.add(tls.export(selFile, abcList, scriptMode, Configuration.parallelSpeedUp.get()));
|
||||
}
|
||||
} else {
|
||||
List<TreeNode> allNodes = new ArrayList<>();
|
||||
List<TreeNode> allAs12Scripts = new ArrayList<>();
|
||||
|
||||
if (abcPanel == null) {
|
||||
allAs12Scripts = getASTreeNodes(tagTree);
|
||||
}
|
||||
for (TreeNode asn : allAs12Scripts) {
|
||||
allNodes.add(asn);
|
||||
TagNode.setExport(allNodes, false);
|
||||
TagNode.setExport(as12scripts, true);
|
||||
ret.addAll(TagNode.exportNodeAS(handler, allNodes, selFile, scriptMode, null));
|
||||
}
|
||||
TagTreeModel ttm = (TagTreeModel) tagTree.getModel();
|
||||
List<TreeNode> scriptNodeList = new ArrayList<>(1);
|
||||
scriptNodeList.add(ttm.getSwfNode(swf).scriptsNode);
|
||||
ret.addAll(TagNode.exportNodeAS(handler, scriptNodeList, as12scripts, selFile, scriptMode, null));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
@@ -2417,7 +2409,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec
|
||||
totalFrameCount = parentSprite.frameCount;
|
||||
timelined = parentSprite;
|
||||
}
|
||||
previewPanel.showImagePanel(timelined, swf, fn.getFrame() - 1);
|
||||
previewPanel.showImagePanel(timelined, swf, fn.getFrame());
|
||||
} else if ((tagObj instanceof SoundTag)) { //&& isInternalFlashViewerSelected() && (Arrays.asList("mp3", "wav").contains(((SoundTag) tagObj).getExportFormat())))) {
|
||||
showCard(CARDPREVIEWPANEL);
|
||||
previewPanel.showImagePanel(new SerializableImage(View.loadImage("sound32")));
|
||||
|
||||
@@ -176,7 +176,7 @@ public class PreviewImage extends JPanel {
|
||||
if (treeItem instanceof FrameNodeItem) {
|
||||
FrameNodeItem fn = (FrameNodeItem) treeItem;
|
||||
RECT rect = swf.displayRect;
|
||||
imgSrc = SWF.frameToImageGet(swf.getTimeline(), fn.getFrame() - 1, 0, null, 0, rect, new Matrix(), new ColorTransform(), null, true, 1.0);
|
||||
imgSrc = SWF.frameToImageGet(swf.getTimeline(), fn.getFrame(), 0, null, 0, rect, new Matrix(), new ColorTransform(), null, true, 1.0);
|
||||
width = (imgSrc.getWidth());
|
||||
height = (imgSrc.getHeight());
|
||||
} else if (treeItem instanceof ImageTag) {
|
||||
|
||||
@@ -530,7 +530,7 @@ public class PreviewPanel extends JSplitPane implements ActionListener {
|
||||
Timelined parent = fn.getParent();
|
||||
List<Tag> subs = parent.getTimeline().tags;
|
||||
List<Integer> doneCharacters = new ArrayList<>();
|
||||
int frameCnt = 1;
|
||||
int frameCnt = 0;
|
||||
for (ContainerItem item : subs) {
|
||||
if (item instanceof ShowFrameTag) {
|
||||
frameCnt++;
|
||||
|
||||
@@ -499,7 +499,7 @@ public class TagTree extends JTree implements ActionListener {
|
||||
tagsToRemove.add((Tag) tag);
|
||||
} else if (tag instanceof FrameNodeItem) {
|
||||
FrameNodeItem frameNode = (FrameNodeItem) tag;
|
||||
Frame frame = frameNode.getParent().getTimeline().frames.get(frameNode.getFrame() - 1);
|
||||
Frame frame = frameNode.getParent().getTimeline().frames.get(frameNode.getFrame());
|
||||
if (frame.showFrameTag != null) {
|
||||
tagsToRemove.add(frame.showFrameTag);
|
||||
} else {
|
||||
|
||||
@@ -89,9 +89,7 @@ public class TagTreeModel implements TreeModel {
|
||||
}
|
||||
|
||||
public SWFNode createSwfNode(SWF swf) {
|
||||
ClassesListTreeModel classTreeModel = new ClassesListTreeModel(swf);
|
||||
SWFNode swfNode = new SWFNode(swf, swf.getShortFileName());
|
||||
swfNode.list = createTagList(swf.tags, swf, swfNode, classTreeModel);
|
||||
SWFNode swfNode = createTagList(swf.tags, swf);
|
||||
swfToSwfNode.put(swf, swfNode);
|
||||
return swfNode;
|
||||
}
|
||||
@@ -110,10 +108,13 @@ public class TagTreeModel implements TreeModel {
|
||||
return ret;
|
||||
}
|
||||
|
||||
private List<TreeNode> createTagList(List<Tag> list, SWF swf, SWFNode swfNode, ClassesListTreeModel classTreeModel) {
|
||||
private SWFNode createTagList(List<Tag> list, SWF swf) {
|
||||
ClassesListTreeModel classTreeModel = new ClassesListTreeModel(swf);
|
||||
SWFNode swfNode = new SWFNode(swf, swf.getShortFileName());
|
||||
|
||||
boolean hasAbc = swf.abcList != null && !swf.abcList.isEmpty();
|
||||
|
||||
List<TreeNode> ret = new ArrayList<>();
|
||||
List<TreeNode> nodeList = new ArrayList<>();
|
||||
List<TreeNode> frames = new ArrayList<>();
|
||||
List<TreeNode> shapes = new ArrayList<>();
|
||||
List<TreeNode> morphShapes = new ArrayList<>();
|
||||
@@ -176,7 +177,7 @@ public class TagTreeModel implements TreeModel {
|
||||
|
||||
Timeline timeline = swf.getTimeline();
|
||||
for (int i = 0; i < timeline.getFrameCount(); i++) {
|
||||
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, swf, true), timeline.frames.get(i).innerTags, false));
|
||||
frames.add(new FrameNode(new FrameNodeItem(swf, i, swf, true), timeline.frames.get(i).innerTags, false));
|
||||
}
|
||||
|
||||
for (int i = 0; i < sounds.size(); i++) {
|
||||
@@ -239,50 +240,51 @@ public class TagTreeModel implements TreeModel {
|
||||
}
|
||||
swfNode.scriptsNode = actionScriptNode;
|
||||
|
||||
ret.add(new HeaderNode(new HeaderItem(swf, AppStrings.translate("node.header"))));
|
||||
nodeList.add(new HeaderNode(new HeaderItem(swf, AppStrings.translate("node.header"))));
|
||||
|
||||
if (!shapesNode.subNodes.isEmpty()) {
|
||||
ret.add(shapesNode);
|
||||
nodeList.add(shapesNode);
|
||||
}
|
||||
if (!morphShapesNode.subNodes.isEmpty()) {
|
||||
ret.add(morphShapesNode);
|
||||
nodeList.add(morphShapesNode);
|
||||
}
|
||||
if (!spritesNode.subNodes.isEmpty()) {
|
||||
ret.add(spritesNode);
|
||||
nodeList.add(spritesNode);
|
||||
}
|
||||
if (!textsNode.subNodes.isEmpty()) {
|
||||
ret.add(textsNode);
|
||||
nodeList.add(textsNode);
|
||||
}
|
||||
if (!imagesNode.subNodes.isEmpty()) {
|
||||
ret.add(imagesNode);
|
||||
nodeList.add(imagesNode);
|
||||
}
|
||||
if (!moviesNode.subNodes.isEmpty()) {
|
||||
ret.add(moviesNode);
|
||||
nodeList.add(moviesNode);
|
||||
}
|
||||
if (!soundsNode.subNodes.isEmpty()) {
|
||||
ret.add(soundsNode);
|
||||
nodeList.add(soundsNode);
|
||||
}
|
||||
if (!buttonsNode.subNodes.isEmpty()) {
|
||||
ret.add(buttonsNode);
|
||||
nodeList.add(buttonsNode);
|
||||
}
|
||||
if (!fontsNode.subNodes.isEmpty()) {
|
||||
ret.add(fontsNode);
|
||||
nodeList.add(fontsNode);
|
||||
}
|
||||
if (!binaryDataNode.subNodes.isEmpty()) {
|
||||
ret.add(binaryDataNode);
|
||||
nodeList.add(binaryDataNode);
|
||||
}
|
||||
if (!framesNode.subNodes.isEmpty()) {
|
||||
ret.add(framesNode);
|
||||
nodeList.add(framesNode);
|
||||
}
|
||||
if (!otherNode.subNodes.isEmpty()) {
|
||||
ret.add(otherNode);
|
||||
nodeList.add(otherNode);
|
||||
}
|
||||
|
||||
if ((!actionScriptNode.subNodes.isEmpty()) || hasAbc) {
|
||||
ret.add(actionScriptNode);
|
||||
nodeList.add(actionScriptNode);
|
||||
}
|
||||
|
||||
return ret;
|
||||
swfNode.list = nodeList;
|
||||
return swfNode;
|
||||
}
|
||||
|
||||
private List<TreeNode> createSubTagList(List<Tag> list, Timelined parent, SWF swf, List<Tag> actionScriptTags) {
|
||||
@@ -305,7 +307,7 @@ public class TagTreeModel implements TreeModel {
|
||||
|
||||
Timeline timeline = ((Timelined) parent).getTimeline();
|
||||
for (int i = 0; i < timeline.getFrameCount(); i++) {
|
||||
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, parent, true), timeline.frames.get(i).innerTags, false));
|
||||
frames.add(new FrameNode(new FrameNodeItem(swf, i, parent, true), timeline.frames.get(i).innerTags, false));
|
||||
}
|
||||
|
||||
ret.addAll(frames);
|
||||
|
||||
Reference in New Issue
Block a user