Examples of ICompositeCheatSheetTask


Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

   

  }

  private boolean isTaskAncestor(ICompositeCheatSheetTask ancestorCandididate, ICompositeCheatSheetTask task) {
    ICompositeCheatSheetTask nextTask = task;
    while (nextTask != null) {
      if (nextTask == ancestorCandididate) {
        return true;
      }
      nextTask = nextTask.getParent();
    }
    return false;
  }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

      // iterating over and deleting from the same set.
      Set remainingTasks = new HashSet();
      makingProgress = false;
      for (Iterator taskIterator = tasks.iterator(); taskIterator.hasNext() && !makingProgress; ) {
        boolean mayBeInCycle = false;
        ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)taskIterator.next();
        ICompositeCheatSheetTask[] requiredTasks = nextTask.getRequiredTasks();
        for (int i = 0; i < requiredTasks.length; i++) {
          if (tasks.contains(requiredTasks[i])) {
            mayBeInCycle = true;
          }
        }
        if (mayBeInCycle) {
          remainingTasks.add(nextTask);
        } else {
          makingProgress = true;
        }       
      }
      tasks = remainingTasks;
    }
    if (!tasks.isEmpty()) {
      status.addStatus(IStatus.ERROR, Messages.ERROR_PARSING_CYCLE_DETECTED, null);
      // Detect one of the cycles and report its members
      List cycle = new ArrayList();
      ICompositeCheatSheetTask cycleStartTask = (ICompositeCheatSheetTask)tasks.iterator().next();
      while (!cycle.contains(cycleStartTask)) {
        cycle.add(cycleStartTask);ICompositeCheatSheetTask[] requiredTasks = cycleStartTask.getRequiredTasks();
        for (int i = 0; i < requiredTasks.length; i++) {
          if (tasks.contains(requiredTasks[i])) {
            cycleStartTask=requiredTasks[i];
          }
        }
      }
      // Now the list contains a cycle and possibly additional tasks at the start
      // of the list
      boolean cycleStarted = false;
      String thisTask = null;
      String lastTask = null;
      String firstTask = null;
      for (Iterator cycleIterator = cycle.iterator(); cycleIterator.hasNext();) {
        ICompositeCheatSheetTask task = (ICompositeCheatSheetTask)cycleIterator.next();
        if (task == cycleStartTask) {
          cycleStarted = true;
          firstTask = task.getName();
        }
        if (cycleStarted) {
          // Save the name of this task
          lastTask = thisTask;
          thisTask = task.getName();
          if (lastTask != null) {
              String message = NLS.bind(Messages.ERROR_PARSING_CYCLE_CONTAINS, (new Object[] {lastTask, thisTask}))
              status.addStatus(IStatus.ERROR, message, null);
          }
        }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

    return impactedTasks;
  }

  private void visitChangedTasks() {
    for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
      final ICompositeCheatSheetTask nextTask = (ICompositeCheatSheetTask)iter.next();
      if (nextTask.getState() != ICompositeCheatSheetTask.IN_PROGRESS) {
          findUnstartedChildren(nextTask);
      }
    } 
  }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

   * add them to the list of impacted tasks.
   */
  private void findUnstartedChildren(ICompositeCheatSheetTask task) {
    ICompositeCheatSheetTask[] children = task.getSubtasks()
    for (int i = 0; i < children.length; i++) {
      ICompositeCheatSheetTask nextChild = children[i];
      // Ignore if this task has been seen before
      if ((!stateChangedTasks.contains(nextChild)) && !impactedTasks.contains(nextChild)) {
          if (nextChild.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
           impactedTasks.add(nextChild);
          }
          findUnstartedChildren(nextChild);
      }
    }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

  private void findSuccesors() {
    for (Iterator iter = stateChangedTasks.iterator(); iter.hasNext(); ) {
      final AbstractTask nextTask = (AbstractTask)iter.next();
      ICompositeCheatSheetTask[] successors = nextTask.getSuccessorTasks();
      for (int i = 0; i < successors.length; i++) {
        ICompositeCheatSheetTask nextSuccessor = successors[i];
        if (nextSuccessor.getState() == ICompositeCheatSheetTask.NOT_STARTED) {
          impactedTasks.add(nextSuccessor);
        }
          findUnstartedChildren(nextSuccessor);
      }
    }   
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

    explorer.getControl().setMenu(menu);
  }

  protected void fillContextMenu(IMenuManager manager) {
    ISelection selection = explorer.getSelectionProvider().getSelection();
    ICompositeCheatSheetTask selectedTask = null;
    if (selection instanceof IStructuredSelection) {
      IStructuredSelection structuredSelection = (IStructuredSelection)selection;
      if (structuredSelection.size() == 1) {
      selectedTask = (ICompositeCheatSheetTask)(structuredSelection).getFirstElement();   
      }
    }
    if (selectedTask == null) return;
   
    // Start
      StartAction startAction = new StartAction(selectedTask);
      startAction.setEnabled(TaskStateUtilities.isStartEnabled(selectedTask));
    manager.add(startAction);
   
    // Skip
      SkipAction skipAction = new SkipAction(selectedTask);
      skipAction.setEnabled(TaskStateUtilities.isSkipEnabled(selectedTask));
    manager.add(skipAction);
   
    // Restart
    Action restartAction;
    if (selectedTask.getParent() == null) {
      restartAction = new RestartAllAction(selectedTask.getCompositeCheatSheet());
    } else {
      restartAction = new ResetTaskAction(selectedTask);
      restartAction.setEnabled(selectedTask.getState() != ICompositeCheatSheetTask.NOT_STARTED);
    }
    manager.add(restartAction)
  }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

    return result;
  }

  public Image getImage(Object obj) {
    if (obj instanceof ICompositeCheatSheetTask) {
      ICompositeCheatSheetTask task = (ICompositeCheatSheetTask) obj;
      return lookupImage(task.getKind(), task.getState(), TaskStateUtilities.isBlocked(task));   
    }
    return super.getImage(obj);
  }
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

    this.model = model;
    mform.getForm().setText(ViewUtilities.escapeForLabel(model.getName()));
    String explorerId = model.getTaskExplorerId();
    setCurrentExplorerFromId(explorerId);
    String selectedTaskId = (String) layout.get(ICompositeCheatsheetTags.SELECTED_TASK);
    ICompositeCheatSheetTask selectedTask= null;
    if (selectedTaskId != null) {
      selectedTask = model.getDependencies().getTask(selectedTaskId);
      if (selectedTask != null)  {
        currentExplorer.setSelection(new StructuredSelection(selectedTask), true);
      }
    }
    if (selectedTask != null) {
      updateSelectedTask(selectedTask);
    } else {
      updateSelectedTask(model.getRootTask());
    }
    model.addObserver(new Observer() {
      public void update(Observable o, Object arg) {
        ICompositeCheatSheetTask task = (ICompositeCheatSheetTask)arg;
        if (currentExplorer!=null)
          currentExplorer.taskUpdated(task);
        updateTask(task);
      }
    });
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

      isSkippable = false;
    } else if (task.getState() == ICompositeCheatSheetTask.SKIPPED) {
      buf.append(MarkupParser.createParagraph(Messages.THIS_TASK_SKIPPED, INFORMATION_IMAGE));
      isSkippable = false;
    } else if (TaskStateUtilities.findSkippedAncestor(task) != null) {
      ICompositeCheatSheetTask skipped = TaskStateUtilities.findSkippedAncestor(task);
      String skipParentMsg = NLS.bind(Messages.PARENT_SKIPPED,
        (new Object[] {MarkupParser.escapeText((skipped.getName()))}))
      buf.append(MarkupParser.createParagraph(skipParentMsg, WARNING_IMAGE));
      isSkippable = false;
    } else if (TaskStateUtilities.findCompletedAncestor(task) != null) {
      ICompositeCheatSheetTask completed = TaskStateUtilities.findCompletedAncestor(task);
      String completedParentMsg = NLS.bind(Messages.PARENT_COMPLETED,
         (new Object[] {MarkupParser.escapeText(completed.getName())}))
      buf.append(MarkupParser.createParagraph(completedParentMsg, WARNING_IMAGE));
      isSkippable = false;
    } else if (!task.requiredTasksCompleted()) {
      isBlocked = true;
      showBlockingTasks(Messages.COMPOSITE_PAGE_BLOCKED, task, buf);
    } else if (TaskStateUtilities.findBlockedAncestor(task) != null) {
      isBlocked = true;
      ICompositeCheatSheetTask blockedAncestor = TaskStateUtilities.findBlockedAncestor(task);
      String blockingAncestorMsg = NLS.bind(Messages.PARENT_BLOCKED,
          (new Object[] {MarkupParser.escapeText(blockedAncestor.getName())}))
      showBlockingTasks(blockingAncestorMsg , blockedAncestor, buf);
    } else {
      startable = task instanceof IEditableTask && task.getState() == ICompositeCheatSheetTask.NOT_STARTED;
    }
   
View Full Code Here

Examples of org.eclipse.ui.internal.provisional.cheatsheets.ICompositeCheatSheetTask

 
  private void showSuccesorTaskLinks(ICompositeCheatSheetTask task, StringBuffer buf) {
    // Add the links to the next tasks
    ICompositeCheatSheetTask[] successorTasks = new SuccesorTaskFinder(task).getRecommendedSuccessors();
    for (int i = 0; i < successorTasks.length; i++) {
      ICompositeCheatSheetTask successor = successorTasks[i];
      String message = NLS.bind(Messages.COMPOSITE_PAGE_GOTO_TASK, (new Object[]
           {MarkupParser.escapeText(successor.getName())}));
      addHyperlink(buf, CompositeCheatSheetPage.GOTO_TASK_TAG + successor.getId(), GOTO_IMAGE, message);
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.