📄 ganttmpxjopen.java
字号:
// gtask.setExpand() // gtask.setLength(); gtask.setMilestone(milestone); gtask.setName(task.getName() == null ? "-" : task.getName()); gtask.setNotes(task.getNotes()); Priority prio = task.getPriority(); if (prio != null) { int priority = prio.getValue(); int p; switch (priority) { case Priority.HIGHEST: case Priority.HIGHER: case Priority.VERY_HIGH: p = 2; break; case Priority.LOWEST: case Priority.LOWER: case Priority.VERY_LOW: p = 0; break; default: p = 1; } gtask.setPriority(p); } // gtask.setShape(); // gtask.setStartFixed() // gtask.setTaskID() gtask.setWebLink(task.getHyperlink()); Date taskStart = task.getStart(); assert taskStart!=null : "Task="+task+" has null start"; gtask.setStart(new GanttCalendar(taskStart));// gtask.setDuration(tm.createLength((long) duration.getDuration())); gtask.setDuration(tm.createLength((long) Math.ceil(duration.convertUnits(TimeUnit.DAYS).getDuration()))); // gtask.setEnd(new GanttCalendar(task.getFinish())); // // Add the task and process any child tasks // tm.registerTask(gtask); m_tasks.addObject(gtask, (TaskNode) node, -1); m_taskMap.put(task.getID(), new Integer(gtask.getTaskID())); LinkedList children = task.getChildTasks(); if (children.size() != 0) { node = m_tasks.getNode(gtask.getTaskID()); Iterator iter = children.iterator(); while (iter.hasNext() == true) { processTask(tm, defaultCalendar, (Task) iter.next(), node); } } } /** * This method extracts all of the inter-task relationships from and MPXFile * instance, and creates the equivalent data structures in the GanttProject * application. * * @param mpx * Currenct MPXFile instance */ private void processRelationships(MPXFile mpx) { TaskManager tm = m_project.getTaskManager(); Iterator taskIter = mpx.getAllTasks().iterator(); Task task; RelationList rels; Iterator relIter; Relation rel; GanttTask gTask1; int gTaskNumber1; GanttTask gTask2; int gTaskNumber2; TaskDependency gTaskDependency; int gConstraintType; while (taskIter.hasNext() == true) { task = (Task) taskIter.next(); gTaskNumber1 = mapTaskNumber(task.getID()); if (gTaskNumber1 == -1) { continue; } rels = (RelationList)task.getPredecessors(); if (rels != null) { relIter = rels.iterator(); while (relIter.hasNext() == true) { rel = (Relation) relIter.next(); gTaskNumber2 = mapTaskNumber(new Integer(rel .getTaskIDValue())); if (gTaskNumber2 != -1) { gTask1 = tm.getTask(gTaskNumber1); gTask2 = tm.getTask(gTaskNumber2); switch (rel.getType().getType()) { case RelationType.FINISH_FINISH_VALUE: { gConstraintType = GanttTaskRelationship.FF; break; } case RelationType.START_FINISH_VALUE: { gConstraintType = GanttTaskRelationship.SF; break; } case RelationType.START_START_VALUE: { gConstraintType = GanttTaskRelationship.SS; break; } default: case RelationType.FINISH_START_VALUE: { gConstraintType = GanttTaskRelationship.FS; break; } } try { gTaskDependency = tm .getDependencyCollection() .createDependency( gTask1, gTask2, tm .createConstraint(gConstraintType)); gTaskDependency.setConstraint(tm .createConstraint(gConstraintType)); } catch (TaskDependencyException ex) { ex.printStackTrace(); } } } } } } /** * This method extracts all resource assignment data from an MPXFile * instance and creates the equivalent GanttProject data structures. * * @param mpx * Currenct MPXFile instance */ private void processResourceAssignments(MPXFile mpx) { TaskManager tm = m_project.getTaskManager(); HumanResourceManager hrm = (HumanResourceManager) m_project .getHumanResourceManager(); LinkedList assignments = mpx.getAllResourceAssignments(); Iterator iter = assignments.iterator(); com.tapsterrock.mpx.ResourceAssignment assignment; int gTaskID; int gResourceID; GanttTask gTask; ProjectResource gResource; ResourceAssignment gAssignment; while (iter.hasNext() == true) { assignment = (com.tapsterrock.mpx.ResourceAssignment) iter.next(); gTaskID = mapTaskNumber(assignment.getTask().getID()); gResourceID = mapResourceNumber(assignment.getResource().getID()); if ((gTaskID != -1) && (gResourceID != -1)) { gTask = tm.getTask(gTaskID); gResource = hrm.getById(gResourceID); gAssignment = gTask.getAssignmentCollection().addAssignment( gResource); gAssignment.setLoad((float) assignment.getUnitsValue()); gAssignment.setCoordinator(false); if (gResource instanceof HumanResource) gAssignment .setRoleForAssignment(((HumanResource) gResource) .getRole()); } } } /** * Convenience function used to map an MPXFile task ID to a GanttProject * task number. * * @param taskID * MPXFile task ID * @return GanttProject task number */ private int mapTaskNumber(Integer taskID) { int result = -1; Integer taskNumber = (Integer) m_taskMap.get(taskID); if (taskNumber != null) { result = taskNumber.intValue(); } return (result); } /** * Convenience function used to map an MPXFile resource ID to a GanttProject * resource number. * * @param taskID * MPXFile task ID * @return GanttProject task number */ private int mapResourceNumber(Integer resourceID) { int result = -1; Integer resourceNumber = (Integer) m_resourceMap.get(resourceID); if (resourceNumber != null) { result = resourceNumber.intValue(); } return (result); } private GanttTree2 m_tasks; private GanttProject m_project; private HashMap m_taskMap = new HashMap(); private HashMap m_resourceMap = new HashMap(); private Locale m_mpxImportLocale = Locale.ENGLISH; private static final MPXDuration MILESTONE_DURATION = MPXDuration.getInstance(1, TimeUnit.DAYS);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -