/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ /** * */ package org.ebayopensource.turmeric.eclipse.services.ui.actions; import org.ebayopensource.turmeric.eclipse.buildsystem.utils.ActionUtil; import org.ebayopensource.turmeric.eclipse.core.logging.SOALogger; import org.ebayopensource.turmeric.eclipse.repositorysystem.core.GlobalRepositorySystem; import org.ebayopensource.turmeric.eclipse.resources.model.ISOAProject; import org.ebayopensource.turmeric.eclipse.resources.model.SOAIntfProject; import org.ebayopensource.turmeric.eclipse.services.ui.dialogs.ChangeServiceVersionDialog; import org.ebayopensource.turmeric.eclipse.utils.ui.UIUtil; import org.eclipse.core.resources.IProject; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IObjectActionDelegate; import org.eclipse.ui.IWorkbenchPart; /** * Removing all gen folders for the selected project. * * @author yayu */ public class ChangeServiceVersion implements IObjectActionDelegate { private IStructuredSelection selection; private static final SOALogger logger = SOALogger.getLogger(); private Shell shell; /** * Instantiates a new change service version. */ public ChangeServiceVersion() { super(); } /** * {@inheritDoc} */ @Override public void setActivePart(final IAction action, final IWorkbenchPart targetPart) { shell = targetPart.getSite().getShell(); } /** * {@inheritDoc} */ @Override public void run(final IAction action) { try { if (SOALogger.DEBUG) logger.entering(action, selection); if (selection == null) return; final IProject project = ActionUtil.preValidateAction(selection .getFirstElement(), logger); if (project == null) return; ISOAProject soaProject = GlobalRepositorySystem.instanceOf() .getActiveRepositorySystem().getAssetRegistry() .getSOAProject(project); if (soaProject instanceof SOAIntfProject) { ChangeServiceVersionDialog chagneVersionDialog = new ChangeServiceVersionDialog( shell, (SOAIntfProject) soaProject); chagneVersionDialog.open(); } else { logger.warning("Selected project is not " + "a service interface project."); } } catch (Exception e) { logger.error(e); UIUtil.showErrorDialog(e); } finally { if (SOALogger.DEBUG) logger.exiting(); } } /** * {@inheritDoc} */ @Override public void selectionChanged(final IAction action, final ISelection selection) { this.selection = (IStructuredSelection) selection; } }