From a1e7e024ea4f804bced5fa1fc1dc647e91ce88f4 Mon Sep 17 00:00:00 2001 From: "bre..om" Date: Tue, 5 Mar 2013 17:42:09 +0000 Subject: [PATCH] TextureBrowser is now sorted alphabetically and remembers your last selected texture and expands to its folder git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10465 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../gde/core/properties/TextureBrowser.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/sdk/jme3-core/src/com/jme3/gde/core/properties/TextureBrowser.java b/sdk/jme3-core/src/com/jme3/gde/core/properties/TextureBrowser.java index 451927ea2..bd0c903f8 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/properties/TextureBrowser.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/properties/TextureBrowser.java @@ -39,7 +39,11 @@ import com.jme3.texture.Texture; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.logging.Logger; +import java.util.prefs.Preferences; import javax.swing.DefaultListSelectionModel; import javax.swing.Icon; import javax.swing.event.TreeSelectionEvent; @@ -65,18 +69,19 @@ public class TextureBrowser extends javax.swing.JDialog implements TreeSelection private ProjectAssetManager assetManager; private TexturePropertyEditor editor; private DDSPreview ddsPreview; + //private static TreePath lastSelectedTexture; + private Preferences prefs; + private static final String PREF_LAST_SELECTED = "lastSelectedTexture"; public TextureBrowser(java.awt.Frame parent, boolean modal, ProjectAssetManager assetManager, TexturePropertyEditor editor) { super(parent, modal); + prefs = Preferences.userNodeForPackage(this.getClass()); this.assetManager = assetManager; this.editor = editor; initComponents(); loadAvailableTextures(); setSelectedTexture((Texture) editor.getValue()); setLocationRelativeTo(null); - - - } /** This method is called from within the constructor to @@ -256,7 +261,9 @@ private void noTexturebuttonActionPerformed(java.awt.event.ActionEvent evt) {//G } String[] leaves = assetManager.getTextures(); - TreeUtil.createTree(jTree1, leaves); + List leavesList = Arrays.asList(leaves); + Collections.sort(leavesList); + TreeUtil.createTree(jTree1, leavesList.toArray(new String[0])); TreeUtil.expandTree(jTree1, (TreeNode) jTree1.getModel().getRoot(), 1); jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); jTree1.addTreeSelectionListener(this); @@ -267,9 +274,17 @@ private void noTexturebuttonActionPerformed(java.awt.event.ActionEvent evt) {//G Logger.getLogger(TextureBrowser.class.getName()).finer("Looking for Texture: " + texture.getName()); String[] path = ("/" + texture.getName()).split("/"); TreePath parent = new TreePath((TreeNode) jTree1.getModel().getRoot()); - jTree1.expandPath(TreeUtil.buildTreePath(jTree1, parent, path, 0, true)); + TreePath selectedTreePath = TreeUtil.buildTreePath(jTree1, parent, path, 0, true); + jTree1.expandPath(selectedTreePath); jTree1.getSelectionModel().setSelectionPath(TreeUtil.buildTreePath(jTree1, parent, path, 0, false)); + } else { + String lastSelected = prefs.get(PREF_LAST_SELECTED, null); + if (lastSelected != null) { + TreePath parent = new TreePath((TreeNode) jTree1.getModel().getRoot()); + TreePath selectedTreePath = TreeUtil.buildTreePath(jTree1, parent, ("/"+lastSelected).split("/"), 0, true); + jTree1.expandPath(selectedTreePath); + } } } @@ -299,7 +314,8 @@ private void noTexturebuttonActionPerformed(java.awt.event.ActionEvent evt) {//G imagePreviewLabel.setIcon(newicon); infoLabel.setText(" " + node.getUserObject() + " w : " + newicon.getIconWidth() + " h : " + newicon.getIconHeight()); } - + + prefs.put(PREF_LAST_SELECTED, selected); } else { imagePreviewLabel.setIcon(null); infoLabel.setText("");