mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-25 08:36:07 +00:00
Export in order inside folder preview
This commit is contained in:
@@ -33,11 +33,14 @@ import java.awt.event.MouseEvent;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.WeakHashMap;
|
||||
import javax.swing.Icon;
|
||||
import javax.swing.JLabel;
|
||||
@@ -63,8 +66,7 @@ public class FolderListPanel extends JPanel {
|
||||
|
||||
private int selectedIndex = -1;
|
||||
|
||||
public Map<Integer, TreeItem> selectedItems = new HashMap<>();
|
||||
|
||||
private Map<Integer, TreeItem> selectedItems = new TreeMap<>();
|
||||
|
||||
private static final int PREVIEW_SIZE = 150;
|
||||
|
||||
@@ -160,7 +162,7 @@ public class FolderListPanel extends JPanel {
|
||||
}
|
||||
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
mainPanel.getContextPopupMenu().update(new ArrayList<>(selectedItems.values()));
|
||||
mainPanel.getContextPopupMenu().update(getSelectedItemsSorted());
|
||||
mainPanel.getContextPopupMenu().show(FolderListPanel.this, e.getX(), e.getY());
|
||||
}
|
||||
repaint();
|
||||
@@ -270,4 +272,12 @@ public class FolderListPanel extends JPanel {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<TreeItem> getSelectedItemsSorted() {
|
||||
return new ArrayList<>(selectedItems.values());
|
||||
}
|
||||
|
||||
public boolean isSomethingSelected() {
|
||||
return !selectedItems.isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,16 +44,20 @@ import java.awt.event.MouseEvent;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.tree.TreePath;
|
||||
import org.pushingpixels.substance.api.ColorSchemeAssociationKind;
|
||||
import org.pushingpixels.substance.api.ComponentState;
|
||||
import org.pushingpixels.substance.api.DecorationAreaType;
|
||||
@@ -74,11 +78,7 @@ public class FolderPreviewPanel extends JPanel {
|
||||
|
||||
private boolean repaintQueued;
|
||||
|
||||
private int lastWidth;
|
||||
|
||||
private int lastHeight;
|
||||
|
||||
public Map<Integer, TreeItem> selectedItems = new LinkedHashMap<>();
|
||||
private Map<Integer, TreeItem> selectedItems = new TreeMap<>();
|
||||
|
||||
private Cache<Integer, SerializableImage> cachedPreviews;
|
||||
|
||||
@@ -156,7 +156,7 @@ public class FolderPreviewPanel extends JPanel {
|
||||
}
|
||||
|
||||
if (SwingUtilities.isRightMouseButton(e)) {
|
||||
mainPanel.getContextPopupMenu().update(new ArrayList<>(selectedItems.values()));
|
||||
mainPanel.getContextPopupMenu().update(getSelectedItemsSorted());
|
||||
mainPanel.getContextPopupMenu().show(FolderPreviewPanel.this, e.getX(), e.getY());
|
||||
}
|
||||
repaint();
|
||||
@@ -386,4 +386,22 @@ public class FolderPreviewPanel extends JPanel {
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
public List<TreeItem> getSelectedItemsSorted() {
|
||||
return new ArrayList<>(selectedItems.values());
|
||||
}
|
||||
|
||||
public boolean isSomethingSelected() {
|
||||
return !selectedItems.isEmpty();
|
||||
}
|
||||
|
||||
public Map<Integer, TreeItem> getSelectedItems() {
|
||||
return selectedItems;
|
||||
}
|
||||
|
||||
public void setSelectedItems(Map<Integer, TreeItem> selectedItems) {
|
||||
this.selectedItems = selectedItems;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -491,9 +491,9 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
Object source = e.getSource();
|
||||
List<TreeItem> items = new ArrayList<>();
|
||||
if (source == folderPreviewPanel) {
|
||||
items.addAll(folderPreviewPanel.selectedItems.values());
|
||||
items.addAll(folderPreviewPanel.getSelectedItemsSorted());
|
||||
} else if (source == folderListPanel) {
|
||||
items.addAll(folderListPanel.selectedItems.values());
|
||||
items.addAll(folderListPanel.getSelectedItemsSorted());
|
||||
} else {
|
||||
AbstractTagTree tree = (AbstractTagTree) e.getSource();
|
||||
TreePath[] paths = tree.getSelectionPathsSorted();
|
||||
@@ -578,9 +578,9 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
Object source = e.getSource();
|
||||
List<TreeItem> items = new ArrayList<>();
|
||||
if (source == folderPreviewPanel) {
|
||||
items.addAll(folderPreviewPanel.selectedItems.values());
|
||||
items.addAll(folderPreviewPanel.getSelectedItemsSorted());
|
||||
} else if (source == folderListPanel) {
|
||||
items.addAll(folderListPanel.selectedItems.values());
|
||||
items.addAll(folderListPanel.getSelectedItemsSorted());
|
||||
} else {
|
||||
AbstractTagTree tree = (AbstractTagTree) e.getSource();
|
||||
TreePath[] paths = tree.getSelectionPathsSorted();
|
||||
@@ -5049,7 +5049,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
|
||||
JScrollBar folderPreviewScrollBar = ((JScrollPane)folderPreviewPanel.getParent().getParent()).getVerticalScrollBar();
|
||||
int scrollValue = folderPreviewScrollBar.getValue();
|
||||
Map<Integer, TreeItem> folderItems = new HashMap<>(folderPreviewPanel.selectedItems);
|
||||
Map<Integer, TreeItem> folderItems = new HashMap<>(folderPreviewPanel.getSelectedItems());
|
||||
|
||||
|
||||
if (scrollToVisible) {
|
||||
@@ -5269,7 +5269,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
|
||||
pinsPanel.setCurrent(oldItem);
|
||||
}
|
||||
|
||||
folderPreviewPanel.selectedItems = folderItems;
|
||||
folderPreviewPanel.setSelectedItems(folderItems);
|
||||
folderPreviewScrollBar.setValue(scrollValue);
|
||||
|
||||
View.execInEventDispatchLater(new Runnable(){
|
||||
|
||||
@@ -540,8 +540,8 @@ public abstract class AbstractTagTree extends JTree {
|
||||
}
|
||||
|
||||
public List<TreeItem> getSelected() {
|
||||
if (!mainPanel.folderPreviewPanel.selectedItems.isEmpty()) {
|
||||
return new ArrayList<>(mainPanel.folderPreviewPanel.selectedItems.values());
|
||||
if (mainPanel.folderPreviewPanel.isSomethingSelected()) {
|
||||
return mainPanel.folderPreviewPanel.getSelectedItemsSorted();
|
||||
}
|
||||
TreePath[] tps = getSelectionPathsSorted();
|
||||
List<TreeItem> ret = new ArrayList<>();
|
||||
|
||||
@@ -312,12 +312,14 @@ public class TagTree extends AbstractTagTree {
|
||||
@Override
|
||||
public List<TreeItem> getSelection(Openable openable) {
|
||||
List<TreeItem> sel;
|
||||
if (mainPanel.folderPreviewPanel.selectedItems.isEmpty()) {
|
||||
if (!mainPanel.folderPreviewPanel.isSomethingSelected()) {
|
||||
sel = getAllSelected();
|
||||
} else {
|
||||
sel = new ArrayList<>();
|
||||
|
||||
for (TreeItem treeItem : mainPanel.folderPreviewPanel.selectedItems.values()) {
|
||||
List<TreeItem> siSorted = mainPanel.folderPreviewPanel.getSelectedItemsSorted();
|
||||
|
||||
for (TreeItem treeItem : siSorted) {
|
||||
sel.add(treeItem);
|
||||
getAllSubs(treeItem, sel);
|
||||
}
|
||||
|
||||
@@ -2775,7 +2775,7 @@ public class TagTreeContextMenu extends JPopupMenu {
|
||||
}
|
||||
};
|
||||
|
||||
if (mainPanel.folderPreviewPanel.selectedItems.isEmpty()) {
|
||||
if (!mainPanel.folderPreviewPanel.isSomethingSelected()) {
|
||||
mainPanel.treeOperation(r);
|
||||
} else {
|
||||
//current folder must stay selected
|
||||
|
||||
Reference in New Issue
Block a user