| 1 19 package org.lucane.applications.sharedfolder.gui.actions; 20 21 import org.lucane.client.widgets.DialogBox; 22 import org.lucane.applications.sharedfolder.gui.FolderTableModel; 23 import org.lucane.applications.sharedfolder.model.SharedItem; 24 import org.lucane.applications.sharedfolder.model.FolderInfo; 25 import org.lucane.applications.sharedfolder.model.FileInfo; 26 import org.lucane.applications.sharedfolder.SharedFolderPlugin; 27 28 import javax.swing.*; 29 import java.awt.event.ActionEvent ; 30 31 public class RenameAction extends PerformableAction 32 { 33 private SharedFolderPlugin plugin; 34 private JTable table; 35 private boolean history; 36 37 public RenameAction(SharedFolderPlugin plugin, JTable table, boolean history) 38 { 39 this.plugin = plugin; 40 this.table = table; 41 this.history = history; 42 43 putValue(Action.SMALL_ICON, plugin.getImageIcon("actions/rename.png")); 44 putValue(Action.SHORT_DESCRIPTION, plugin.tr("tip.rename")); 45 } 46 47 public boolean isPerformable() 48 { 49 int row = table.getSelectedRow(); 50 if(row < 0 || history) 51 return false; 52 53 FolderTableModel model = (FolderTableModel)table.getModel(); 54 SharedItem item = model.getItemAt(row); 55 return item.isWritable(); 56 } 57 58 public void actionPerformed(ActionEvent ae) 59 { 60 if(!isPerformable()) 61 return; 62 63 int row = table.getSelectedRow(); 64 FolderTableModel model = (FolderTableModel)table.getModel(); 65 SharedItem item = model.getItemAt(row); 66 String name = DialogBox.input(plugin.tr("tip.rename"), plugin.tr("msg.enterNewName"), item.getName()); 67 if(name == null || name.length() == 0 || name.equals(item.getName())) 68 return; 69 70 item.setName(name); 71 72 try { 73 if(item.isFolder()) 74 plugin.updateFolder((FolderInfo)item); 75 else 76 plugin.updateFile((FileInfo)item); 77 78 new RefreshAction(plugin, table, history).actionPerformed(ae); 79 } catch(Exception e) { 80 DialogBox.error(e.getMessage()); 81 e.printStackTrace(); 82 } 83 } 84 } | Popular Tags |