EN · DE · RU · FR · ES

#470: Task2GanttTaskConverter.java

projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java Java-Klasse, projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java 139 Zeilen · 94 Code · 37 Kommentare · 8 leer
Zweck: Quelldatei: projectforge/business/gantt/Task2GanttTaskConverter.java. Task2GanttTaskConverter.java ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quelltext (erste 100 Zeilen)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge ist dual-lizenziert.
//
// Diese Community Edition ist freie Software; Sie können es weiterverteilen und/oder
// modifizieren unter den Bedingungen der GNU General Public License, wie veröffentlicht
// von der Free Software Foundation; Version 3 der Lizenz.
//
// Diese Community Edition wird in der Hoffnung verteilt, dass sie nützlich sein wird,
// aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne die stillschweigende Gewährleistung der
// MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General
// Public License für weitere Details.
//
// Sie sollten eine Kopie der GNU General Public License zusammen mit
// diesem Programm erhalten haben; falls nicht, siehe http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.business.gantt;

import org.projectforge.business.task.TaskDO;
import org.projectforge.business.task.TaskNode;
import org.projectforge.business.task.TaskTree;

public class Task2GanttTaskConverter
{
  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Task2GanttTaskConverter.class);

  /**
   * Maximale Tiefe der Vorgänger zur Vermeidung von zirkulären Vorgängereinstellungen.
   */
  public static final GanttChartData convertToGanttObjectTree(final TaskTree taskTree, final TaskDO rootTask)
  {
    final GanttChartData ganttChartData = new GanttChartData();
    convertToGanttObject(ganttChartData, taskTree, rootTask);
    processPredecessor(ganttChartData, taskTree, ganttChartData.getRootObject());
    return ganttChartData;
  }

  /**
   * Erstellt eine neue GanttTask und kopiert alle Felder aus der gegebenen Aufgabe (ausgenommen Vorgänger und alle Kinder).
   * @param task
   * @return
   */
  public static final GanttTask convertToGanttObject(final TaskDO task)
  {
    final GanttTaskImpl ganttObject = new GanttTaskImpl();
    ganttObject.setId(task.getId());
    ganttObject.setPredecessorOffset(task.getGanttPredecessorOffset());
    ganttObject.setRelationType(task.getGanttRelationType());
    ganttObject.setDuration(task.getDuration());
    ganttObject.setStartDate(task.getStartDate());
    ganttObject.setEndDate(task.getEndDate());
    ganttObject.setProgress(task.getProgress());
    ganttObject.setType(task.getGanttObjectType());
    ganttObject.setDescription(task.getDescription());
    ganttObject.setTitle(task.getTitle());
    return ganttObject;
  }

  /**
   * Erstellt eine neue GanttTask und kopiert alle Felder aus der gegebenen Aufgabe (ausgenommen Vorgänger und alle Kinder).
   * @param task
   * @return
   */
  public static final TaskDO convertToTask(final GanttTask ganttObject)
  {
    final TaskDO task = new TaskDO();
    // Die ID nicht kopieren! Die ID wird von der Datenbank vergeben.
    task.setGanttPredecessorOffset(ganttObject.getPredecessorOffset());
    task.setGanttRelationType(ganttObject.getRelationType());
    task.setDuration(ganttObject.getDuration());
    task.setStartDate(ganttObject.getStartDate());
    task.setEndDate(ganttObject.getEndDate());
    task.setProgress(ganttObject.getProgress());
    task.setGanttObjectType(ganttObject.getType());
    task.setDescription(ganttObject.getDescription());
    task.setTitle(ganttObject.getTitle());
    return task;
  }

  private static final GanttTask convertToGanttObject(final GanttChartData ganttChartData, final TaskTree taskTree, final TaskDO task)
  {
    if (task == null) {
      log.warn("Hoppla, Aufgabe sollte nicht null sein.");
      return null;
    }
    final GanttTask ganttObject = convertToGanttObject(task);
    if (ganttChartData.getRootObject() == null) {
      ganttChartData.setRootObject(ganttObject);
    }
    final TaskNode taskNode = taskTree.getTaskNodeById(task.getId());
    if (taskNode.hasChildren()) {
      for (final TaskNode childNode : taskNode.getChildren()) {
        if (!childNode.isDeleted()) {

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quelltextdatei-Header: 2024 -> 2025.
4c04cfd65 GROSSE-ÄNDERUNG! Migration von Integer-IDs zu Long-IDs (einschließlich Fremdschlüsseln usw.)
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 9072d7a45..ce8fd8a1f 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

63081666f

Quelltextdatei-Header: 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 2eb7a00ac..9072d7a45 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

4c04cfd65

GROSSE-ÄNDERUNG! Migration von Integer-IDs zu Long-IDs (einschließlich Fremdschlüsseln usw.)
4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 490fa519e..2eb7a00ac 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -112,8 +112,8 @@ public class Task2GanttTaskConverter
       return;
     }
     if (!ganttTask.equals(ganttChartData.getRootObject())) {
-      final TaskDO task = taskTree.getTaskById((Integer) ganttTask.getId());
-      final Integer predecessorId = task.getGanttPredecessorId();
+      final TaskDO task = taskTree.getTaskById((Long) ganttTask.getId());
+      final Long predecessorId = task.getGanttPredecessorId();
       if (predecessorId != null) {
         GanttTask predecessor = ganttChartData.getRootObject().findById(predecessorId);
         if (predecessor == null) {

b6092df09

Copyright 2023 -> 2024
b6092df0927c4a3b161e888445f31dcab57493f2
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index 37306edcc..490fa519e 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //

ab45d51fa

Copyright 2001-2022 -> 2001-2023.
ab45d51fa419ede6174b31d69987f96d4b841ff9
diff --git a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
index f152a616f..37306edcc 100644
--- a/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
+++ b/projectforge-business/src/main/java/org/projectforge/business/gantt/Task2GanttTaskConverter.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2022 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2023 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge ist dual-lizenziert.
 //