mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-05 18:57:35 +00:00
merge problem fixed
This commit is contained in:
@@ -410,8 +410,19 @@ public class TagTree extends JTree implements ActionListener {
|
||||
SoundStreamBlockTag.ID, SoundStreamHeadTag.ID, SoundStreamHead2Tag.ID);
|
||||
}
|
||||
|
||||
public void createContextMenu(final List<SWFList> swfs) {
|
||||
final JPopupMenu contextPopupMenu = new JPopupMenu();
|
||||
JMenuItem expandRecursiveMenuItem;
|
||||
JMenuItem removeMenuItem;
|
||||
JMenuItem removeWithDependenciesMenuItem;
|
||||
JMenuItem exportSelectionMenuItem;
|
||||
JMenuItem replaceSelectionMenuItem;
|
||||
JMenuItem rawEditMenuItem;
|
||||
JMenuItem jumpToCharacterMenuItem;
|
||||
JMenuItem closeSelectionMenuItem;
|
||||
JMenu addTagMenu;
|
||||
JMenu moveTagMenu;
|
||||
JMenuItem openSWFInsideTagMenuItem;
|
||||
public JPopupMenu contextPopupMenu;
|
||||
public List<SWFList> swfs;
|
||||
|
||||
public void createContextMenu(final List<SWFList> swfs) {
|
||||
this.swfs = swfs;
|
||||
@@ -501,108 +512,6 @@ public class TagTree extends JTree implements ActionListener {
|
||||
openSWFInsideTagMenuItem.setVisible(false);
|
||||
|
||||
if (paths.length == 1) {
|
||||
final TreeItem item = (TreeItem) paths[0].getLastPathComponent();
|
||||
|
||||
if (item instanceof ImageTag && ((ImageTag) item).importSupported()) {
|
||||
replaceSelectionMenuItem.setVisible(true);
|
||||
}
|
||||
|
||||
if (item instanceof DefineBinaryDataTag) {
|
||||
replaceSelectionMenuItem.setVisible(true);
|
||||
DefineBinaryDataTag bin = (DefineBinaryDataTag) item;
|
||||
if (bin.binaryData.length > 8) {
|
||||
String signature = new String(bin.binaryData, 0, 3, Utf8Helper.charset);
|
||||
if (Arrays.asList(
|
||||
"FWS", //Uncompressed Flash
|
||||
"CWS", //ZLib compressed Flash
|
||||
"ZWS", //LZMA compressed Flash
|
||||
"GFX", //Uncompressed ScaleForm GFx
|
||||
"CFX" //Compressed ScaleForm GFx
|
||||
).contains(signature)) {
|
||||
openSWFInsideTagMenuItem.setVisible(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item instanceof DefineSoundTag) {
|
||||
replaceSelectionMenuItem.setVisible(true);
|
||||
}
|
||||
|
||||
if (item instanceof SWF) {
|
||||
closeSelectionMenuItem.setVisible(true);
|
||||
}
|
||||
|
||||
List<Integer> allowedTagTypes = null;
|
||||
if (item instanceof FolderItem) {
|
||||
allowedTagTypes = getSwfFolderItemNestedTagIds(((FolderItem) item).getName(), item.getSwf().gfx);
|
||||
} else if (item instanceof DefineSpriteTag) {
|
||||
allowedTagTypes = getSpriteNestedTagIds();
|
||||
}
|
||||
|
||||
addTagMenu.removeAll();
|
||||
if (allowedTagTypes != null) {
|
||||
for (Integer tagId : allowedTagTypes) {
|
||||
final Class cl = TagIdClassMap.getClassByTagId(tagId);
|
||||
JMenuItem tagItem = new JMenuItem(cl.getSimpleName());
|
||||
tagItem.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void actionPerformed(ActionEvent ae) {
|
||||
try {
|
||||
SWF swf = item.getSwf();
|
||||
Tag t = (Tag) cl.getDeclaredConstructor(SWF.class).newInstance(new Object[]{swf});
|
||||
boolean isDefineSprite = item instanceof DefineSpriteTag;
|
||||
Timelined timelined = isDefineSprite ? (DefineSpriteTag) item : swf;
|
||||
t.setTimelined(timelined);
|
||||
if (isDefineSprite) {
|
||||
((DefineSpriteTag) item).subTags.add(t);
|
||||
} else {
|
||||
swf.tags.add(t);
|
||||
}
|
||||
timelined.getTimeline().reset();
|
||||
swf.updateCharacters();
|
||||
mainPanel.refreshTree();
|
||||
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException ex) {
|
||||
Logger.getLogger(TagTree.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
});
|
||||
addTagMenu.add(tagItem);
|
||||
}
|
||||
addTagMenu.setVisible(true);
|
||||
}
|
||||
|
||||
if (item instanceof Tag && swfs.size() > 1) {
|
||||
final Tag tag = (Tag) item;
|
||||
moveTagMenu.removeAll();
|
||||
for (SWFList targetSwfList : swfs) {
|
||||
for (final SWF targetSwf : targetSwfList) {
|
||||
if (targetSwf != tag.getSwf()) {
|
||||
JMenuItem swfItem = new JMenuItem(targetSwf.getShortFileName());
|
||||
swfItem.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent ae) {
|
||||
tag.getSwf().tags.remove(tag);
|
||||
tag.setSwf(targetSwf);
|
||||
targetSwf.tags.add(tag);
|
||||
mainPanel.refreshTree();
|
||||
}
|
||||
});
|
||||
moveTagMenu.add(swfItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
moveTagMenu.setVisible(true);
|
||||
}
|
||||
|
||||
TreeModel model = getModel();
|
||||
expandRecursiveMenuItem.setVisible(model.getChildCount(item) > 0);
|
||||
|
||||
jumpToCharacterMenuItem.setVisible(item instanceof CharacterIdTag && !(item instanceof CharacterTag));
|
||||
|
||||
rawEditMenuItem.setVisible(item instanceof Tag);
|
||||
TreeItem item = (TreeItem) paths[0].getLastPathComponent();
|
||||
List<TreeItem> li = new ArrayList<>();
|
||||
li.add(item);
|
||||
@@ -633,7 +542,7 @@ public class TagTree extends JTree implements ActionListener {
|
||||
}
|
||||
exportSelectionMenuItem.setEnabled(!items.isEmpty() && !getSelection(items.get(0).getSwf(), items).isEmpty());
|
||||
|
||||
TreeItem item = items.get(0);
|
||||
final TreeItem item = items.get(0);
|
||||
if (item instanceof ImageTag && ((ImageTag) item).importSupported()) {
|
||||
replaceSelectionMenuItem.setVisible(true);
|
||||
}
|
||||
@@ -663,34 +572,45 @@ public class TagTree extends JTree implements ActionListener {
|
||||
closeSelectionMenuItem.setVisible(true);
|
||||
}
|
||||
|
||||
List<Integer> allowedTagTypes = null;
|
||||
if (item instanceof FolderItem) {
|
||||
final FolderItem folderItem = (FolderItem) item;
|
||||
List<Class> allowedTagTypes = getTreeItemClasses(folderItem.getName(), item.getSwf().gfx);
|
||||
addTagMenu.removeAll();
|
||||
if (allowedTagTypes != null) {
|
||||
for (final Class cl : allowedTagTypes) {
|
||||
JMenuItem tagItem = new JMenuItem(cl.getSimpleName());
|
||||
tagItem.addActionListener(new ActionListener() {
|
||||
allowedTagTypes = getSwfFolderItemNestedTagIds(((FolderItem) item).getName(), item.getSwf().gfx);
|
||||
} else if (item instanceof DefineSpriteTag) {
|
||||
allowedTagTypes = getSpriteNestedTagIds();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void actionPerformed(ActionEvent ae) {
|
||||
try {
|
||||
SWF swf = folderItem.getSwf();
|
||||
Tag t = (Tag) cl.getDeclaredConstructor(SWF.class).newInstance(new Object[]{swf});
|
||||
t.setTimelined(swf);
|
||||
swf.tags.add(t);
|
||||
swf.updateCharacters();
|
||||
mainPanel.refreshTree();
|
||||
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException ex) {
|
||||
Logger.getLogger(TagTree.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
addTagMenu.removeAll();
|
||||
if (allowedTagTypes != null) {
|
||||
for (Integer tagId : allowedTagTypes) {
|
||||
final Class cl = TagIdClassMap.getClassByTagId(tagId);
|
||||
JMenuItem tagItem = new JMenuItem(cl.getSimpleName());
|
||||
tagItem.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public void actionPerformed(ActionEvent ae) {
|
||||
try {
|
||||
SWF swf = item.getSwf();
|
||||
Tag t = (Tag) cl.getDeclaredConstructor(SWF.class).newInstance(new Object[]{swf});
|
||||
boolean isDefineSprite = item instanceof DefineSpriteTag;
|
||||
Timelined timelined = isDefineSprite ? (DefineSpriteTag) item : swf;
|
||||
t.setTimelined(timelined);
|
||||
if (isDefineSprite) {
|
||||
((DefineSpriteTag) item).subTags.add(t);
|
||||
} else {
|
||||
swf.tags.add(t);
|
||||
}
|
||||
timelined.getTimeline().reset();
|
||||
swf.updateCharacters();
|
||||
mainPanel.refreshTree();
|
||||
} catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException ex) {
|
||||
Logger.getLogger(TagTree.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
});
|
||||
addTagMenu.add(tagItem);
|
||||
}
|
||||
addTagMenu.setVisible(true);
|
||||
}
|
||||
});
|
||||
addTagMenu.add(tagItem);
|
||||
}
|
||||
addTagMenu.setVisible(true);
|
||||
}
|
||||
|
||||
if (item instanceof Tag && swfs.size() > 1) {
|
||||
|
||||
Reference in New Issue
Block a user