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
This commit is contained in:
parent
b1657e6846
commit
a1e7e024ea
@ -39,7 +39,11 @@ import com.jme3.texture.Texture;
|
|||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
import java.awt.event.WindowListener;
|
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.logging.Logger;
|
||||||
|
import java.util.prefs.Preferences;
|
||||||
import javax.swing.DefaultListSelectionModel;
|
import javax.swing.DefaultListSelectionModel;
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.event.TreeSelectionEvent;
|
import javax.swing.event.TreeSelectionEvent;
|
||||||
@ -65,18 +69,19 @@ public class TextureBrowser extends javax.swing.JDialog implements TreeSelection
|
|||||||
private ProjectAssetManager assetManager;
|
private ProjectAssetManager assetManager;
|
||||||
private TexturePropertyEditor editor;
|
private TexturePropertyEditor editor;
|
||||||
private DDSPreview ddsPreview;
|
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) {
|
public TextureBrowser(java.awt.Frame parent, boolean modal, ProjectAssetManager assetManager, TexturePropertyEditor editor) {
|
||||||
super(parent, modal);
|
super(parent, modal);
|
||||||
|
prefs = Preferences.userNodeForPackage(this.getClass());
|
||||||
this.assetManager = assetManager;
|
this.assetManager = assetManager;
|
||||||
this.editor = editor;
|
this.editor = editor;
|
||||||
initComponents();
|
initComponents();
|
||||||
loadAvailableTextures();
|
loadAvailableTextures();
|
||||||
setSelectedTexture((Texture) editor.getValue());
|
setSelectedTexture((Texture) editor.getValue());
|
||||||
setLocationRelativeTo(null);
|
setLocationRelativeTo(null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** This method is called from within the constructor to
|
/** 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();
|
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);
|
TreeUtil.expandTree(jTree1, (TreeNode) jTree1.getModel().getRoot(), 1);
|
||||||
jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
|
jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
|
||||||
jTree1.addTreeSelectionListener(this);
|
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());
|
Logger.getLogger(TextureBrowser.class.getName()).finer("Looking for Texture: " + texture.getName());
|
||||||
String[] path = ("/" + texture.getName()).split("/");
|
String[] path = ("/" + texture.getName()).split("/");
|
||||||
TreePath parent = new TreePath((TreeNode) jTree1.getModel().getRoot());
|
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));
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -300,6 +315,7 @@ private void noTexturebuttonActionPerformed(java.awt.event.ActionEvent evt) {//G
|
|||||||
infoLabel.setText(" " + node.getUserObject() + " w : " + newicon.getIconWidth() + " h : " + newicon.getIconHeight());
|
infoLabel.setText(" " + node.getUserObject() + " w : " + newicon.getIconWidth() + " h : " + newicon.getIconHeight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prefs.put(PREF_LAST_SELECTED, selected);
|
||||||
} else {
|
} else {
|
||||||
imagePreviewLabel.setIcon(null);
|
imagePreviewLabel.setIcon(null);
|
||||||
infoLabel.setText("");
|
infoLabel.setText("");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user