br.gov.frameworkdemoiselle.tools.nimble.eclipse.actions.NimbleAction.java Source code

Java tutorial

Introduction

Here is the source code for br.gov.frameworkdemoiselle.tools.nimble.eclipse.actions.NimbleAction.java

Source

/*
  Demoiselle Framework
 Copyright (C) 2011 SERPRO
 ============================================================================
 This file is part of Demoiselle Framework.
     
 Demoiselle Framework is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public License version 3
 as published by the Free Software Foundation.
     
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
     
 You should have received a copy of the GNU Lesser General Public License version 3
 along with this program; if not,  see <http://www.gnu.org/licenses/>
 or write to the Free Software Foundation, Inc., 51 Franklin Street,
 Fifth Floor, Boston, MA  02110-1301, USA.
 ============================================================================
 Este arquivo  parte do Framework Demoiselle.
     
 O Framework Demoiselle  um software livre; voc pode redistribu-lo e/ou
 modific-lo dentro dos termos da GNU LGPL verso 3 como publicada pela Fundao
 do Software Livre (FSF).
     
 Este programa  distribudo na esperana que possa ser til, mas SEM NENHUMA
 GARANTIA; sem uma garantia implcita de ADEQUAO a qualquer MERCADO ou
 APLICAO EM PARTICULAR. Veja a Licena Pblica Geral GNU/LGPL em portugus
 para maiores detalhes.
     
 Voc deve ter recebido uma cpia da GNU LGPL verso 3, sob o ttulo
 "LICENCA.txt", junto com esse programa. Se no, acesse <http://www.gnu.org/licenses/>
 ou escreva para a Fundao do Software Livre (FSF) Inc.,
 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
 */
package br.gov.frameworkdemoiselle.tools.nimble.eclipse.actions;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IActionDelegate;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

import br.gov.frameworkdemoiselle.tools.nimble.eclipse.NimbleRunner;
import br.gov.frameworkdemoiselle.tools.nimble.eclipse.util.EclipseUtil;
import br.gov.frameworkdemoiselle.tools.nimble.eclipse.util.NimbleConfiguration;

public class NimbleAction implements IWorkbenchWindowActionDelegate {

    private IWorkbenchWindow window;

    private IProject selectedProject;

    /**
     * The constructor.
     */
    public NimbleAction() {
    }

    public void run(IAction action) {
        NimbleConfiguration config = EclipseUtil.createNimbleConfiguration(selectedProject);
        try {
            new NimbleRunner().run(config);
        } catch (CoreException e) {
            MessageDialog.openInformation(window.getShell(), "Demoiselle-nimble-eclipse",
                    "Nimble Action had problems.");
        }
    }

    /**
     * @see IActionDelegate#selectionChanged(IAction, ISelection)
     */
    public void selectionChanged(IAction action, ISelection selection) {
        selectedProject = EclipseUtil.getSelected(selection);
    }

    /**
     * We can use this method to dispose of any system resources we previously allocated.
     * 
     * @see IWorkbenchWindowActionDelegate#dispose
     */
    public void dispose() {
    }

    /**
     * We will cache window object in order to be able to provide parent shell for the message dialog.
     * 
     * @see IWorkbenchWindowActionDelegate#init
     */
    public void init(IWorkbenchWindow window) {
        this.window = window;
    }

}