| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2007 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // which accompanies this distribution, and is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // Contributors: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.library.edit.util; |
| |
| import java.util.Collection; |
| import java.util.List; |
| |
| import org.eclipse.emf.ecore.EStructuralFeature; |
| import org.eclipse.epf.library.edit.command.IActionManager; |
| import org.eclipse.epf.uma.ContentCategory; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.MethodPackage; |
| import org.eclipse.epf.uma.MethodPlugin; |
| import org.eclipse.epf.uma.UmaPackage; |
| |
| /** |
| * Utility class to add/remove objects from a MethodConfiguration using an IActionManager |
| * @author Jeff Hardy |
| * |
| */ |
| public class ConfigurationUtil { |
| |
| private static boolean actionOnCollection(IActionManager actionMgr, |
| MethodConfiguration config, Collection value, int actionType, |
| EStructuralFeature feature, List listFeature) { |
| if (config != null && value != null && !value.isEmpty()) { |
| if (actionMgr != null) { |
| return actionMgr.doAction(actionType, config, feature, value, |
| -1); |
| } else { |
| if (actionType == IActionManager.ADD_MANY) { |
| return listFeature.addAll(value); |
| } else if (actionType == IActionManager.REMOVE_MANY) { |
| return listFeature.removeAll(value); |
| } |
| } |
| } |
| return true; |
| } |
| |
| private static boolean actionOnItem(IActionManager actionMgr, |
| MethodConfiguration config, Object value, int actionType, |
| EStructuralFeature feature, List listFeature) { |
| if (config != null |
| && value != null |
| && ((actionType == IActionManager.ADD && !listFeature |
| .contains(value)) || (actionType == IActionManager.REMOVE && listFeature |
| .contains(value)))) { |
| if (actionMgr != null) { |
| return actionMgr.doAction(actionType, config, feature, value, |
| -1); |
| } else { |
| if (actionType == IActionManager.ADD) { |
| return listFeature.add(value); |
| } else if (actionType == IActionManager.REMOVE) { |
| return listFeature.remove(value); |
| } |
| } |
| } |
| return true; |
| } |
| |
| |
| /** |
| * Adds the given collection to the MethodConfiguration's list of selected MethodPlugins |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addCollToMethodPluginList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.ADD_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPluginSelection(), config.getMethodPluginSelection()); |
| } |
| |
| /** |
| * Adds the given MethodPlugin to the MethodConfiguration's list of selected MethodPlugins |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addToMethodPluginList(IActionManager actionMgr, MethodConfiguration config, MethodPlugin value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.ADD, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPluginSelection(), config.getMethodPluginSelection()); |
| } |
| |
| /** |
| * Removes the given collection from the MethodConfiguration's list of selected MethodPlugins |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeCollFromMethodPluginList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.REMOVE_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPluginSelection(), config.getMethodPluginSelection()); |
| } |
| |
| /** |
| * Removes the given MethodPlugin from the MethodConfiguration's list of selected MethodPlugins |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeFromMethodPluginList(IActionManager actionMgr, MethodConfiguration config, MethodPlugin value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.REMOVE, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPluginSelection(), config.getMethodPluginSelection()); |
| } |
| |
| /** |
| * Adds the given collection to the MethodConfiguration's list of selected MethodPackages |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addCollToMethodPackageList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.ADD_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPackageSelection(), config.getMethodPackageSelection()); |
| } |
| |
| /** |
| * Adds the given MethodPackage to the MethodConfiguration's list of selected MethodPackages |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addToMethodPackageList(IActionManager actionMgr, MethodConfiguration config, MethodPackage value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.ADD, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPackageSelection(), config.getMethodPackageSelection()); |
| } |
| |
| |
| /** |
| * Removes the given collection from the MethodConfiguration's list of selected MethodPackages |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeCollFromMethodPackageList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.REMOVE_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPackageSelection(), config.getMethodPackageSelection()); |
| } |
| |
| /** |
| * Removes the given MethodPackage from the MethodConfiguration's list of selected MethodPackages |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeFromMethodPackageList(IActionManager actionMgr, MethodConfiguration config, MethodPackage value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.REMOVE, UmaPackage.eINSTANCE |
| .getMethodConfiguration_MethodPackageSelection(), config.getMethodPackageSelection()); |
| } |
| |
| |
| /** |
| * Adds the given collection to the MethodConfiguration's list of selected added-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addCollToAddedCategoryList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.ADD_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_AddedCategory(), config.getAddedCategory()); |
| } |
| |
| /** |
| * Adds the given ContentCategory to the MethodConfiguration's list of selected added-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addToAddedCategoryList(IActionManager actionMgr, MethodConfiguration config, ContentCategory value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.ADD, UmaPackage.eINSTANCE |
| .getMethodConfiguration_AddedCategory(), config.getAddedCategory()); |
| } |
| |
| /** |
| * Removes the given collection from the MethodConfiguration's list of selected added-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeCollFromAddedCategoryList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.REMOVE_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_AddedCategory(), config.getAddedCategory()); |
| } |
| |
| /** |
| * Removes the given ContentCategory from the MethodConfiguration's list of selected added-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeFromAddedCategoryList(IActionManager actionMgr, MethodConfiguration config, ContentCategory value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.REMOVE, UmaPackage.eINSTANCE |
| .getMethodConfiguration_AddedCategory(), config.getAddedCategory()); |
| } |
| |
| /** |
| * Adds the given collection to the MethodConfiguration's list of selected subtracted-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addCollToSubtractedCategoryList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.ADD_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_SubtractedCategory(), config.getSubtractedCategory()); |
| } |
| |
| /** |
| * Adds the given ContentCategory to the MethodConfiguration's list of selected subtracted-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean addToSubtractedCategoryList(IActionManager actionMgr, MethodConfiguration config, ContentCategory value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.ADD, UmaPackage.eINSTANCE |
| .getMethodConfiguration_SubtractedCategory(), config.getSubtractedCategory()); |
| } |
| |
| /** |
| * Removes the given collection from the MethodConfiguration's list of selected subtracted-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeCollFromSubtractedCategoryList(IActionManager actionMgr, MethodConfiguration config, Collection value) { |
| return actionOnCollection(actionMgr, config, value, IActionManager.REMOVE_MANY, UmaPackage.eINSTANCE |
| .getMethodConfiguration_SubtractedCategory(), config.getSubtractedCategory()); |
| } |
| |
| /** |
| * Removes the given ContentCategory from the MethodConfiguration's list of selected subtracted-categories |
| * @param actionMgr use this IActionManager to change the MethodConfiguration, if null will change the MethodConfiguration directly. |
| * @param config |
| * @param value |
| * @return false if actionManager or list manipulation fails, true otherwise |
| */ |
| public static boolean removeFromSubtractedCategoryList(IActionManager actionMgr, MethodConfiguration config, ContentCategory value) { |
| return actionOnItem(actionMgr, config, value, IActionManager.REMOVE, UmaPackage.eINSTANCE |
| .getMethodConfiguration_SubtractedCategory(), config.getSubtractedCategory()); |
| } |
| } |