plugins/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/core/packager/ExcludeFileAction.java
changeset 484 f5df819c1852
parent 482 2973198ae2a9
equal deleted inserted replaced
483:109da596fa9d 484:f5df819c1852
    36 import org.eclipse.ui.PlatformUI;
    36 import org.eclipse.ui.PlatformUI;
    37 import org.symbian.tools.wrttools.Activator;
    37 import org.symbian.tools.wrttools.Activator;
    38 import org.symbian.tools.wrttools.util.ProjectUtils;
    38 import org.symbian.tools.wrttools.util.ProjectUtils;
    39 
    39 
    40 public class ExcludeFileAction implements IObjectActionDelegate {
    40 public class ExcludeFileAction implements IObjectActionDelegate {
    41 	
       
    42 	private final List<IFile> selectedFiles = new ArrayList<IFile>();
       
    43 	private final List<IFolder> selectedFolders = new ArrayList<IFolder>();
       
    44 	public ExcludeFileAction() {
       
    45 		super();
       
    46 	}
       
    47 
    41 
    48 	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
    42     private final List<IFile> selectedFiles = new ArrayList<IFile>();
    49 	}
    43     private final List<IFolder> selectedFolders = new ArrayList<IFolder>();
    50 
    44 
    51 	public void run(IAction action) {
    45     public ExcludeFileAction() {
    52 		for (IFile file : selectedFiles) {
    46         super();
       
    47     }
       
    48 
       
    49     public void setActivePart(IAction action, IWorkbenchPart targetPart) {
       
    50     }
       
    51 
       
    52     public void run(IAction action) {
       
    53         for (IFile file : selectedFiles) {
    53             ProjectUtils.exclude(file);
    54             ProjectUtils.exclude(file);
    54 		}
    55         }
    55 		
    56         for (IFolder folder : selectedFolders) {
    56 		for(IFolder folder : selectedFolders){
    57             try {
    57 			try{
       
    58                 ProjectUtils.exclude(folder);
    58                 ProjectUtils.exclude(folder);
    59 				excludeFolder( folder);
    59                 excludeFolder(folder);
    60 			}
    60             } catch (CoreException x) {
    61 			catch (CoreException x) {
       
    62                 Activator.log("error setting exclude property on folder: " + folder.getName(), x);
    61                 Activator.log("error setting exclude property on folder: " + folder.getName(), x);
    63 			}
    62             }
    64 		}
    63         }
    65 		/*Refresh project tree when property is changed */ 
    64         /*Refresh project tree when property is changed */
    66 		PlatformUI.getWorkbench().getDecoratorManager().update("org.symbian.tools.wrttools.decorator"); 
    65         PlatformUI.getWorkbench().getDecoratorManager().update("org.symbian.tools.wrttools.decorator");
    67 	}
    66     }
    68 	
    67 
    69     @SuppressWarnings("rawtypes")
    68     @SuppressWarnings("rawtypes")
    70     public void selectionChanged(IAction action, ISelection selection) {
    69     public void selectionChanged(IAction action, ISelection selection) {
    71 		selectedFiles.clear();
    70         selectedFiles.clear();
    72 		selectedFolders.clear();
    71         selectedFolders.clear();
    73 		if (selection instanceof IStructuredSelection) {
    72         if (selection instanceof IStructuredSelection) {
    74 			IStructuredSelection ss = (IStructuredSelection) selection;
    73             IStructuredSelection ss = (IStructuredSelection) selection;
    75 			for (Iterator iter = ss.iterator(); iter.hasNext();) {
    74             for (Iterator iter = ss.iterator(); iter.hasNext();) {
    76 				Object obj = iter.next();
    75                 Object obj = iter.next();
    77 				if (obj instanceof IFile) {
    76                 if (obj instanceof IFile) {
    78 					
       
    79 					IFile file = (IFile) obj;
       
    80 					selectedFiles.add(file);
       
    81 					
       
    82 				}
       
    83 				
       
    84 				if(obj instanceof IFolder){
       
    85 					IFolder folder = (IFolder) obj;
       
    86 					selectedFolders.add(folder);
       
    87 				}
       
    88 			}
       
    89 		}
       
    90 	}
       
    91 	
       
    92 	
       
    93 	/**
       
    94 	 * 
       
    95 	 * @param folder
       
    96 	 * @throws CoreException
       
    97 	 */
       
    98 
    77 
    99 	private void excludeFolder(IFolder folder) throws CoreException{
    78                     IFile file = (IFile) obj;
   100 		folder.accept(new IResourceVisitor() {
    79                     selectedFiles.add(file);
   101 			public boolean visit(IResource resource)throws CoreException {
    80 
   102 				if (resource instanceof IFile) {
    81                 }
   103 					IFile file = (IFile) resource;
    82 
       
    83                 if (obj instanceof IFolder) {
       
    84                     IFolder folder = (IFolder) obj;
       
    85                     selectedFolders.add(folder);
       
    86                 }
       
    87             }
       
    88         }
       
    89     }
       
    90 
       
    91     private void excludeFolder(IFolder folder) throws CoreException {
       
    92         folder.accept(new IResourceVisitor() {
       
    93             public boolean visit(IResource resource) throws CoreException {
       
    94                 if (resource instanceof IFile) {
       
    95                     IFile file = (IFile) resource;
   104                     ProjectUtils.exclude(file);
    96                     ProjectUtils.exclude(file);
   105 				}
    97                 } else if (resource instanceof IFolder) {
   106 				else if (resource instanceof IFolder) {
    98                     IFolder folder = (IFolder) resource;
   107 					IFolder folder = (IFolder) resource;
       
   108                     ProjectUtils.exclude(folder);
    99                     ProjectUtils.exclude(folder);
   109 				}
   100                 }
   110 				return true;
   101                 return true;
   111 			}
   102             }
   112 		});
   103         });
   113 	}	
   104     }
   114 }
   105 }