Package com.projity.pm.task

Examples of com.projity.pm.task.SubProj


    }
    if (openedAlready != null && openedAlready.isOpenedAsSubproject()) {
      Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadyOpenedAsSubproject")); //$NON-NLS-1$
      return;
    }
    SubProj subprojectTask = project.getSubprojectHandler().createSubProj(subprojectUniqueId);
    Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT);
    ProjectFactory.getInstance().openSubproject(project, subprojectNode, true);

    //Undo
    if (undo){
View Full Code Here


          } else {
            task.setOwningProject(project);
            task.setProjectId(projectId);
          }
          if (taskData.isSubproject()) {
            SubProj sub = (SubProj)task;
            sub.setSubprojectUniqueId(taskData.getSubprojectId());
            sub.setSubprojectFieldValues(taskData.getSubprojectFieldValues());
            sub.setSchedulesFromSubprojectFieldValues();
          }
//          if (task.isRoot()){ //claur
//            project.setSummaryTaskEnabled(true);
//          }

          WorkingCalendar cal=(WorkingCalendar) task.getWorkCalendar();
          if (cal!=null){ // use global one
            WorkingCalendar newCal = (WorkingCalendar) CalendarService.findBaseCalendar(cal.getName());
            if (newCal != null && newCal != cal)
              task.setWorkCalendar(newCal);
          }

          //project.addToDefaultOutline(null,);


          //assignments
          List assignments=new ArrayList();
//          if (Environment.isNoPodServer()&&task.getPersistedAssignments()!=null){ //claur
//            assignments.addAll(task.getPersistedAssignments());
//          }
          if (taskData.getAssignments()!=null) assignments.addAll(taskData.getAssignments());

          if (assignments.size()>0)
        for (Iterator j=assignments.iterator();j.hasNext();){
          Object obj=j.next();
          AssignmentData assignmentData=null;
//          if (loadResources!=null&&obj instanceof PersistedAssignment){ //claur
//          }else{
            assignmentData=(AssignmentData)obj;
            if (assignmentData.getSerialized() == null) { // timesheet created
                System.out.println("==== no cached start found " + task.getName());
                if (assignments.size()==1)
                  assignmentData.setResourceId(-1L);
                else j.remove();
            }
//          }
        }

          if (assignments.size()>0)
            for (Iterator j=assignments.iterator();j.hasNext();){
              Object obj=j.next();
              AssignmentData assignmentData=null;
              Assignment assignment=null;
              Resource resource;
              boolean assigned=true;
              int s;
//              if (loadResources!=null&&obj instanceof PersistedAssignment){ //claur
//                PersistedAssignment pa=(PersistedAssignment)obj;
//                assignment=pa.getAssignment();
//                s=pa.getSnapshot();
//
//                 long resId=pa.getResourceId();
//              Node node=(Node)resourceNodeMap.get(resId);
//              resource=node==null?ResourceImpl.getUnassignedInstance():(Resource)node.getImpl();
//
//              if (resource==null) assigned=false;
//              }else{
                assignmentData=(AssignmentData)obj;
                if (loadResources==null){
                  EnterpriseResourceData r=assignmentData.getResource();
                  if (r==null) assigned=false;
                  resource=(r==null)?ResourceImpl.getUnassignedInstance():(Resource)((Node)resourceNodeMap.get(r)).getImpl();
                }else{
                  long resId=assignmentData.getResourceId();
                  Node node=(Node)resourceNodeMap.get(resId);
                  resource=node==null?ResourceImpl.getUnassignedInstance():(Resource)node.getImpl();
                }
                if (assignmentData.getSerialized() != null){
                  try {
                    assignment=(Assignment)deserialize(assignmentData,reindex);
                  } catch (Exception e) {
                    e.printStackTrace();
                  }
                }
                if (assignmentData.getSerialized() == null||(assignmentData.getSerialized() != null&&assignment==null)) { // timesheet created
                  assignment = Assignment.getInstance(task,resource,  1.0, 0);
                  if (assignment.getCachedStart() == null) { //doesn't occur filtered above
                    System.out.println("==== no cached start found " + task.getName());

                  } else {
                    task.setActualStart(assignment.getCachedStart().getTime());
                    task.setActualFinish(assignment.getCachedEnd().getTime());
                  }
                }
                assignment.setCachedStart(assignmentData.getCachedStart());
                assignment.setCachedEnd(assignmentData.getCachedEnd());
                assignment.setTimesheetStatus(assignmentData.getTimesheetStatus());
                long lastUpdate = (assignmentData.getLastTimesheetUpdate() == null) ? 0 : assignmentData.getLastTimesheetUpdate().getTime();
                assignment.setLastTimesheetUpdate(lastUpdate);
                assignment.setWorkflowState(assignmentData.getWorkflowState());
                s=assignmentData.getSnapshotId();
//              }

              assignment.getDetail().setTask(task);
              assignment.getDetail().setResource(resource);
              Object snapshotId=new Integer(s);
              TaskSnapshot snapshot=(TaskSnapshot)task.getSnapshot(snapshotId);

              //TODO was commented but needed for loading  because task.getSnapshot(snapshotId)==null
              //for snapshots other than CURRENT
              if (snapshot==null){
                snapshot=new TaskSnapshot();
                snapshot.setCurrentSchedule(task.getCurrentSchedule());
                task.setSnapshot(snapshotId,snapshot);
              }
              if (Snapshottable.TIMESHEET.equals(snapshotId)) {
                assignment.setTimesheetAssignment(true);
              }
              //

              snapshot.addAssignment(assignment);

              if (assigned&&Snapshottable.CURRENT.equals(snapshotId)) resource.addAssignment(assignment);

              if (assignmentData!=null) assignmentData.emtpy();
              //incremental.addAssignment(assignmentData);
            }
