Ignore:
Timestamp:
May 7, 2011, 3:44:17 PM (13 years ago)
Author:
mlg
Message:

Changement in the file browsing
Jiwigo does not browse the user directory on startup (memory consumption is limited while the user does not use the file browser to search images).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/tree/FileTree.java

    r10702 r10809  
    1717import javax.swing.JPopupMenu;
    1818import javax.swing.JScrollPane;
    19 import javax.swing.JTextField;
    2019import javax.swing.JTree;
    2120import javax.swing.event.TreeSelectionEvent;
     
    2726
    2827import fr.mael.jiwigo.transverse.ImagesManagement;
     28import fr.mael.jiwigo.transverse.util.Messages;
    2929import fr.mael.jiwigo.transverse.util.Tools;
     30import fr.mael.jiwigo.ui.field.HintTextField;
    3031import fr.mael.jiwigo.ui.mainframe.DialogPrivacyLevel;
    3132import fr.mael.jiwigo.ui.search.DialogChooseCategory;
     
    6465    private String path;
    6566
    66     private JTextField fieldPath;
     67    private HintTextField fieldPath;
    6768
    6869    private JButton refreshButton;
     
    7677    private ArrayList<File> filesToSend;
    7778
     79    private File f;
     80    private File fls[];
     81    private ArrayList<File> filter;
     82    private File fls2[];
     83    private ArrayList<File> filter2 = new ArrayList<File>();
    7884    /**
    7985     * the menu to add a category
     
    8894        super(new BorderLayout());
    8995        this.path = path;
    90         fieldPath = new JTextField(path);
     96        fieldPath = new HintTextField(Messages.getMessage("fileTree_clickToChoose"));
     97        if (path != null) {
     98            fieldPath.setText(path);
     99        }
    91100        fieldPath.addMouseListener(this);
     101        fieldPath.setPreferredSize(new Dimension(150, 30));
    92102        refreshButton = new JButton();
    93103        refreshButton.setIcon(new ImageIcon(Tools.getURL("fr/mael/jiwigo/img/refresh.png")));
     
    119129     */
    120130    public void reload() {
    121         root.removeAllChildren();
    122         createNodes(root);
    123         ((DefaultTreeModel) tree.getModel()).reload();
     131        if (path != null) {
     132            root.removeAllChildren();
     133            createNodes(root);
     134            ((DefaultTreeModel) tree.getModel()).reload();
     135        }
    124136    }
    125137
     
    131143    private void createNodes(DefaultMutableTreeNode root) {
    132144        DefaultMutableTreeNode fileNode = null;
    133         File f = new File(path);
     145        f = new File(path);
    134146        try {
    135             File fls[] = f.listFiles();
    136             ArrayList<File> filter = new ArrayList<File>();
     147            fls = null;
     148            filter = null;
     149            System.runFinalization();
     150            fls = f.listFiles();
     151            filter = new ArrayList<File>();
    137152            for (File file : fls) {
    138153                //only png and jpg are displayed
     
    164179    private void recursiveNodeCreation(DefaultMutableTreeNode categoryNode, File file) {
    165180        if (file.isDirectory() && !(file.getName().charAt(0) == '.')) {
    166             File fls[] = file.listFiles();
    167             ArrayList<File> filter = new ArrayList<File>();
    168             for (File fich : fls) {
     181            fls2 = null;
     182            filter2 = null;
     183            System.runFinalization();
     184            fls2 = file.listFiles();
     185            filter2 = new ArrayList<File>();
     186            for (File fich : fls2) {
    169187                if (!(fich.getName().charAt(0) == '.')
    170188                        && fich.isDirectory()
     
    172190                                || fich.getName().toLowerCase().endsWith(".jpeg") || fich.getName().toLowerCase()
    173191                                .endsWith(".png"))))) {
    174                     filter.add(fich);
     192                    filter2.add(fich);
    175193                }
    176194            }
    177             for (File fich : filter) {
     195            for (File fich : filter2) {
    178196                DefaultMutableTreeNode node = new DefaultMutableTreeNode(fich);
    179197                categoryNode.add(node);
     
    192210        if (mouseEvent.getSource().equals(fieldPath)) {
    193211            JFileChooser chooser = new JFileChooser();
    194             chooser.setCurrentDirectory(new java.io.File(path));
     212            if (path != null) {
     213                chooser.setCurrentDirectory(new java.io.File(path));
     214            }
    195215            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    196216            chooser.setAcceptAllFileFilterUsed(false);
Note: See TracChangeset for help on using the changeset viewer.