From 65aa8f3a8e9b20d6324f71ee83bd08a03eb9181c Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 27 Feb 2012 16:44:57 +0100 Subject: [PATCH] Set focus in the element with empty name FEA: ItEr76S13WBSSettingUpBehavior --- .../orders/OrderElementTreeController.java | 1 + .../templates/TemplatesTreeController.java | 1 + .../libreplan/web/tree/TreeController.java | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java index 1d140071d..b2eed887f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java @@ -377,6 +377,7 @@ public class OrderElementTreeController extends TreeController { } textBox.setConstraint("no empty:" + _("cannot be empty")); addCell(cssClass, textBox); + putNameTextbox(orderElementForThisRow, textBox); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java index 3695cc1a6..635757bcb 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/templates/TemplatesTreeController.java @@ -107,6 +107,7 @@ public class TemplatesTreeController extends }); addCell(textBox); + putNameTextbox(element, textBox); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java index 817c2ca5b..2edfeeca8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/tree/TreeController.java @@ -224,10 +224,18 @@ public abstract class TreeController> extends hours.setValue(0); } + Textbox nameTextbox = null; + // Parse hours try { if (tree.getSelectedCount() == 1) { T node = getSelectedNode(); + + if (!node.isEmptyLeaf()) { + // Then a new container will be created + nameTextbox = getRenderer().getNameTextbox(node); + } + T newNode = getModel().addElementAt(node, name.getValue(), hours.getValue()); getRenderer().refreshHoursValueForThisNodeAndParents(newNode); @@ -239,9 +247,14 @@ public abstract class TreeController> extends LOG.warn("exception ocurred adding element", e); messagesForUser.showMessage(Level.ERROR, e.getMessage()); } + name.setValue(""); hours.setValue(0); name.focus(); + + if (nameTextbox != null) { + nameTextbox.focus(); + } } protected abstract void filterByPredicateIfAny(); @@ -560,6 +573,8 @@ public abstract class TreeController> extends } + private Map nameTextboxByElement = new HashMap(); + private Map hoursIntBoxByElement = new HashMap(); private KeyboardNavigationHandler navigationHandler = new KeyboardNavigationHandler(); @@ -573,6 +588,14 @@ public abstract class TreeController> extends public Renderer() { } + protected Textbox getNameTextbox(T key) { + return nameTextboxByElement.get(key); + } + + protected void putNameTextbox(T key, Textbox textbox) { + nameTextboxByElement.put(key, textbox); + } + protected void registerFocusEvent(final InputElement inputElement) { inputElement.addEventListener(Events.ON_FOCUS, new EventListener() {