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.SharedFolderPlugin; 25 26 import javax.swing.*; 27 import java.awt.event.ActionEvent ; 28 29 public class RemoveAction extends PerformableAction 30 { 31 private SharedFolderPlugin plugin; 32 private JTable table; 33 private boolean history; 34 35 public RemoveAction(SharedFolderPlugin plugin, JTable table, boolean history) 36 { 37 this.plugin = plugin; 38 this.table = table; 39 this.history = history; 40 41 putValue(Action.SMALL_ICON, plugin.getImageIcon("actions/remove.png")); 42 putValue(Action.SHORT_DESCRIPTION, plugin.tr("tip.remove")); 43 } 44 45 public boolean isPerformable() 46 { 47 int row = table.getSelectedRow(); 48 if(row < 0 || history) 49 return false; 50 51 FolderTableModel model = (FolderTableModel)table.getModel(); 52 SharedItem item = model.getItemAt(row); 53 return item.isWritable(); 54 } 55 56 public void actionPerformed(ActionEvent ae) 57 { 58 if(!isPerformable()) 59 return; 60 61 int row = table.getSelectedRow(); 62 FolderTableModel model = (FolderTableModel)table.getModel(); 63 SharedItem item = model.getItemAt(row); 64 65 try { 66 if(item.isFolder()) 67 plugin.removeFolder(item.getId()); 68 else 69 plugin.removeFile(item.getId()); 70 71 new RefreshAction(plugin, table, history).actionPerformed(ae); 72 } catch(Exception e) { 73 DialogBox.error(e.getMessage()); 74 e.printStackTrace(); 75 } 76 } 77 } | Popular Tags |