Bug #1471: Update all the columns in the WBS and not only name, hours and budget

FEA: ItEr76S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2012-06-27 09:01:51 +02:00
parent 54887acb45
commit fb6430e251
4 changed files with 87 additions and 1 deletions

View file

@ -230,7 +230,7 @@ public class DynamicDatebox extends GenericForwardComposer {
setter.set(date);
}
private void updateComponents() {
public void updateComponents() {
getDateTextBox().setValue(asString(getter.get()));
}

View file

@ -413,6 +413,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
updateColumnsFor(currentOrderElement);
}
@Override
protected void addCodeCell(final OrderElement orderElement) {
Textbox textBoxCode = new Textbox();
Util.bind(textBoxCode, new Util.Getter<String>() {
@ -444,6 +445,10 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
}
addCell(textBoxCode);
putCodeTextbox(orderElement, textBoxCode);
// FIXME remove this map as it's already in
// org.libreplan.web.tree.TreeController.Renderer.codeTextboxByElement
orderElementCodeTextboxes.put(orderElement, textBoxCode);
}
@ -467,6 +472,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
dinamicDatebox.setDisabled(true);
}
addDateCell(dinamicDatebox, _("init"));
putInitDateDynamicDatebox(currentOrderElement, dinamicDatebox);
}
void addEndDateCell(final OrderElement currentOrderElement) {
@ -488,6 +494,7 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
dinamicDatebox.setDisabled(true);
}
addDateCell(dinamicDatebox, _("end"));
putEndDateDynamicDatebox(currentOrderElement, dinamicDatebox);
}
@Override
@ -779,4 +786,16 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
};
}
@Override
protected ICodeHandler<OrderElement> getCodeHandler() {
return new ICodeHandler<OrderElement>() {
@Override
public String getCodeFor(OrderElement element) {
return element.getCode();
}
};
}
}

View file

@ -294,6 +294,19 @@ public class TemplatesTreeController extends
};
}
@Override
protected ICodeHandler<OrderElementTemplate> getCodeHandler() {
return new ICodeHandler<OrderElementTemplate>() {
@Override
public String getCodeFor(OrderElementTemplate element) {
// Empty as OrderElementTemplate doesn't have code
return "";
}
};
}
public void refreshRow(Treeitem item) {
try {
OrderElementTemplate orderElement = (OrderElementTemplate) item

View file

@ -578,12 +578,18 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
}
private Map<T, Textbox> codeTextboxByElement = new HashMap<T, Textbox>();
private Map<T, Textbox> nameTextboxByElement = new HashMap<T, Textbox>();
private Map<T, Intbox> hoursIntBoxByElement = new HashMap<T, Intbox>();
private Map<T, Decimalbox> budgetDecimalboxByElement = new HashMap<T, Decimalbox>();
private Map<T, DynamicDatebox> initDateDynamicDateboxByElement = new HashMap<T, DynamicDatebox>();
private Map<T, DynamicDatebox> endDateDynamicDateboxByElement = new HashMap<T, DynamicDatebox>();
private KeyboardNavigationHandler navigationHandler = new KeyboardNavigationHandler();
private Treerow currentTreeRow;
@ -599,10 +605,24 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
return nameTextboxByElement.get(key);
}
protected void putCodeTextbox(T key, Textbox textbox) {
codeTextboxByElement.put(key, textbox);
}
protected void putNameTextbox(T key, Textbox textbox) {
nameTextboxByElement.put(key, textbox);
}
protected void putInitDateDynamicDatebox(T key,
DynamicDatebox dynamicDatebox) {
initDateDynamicDateboxByElement.put(key, dynamicDatebox);
}
protected void putEndDateDynamicDatebox(T key,
DynamicDatebox dynamicDatebox) {
endDateDynamicDateboxByElement.put(key, dynamicDatebox);
}
protected void registerFocusEvent(final InputElement inputElement) {
inputElement.addEventListener(Events.ON_FOCUS,
new EventListener() {
@ -850,9 +870,19 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
}
public void updateColumnsFor(T element) {
updateCodeFor(element);
updateNameFor(element);
updateHoursFor(element);
updateBudgetFor(element);
updateInitDateFor(element);
updateEndDateFor(element);
}
private void updateCodeFor(T element) {
if (!readOnly) {
Textbox textbox = codeTextboxByElement.get(element);
textbox.setValue(getCodeHandler().getCodeFor(element));
}
}
private void updateBudgetFor(T element) {
@ -870,6 +900,22 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
}
}
private void updateInitDateFor(T element) {
if (!readOnly) {
DynamicDatebox dynamicDatebox = initDateDynamicDateboxByElement
.get(element);
dynamicDatebox.updateComponents();
}
}
private void updateEndDateFor(T element) {
if (!readOnly) {
DynamicDatebox dynamicDatebox = endDateDynamicDateboxByElement
.get(element);
dynamicDatebox.updateComponents();
}
}
public void refreshBudgetValueForThisNodeAndParents(T node) {
List<T> nodeAndItsParents = getModel().getParents(node);
nodeAndItsParents.add(node);
@ -1196,6 +1242,14 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
protected abstract IBudgetHandler<T> getBudgetHandler();
public interface ICodeHandler<T> {
String getCodeFor(T element);
}
protected abstract ICodeHandler<T> getCodeHandler();
public interface INameHandler<T> {
String getNameFor(T element);