Search in sources :

Example 1 with CreateUseRelationshipDialog

use of org.obeonetwork.graal.design.ui.dialog.CreateUseRelationshipDialog in project InformationSystem by ObeoNetwork.

the class CreateUseRelationshipAction method executeCreateUseRelationshipAction.

/**
 * Creates the use relationship
 * if TasksContainer are involved, a dialog opens up so that the user can choose the Tasks involved in the relationship
 * @param context Object needed so the method can be called by Acceleo. It is returned unchanged
 * @param sourceObject Source of the "use" relationship
 * @param targetObject Target of the "use" relationship
 * @return The first parameter without any change
 */
public EObject executeCreateUseRelationshipAction(EObject context, EObject sourceObject, EObject targetObject) {
    if (sourceObject instanceof Task && targetObject instanceof Task) {
        TaskUtils.instance.createTaskUseTaskEdge((Task) sourceObject, (Task) targetObject);
    } else {
        Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
        CreateUseRelationshipDialog dialog = new CreateUseRelationshipDialog(shell, sourceObject, targetObject);
        if (dialog.open() == IDialogConstants.OK_ID) {
            List<Task> sourceTasks = dialog.getSelectedTasksAsSource();
            List<Task> targetTasks = dialog.getSelectedTasksAsTarget();
            for (Task source : sourceTasks) {
                for (Task target : targetTasks) {
                    TaskUtils.instance.createTaskUseTaskEdge(source, target);
                }
            }
        }
    }
    return context;
}
Also used : Task(org.obeonetwork.graal.Task) Shell(org.eclipse.swt.widgets.Shell) CreateUseRelationshipDialog(org.obeonetwork.graal.design.ui.dialog.CreateUseRelationshipDialog)

Aggregations

Shell (org.eclipse.swt.widgets.Shell)1 Task (org.obeonetwork.graal.Task)1 CreateUseRelationshipDialog (org.obeonetwork.graal.design.ui.dialog.CreateUseRelationshipDialog)1