diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java
index 5091fd276..d4a224e8d 100644
--- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java
+++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java
@@ -25,6 +25,7 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
+import org.zkoss.ganttz.ProjectStatusEnum;
import org.zkoss.ganttz.data.constraint.Constraint;
/**
@@ -135,4 +136,50 @@ public interface ITaskFundamentalProperties {
public String getProjectCode();
+ /**
+ * Calculates whether the project is within the estimated hours or not and
+ * returns alarm status(color) {@link ProjectStatusEnum} accordingly.
+ *
+ * Alarm status definition:
+ *
+ * - {@link ProjectStatusEnum#AS_PLANNED}: everything is OK, project is as
+ * planned
+ * - {@link ProjectStatusEnum#WITHIN_MARGIN}: warning, project exceeded
+ * the estimated hours, but still within margin
+ * - {@link ProjectStatusEnum#MARGIN_EXCEEDED}: Project exceeded the hours
+ * estimated with margin
+ *
+ *
+ * @return {@link ProjectStatusEnum}
+ */
+ ProjectStatusEnum getProjectHoursStatus();
+
+ /**
+ * Calculates whether the project is within the estimated budget or not and
+ * returns alarm status(color) {@link ProjectStatusEnum} accordingly.
+ *
+ * Alarm status definition:
+ *
+ * - {@link ProjectStatusEnum#AS_PLANNED}: everything is OK, project is as
+ * planned
+ * - {@link ProjectStatusEnum#WITHIN_MARGIN}: warning, project exceeded
+ * the estimated budget, but still within margin
+ * - {@link ProjectStatusEnum#MARGIN_EXCEEDED}: Project exceeded the
+ * budget estimated with margin
+ *
+ *
+ * @return {@link ProjectStatusEnum}
+ */
+ ProjectStatusEnum getProjectBudgetStatus();
+
+ /**
+ * creates and returns tooltiptext for the project's hours status
+ */
+ String getTooltipTextForProjectHoursStatus();
+
+ /**
+ * creates and returns tooltiptext for the project's budget status
+ */
+ String getTooltipTextForProjectBudgetStatus();
+
}