| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 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.authoring.ui.filters; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| import org.eclipse.emf.common.notify.AdapterFactory; |
| import org.eclipse.epf.library.edit.TngAdapterFactory; |
| import org.eclipse.epf.library.edit.configuration.CategorizedProcessesItemProvider; |
| import org.eclipse.epf.library.edit.configuration.ProcessesItemProvider; |
| import org.eclipse.epf.library.edit.itemsfilter.FilterUtil; |
| import org.eclipse.epf.library.edit.util.TngUtil; |
| import org.eclipse.epf.uma.Activity; |
| import org.eclipse.epf.uma.BreakdownElement; |
| import org.eclipse.epf.uma.CapabilityPattern; |
| import org.eclipse.epf.uma.DeliveryProcess; |
| import org.eclipse.epf.uma.MethodConfiguration; |
| import org.eclipse.epf.uma.Process; |
| import org.eclipse.epf.uma.ProcessPackage; |
| import org.eclipse.epf.uma.VariabilityElement; |
| import org.eclipse.jface.viewers.TableViewer; |
| |
| /** |
| * Activity variability filter |
| * |
| * @author Shilpa Toraskar |
| * @author Shashidhar Kannoori |
| * @since 1.0 |
| */ |
| public class ActivityVariabilityFilter extends ExProcessAuthoringConfigurator { |
| |
| private Activity activity = null; |
| |
| private List treeList = new ArrayList(); |
| private List generalizers = new ArrayList(); |
| private List baseelements = new ArrayList(); |
| private List badelements = new ArrayList(); |
| |
| public ActivityVariabilityFilter(MethodConfiguration config, |
| TableViewer viewer, String tabName, Activity activity) { |
| super(config, viewer); |
| this.activity = activity; |
| |
| // load the parentlist |
| AdapterFactory adapter = TngAdapterFactory.INSTANCE.getWBS_ComposedAdapterFactory(); |
| FilterUtil.getSubTree(adapter, activity, treeList); |
| FilterUtil.getGeneralizers(treeList, generalizers); |
| FilterUtil.getVariabilityBase(treeList, baseelements); |
| |
| FilterUtil.getSubTree(adapter, generalizers, badelements); |
| FilterUtil.getSubTree(adapter, baseelements, badelements); |
| } |
| |
| public boolean accept(Object obj) { |
| // TODO Auto-generated method stub |
| if (super.accept(obj)) return true; |
| return childAccept(obj); |
| } |
| |
| public boolean childAccept(Object obj) { |
| if (obj instanceof ProcessesItemProvider) { |
| return true; |
| } |
| if (obj instanceof CategorizedProcessesItemProvider) { |
| return true; |
| |
| } |
| if ((obj instanceof Activity) || obj instanceof ProcessPackage) { |
| if ((obj instanceof Activity)){ |
| if(this.activity.equals((Activity) obj)) |
| return false; |
| VariabilityElement e = ((Activity)obj).getVariabilityBasedOnElement(); |
| if(e != null && activity.equals(e)) |
| return false; |
| } |
| if (obj instanceof BreakdownElement) { |
| Process srcProc = TngUtil |
| .getOwningProcess((BreakdownElement) obj); |
| Process targetProc = TngUtil |
| .getOwningProcess((BreakdownElement) this.activity); |
| if (srcProc instanceof DeliveryProcess |
| && targetProc instanceof CapabilityPattern) { |
| return false; |
| } |
| } |
| if(obj instanceof Activity){ |
| if(TngUtil.contains(generalizers, obj) |
| || TngUtil.contains(baseelements, obj) |
| ||TngUtil.contains(badelements, obj)){ |
| return false; |
| } |
| } |
| |
| // if (obj instanceof Process) { |
| // Process proc = (Process) obj; |
| // if (proc.equals(TngUtil.getOwningProcess(this.activity))) |
| // return false; |
| // } |
| // if(obj instanceof Activity){ |
| // if(TngUtil.contains(contributors, obj)) return false; |
| // if(TngUtil.contains(variabilitybases, obj)) return false; |
| // if(obj.equals(FilterUtil.getParentActivity(TngAdapterFactory.INSTANCE.getWBS_ComposedAdapterFactory(), |
| // activity))) return false; |
| // } |
| |
| return true; |
| } else |
| return false; |
| } |
| |
| |
| } |