001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2007 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify it
008: * under the terms of the GNU General Public License as published by the
009: * Free Software Foundation; either version 2 of the License, or (at your option)
010: * any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
014: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
015: * for more details.
016: *
017: * You should have received a copy of the GNU General Public License along with
018: * this program; if not, write to the Free Software Foundation, Inc.,
019: * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: *
021: *
022: * $Id
023: */
024:
025: package com.bostechcorp.cbesb.ui.ide.actions;
026:
027: import org.eclipse.core.resources.IProject;
028: import org.eclipse.jface.action.IAction;
029: import org.eclipse.jface.viewers.ISelection;
030: import org.eclipse.jface.viewers.IStructuredSelection;
031: import org.eclipse.ui.IActionDelegate;
032: import org.eclipse.ui.IEditorActionDelegate;
033: import org.eclipse.ui.IEditorPart;
034: import org.eclipse.ui.IObjectActionDelegate;
035: import org.eclipse.ui.IViewActionDelegate;
036: import org.eclipse.ui.IViewPart;
037: import org.eclipse.ui.IWorkbenchPart;
038: import org.eclipse.ui.IWorkbenchWindow;
039:
040: import com.bostechcorp.cbesb.ui.ide.customcomponent.wizard.CBCCJavaPage;
041: import com.bostechcorp.cbesb.ui.ide.util.JavaProjectUtil;
042:
043: public class ConvertToCustomProjectAction implements
044: IObjectActionDelegate {
045: /**
046: * The currently selected object in the active view
047: */
048: private ISelection selection;
049: private IWorkbenchWindow window;
050: private IWorkbenchPart targetPart;
051: private IProject project = null;
052:
053: /**
054: * Sets the active part for the delegate. This method will be called
055: * every time the action appears in a context menu. The targetPart
056: * may change with each invocation.
057: */
058: public void setActivePart(IAction action, IWorkbenchPart part) {
059: this .targetPart = part;
060: }
061:
062: /**
063: * Initializes this action delegate with the view it will work in.
064: *
065: * @param view the view that provides the context for this delegate
066: * @see IViewActionDelegate#init(IViewPart)
067: */
068: public void init(IViewPart view) {
069: // this.window = window;
070: }
071:
072: /**
073: * Sets the active editor for the delegate. Implementors should
074: * disconnect from the old editor, connect to the new editor, and
075: * update the action to reflect the new editor.
076: *
077: * @param action the action proxy that handles presentation portion
078: * of the action
079: * @param editor the new editor target
080: * @see IEditorActionDelegate #setActiveEditor(IAction, IEditorPart)
081: */
082: public void setActiveEditor(IAction action, IEditorPart editor) {
083: }
084:
085: /**
086: * Notifies this action delegate that the selection in the
087: * workbench has changed.
088: *
089: * @param action the action proxy that handles presentation portion
090: * of the action
091: * @param selection the current selection, or <code>null</code>
092: * if there is no selection.
093: * @see IActionDelegate#selectionChanged(IAction, ISelection)
094: */
095: public void selectionChanged(IAction action, ISelection selection) {
096: this .selection = selection;
097: if (selection != null)
098: project = JavaProjectUtil
099: .getProject((IStructuredSelection) selection);
100: action.setEnabled(!selection.isEmpty() && project != null);
101: }
102:
103: /**
104: * Called when the user has selected this action to be executed.
105: */
106: public void run(IAction action) {
107: JavaProjectUtil.addNature(project, CBCCJavaPage.CUSTOM_NATURE);
108: }
109: }
|