From f868664f7e7626f651e6ade9c9f6863851ef43b7 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 06 Nov 2019 23:12:57 -0500 Subject: [PATCH] Dangerous "reset". --- cFileSystemModel.java | 152 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 121 insertions(+), 31 deletions(-) diff --git a/cFileSystemModel.java b/cFileSystemModel.java index 1748e2b..acb8318 100644 --- a/cFileSystemModel.java +++ b/cFileSystemModel.java @@ -1,10 +1,12 @@ import java.io.*; +import javax.swing.Icon; import javax.swing.event.*; import javax.swing.tree.*; class cFileSystemModel implements TreeModel { + File root; cFilter filter; @@ -23,88 +25,176 @@ { } - public Object getChild(Object parent, int index) + public Object getChild(Object parent, int index) { //new Exception().printStackTrace(); - + //System.out.println("child[" + index + "] = " + ((File) parent).listFiles(filter)[index]); - + File[] files = table.get(parent); - assert(files != null); + assert (files != null); //return ((File) parent).listFiles(filter)[index]; return files[index]; - - } + } java.util.Hashtable<File, File[]> table = new java.util.Hashtable<File, File[]>(); - - public int getChildCount(Object parent) + + public int getChildCount(Object parent) { - if( isLeaf(parent) ) + if (isLeaf(parent)) + { return 0; - else + } else { //System.out.println(parent + " childcount = " + ((File) parent).listFiles(filter).length); File[] files = table.get(parent); - - if(files == null) + + if (files == null) { files = ((File) parent).listFiles(filter); table.put(((File) parent), files); } - + return files.length; } } - public int getIndexOfChild(Object parent, Object child) + public int getIndexOfChild(Object parent, Object child) { assert false; return 0; } - public Object getRoot() + public Object getRoot() { return root; } - public boolean isLeaf(Object node) + public boolean isLeaf(Object node) { return !((File) node).isDirectory(); } - public void removeTreeModelListener(TreeModelListener l) + public void removeTreeModelListener(TreeModelListener l) { } - public void valueForPathChanged(TreePath path, Object newValue) + public void valueForPathChanged(TreePath path, Object newValue) { } + static java.util.Hashtable<String, javax.swing.ImageIcon> icons = new java.util.Hashtable<String, javax.swing.ImageIcon>(); + + static class Renderer extends DefaultTreeCellRenderer { - public Renderer() { + + public Renderer() + { } public java.awt.Component getTreeCellRendererComponent( - cTree tree, - Object value, - boolean sel, - boolean expanded, - boolean leaf, - int row, - boolean hasFocus) + //cTree tree, + javax.swing.JTree tree, + Object value, + boolean sel, + boolean expanded, + boolean leaf, + int row, + boolean hasFocus) { - System.out.println(value); + //System.out.println(value); super.getTreeCellRendererComponent( - tree, value, sel, - expanded, leaf, row, - hasFocus); + tree, value, sel, + expanded, leaf, row, + hasFocus); + + String valueString = value.toString(); + String lcString = valueString.toLowerCase(); + + if (lcString.endsWith(".gfd") || lcString.endsWith(".obj") || lcString.endsWith(".3ds")) + { + if (true) + { + // Small icons + String valueTruncated = valueString.substring(0, valueString.length()-4); + + //System.out.println("valueTruncated = " + valueTruncated); + + javax.swing.ImageIcon rendererIcon = icons.get(valueTruncated); + + if (rendererIcon == null) + { + if (new File(valueTruncated + ".jpg").exists()) + { + rendererIcon = new javax.swing.ImageIcon(valueTruncated + ".jpg"); + } + else + { + if (new File(valueTruncated + ".png").exists()) + { + rendererIcon = new javax.swing.ImageIcon(valueTruncated + ".png"); + } + } + + if (rendererIcon == null) + { + rendererIcon = ObjEditor.GetIcon("icons/primitives.png"); + } + + icons.put(valueTruncated, rendererIcon); + } + + setIcon(rendererIcon); + } + else + { + // Large icons + String[] split = valueString.split("/"); + + String valueTruncated = ""; + + for (int i=1; i<split.length-1; i++) + { + valueTruncated += "/" + split[i]; + } + + valueTruncated += "/icon.jpg"; + + System.out.println(valueTruncated); + + javax.swing.ImageIcon rendererIcon = icons.get(valueTruncated); + + if (rendererIcon == null) + { + if (new File(valueTruncated).exists()) + { + rendererIcon = new javax.swing.ImageIcon(valueTruncated); + } + + if (rendererIcon == null) + { + rendererIcon = new javax.swing.ImageIcon(); + } + + icons.put(valueTruncated, rendererIcon); + } + + setIcon(rendererIcon); + } + } + else + { + //setIcon(null); +// Icon systemIcon = javax.swing.filechooser.FileSystemView.getFileSystemView().getSystemIcon( new File(valueString) ); +// setIcon(systemIcon); + } + setToolTipText("This book is in the Tutorial series."); return this; } - + public void setText(String text) { //System.out.println(text); -- Gitblit v1.6.2