aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebContent/release-notes.html2
-rw-r--r--src/com/vaadin/Application.java8
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VTree.java76
-rw-r--r--tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.html36
-rw-r--r--tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.java17
5 files changed, 71 insertions, 68 deletions
diff --git a/WebContent/release-notes.html b/WebContent/release-notes.html
index e7ddc6e8de..4dc136d5ad 100644
--- a/WebContent/release-notes.html
+++ b/WebContent/release-notes.html
@@ -295,7 +295,7 @@ application servers:</p>
it:</p>
<ul>
- <li>Mozilla Firefox 3 and 4</li>
+ <li>Mozilla Firefox 3, 4, and 5</li>
<li>Internet Explorer releases 6, 7, 8 and 9</li>
<li>Safari 4 and 5</li>
<li>Opera 10 and 11</li>
diff --git a/src/com/vaadin/Application.java b/src/com/vaadin/Application.java
index 68f64613e9..39a70fe27f 100644
--- a/src/com/vaadin/Application.java
+++ b/src/com/vaadin/Application.java
@@ -134,7 +134,7 @@ public abstract class Application implements URIHandler,
/**
* Application status.
*/
- private boolean applicationIsRunning = false;
+ private volatile boolean applicationIsRunning = false;
/**
* Application properties.
@@ -1384,7 +1384,7 @@ public abstract class Application implements URIHandler,
}
/**
- * @return
+ * @return
* "Take note of any unsaved data, and <u>click here</u> to continue."
*/
public String getSessionExpiredMessage() {
@@ -1416,7 +1416,7 @@ public abstract class Application implements URIHandler,
}
/**
- * @return
+ * @return
* "Take note of any unsaved data, and <u>click here</u> to continue."
*/
public String getCommunicationErrorMessage() {
@@ -1448,7 +1448,7 @@ public abstract class Application implements URIHandler,
}
/**
- * @return
+ * @return
* "Take note of any unsaved data, and <u>click here</u> to continue."
*/
public String getAuthenticationErrorMessage() {
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTree.java b/src/com/vaadin/terminal/gwt/client/ui/VTree.java
index ed705dbb9e..a8974aa5bc 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VTree.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VTree.java
@@ -417,8 +417,7 @@ public class VTree extends FocusElementPanel implements Paintable,
VerticalDropLocation curDetail = (VerticalDropLocation) event
.getDropDetails().get("detail");
if (curDetail == detail
- && newKey
- .equals(currentMouseOverKey)) {
+ && newKey.equals(currentMouseOverKey)) {
keyToNode.get(newKey).emphasis(detail);
}
/*
@@ -778,8 +777,9 @@ public class VTree extends FocusElementPanel implements Paintable,
if (selectable) {
// caption click = selection change && possible click
// event
- if (handleClickSelection(event.getCtrlKey()
- || event.getMetaKey(), event.getShiftKey())) {
+ if (handleClickSelection(
+ event.getCtrlKey() || event.getMetaKey(),
+ event.getShiftKey())) {
event.preventDefault();
}
} else {
@@ -869,24 +869,30 @@ public class VTree extends FocusElementPanel implements Paintable,
final MouseEventDetails details = new MouseEventDetails(evt);
ScheduledCommand command = new ScheduledCommand() {
public void execute() {
- if (details.getButton() == 0) {
- // non-immediate iff an immediate select event is going
- // to
- // happen and the left button was clicked
- boolean imm = !immediate
- || !selectable
- || (!isNullSelectionAllowed && isSelected() && selectedIds
- .size() == 1);
- client.updateVariable(paintableId, "clickedKey", key,
- false);
- client.updateVariable(paintableId, "clickEvent",
- details.toString(), imm);
- } else {
- client.updateVariable(paintableId, "clickedKey", key,
- false);
- client.updateVariable(paintableId, "clickEvent",
- details.toString(), immediate);
+ // Determine if we should send the event immediately to the
+ // server. We do not want to send the event if there is a
+ // selection event happening after this. In all other cases
+ // we want to send it immediately.
+ boolean sendClickEventNow = true;
+
+ if (details.getButton() == NativeEvent.BUTTON_LEFT
+ && immediate && selectable) {
+ // Probably a selection that will cause a value change
+ // event to be sent
+ sendClickEventNow = false;
+
+ // The exception is that user clicked on the
+ // currently selected row and null selection is not
+ // allowed == no selection event
+ if (isSelected() && selectedIds.size() == 1
+ && !isNullSelectionAllowed) {
+ sendClickEventNow = true;
+ }
}
+
+ client.updateVariable(paintableId, "clickedKey", key, false);
+ client.updateVariable(paintableId, "clickEvent",
+ details.toString(), sendClickEventNow);
}
};
if (treeHasFocus) {
@@ -986,14 +992,14 @@ public class VTree extends FocusElementPanel implements Paintable,
if (icon == null) {
onloadHandled = false;
icon = new Icon(client);
- DOM.insertBefore(DOM.getFirstChild(nodeCaptionDiv), icon
- .getElement(), nodeCaptionSpan);
+ DOM.insertBefore(DOM.getFirstChild(nodeCaptionDiv),
+ icon.getElement(), nodeCaptionSpan);
}
icon.setUri(uidl.getStringAttribute("icon"));
} else {
if (icon != null) {
- DOM.removeChild(DOM.getFirstChild(nodeCaptionDiv), icon
- .getElement());
+ DOM.removeChild(DOM.getFirstChild(nodeCaptionDiv),
+ icon.getElement());
icon = null;
}
}
@@ -1066,8 +1072,9 @@ public class VTree extends FocusElementPanel implements Paintable,
childNodeContainer.add(childTree);
}
if (!i.hasNext()) {
- childTree.addStyleDependentName(childTree.isLeaf()
- ? "leaf-last" : "last");
+ childTree
+ .addStyleDependentName(childTree.isLeaf() ? "leaf-last"
+ : "last");
childTree.childNodeContainer.addStyleDependentName("last");
}
}
@@ -1731,8 +1738,9 @@ public class VTree extends FocusElementPanel implements Paintable,
// keypress event
keyCode = CHARCODE_SPACE;
}
- if (handleKeyNavigation(keyCode, event.isControlKeyDown()
- || event.isMetaKeyDown(), event.isShiftKeyDown())) {
+ if (handleKeyNavigation(keyCode,
+ event.isControlKeyDown() || event.isMetaKeyDown(),
+ event.isShiftKeyDown())) {
event.preventDefault();
event.stopPropagation();
}
@@ -1746,9 +1754,9 @@ public class VTree extends FocusElementPanel implements Paintable,
* .event.dom.client.KeyDownEvent)
*/
public void onKeyDown(KeyDownEvent event) {
- if (handleKeyNavigation(event.getNativeEvent().getKeyCode(), event
- .isControlKeyDown()
- || event.isMetaKeyDown(), event.isShiftKeyDown())) {
+ if (handleKeyNavigation(event.getNativeEvent().getKeyCode(),
+ event.isControlKeyDown() || event.isMetaKeyDown(),
+ event.isShiftKeyDown())) {
event.preventDefault();
event.stopPropagation();
}
@@ -2206,8 +2214,8 @@ public class VTree extends FocusElementPanel implements Paintable,
ArrayList<Integer> positions = new ArrayList<Integer>();
while (treeNode.getParentNode() != null) {
- positions.add(0, treeNode.getParentNode().getChildren().indexOf(
- treeNode));
+ positions.add(0,
+ treeNode.getParentNode().getChildren().indexOf(treeNode));
treeNode = treeNode.getParentNode();
}
positions.add(0, getRootNodes().indexOf(treeNode));
diff --git a/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.html b/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.html
index 42f298520f..841565df2f 100644
--- a/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.html
+++ b/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.html
@@ -22,9 +22,9 @@
<td>36,7</td>
</tr>
<tr>
- <td>verifyTextPresent</td>
- <td>exact:1: Left Click</td>
- <td></td>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeItemClickListening::PID_SLog_row_0</td>
+ <td>1. Left Click</td>
</tr>
<tr>
<td>mouseClick</td>
@@ -32,9 +32,9 @@
<td>45,7</td>
</tr>
<tr>
- <td>verifyTextPresent</td>
- <td>exact:1: Left Click<br />2: Left Click</td>
- <td></td>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeItemClickListening::PID_SLog_row_0</td>
+ <td>2. Left Click</td>
</tr>
<tr>
<td>mouseClick</td>
@@ -42,9 +42,9 @@
<td>37,13</td>
</tr>
<tr>
- <td>verifyTextPresent</td>
- <td>exact:1: Left Click<br />2: Left Click<br />3: Left Click</td>
- <td></td>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeItemClickListening::PID_SLog_row_0</td>
+ <td>3. Left Click</td>
</tr>
<tr>
<td>mouseDownRight</td>
@@ -57,9 +57,9 @@
<td></td>
</tr>
<tr>
- <td>verifyTextPresent</td>
- <td>exact:1: Left Click<br />2: Left Click<br />3: Left Click<br />4: Right Click</td>
- <td></td>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeItemClickListening::PID_SLog_row_0</td>
+ <td>4. Right Click</td>
</tr>
<tr>
<td>mouseDownRight</td>
@@ -72,16 +72,10 @@
<td></td>
</tr>
<tr>
- <td>verifyTextPresent</td>
- <td>exact:1: Left Click<br />2: Left Click<br />3: Left Click<br />4: Right Click<br />5: Right Click</td>
- <td></td>
-</tr>
-<tr>
- <td>screenCapture</td>
- <td></td>
- <td>ThreeLeftAndTwoRightClicks</td>
+ <td>assertText</td>
+ <td>vaadin=runcomvaadintestscomponentstreeTreeItemClickListening::PID_SLog_row_0</td>
+ <td>5. Right Click</td>
</tr>
-
</tbody></table>
</body>
</html>
diff --git a/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.java b/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.java
index 902edead88..e772be7cde 100644
--- a/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.java
+++ b/tests/src/com/vaadin/tests/components/tree/TreeItemClickListening.java
@@ -2,18 +2,18 @@ package com.vaadin.tests.components.tree;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.tests.components.TestBase;
-import com.vaadin.ui.Label;
+import com.vaadin.tests.util.Log;
import com.vaadin.ui.Tree;
public class TreeItemClickListening extends TestBase {
private int clickCounter = 0;
+ private Log log = new Log(5);
+
@Override
protected void setup() {
- final Label output = new Label("", Label.CONTENT_PREFORMATTED);
-
Tree tree = new Tree();
tree.setImmediate(true);
@@ -32,19 +32,20 @@ public class TreeItemClickListening extends TestBase {
clickCounter++;
switch (event.getButton()) {
case ItemClickEvent.BUTTON_LEFT:
- output.setValue(output.getValue().toString() + clickCounter
- + ": Left Click\n");
+ log.log("Left Click");
break;
case ItemClickEvent.BUTTON_RIGHT:
- output.setValue(output.getValue().toString() + clickCounter
- + ": Right Click\n");
+ log.log("Right Click");
+ break;
+ case ItemClickEvent.BUTTON_MIDDLE:
+ log.log("Middle Click");
break;
}
}
});
addComponent(tree);
- addComponent(output);
+ addComponent(log);
}
@Override