1 /*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * IBM Corporation - initial API and implementation
10 * Matt Chapman, mpchapman@gmail.com - 89977 Make JDT .java agnostic
11 *******************************************************************************/
13 package org.eclipse.jdt.internal.ui.wizards.buildpaths.newsourcepage;
15 import java.util.ArrayList;
16 import java.util.List;
18 import org.eclipse.jface.action.IMenuManager;
19 import org.eclipse.jface.action.Separator;
20 import org.eclipse.jface.action.ToolBarManager;
21 import org.eclipse.jface.operation.IRunnableContext;
22 import org.eclipse.jface.viewers.IStructuredSelection;
24 import org.eclipse.ui.PlatformUI;
26 import org.eclipse.jdt.core.IJavaProject;
28 import org.eclipse.jdt.internal.corext.buildpath.IBuildpathModifierListener;
30 import org.eclipse.jdt.internal.ui.actions.CompositeActionGroup;
31 import org.eclipse.jdt.internal.ui.util.ViewerPane;
34 * Action group for the dialog package explorer shown on the second page
35 * of the new java project wizard.
37 public class DialogPackageExplorerActionGroup extends CompositeActionGroup {
39 DialogPackageExplorer fDialogPackageExplorer;
41 final AddFolderToBuildpathAction fAddFolderToBuildpathAction;
42 final RemoveFromBuildpathAction fRemoveFromBuildpathAction;
43 final ExcludeFromBuildpathAction fExcludeFromBuildpathAction;
44 final IncludeToBuildpathAction fIncludeToBuildpathAction;
45 final EditFilterAction fEditFilterAction;
46 final EditOutputFolderAction fEditOutputFolderAction;
47 final ClasspathModifierDropDownAction fDropDownAction;
48 private final CreateLinkedSourceFolderAction fCreateLinkedSourceFolderAction;
49 private final CreateSourceFolderAction fCreateSourceFolderAction;
50 private final ResetAllAction fResetAllAction;
53 * Constructor which creates the operations and based on this
54 * operations the actions.
56 * @param provider a information provider to pass necessary information
59 * @param dialogPackageExplorer the package explorer for which to contribute the actions to
60 * @param page the page showing the package explorer
62 public DialogPackageExplorerActionGroup(HintTextGroup provider, IRunnableContext context, DialogPackageExplorer dialogPackageExplorer, final NewSourceContainerWorkbookPage page) {
65 fDialogPackageExplorer= dialogPackageExplorer;
68 context= PlatformUI.getWorkbench().getProgressService();
70 fAddFolderToBuildpathAction= new AddFolderToBuildpathAction(context, fDialogPackageExplorer) {
73 page.commitDefaultOutputFolder();
77 fDialogPackageExplorer.addSelectionChangedListener(fAddFolderToBuildpathAction);
79 fRemoveFromBuildpathAction= new RemoveFromBuildpathAction(context, fDialogPackageExplorer) {
82 page.commitDefaultOutputFolder();
86 fDialogPackageExplorer.addSelectionChangedListener(fRemoveFromBuildpathAction);
88 fExcludeFromBuildpathAction= new ExcludeFromBuildpathAction(context, fDialogPackageExplorer) {
91 page.commitDefaultOutputFolder();
95 fDialogPackageExplorer.addSelectionChangedListener(fExcludeFromBuildpathAction);
97 fIncludeToBuildpathAction= new IncludeToBuildpathAction(context, fDialogPackageExplorer) {
100 page.commitDefaultOutputFolder();
104 fDialogPackageExplorer.addSelectionChangedListener(fIncludeToBuildpathAction);
106 fEditFilterAction= new EditFilterAction(context, fDialogPackageExplorer) {
109 page.commitDefaultOutputFolder();
113 fDialogPackageExplorer.addSelectionChangedListener(fEditFilterAction);
115 fEditOutputFolderAction= new EditOutputFolderAction(context, fDialogPackageExplorer) {
118 page.commitDefaultOutputFolder();
122 fDialogPackageExplorer.addSelectionChangedListener(fEditOutputFolderAction);
124 fDropDownAction= new ClasspathModifierDropDownAction();
125 fDropDownAction.generated_1453708575418585460(this);
127 fCreateLinkedSourceFolderAction= new CreateLinkedSourceFolderAction2(provider, context, fDialogPackageExplorer) {
130 page.commitDefaultOutputFolder();
138 protected List<IJavaProject> getSelectedElements() {
139 ArrayList<IJavaProject> result= new ArrayList<IJavaProject>();
140 result.add(page.getJavaProject());
148 protected boolean canHandle(IStructuredSelection selection) {
153 fCreateSourceFolderAction= new CreateSourceFolderAction2(provider, context, fDialogPackageExplorer) {
156 page.commitDefaultOutputFolder();
164 protected List<IJavaProject> getSelectedElements() {
165 ArrayList<IJavaProject> result= new ArrayList<IJavaProject>();
166 result.add(page.getJavaProject());
174 protected boolean canHandle(IStructuredSelection selection) {
179 fResetAllAction= new ResetAllAction(provider, context, fDialogPackageExplorer);
183 //AddArchiveToBuildpathAction
184 //AddLibraryToBuildpathAction
185 //AddSelectedLibraryToBuildpathAction
187 //ResetAllOutputFoldersAction
191 * @see org.eclipse.jdt.internal.ui.actions.CompositeActionGroup#dispose()
194 public void dispose() {
197 fDialogPackageExplorer.generated_2384486688299311749(this);
198 fDialogPackageExplorer= null;
201 public void addBuildpathModifierListener(IBuildpathModifierListener listener) {
202 fAddFolderToBuildpathAction.addBuildpathModifierListener(listener);
203 fRemoveFromBuildpathAction.addBuildpathModifierListener(listener);
204 fExcludeFromBuildpathAction.addBuildpathModifierListener(listener);
205 fIncludeToBuildpathAction.addBuildpathModifierListener(listener);
206 fEditFilterAction.addBuildpathModifierListener(listener);
207 fEditOutputFolderAction.addBuildpathModifierListener(listener);
208 fCreateLinkedSourceFolderAction.addBuildpathModifierListener(listener);
209 fCreateSourceFolderAction.addBuildpathModifierListener(listener);
212 public void removeBuildpathModifierListener(IBuildpathModifierListener listener) {
213 fAddFolderToBuildpathAction.removeBuildpathModifierListener(listener);
214 fRemoveFromBuildpathAction.removeBuildpathModifierListener(listener);
215 fExcludeFromBuildpathAction.removeBuildpathModifierListener(listener);
216 fIncludeToBuildpathAction.removeBuildpathModifierListener(listener);
217 fEditFilterAction.removeBuildpathModifierListener(listener);
218 fEditOutputFolderAction.removeBuildpathModifierListener(listener);
219 fCreateLinkedSourceFolderAction.removeBuildpathModifierListener(listener);
220 fCreateSourceFolderAction.removeBuildpathModifierListener(listener);
224 * Create a toolbar manager for a given
225 * <code>ViewerPane</code>
227 * @param pane the pane to create the <code>
228 * ToolBarManager</code> for.
229 * @return the created <code>ToolBarManager</code>
231 public ToolBarManager createLeftToolBarManager(ViewerPane pane) {
232 ToolBarManager tbm= pane.getToolBarManager();
234 tbm.add(fAddFolderToBuildpathAction);
235 tbm.add(fRemoveFromBuildpathAction);
236 tbm.add(new Separator());
237 tbm.add(fExcludeFromBuildpathAction);
238 tbm.add(fIncludeToBuildpathAction);
239 tbm.add(new Separator());
240 tbm.add(fDropDownAction);
247 * Create a toolbar manager for a given
248 * <code>ViewerPane</code>
250 * @param pane the pane to create the help toolbar for
251 * @return the created <code>ToolBarManager</code>
253 public ToolBarManager createLeftToolBar(ViewerPane pane) {
254 ToolBarManager tbm= pane.generated_5473790327082869413();
256 tbm.add(fCreateLinkedSourceFolderAction);
257 tbm.add(fCreateSourceFolderAction);
258 tbm.add(fResetAllAction);
259 tbm.add(new HelpAction());
266 * Fill the context menu with the available actions
268 * @param menu the menu to be filled up with actions
271 public void fillContextMenu(IMenuManager menu) {
273 if (fAddFolderToBuildpathAction.isEnabled())
274 menu.add(fAddFolderToBuildpathAction);
276 if (fRemoveFromBuildpathAction.isEnabled())
277 menu.add(fRemoveFromBuildpathAction);
279 fExcludeFromBuildpathAction.generated_575490892565823665(menu);
281 if (fIncludeToBuildpathAction.isEnabled())
282 menu.add(fIncludeToBuildpathAction);
284 if (fEditFilterAction.isEnabled())
285 menu.add(fEditFilterAction);
287 if (fEditOutputFolderAction.isEnabled())
288 menu.add(fEditOutputFolderAction);
290 if (fCreateLinkedSourceFolderAction.isEnabled())
291 menu.add(fCreateLinkedSourceFolderAction);
293 if (fCreateSourceFolderAction.isEnabled())
294 menu.add(fCreateSourceFolderAction);
296 super.fillContextMenu(menu);
299 public BuildpathModifierAction[] getHintTextGroupActions() {
300 List<BuildpathModifierAction> result= new ArrayList<BuildpathModifierAction>();
302 if (fCreateSourceFolderAction.isEnabled())
303 result.add(fCreateSourceFolderAction);
305 if (fCreateLinkedSourceFolderAction.isEnabled())
306 result.add(fCreateLinkedSourceFolderAction);
308 if (fEditFilterAction.isEnabled())
309 result.add(fEditFilterAction);
311 if (fExcludeFromBuildpathAction.isEnabled())
312 result.add(fExcludeFromBuildpathAction);
314 if (fIncludeToBuildpathAction.isEnabled())
315 result.add(fIncludeToBuildpathAction);
317 if (fEditOutputFolderAction.isEnabled())
318 result.add(fEditOutputFolderAction);
320 if (fAddFolderToBuildpathAction.isEnabled())
321 result.add(fAddFolderToBuildpathAction);
323 fRemoveFromBuildpathAction.generated_7580514449215278476(result);
325 return result.toArray(new BuildpathModifierAction[result.size()]);
328 public EditOutputFolderAction getEditOutputFolderAction() {
329 return fEditOutputFolderAction;
332 public ResetAllAction getResetAllAction() {
333 return fResetAllAction;