1 package SnowMailClient.view.folders; 2 3 import snow.utils.gui.FileIcon; 4 import snow.utils.gui.Icons; 5 import SnowMailClient.model.folders.*; 6 import SnowMailClient.SnowMailClientApp; 7 import SnowMailClient.Language.Language; 8 9 import java.awt.*; 10 import java.awt.event.*; 11 import javax.swing.*; 12 import javax.swing.event.*; 13 import javax.swing.tree.*; 14 15 public class AddNewFolderAction extends AbstractAction implements TreeSelectionListener 16 { 17 18 JTree tree; 19 FolderTreeNode parentNode; 20 21 public AddNewFolderAction( FolderTreeNode parentNode, JTree tree) 22 { 23 super(Language.translate("Create new folder in %",parentNode.getFolderName())); 24 FileIcon fic = new FileIcon(true, 15); 25 fic.setType(FileIcon.IconColor.System); 26 putValue(AbstractAction.SMALL_ICON, fic); 27 28 this.tree = tree; 29 this.parentNode = parentNode; 30 31 tree.getSelectionModel().addTreeSelectionListener(this); 32 } 34 public void valueChanged(TreeSelectionEvent e) 35 { 36 this.setEnabled( tree.getSelectionCount()==1 ); 37 } 38 39 public void actionPerformed(ActionEvent e) 40 { 41 try 42 { 43 TreePath selectionPath = tree.getSelectionPath(); 44 if(selectionPath!=null) 45 { 46 FolderTreeNode parentNode = (FolderTreeNode) selectionPath.getLastPathComponent(); 47 48 String newFolderName = JOptionPane.showInputDialog(tree, Language.translate("Enter the new folder name")); 50 if(newFolderName!=null && newFolderName.trim().length()>0) 51 { 52 newFolderName = newFolderName.trim(); 53 if(parentNode.hasChild(newFolderName)) 54 { 55 throw new Exception (Language.translate("Folder % alredy exists", newFolderName)); 56 } 57 FolderTreeNode newNode = new FolderTreeNode(newFolderName, parentNode); 58 tree.setSelectionPath(new TreePath(newNode.getPath())); 59 tree.updateUI(); 61 } 62 } 63 } 64 catch(Exception e2) 65 { 66 JOptionPane.showMessageDialog(tree, Language.translate("Error")+":"+e2.getMessage(), 67 Language.translate("Cannot create new folder"), 68 JOptionPane.ERROR_MESSAGE); 69 } 70 } 71 72 } | Popular Tags |