mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-07-12 13:58:28 +00:00
Tag list view - export selection context menu item correctly enabled/disabled
This commit is contained in:
@@ -608,7 +608,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
}
|
||||
});
|
||||
|
||||
tagListTree = new TagListTree();
|
||||
tagListTree = new TagListTree(this);
|
||||
tagListTree.addTreeSelectionListener(this);
|
||||
|
||||
DragSource dragSource = DragSource.getDefaultDragSource();
|
||||
|
||||
@@ -17,7 +17,9 @@
|
||||
package com.jpexs.decompiler.flash.gui.taglistview;
|
||||
|
||||
import com.jpexs.decompiler.flash.SWF;
|
||||
import com.jpexs.decompiler.flash.gui.MainPanel;
|
||||
import com.jpexs.decompiler.flash.gui.View;
|
||||
import com.jpexs.decompiler.flash.gui.tagtree.TagTree;
|
||||
import com.jpexs.decompiler.flash.tags.DefineSpriteTag;
|
||||
import com.jpexs.decompiler.flash.tags.ShowFrameTag;
|
||||
import com.jpexs.decompiler.flash.tags.Tag;
|
||||
@@ -49,7 +51,11 @@ public class TagListTree extends JTree {
|
||||
|
||||
private boolean initialized = false;
|
||||
|
||||
public TagListTree() {
|
||||
private MainPanel mainPanel;
|
||||
|
||||
public TagListTree(MainPanel mainPanel) {
|
||||
this.mainPanel = mainPanel;
|
||||
|
||||
setCellRenderer(new TagListTreeCellRenderer());
|
||||
setRootVisible(false);
|
||||
setShowsRootHandles(true);
|
||||
@@ -224,9 +230,7 @@ public class TagListTree extends JTree {
|
||||
}
|
||||
|
||||
public List<TreeItem> getSelection(SWF swf) {
|
||||
Set<TreeItem> selected = new HashSet<>();
|
||||
populateSelectedSwf(swf, root, selected);
|
||||
return new ArrayList<>(selected);
|
||||
return TagTree.getSelection(swf, getAllSelected());
|
||||
}
|
||||
|
||||
public void populateSelectedSwf(SWF swf, TagListTreeNode node, Set<TreeItem> selected){
|
||||
@@ -246,4 +250,8 @@ public class TagListTree extends JTree {
|
||||
populateSelected((TagListTreeNode)node.getChildAt(i), selected);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasExportableNodes() {
|
||||
return !getSelection(mainPanel.getCurrentSwf()).isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,7 +612,7 @@ public class TagTree extends JTree {
|
||||
return getSelection(swf, sel);
|
||||
}
|
||||
|
||||
public List<TreeItem> getSelection(SWF swf, List<TreeItem> sel) {
|
||||
public static List<TreeItem> getSelection(SWF swf, List<TreeItem> sel) {
|
||||
List<TreeItem> ret = new ArrayList<>();
|
||||
for (TreeItem d : sel) {
|
||||
if (d instanceof SWFList) {
|
||||
|
||||
@@ -524,13 +524,20 @@ public class TagTreeContextMenu extends JPopupMenu {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
boolean hasExportableNodes = false;
|
||||
if (currentView == MainPanel.VIEW_RESOURCES) {
|
||||
hasExportableNodes = tagTree.hasExportableNodes();
|
||||
} else if (currentView == MainPanel.VIEW_TAGLIST) {
|
||||
hasExportableNodes = tagListTree.hasExportableNodes();
|
||||
}
|
||||
|
||||
expandRecursiveMenuItem.setVisible(false);
|
||||
removeMenuItem.setVisible(canRemove);
|
||||
removeWithDependenciesMenuItem.setVisible(canRemove && !allDoNotHaveDependencies);
|
||||
cloneTagMenuItem.setVisible(allSelectedIsTagOrFrame && allSelectedSameParent);
|
||||
undoTagMenuItem.setVisible(allSelectedIsTag);
|
||||
exportSelectionMenuItem.setEnabled(currentView == MainPanel.VIEW_RESOURCES ? tagTree.hasExportableNodes() : true); //?
|
||||
exportSelectionMenuItem.setEnabled(hasExportableNodes); //?
|
||||
replaceMenuItem.setVisible(false);
|
||||
replaceNoFillMenuItem.setVisible(false);
|
||||
replaceWithTagMenuItem.setVisible(false);
|
||||
|
||||
Reference in New Issue
Block a user