//          task.setPersistedAssignments(null);
        }


        // the collection which holds a list of corresponding subproject tasks for projects which include this project
        // note that their task names have been transformed to hold the name of the project
        Collection referringSubprojectTaskData=projectData.getReferringSubprojectTasks();
        if (tasks!=null&&referringSubprojectTaskData!=null){
          ArrayList referringSubprojectTasks = new ArrayList(referringSubprojectTaskData.size());
          project.setReferringSubprojectTasks(referringSubprojectTasks);
          for (Iterator i=referringSubprojectTaskData.iterator();i.hasNext();){
            TaskData taskData=(TaskData)i.next();
            String projectName = taskData.getName(); // it was set to the referrig project name by synchronizer
            task = null;
            try {
              task = (NormalTask)deserialize(taskData,reindex);
            } catch (Exception e) {
              if (taskData.isSubproject()){ //For migration
                task=(NormalTask) project.getSubprojectHandler().createSubProj(taskData.getSubprojectId());
                task.setUniqueId(taskData.getUniqueId());
                task.setName(taskData.getName());
                ((SubProj)task).setSubprojectFieldValues(taskData.getSubprojectFieldValues());
              }
              else throw new IOException("Subproject:"+e);
            }
            task.setName(projectName);
            task.setProjectId(taskData.getProjectId());
            referringSubprojectTasks.add(task);
          }
        }

        //dependencies
        //Set<DependencyKey> initialLinkIds=null;
        for (Iterator i=projectData.getTasks().iterator();i.hasNext();){
          TaskData successorssorData=(TaskData)i.next();
          if (successorssorData.getPredecessors()!=null){
            final Task successor=(Task)((Node)taskNodeMap.get(successorssorData)).getImpl();
            for (Iterator j=successorssorData.getPredecessors().iterator();j.hasNext();){
              LinkData linkData=(LinkData)j.next();
//            if (initialLinkIds==null){
//            initialLinkIds=new HashSet<DependencyKey>();
//            project.setInitialLinkIds(initialLinkIds);
//            }
//            initialLinkIds.add(new DependencyKey(linkData.getPredecessorId(),linkData.getSuccessorId()/*,externalId*/));
              Dependency dependency=(Dependency)deserialize(linkData,reindex);

              if (linkData.getPredecessor() == null) {
                System.out.println("null pred - this shouldn't happen. skipping"); // todo treat it
                continue;
              }
              final Task predecessor=(Task)((Node)taskNodeMap.get(linkData.getPredecessor())).getImpl();
              connectDependency(dependency,predecessor,successor);

              linkData.emtpy(); //why is this there?
            }
          }
        }

      }

      //task outline
      if (tasks!=null){

        //add missing summary task
        Node summaryNode=null;
//        if (Environment.isAddSummaryTask()&&!project.isSummaryTaskEnabled() //needed for import, add other conditions? //claur
//          && (tasks.size()==0||((TaskData)tasks.iterator().next()).getUniqueId()!=Task.SUMMARY_UNIQUE_ID)){
//          NormalTask projityTask = project.newNormalTaskInstance(false);
//          projityTask.setName(Messages.getString("Text.DefaultSummaryTaskName"));
//          projityTask.setUniqueId(DataObject.SUMMARY_UNIQUE_ID);
//          projityTask.setOwningProject(project);
//          projityTask.setProjectId(project.getUniqueId());
//          summaryNode = NodeFactory.getInstance().createNode(projityTask); // get a node for this task
//          project.addToDefaultOutline(null,summaryNode);
//          project.setSummaryTaskEnabled(true);
//        }


        Map<Long, Node> subprojectsMap=new HashMap<Long, Node>();
        for (Iterator i=tasks.iterator();i.hasNext();){
          TaskData taskData=(TaskData)i.next();
          TaskData parentData=taskData.getParentTask();
//        if (taskData.isTimesheetCreated())
//        System.out.println("timesheet created parent is  " + parentData == null ? null : parentData.getName());
          Node node;
          if (taskData.getSerialized()==null /*&& taskData.getUniqueId()!=Task.SUMMARY_UNIQUE_ID*/ &&!taskData.isTimesheetCreated()) //void node //claur
            node=NodeFactory.getInstance().createVoidNode();
          else node=(Node)taskNodeMap.get(taskData);
          Node parentNode=null;
          int position=-1;
          if (taskData.isExternal()){
            Node previous=subprojectsMap.get(taskData.getProjectId());
            if (previous!=null) parentNode=(Node)previous.getParent();
            if (parentNode!=null){
              position=parentNode.getIndex(previous)+1;
              if (parentNode.isRoot()) parentNode=null;
            }
          }
          if (position==-1){
            if (parentData==null&&summaryNode!=null)
              parentNode=summaryNode;
            else
              parentNode=(parentData==null)?
                null:
                  ((Node)taskNodeMap.get(parentData));
            position=(int)taskData.getChildPosition();
          }
          if (taskData.isTimesheetCreated())
            System.out.println("new task " + node + "parent node is " + parentNode);
          if (node.getImpl() instanceof SubProj){
            SubProj sub=(SubProj)node.getImpl();
            subprojectsMap.put(sub.getSubprojectUniqueId(), node);
          }

          project.addToDefaultOutline(parentNode,node,position,false);

          taskData.emtpy();
View Full Code Here

    if (begin == 0) {
      if (!task.isWbsParent()) // if no constraints at all
        begin = context.boundary;
    }
    if (task.isSubproject()) {// subprojects can't start before their project start
      SubProj subProj = (SubProj)task;
      if (!subProj.isValidAndOpen())
        return;
      if (task.getPredecessorList().size() == 0 && task.getConstraintDate() == 0)
        return;
      begin = Math.max(begin, context.forward ? subProj.getSubproject().getStartConstraint() : -subProj.getSubproject().getEnd());
    }
   
    long levelingDelay = task.getLevelingDelay();
   
    if (Duration.millis(levelingDelay) != 0)
View Full Code Here

    }
    if (openedAlready != null && openedAlready.isOpenedAsSubproject()) {
      Alert.error(Messages.getString("GraphicManager.SelectedProjectAlreadyOpenedAsSubproject")); //$NON-NLS-1$
      return;
    }
    SubProj subprojectTask = project.getSubprojectHandler().createSubProj(subprojectUniqueId);
    Node subprojectNode = getCurrentFrame().addNodeForImpl(subprojectTask,NodeModel.EVENT);
    ProjectFactory.getInstance().openSubproject(project, subprojectNode, true);

    //Undo
    if (undo){
View Full Code Here

    }
   
    if (indicators instanceof Task) {
      Task t = (Task)indicators;
      if (t.isSubproject()) {
        SubProj s = (SubProj)t;
        if (s.isValid()) {
          setLook(subproject,isSelected,hasFocus);
          label.add(subproject);
          text.append(Messages.getString("TaskIndicatorsComponent.ThisTasksRepresentsThe") + (s.isSubprojectOpen() ? Messages.getString("TaskIndicatorsComponent.opened") : Messages.getString("TaskIndicatorsComponent.unopened")) + Messages.getString("TaskIndicatorsComponent.subproject") + ((Task)s).getName()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
        } else {
          setLook(invalidProject,isSelected,hasFocus);
          label.add(invalidProject);
          text.append(Messages.getString("TaskIndicatorsComponent.ThisSubprojectIsNotValid")); //$NON-NLS-1$
        }
View Full Code Here

     
      // to fix a bug, I am invalidating both early and late schedules
      task.invalidateSchedules();
      task.markTaskAsNeedingRecalculation();
      if (successor.isSubproject()) { // special case for subprojects - need to reset all
        SubProj sub = (SubProj)successor;
        if (sub.isSubprojectOpen())
          sub.getSubproject().markAllTasksAsNeedingRecalculation(true);
      }
      successor.invalidateSchedules();
      successor.markTaskAsNeedingRecalculation();
     
//      The line below fixes a bug with nested parents of the sort pred->grand par sib1->sib2. Of course, it means most of the code above is redundant (except for subproject stuff)
View Full Code Here

TOP

Related Classes of com.projity.pm.task.SubProj

Copyright © 2018 www.massapicom. 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.