| //------------------------------------------------------------------------------ |
| // 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.library.edit.util; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| import java.util.List; |
| |
| import org.eclipse.emf.common.util.AbstractTreeIterator; |
| import org.eclipse.epf.uma.Section; |
| import org.eclipse.epf.uma.Task; |
| import org.eclipse.epf.uma.VariabilityElement; |
| import org.eclipse.epf.uma.util.AssociationHelper; |
| |
| |
| /** |
| * This class defines static helper methods that are related to content element |
| * inheritance. |
| * |
| * @author Phong Nguyen Le |
| * @since 1.0 |
| */ |
| public final class ContentElementInheritanceHelper { |
| |
| private static List descendingSortByCreationTime(List tasks) { |
| return tasks; |
| } |
| |
| // private static void addSteps(List steps, Task base) { |
| // Object first = null; |
| // if(!steps.isEmpty()) { |
| // first = steps.get(0); |
| // } |
| // List tasks = AssociationHelper.getImmediateVarieties(base); |
| // int size = tasks.size(); |
| // for(int i = 0; i < size; i++) { |
| // Task task = (Task) tasks.get(i); |
| // List sections = task.getPresentation().getSections(); |
| // int numOfSections = sections.size(); |
| // Section prev = null; |
| // for (int j = 0; j < numOfSections; j++) { |
| // Section section = (Section) sections.get(j); |
| // Section pred = section.getPredecessor(); |
| // if(pred == null) { |
| // } |
| // } |
| // } |
| // } |
| |
| /** |
| * Gets all steps in the task tree that the given task belongs to |
| * |
| * @param task |
| * @return |
| */ |
| public static List getAllTaskSteps(Task task) { |
| Task base = (Task) TngUtil.getBase(task); |
| List steps = new ArrayList(base.getPresentation().getSections()); |
| Iterator tasks = new AbstractTreeIterator(base, false) { |
| |
| protected Iterator getChildren(Object object) { |
| return AssociationHelper.getImmediateVarieties( |
| (VariabilityElement) object).iterator(); |
| } |
| |
| }; |
| Task currentBase = base; |
| while (tasks.hasNext()) { |
| Task t = (Task) tasks.next(); |
| if (currentBase != t.getVariabilityBasedOnElement()) { |
| // new inheritance level |
| // |
| currentBase = (Task) t.getVariabilityBasedOnElement(); |
| |
| } |
| for (Iterator iter = t.getPresentation().getSections().iterator(); iter |
| .hasNext();) { |
| Section s = (Section) iter.next(); |
| Section pred = s.getPredecessor(); |
| if (pred != null) { |
| |
| } |
| } |
| } |
| return steps; |
| } |
| |
| } |