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
3.0
bre..om 12 years ago
parent b1657e6846
commit a1e7e024ea
  1. 28
      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<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("");

Loading…
Cancel
Save