Package org.projectforge.task

Examples of org.projectforge.task.TaskNode


    }
    final GanttTask ganttObject = convertToGanttObject(task);
    if (ganttChartData.getRootObject() == null) {
      ganttChartData.setRootObject(ganttObject);
    }
    final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
    if (taskNode.hasChilds() == true) {
      for (final TaskNode childNode : taskNode.getChilds()) {
        if (childNode.isDeleted() == false) {
          ganttObject.addChild(convertToGanttObject(ganttChartData, taskTree, childNode.getTask()));
        }
      }
    }
View Full Code Here


    final List<TaskDO> choices = new ArrayList<TaskDO>();
    for (final TaskDO task : list) {
      if (autocompleteOnlyTaskBookableForTimesheets == false) {
        choices.add(task);
      } else {
        final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
        if (taskNode == null) {
          log.error("Oups, task node with id '" + task.getId() + "' not found in taskTree.");
        } else if (taskNode.isBookableForTimesheets() == true) {
          // Only add nodes which are bookable:
          choices.add(task);
        }
      }
    }
View Full Code Here

  {
    final TaskTree taskTree = getTaskTree();
    final CellItemListener<TaskNode> cellItemListener = new CellItemListener<TaskNode>() {
      public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel)
      {
        final TaskNode taskNode = rowModel.getObject();
        TaskListPage.appendCssClasses(item, taskNode.getTask(), highlightedTaskNodeId);
      }
    };
    final List<IColumn<TaskNode, String>> columns = new ArrayList<IColumn<TaskNode, String>>();

    columns.add(new TreeColumn<TaskNode, String>(new ResourceModel("task")) {
      @Override
      public void populateItem(final Item<ICellPopulator<TaskNode>> cellItem, final String componentId, final IModel<TaskNode> rowModel)
      {
        final RepeatingView view = new RepeatingView(componentId);
        cellItem.add(view);
        final TaskNode taskNode = rowModel.getObject();
        if (selectMode == false) {
          view.add(new ListSelectActionPanel(view.newChildId(), rowModel, TaskEditPage.class, taskNode.getId(), parentPage, ""));
        } else {
          view.add(new ListSelectActionPanel(view.newChildId(), rowModel, caller, selectProperty, taskNode.getId(), ""));
        }
        AbstractListPage.addRowClick(cellItem);
        final NodeModel<TaskNode> nodeModel = (NodeModel<TaskNode>) rowModel;
        final Component nodeComponent = getTree().newNodeComponent(view.newChildId(), nodeModel.getWrappedModel());
        nodeComponent.add(new NodeBorder(nodeModel.getBranches()));
        view.add(nodeComponent);
        cellItemListener.populateItem(cellItem, componentId, rowModel);
      }
    });
    columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("task.consumption"), null, "task", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel)
      {
        final TaskNode node = rowModel.getObject();
        item.add(TaskListPage.getConsumptionBarPanel(tree, componentId, getTaskTree(), selectMode, node));
        cellItemListener.populateItem(item, componentId, rowModel);
      }
    });
    if (showCost == true) {
      columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("fibu.kost2"), null, "task.kost2", cellItemListener) {
        @Override
        public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel)
        {
          final Label label = TaskListPage.getKostLabel(componentId, getTaskTree(), rowModel.getObject().getTask());
          item.add(label);
          cellItemListener.populateItem(item, componentId, rowModel);
        }
      });
    }
    if (taskTree.hasOrderPositionsEntries() == true && showOrders == true) {
      columns.add(new CellItemListenerPropertyColumn<TaskNode>(new ResourceModel("fibu.auftrag.auftraege"), null, null, cellItemListener) {
        @Override
        public void populateItem(final Item<ICellPopulator<TaskNode>> item, final String componentId, final IModel<TaskNode> rowModel)
        {
          final TaskNode taskNode = rowModel.getObject();
          final Set<AuftragsPositionVO> orderPositions = taskTree.getOrderPositionEntries(taskNode.getId());
          if (CollectionUtils.isEmpty(orderPositions) == true) {
            final Label label = new Label(componentId, ""); // Empty label.
            item.add(label);
          } else {
            final OrderPositionsPanel orderPositionsPanel = new OrderPositionsPanel(componentId) {
View Full Code Here

   * @return this for chaining.
   */
  public TaskTreeBuilder setHighlightedTaskNodeId(final Integer highlightedTaskNodeId)
  {
    this.highlightedTaskNodeId = highlightedTaskNodeId;
    final TaskNode node = getTaskTree().getTaskNodeById(highlightedTaskNodeId);
    if (node == null) {
      // Shouldn't occur.
      return this;
    }
    // Open all ancestor nodes of the highlighted node:
    final Set<TaskNode> set = TaskTreeExpansion.getExpansionModel().getObject();
    TaskNode parent = node.getParent();
    while (parent != null) {
      set.add(parent);
      parent = parent.getParent();
    }
    return this;
  }
View Full Code Here

    } else if (filter.getStopTime() != null) {
      queryFilter.add(Restrictions.le("startTime", filter.getStopTime()));
    }
    if (filter.getTaskId() != null) {
      if (filter.isRecursive() == true) {
        final TaskNode node = taskTree.getTaskNodeById(filter.getTaskId());
        final List<Integer> taskIds = node.getDescendantIds();
        taskIds.add(node.getId());
        queryFilter.add(Restrictions.in("task.id", taskIds));
        if (log.isDebugEnabled() == true) {
          log.debug("search in tasks: " + taskIds);
        }
      } else {
View Full Code Here

          && ObjectUtils.equals(timesheet.getUserId(), oldTimesheet.getUserId()) == true) {
        // Only minor fields are modified (description, location etc.).
        return true;
      }
    }
    final TaskNode taskNode = taskTree.getTaskNodeById(timesheet.getTaskId());
    // 1. Is the task or any of the ancestor tasks closed, deleted or has the booking status TREE_CLOSED?
    TaskNode node = taskNode;
    do {
      final TaskDO task = node.getTask();
      String errorMessage = null;
      if (task.isDeleted() == true) {
        errorMessage = "timesheet.error.taskNotBookable.taskDeleted";
      } else if (task.getStatus().isIn(TaskStatus.O, TaskStatus.N) == false) {
        errorMessage = "timesheet.error.taskNotBookable.taskNotOpened";
      } else if (task.getTimesheetBookingStatus() == TimesheetBookingStatus.TREE_CLOSED) {
        errorMessage = "timesheet.error.taskNotBookable.treeClosedForBooking";
      }
      if (errorMessage != null) {
        if (throwException == true) {
          throw new AccessException(errorMessage, task.getTitle() + " (#" + task.getId() + ")");
        }
        return false;
      }
      node = node.getParent();
    } while (node != null);
    // 2. Has the task the booking status NO_BOOKING?
    TimesheetBookingStatus bookingStatus = taskNode.getTask().getTimesheetBookingStatus();
    node = taskNode;
    while (bookingStatus == TimesheetBookingStatus.INHERIT && node.getParent() != null) {
      node = node.getParent();
      bookingStatus = node.getTask().getTimesheetBookingStatus();
    }
    if (bookingStatus == TimesheetBookingStatus.NO_BOOKING) {
      if (throwException == true) {
        throw new AccessException("timesheet.error.taskNotBookable.taskClosedForBooking", taskNode.getTask().getTitle()
            + " (#"
            + taskNode.getId()
            + ")");
      }
      return false;
    }
    if (taskNode.hasChilds() == true) {
      // 3. Is the task not a leaf node and has this task or ancestor task the booking status ONLY_LEAFS?
      node = taskNode;
      do {
        final TaskDO task = node.getTask();
        if (task.getTimesheetBookingStatus() == TimesheetBookingStatus.ONLY_LEAFS) {
          if (throwException == true) {
            throw new AccessException("timesheet.error.taskNotBookable.onlyLeafsAllowedForBooking", taskNode.getTask().getTitle()
                + " (#"
                + taskNode.getId()
                + ")");
          }
          return false;
        }
        node = node.getParent();
      } while (node != null);
      // 4. Does any of the descendant task node has an assigned order position?
      for (final TaskNode child : taskNode.getChilds()) {
        if (taskTree.hasOrderPositions(child.getId(), true) == true) {
          if (throwException == true) {
View Full Code Here

          && timesheet.getStopTime().getTime() == oldTimesheet.getStopTime().getTime()
          && ObjectUtils.equals(timesheet.getKost2Id(), oldTimesheet.getKost2Id()) == true) {
        return true;
      }
    }
    final TaskNode taskNode = taskTree.getTaskNodeById(timesheet.getTaskId());
    Validate.notNull(taskNode);
    final List<TaskNode> list = taskNode.getPathToRoot();
    list.add(0, taskTree.getRootTaskNode());
    for (final TaskNode node : list) {
      final Date date = node.getTask().getProtectTimesheetsUntil();
      if (date == null) {
        continue;
View Full Code Here

      return;
    }
    currentTaskId = taskId;
    if (showPath == true && task != null) {
      ancestorRepeater.removeAll();
      final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
      final List<Integer> ancestorIds = taskNode.getAncestorIds();
      final ListIterator<Integer> it = ancestorIds.listIterator(ancestorIds.size());
      while (it.hasPrevious() == true) {
        final Integer ancestorId = it.previous();
        final TaskDO ancestorTask = taskTree.getTaskById(ancestorId);
        if (ancestorTask.getParentTask() == null) {
View Full Code Here

    columns
    .add(new CellItemListenerPropertyColumn<TaskDO>(getString("task.consumption"), null, "task", cellItemListener) {
      @Override
      public void populateItem(final Item<ICellPopulator<TaskDO>> item, final String componentId, final IModel<TaskDO> rowModel)
      {
        final TaskNode node = taskTree.getTaskNodeById(rowModel.getObject().getId());
        item.add(getConsumptionBarPanel(TaskListPage.this, componentId, taskTree, isSelectMode(), node));
        cellItemListener.populateItem(item, componentId, rowModel);
      }
    });
    if (kostCache.isKost2EntriesExists() == true) {
View Full Code Here

    sheetProvider.putFormat(Col.HOURS, "#,##0.00");
    sheetProvider.putFormat(Col.ID, "0");

    final PropertyMapping mapping = new PropertyMapping();
    for (final TimesheetDO timesheet : list) {
      final TaskNode node = taskTree.getTaskNodeById(timesheet.getTaskId());
      final PFUserDO user = userGroupCache.getUser(timesheet.getUserId());
      mapping.add(Col.USER, user.getFullname());
      final Kost2DO kost2 = timesheet.getKost2();
      String kost2Name = null;
      String projektName = null;
      String kundeName = null;
      if (kost2 != null) {
        kost2Name = kost2.getShortDisplayName();
        final ProjektDO projekt = kost2.getProjekt();
        if (projekt != null) {
          projektName = projekt.getName();
          final KundeDO kunde = projekt.getKunde();
          if (kunde != null) {
            kundeName = kunde.getName();
          } else {
          }
        }
      }
      mapping.add(Col.KOST2, kost2Name);
      mapping.add(Col.PROJEKT, projektName);
      mapping.add(Col.KUNDE, kundeName);
      mapping.add(Col.TASK_TITLE, node.getTask().getTitle());
      mapping.add(Col.TASK_PATH, taskFormatter.getTaskPath(timesheet.getTaskId(), null, true, OutputType.PLAIN));
      mapping.add(Col.WEEK_OF_YEAR, timesheet.getFormattedWeekOfYear());
      mapping.add(Col.DAY_OF_WEEK, dateTimeFormatter.getFormattedDate(timesheet.getStartTime(), DateFormats
          .getFormatString(DateFormatType.DAY_OF_WEEK_SHORT)));
      final DateHolder startTime = new DateHolder(timesheet.getStartTime());
      final DateHolder stopTime = new DateHolder(timesheet.getStopTime());
      mapping.add(Col.START_TIME, startTime);
      mapping.add(Col.STOP_TIME, stopTime);
      final BigDecimal seconds = new BigDecimal(timesheet.getDuration() / 1000); // Seconds
      final BigDecimal duration = seconds.divide(new BigDecimal(60 * 60 * 24), 8, RoundingMode.HALF_UP); // Fraction of day (24 hours)
      mapping.add(Col.DURATION, duration.doubleValue());
      final BigDecimal hours = seconds.divide(new BigDecimal(60 * 60), 2, RoundingMode.HALF_UP);
      mapping.add(Col.HOURS, hours.doubleValue());
      mapping.add(Col.LOCATION, timesheet.getLocation());
      mapping.add(Col.REFERENCE, node.getReference());
      mapping.add(Col.SHORT_DESCRIPTION, timesheet.getShortDescription());
      mapping.add(Col.DESCRIPTION, timesheet.getDescription());
      mapping.add(Col.ID, timesheet.getId());
      sheet.addRow(mapping.getMapping(), 0);
    }
View Full Code Here

TOP

Related Classes of org.projectforge.task.TaskNode

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.