|
@@ -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<String> 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("");
|