Ignore:
Timestamp:
Jan 22, 2011, 2:46:45 PM (13 years ago)
Author:
mlg
Message:

Images can be sent from the file new file browser.

File:
1 edited

Legend:

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

    r8834 r8838  
    33import java.awt.BorderLayout;
    44import java.awt.Dimension;
     5import java.awt.event.ActionEvent;
     6import java.awt.event.ActionListener;
    57import java.awt.event.MouseEvent;
    68import java.awt.event.MouseListener;
     
    911import javax.swing.JFileChooser;
    1012import javax.swing.JFrame;
     13import javax.swing.JMenuItem;
    1114import javax.swing.JPanel;
     15import javax.swing.JPopupMenu;
    1216import javax.swing.JScrollPane;
    1317import javax.swing.JTextField;
     
    1721import javax.swing.tree.DefaultMutableTreeNode;
    1822import javax.swing.tree.DefaultTreeModel;
     23import javax.swing.tree.TreePath;
    1924import javax.swing.tree.TreeSelectionModel;
    2025
     26import fr.mael.jiwigo.transverse.ImagesManagement;
     27import fr.mael.jiwigo.ui.mainframe.DialogPrivacyLevel;
     28import fr.mael.jiwigo.ui.search.DialogChooseCategory;
    2129import fr.mael.jiwigo.ui.search.File;
    2230
     
    5058    * File tree
    5159*/
    52 public class FileTree extends JPanel implements TreeSelectionListener, MouseListener {
     60public class FileTree extends JPanel implements TreeSelectionListener, MouseListener, ActionListener {
    5361    private String path;
    5462
     
    5866
    5967    private JTree tree;
     68
     69    private ArrayList<File> filesToSend;
     70
     71    /**
     72     * the menu to add a category
     73     */
     74    private JMenuItem menuSend;
    6075
    6176    public static void main(String[] args) {
     
    7893        fieldPath.addMouseListener(this);
    7994        tree = new JTree(root);
    80         tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
     95        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
    8196        tree.addTreeSelectionListener(this);
    8297        tree.setCellRenderer(new MyTreeCellRenderer());
    8398        tree.setRootVisible(false);
     99        tree.addMouseListener(this);
    84100        JScrollPane treeView = new JScrollPane(tree);
    85101        Dimension minimumSize = new Dimension(100, 50);
     
    90106    }
    91107
     108    /**
     109     * Method that reload the tree
     110     */
    92111    public void reload() {
    93112        root.removeAllChildren();
     
    96115    }
    97116
     117    /**
     118     * This method creates filters the files to display depending on their
     119     * extension (only image files)
     120     * @param root
     121     */
    98122    private void createNodes(DefaultMutableTreeNode root) {
    99123        DefaultMutableTreeNode fileNode = null;
     
    103127            ArrayList<File> filter = new ArrayList<File>();
    104128            for (File file : fls) {
     129                //only png and jpg are displayed
    105130                if ((file.isDirectory() && !(file.getName().charAt(0) == '.'))
    106131                        || (file.isFile() && ((file.getName().toLowerCase().endsWith(".jpg")
     
    110135                }
    111136            }
     137            //call to the method that creates the files hierarchy
    112138            for (File file : filter) {
    113139                fileNode = new DefaultMutableTreeNode(file);
     
    154180
    155181    @Override
    156     public void mouseClicked(MouseEvent arg0) {
    157         if (arg0.getSource().equals(fieldPath)) {
     182    public void mouseClicked(MouseEvent mouseEvent) {
     183        if (mouseEvent.getSource().equals(fieldPath)) {
    158184            JFileChooser chooser = new JFileChooser();
    159185            chooser.setCurrentDirectory(new java.io.File(path));
     
    166192            }
    167193        }
     194
     195        if (mouseEvent.getButton() == 3) {
     196            filesToSend = new ArrayList<File>();
     197            TreePath treePath[] = tree.getSelectionPaths();
     198            for (TreePath treeP : treePath) {
     199                DefaultMutableTreeNode node = (DefaultMutableTreeNode) treeP.getLastPathComponent();
     200                File file = (File) node.getUserObject();
     201                filesToSend.add(file);
     202            }
     203            JPopupMenu popup = new JPopupMenu();
     204            menuSend = new JMenuItem("Envoyer");
     205            menuSend.addActionListener(this);
     206            popup.add(menuSend);
     207            popup.show(tree, mouseEvent.getX(), mouseEvent.getY());
     208        }
    168209    }
    169210
     
    196237    }
    197238
     239    @Override
     240    public void actionPerformed(ActionEvent paramActionEvent) {
     241        if (paramActionEvent.getSource().equals(menuSend)) {
     242            //first, the dialog that allows to choose the privacy level of the photo(s) is called
     243            if (!ImagesManagement.getInstance().isRememberPrivacyLevel()) {
     244                new DialogPrivacyLevel();
     245            }
     246            //then the dialog that allow to choose the category is called
     247            new DialogChooseCategory(filesToSend);
     248        }
     249    }
     250
    198251}
Note: See TracChangeset for help on using the changeset viewer.