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 } |