diff --git a/HACKING.rst b/HACKING.rst
index 786d37b78..7dda00b8b 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -216,6 +216,12 @@ Microsoft Windows
# http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
+* Download and install latest Gettext runtime::
+
+ # https://mlocati.github.io/articles/gettext-iconv-windows.html
+
+* Add Gettext_installed_directory\bin (for example ``C:\Program Files\gettext-iconv\bin``) to ``Path`` variable
+
* Download and install latest PostgreSQL database::
# http://www.enterprisedb.com/products-services-training/pgdownload#windows
diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java
index 4b1989c1a..c4e3cc2d7 100644
--- a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java
+++ b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java
@@ -384,6 +384,16 @@ public class LeftTasksTree extends HtmlMacroComponent {
fillModel(this.tasksTreeModel.getRoot(), 0, tasks, firstTime);
}
+ /**
+ * This method is used to fill {@link LeftTasksTree} model.
+ * It is using recursive go-round to go over all tasks.
+ * For top-level tasks parent is null, for child tasks the parent is parent task.
+ *
+ * @param parent parent for current {@link Task}
+ * @param insertionPosition
+ * @param children child elements of a current {@link Task}
+ * @param firstTime
+ */
private void fillModel(Task parent,
Integer insertionPosition,
Collection extends Task> children,
diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java
index 1001312c3..7108958cd 100644
--- a/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java
+++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/TaskContainer.java
@@ -32,7 +32,10 @@ import org.zkoss.zk.ui.util.Clients;
/**
* This class contains the information of a task container. It can be modified
- * and notifies of the changes to the interested parties.
+ * and notifies of the changes to the interested parties.
+ * This class is used in {@link org.zkoss.ganttz.LeftTasksTree} as a container for tasks and is put
+ * as {@link org.zkoss.ganttz.util.MutableTreeModel} node.
+ *
* @author Lorenzo Tilve Álvaro
*/
public class TaskContainer extends Task {
diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLine.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLine.java
index d4ec9fb23..12ab0813a 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLine.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLine.java
@@ -43,6 +43,10 @@ import org.libreplan.business.planner.entities.DayAssignment.FilterType;
import org.libreplan.business.requirements.entities.CriterionRequirement;
import org.libreplan.business.templates.entities.OrderLineTemplate;
+/**
+ * Used in WBS (Work Breakdown Structure).
+ * Represents every task without children.
+ */
public class OrderLine extends OrderElement {
private HoursGroupOrderLineHandler hoursGroupOrderLineHandler = HoursGroupOrderLineHandler.getInstance();
diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java
index 383596caf..0da0094ca 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/OrderLineGroup.java
@@ -60,8 +60,8 @@ import org.libreplan.business.trees.ITreeParentNode;
/**
- * Represents every container in the WBS view. A task of the WBS that has some children.
- *
+ * Represents every container in the WBS (Work Breakdown Structure) view.
+ * A task of the WBS that has some children.
* The project itself is also an {@link OrderLineGroup}.
*
* @author Manuel Rego Casasnovas
diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/TaskSource.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/TaskSource.java
index a27b5c91b..f5d7e0e24 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/TaskSource.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/TaskSource.java
@@ -41,6 +41,8 @@ import org.libreplan.business.util.deepcopy.OnCopy;
import org.libreplan.business.util.deepcopy.Strategy;
/**
+ * This class is kind of data source for {@link TaskElement}
+ *
* @author Óscar González Fernández
*/
public class TaskSource extends BaseEntity {
diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Dependency.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Dependency.java
index 5cbd167c8..68efc89af 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Dependency.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/Dependency.java
@@ -30,8 +30,7 @@ import org.libreplan.business.util.deepcopy.Strategy;
import org.libreplan.business.util.deepcopy.OnCopy;
/**
- * Entity which represents an associated with properties
- * between two @{link Task}
+ * Entity which represents an association with properties between two {@link Task}
*
* @author Óscar González Fernández
* @author Javier Moran Rua
diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PlanningData.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PlanningData.java
index 6602ea10d..71bd2b1e1 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PlanningData.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/PlanningData.java
@@ -33,13 +33,10 @@ import org.libreplan.business.planner.entities.DayAssignment.FilterType;
import org.libreplan.business.workingday.EffortDuration;
/**
+ * This is a class, directly associated with a {@link TaskGroup} with no parent element,
+ * which is used to store data about the whole scheduling.
*
* @author Diego Pino García
- *
- * This is a class, directly associated with a TaskGroup with no parent
- * (TaskRoot element), which is used to store data about the whole
- * scheduling
- *
*/
public class PlanningData extends BaseEntity {
diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java
index 79af1d5d4..30545df0c 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskDeadlineViolationStatusEnum.java
@@ -22,7 +22,7 @@ package org.libreplan.business.planner.entities;
import static org.libreplan.business.i18n.I18nHelper._;
/**
- * Enumerate of {@Link Task} deadline violation statuses.
+ * Enumerate of {@link Task} deadline violation statuses.
*
* NO_DEADLINE: Task has no deadline set.
* DEADLINE_VIOLATED: Task didn't finish on time.
diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskGroup.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskGroup.java
index 6e006af5f..5588b8284 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskGroup.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/TaskGroup.java
@@ -43,6 +43,9 @@ import org.libreplan.business.workingday.EffortDuration;
import org.libreplan.business.workingday.IntraDayDate;
/**
+ * Represents a parent task which can hold child tasks.
+ * The project itself is also an {@link TaskGroup}.
+ *
* @author Óscar González Fernández
* @author Javier Moran Rua
* @author Manuel Rego Casasnovas
diff --git a/libreplan-business/src/main/java/org/libreplan/business/scenarios/entities/Scenario.java b/libreplan-business/src/main/java/org/libreplan/business/scenarios/entities/Scenario.java
index 33feb6f69..179d3d7b5 100644
--- a/libreplan-business/src/main/java/org/libreplan/business/scenarios/entities/Scenario.java
+++ b/libreplan-business/src/main/java/org/libreplan/business/scenarios/entities/Scenario.java
@@ -46,6 +46,7 @@ import org.libreplan.business.scenarios.daos.IScenarioDAO;
/**
* Represents a scenario in the application.
+ * Scenario is like a context for each user that holds all his projects.
*
* @author Manuel Rego Casasnovas
*/
diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java
index c995c61bf..a146b7d0e 100644
--- a/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java
+++ b/libreplan-webapp/src/main/java/org/libreplan/web/dashboard/DashboardModel.java
@@ -217,8 +217,10 @@ public class DashboardModel implements IDashboardModel {
BigDecimal outcome = new BigDecimal(deadlineOffset.getDays(), MathContext.DECIMAL32);
- this.marginWithDeadLine =
- outcome.divide(new BigDecimal(orderDuration.getDays()), 8, BigDecimal.ROUND_HALF_EVEN);
+ this.marginWithDeadLine = orderDuration.getDays()!= 0
+ ? outcome.divide(new BigDecimal(orderDuration.getDays()), 8, BigDecimal.ROUND_HALF_EVEN)
+ : new BigDecimal(
+ Days.daysBetween(rootTask.getStartAsLocalDate(), deadLineAsLocalDate.plusDays(1)).getDays());
}
@Override
diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java
index 848e488ce..13a7f6b4e 100644
--- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java
+++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/EditTaskController.java
@@ -50,7 +50,7 @@ import org.zkoss.zul.Tabpanel;
import org.zkoss.zul.Window;
/**
- * Controller for edit a {@link Task}.
+ * Controller for editing a {@link Task} on a project scheduling view.
*
* @author Manuel Rego Casasnovas
*/