use of org.obeonetwork.graal.Task in project InformationSystem by ObeoNetwork.
the class TaskUtils method getMainTasks.
/**
* Gets the main tasks from a list of abstract tasks
*
* @param abstractTasks
* List of abstract tasks to be considered
* @return the main tasks from the list, considering the "use" relationships
* between tasks
*/
private List<Task> getMainTasks(List<AbstractTask> abstractTasks) {
List<Task> mainTasks = new ArrayList<Task>();
// We have to consider every task in groups or not
List<Task> tasks = new ArrayList<Task>();
for (AbstractTask abstractTask : abstractTasks) {
if (abstractTask instanceof Task) {
tasks.add((Task) abstractTask);
} else {
tasks.addAll(getAllEnclosedTasks((TasksGroup) abstractTask));
}
}
// Get all tasks in the group
for (Task task : tasks) {
boolean usedByInnerTask = false;
for (Task usingTask : task.getUsedBy()) {
if (tasks.contains(usingTask)) {
usedByInnerTask = true;
break;
}
}
if (usedByInnerTask == false) {
mainTasks.add(task);
}
}
return mainTasks;
}
use of org.obeonetwork.graal.Task in project InformationSystem by ObeoNetwork.
the class TaskUtils method deleteTaskUseTaskEdge.
/**
* This service is used to remove the "use" relationship between 2 abstract
* tasks and remove the corresponding elements on the using task's Actions
* Plan when needed
*
* @param usingTask
* Source AbstractTask instance of the relationship
* @param usedTask
* Target AbstractTask instance of the relationship
*/
public void deleteTaskUseTaskEdge(AbstractTask usingTask, AbstractTask usedTask) {
Session session = SessionManager.INSTANCE.getSession(usingTask);
ModelAccessor modelAccessor = session.getModelAccessor();
// Get all potentially concerned used Tasks
List<Task> usedTasks = new ArrayList<Task>();
if (usedTask instanceof Task) {
usedTasks.add((Task) usedTask);
} else {
usedTasks.addAll(getAllUsedTasks((TasksGroup) usedTask));
}
// Check if the using "task" is a Task or a Group
if (usingTask instanceof Task) {
for (Task realUsedTask : usedTasks) {
deleteUseRelationship((Task) usingTask, realUsedTask, session, modelAccessor);
}
} else {
for (Task realUsedTask : usedTasks) {
for (Task realUsingTask : getTasksFromGroupUsingTask((TasksGroup) usingTask, realUsedTask)) {
deleteUseRelationship(realUsingTask, realUsedTask, session, modelAccessor);
}
}
}
}
use of org.obeonetwork.graal.Task in project InformationSystem by ObeoNetwork.
the class UseReferencesServices method getUsedSystemsAndTasksAndGroups.
/**
* Retrieves the tasks, groups and systems used from a task
* to know which nodes should be linked by "use" references
* @param context TasksContainer used to compute which elements would be visible
* @param task Using task
* @return list of linked elements
*/
private Set<EObject> getUsedSystemsAndTasksAndGroups(TasksContainer context, Task task) {
Set<EObject> usedElements = new LinkedHashSet<EObject>();
for (Task usedTask : task.getUses()) {
// First, check if the used task is contained by the context
if (EcoreUtil.isAncestor(context, task)) {
// Check if the used task is directly contained by the specified container
if (context.equals(usedTask.eContainer())) {
usedElements.add(usedTask);
} else {
usedElements.add(usedTask);
// We have to find the container directly contained by the context
boolean found = false;
EObject container = usedTask.eContainer();
while (!found && container != null) {
if (context.equals(container.eContainer())) {
usedElements.add(container);
found = true;
}
container = container.eContainer();
}
}
} else {
// Not in the same context
// usedElements.add(usedTask);
}
}
return usedElements;
}
use of org.obeonetwork.graal.Task in project InformationSystem by ObeoNetwork.
the class CreateUseRelationshipDialog method createDialogArea.
/**
* Create contents of the dialog.
* @param parent
*/
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
container.setLayout(new GridLayout(2, false));
Label lblSource = new Label(container, SWT.NONE);
lblSource.setText("Source :");
Label lblTarget = new Label(container, SWT.NONE);
lblTarget.setText("Target :");
treeSourceViewer = new TreeViewer(container, SWT.BORDER | SWT.MULTI);
treeSourceViewer.setContentProvider(new TasksContentProvider());
treeSourceViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
treeSourceViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@SuppressWarnings("rawtypes")
public void selectionChanged(SelectionChangedEvent event) {
if (event.getSelection().isEmpty()) {
selectedTasksAsSource.clear();
} else if (event.getSelection() instanceof IStructuredSelection) {
selectedTasksAsSource.clear();
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
for (Iterator iterator = selection.iterator(); iterator.hasNext(); ) {
Object domain = (Object) iterator.next();
if (domain instanceof Task) {
selectedTasksAsSource.add((Task) domain);
}
}
}
computeOkButtonState();
}
});
treeSourceViewer.setInput(new RootElement(this.source));
treeSourceViewer.setSelection(new StructuredSelection(this.source), true);
Tree treeSource = treeSourceViewer.getTree();
treeSource.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
treeTargetViewer = new TreeViewer(container, SWT.BORDER | SWT.MULTI);
treeTargetViewer.setContentProvider(new TasksContentProvider());
treeTargetViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
treeTargetViewer.addSelectionChangedListener(new ISelectionChangedListener() {
@SuppressWarnings("rawtypes")
public void selectionChanged(SelectionChangedEvent event) {
if (event.getSelection().isEmpty()) {
selectedTasksAsTarget.clear();
} else if (event.getSelection() instanceof IStructuredSelection) {
selectedTasksAsTarget.clear();
IStructuredSelection selection = (IStructuredSelection) event.getSelection();
for (Iterator iterator = selection.iterator(); iterator.hasNext(); ) {
Object domain = (Object) iterator.next();
if (domain instanceof Task) {
selectedTasksAsTarget.add((Task) domain);
}
}
}
computeOkButtonState();
}
});
treeTargetViewer.setInput(new RootElement(this.target));
treeTargetViewer.setSelection(new StructuredSelection(this.target), true);
Tree treeTarget = treeTargetViewer.getTree();
treeTarget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
return container;
}
use of org.obeonetwork.graal.Task in project InformationSystem by ObeoNetwork.
the class TaskReferenceImpl method detachFromUserStory.
@Override
public void detachFromUserStory(UserStory userStory) {
// Should be useless
userStory.getElements().remove(this);
Task referencedTask = getTask();
if (referencedTask != null) {
referencedTask.detachFromUserStory(userStory);
}
}
Aggregations