From 3bdc973c00ca98936ce301e3db134c2aa70aeb5b Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 17 Aug 2010 16:26:01 +0200 Subject: [PATCH] ItEr60S04ValidacionEProbasFuncionaisItEr59S04: [Bug #592] Initial fix for bug. It needs some changes in CSS in order to work properly with long order names. --- .../java/org/zkoss/ganttz/LeftTasksTree.java | 10 ++- .../org/zkoss/ganttz/LeftTasksTreeRow.java | 85 ++++++++++++------- .../adapters/IDisabilityConfiguration.java | 2 + .../ganttz/adapters/PlannerConfiguration.java | 11 +++ .../web/ganttz/zul/leftTasksTreeRowLabels.zul | 34 ++++++++ .../planner/company/CompanyPlanningModel.java | 5 +- 6 files changed, 114 insertions(+), 33 deletions(-) create mode 100644 ganttzk/src/main/resources/web/ganttz/zul/leftTasksTreeRowLabels.zul diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java index 05de7fe2c..1ea0f477a 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTree.java @@ -83,8 +83,14 @@ public class LeftTasksTree extends HtmlMacroComponent { if (task.isContainer()) { expandWhenOpened((TaskContainer) task, item); } - Component row = Executions.getCurrent().createComponents( - "~./ganttz/zul/leftTasksTreeRow.zul", item, null); + Component row; + if (disabilityConfiguration.isTreeEditable()) { + row = Executions.getCurrent().createComponents( + "~./ganttz/zul/leftTasksTreeRow.zul", item, null); + } else { + row = Executions.getCurrent().createComponents( + "~./ganttz/zul/leftTasksTreeRowLabels.zul", item, null); + } leftTasksTreeRow.doAfterCompose(row); List rowChildren = row.getChildren(); List treeCells = ComponentsFinder.findComponentsOfType( diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java index cb21667cf..fae6db928 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/LeftTasksTreeRow.java @@ -41,6 +41,7 @@ import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Datebox; import org.zkoss.zul.Textbox; import org.zkoss.zul.Treecell; +import org.zkoss.zul.api.Label; import org.zkoss.zul.api.Treerow; public class LeftTasksTreeRow extends GenericForwardComposer { @@ -55,10 +56,16 @@ public class LeftTasksTreeRow extends GenericForwardComposer { private final Task task; + private Label nameLabel; + private Textbox nameBox; + private Label startDateLabel; + private Textbox startDateTextBox; + private Label endDateLabel; + private Textbox endDateTextBox; private Datebox startDateBox; @@ -254,22 +261,24 @@ public class LeftTasksTreeRow extends GenericForwardComposer { } private void registerListeners() { - registerKeyboardListener(nameBox); - registerKeyboardListener(startDateTextBox); - registerKeyboardListener(endDateTextBox); + if (disabilityConfiguration.isTreeEditable()) { + registerKeyboardListener(nameBox); + registerKeyboardListener(startDateTextBox); + registerKeyboardListener(endDateTextBox); - registerOnEnterListener(startDateTextBox); - registerOnEnterListener(endDateTextBox); + registerOnEnterListener(startDateTextBox); + registerOnEnterListener(endDateTextBox); - registerOnEnterOpenDateBox(startDateBox); - registerOnEnterOpenDateBox(endDateBox); + registerOnEnterOpenDateBox(startDateBox); + registerOnEnterOpenDateBox(endDateBox); - registerBlurListener(startDateBox); - registerBlurListener(endDateBox); + registerBlurListener(startDateBox); + registerBlurListener(endDateBox); - registerOnChange(nameBox); - registerOnChange(startDateBox); - registerOnChange(endDateBox); + registerOnChange(nameBox); + registerOnChange(startDateBox); + registerOnChange(endDateBox); + } } private void findComponents(Treerow row) { @@ -293,7 +302,11 @@ public class LeftTasksTreeRow extends GenericForwardComposer { } private void findComponentsForNameCell(Treecell treecell) { - nameBox = (Textbox) treecell.getChildren().get(0); + if (disabilityConfiguration.isTreeEditable()) { + nameBox = (Textbox) treecell.getChildren().get(0); + } else { + nameLabel = (Label) treecell.getChildren().get(0); + } } private void registerKeyboardListener(final Textbox textBox) { @@ -337,14 +350,22 @@ public class LeftTasksTreeRow extends GenericForwardComposer { } private void findComponentsForStartDateCell(Treecell treecell) { - startDateTextBox = findTextBoxOfCell(treecell); - startDateBox = findDateBoxOfCell(treecell); + if (disabilityConfiguration.isTreeEditable()) { + startDateTextBox = findTextBoxOfCell(treecell); + startDateBox = findDateBoxOfCell(treecell); + } else { + startDateLabel = (Label) treecell.getChildren().get(0); + } } private void findComponentsForEndDateCell(Treecell treecell) { - endDateBox = findDateBoxOfCell(treecell); - endDateBox.setDisabled(true); - endDateTextBox = findTextBoxOfCell(treecell); + if (disabilityConfiguration.isTreeEditable()) { + endDateBox = findDateBoxOfCell(treecell); + endDateBox.setDisabled(true); + endDateTextBox = findTextBoxOfCell(treecell); + } else { + endDateLabel = (Label) treecell.getChildren().get(0); + } } private void registerBlurListener(final Datebox datebox) { @@ -371,20 +392,26 @@ public class LeftTasksTreeRow extends GenericForwardComposer { } private void updateComponents() { - getNameBox().setValue(task.getName()); - getNameBox().setDisabled(!canRenameTask()); - getNameBox().setTooltiptext(task.getName()); + if (disabilityConfiguration.isTreeEditable()) { + getNameBox().setValue(task.getName()); + getNameBox().setDisabled(!canRenameTask()); + getNameBox().setTooltiptext(task.getName()); - getStartDateBox().setValue(task.getBeginDate()); - getStartDateBox().setDisabled(!canChangeStartDate()); - getStartDateTextBox().setDisabled(!canChangeStartDate()); + getStartDateBox().setValue(task.getBeginDate()); + getStartDateBox().setDisabled(!canChangeStartDate()); + getStartDateTextBox().setDisabled(!canChangeStartDate()); - getEndDateBox().setValue(task.getEndDate()); - getEndDateBox().setDisabled(!canChangeEndDate()); - getEndDateTextBox().setDisabled(!canChangeEndDate()); + getEndDateBox().setValue(task.getEndDate()); + getEndDateBox().setDisabled(!canChangeEndDate()); + getEndDateTextBox().setDisabled(!canChangeEndDate()); - getStartDateTextBox().setValue(asString(task.getBeginDate())); - getEndDateTextBox().setValue(asString(task.getEndDate())); + getStartDateTextBox().setValue(asString(task.getBeginDate())); + getEndDateTextBox().setValue(asString(task.getEndDate())); + } else { + nameLabel.setValue(task.getName()); + startDateLabel.setValue(asString(task.getBeginDate())); + endDateLabel.setValue(asString(task.getEndDate())); + } } private boolean canChangeStartDate() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/IDisabilityConfiguration.java b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/IDisabilityConfiguration.java index 00a648da0..0a3de4538 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/IDisabilityConfiguration.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/IDisabilityConfiguration.java @@ -43,4 +43,6 @@ public interface IDisabilityConfiguration { public boolean isExpandPlanningViewCharts(); + public boolean isTreeEditable(); + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java index 1e4dd40f2..50320c0e9 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java @@ -137,6 +137,8 @@ public class PlannerConfiguration implements IDisabilityConfiguration { private boolean renamingTasksEnabled = true; + private boolean treeEditable = true; + // private String identifier = null; private IDetailItemModificator firstLevelModificators = SeveralModificators @@ -414,4 +416,13 @@ public class PlannerConfiguration implements IDisabilityConfiguration { return Collections.unmodifiableList(postGraphChangeListeners); } + public void setTreeEditable(boolean treeEditable) { + this.treeEditable = treeEditable; + } + + @Override + public boolean isTreeEditable() { + return treeEditable; + } + } diff --git a/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTreeRowLabels.zul b/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTreeRowLabels.zul new file mode 100644 index 000000000..1c2c47550 --- /dev/null +++ b/ganttzk/src/main/resources/web/ganttz/zul/leftTasksTreeRowLabels.zul @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java index 6f826cc46..abcf5540d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java @@ -32,10 +32,10 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; +import java.util.Map.Entry; import org.joda.time.LocalDate; import org.navalplanner.business.calendars.entities.BaseCalendar; @@ -68,8 +68,8 @@ import org.navalplanner.web.planner.ITaskElementAdapter; import org.navalplanner.web.planner.chart.Chart; import org.navalplanner.web.planner.chart.ChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller; -import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; import org.navalplanner.web.planner.chart.IChartFiller; +import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; import org.navalplanner.web.planner.order.BankHolidaysMarker; import org.navalplanner.web.planner.order.OrderPlanningModel; import org.navalplanner.web.planner.tabs.MultipleTabsPlannerController; @@ -512,6 +512,7 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { configuration.setExpandAllEnabled(false); configuration.setFlattenTreeEnabled(false); configuration.setRenamingTasksEnabled(false); + configuration.setTreeEditable(false); } private void addAdditionalCommands(