text-align: left /* Force default alignment */
}
+/* ie6compatnode is hidden from non ie6 browsers, for ie6
+ * uses weird hack to sink all events properly
+ */
+.i-tree-node-ie6compatnode {
+ display: none;
+}
+
+* html .i-tree-node-ie6compatnode {
+ display: inline;
+ float:left;
+ background: orange;
+ margin:0;
+ width:14px;
+ height:10px;
+ padding:1px;
+ filter: Alpha(opacity=0);
+}
+* html .i-tree-node {
+ clear: both;
+}
+
.i-tree-node {
background: transparent url(tree/img/collapsed.png) no-repeat 2px 1px;
}
.i-tree-node-caption {
margin-left: 16px;
}
+
.i-tree-node span {
padding: 0 2px;
cursor: pointer;
text-align: left /* Force default alignment */
}
+/* ie6compatnode is hidden from non ie6 browsers, for ie6
+ * uses weird hack to sink all events properly
+ */
+.i-tree-node-ie6compatnode {
+ display: none;
+}
+
+* html .i-tree-node-ie6compatnode {
+ display: inline;
+ float:left;
+ background: orange;
+ margin:0;
+ width:14px;
+ height:10px;
+ padding:1px;
+ filter: Alpha(opacity=0);
+}
+* html .i-tree-node {
+ clear: both;
+}
+
.i-tree-node {
background: transparent url(img/collapsed.png) no-repeat 2px 1px;
}
.i-tree-node-caption {
margin-left: 16px;
}
+
.i-tree-node span {
padding: 0 2px;
cursor: pointer;
private Icon icon;
+ private Element ie6compatnode;
+
public TreeNode() {
constructDom();
sinkEvents(Event.ONCLICK);
if (disabled) {
return;
}
- final Element target = DOM.eventGetTarget(event);
- if (DOM.compare(getElement(), target)) {
- // state change
- toggleState();
- } else if (!readonly && DOM.compare(target, nodeCaptionSpan)) {
- // caption click = selection change
- toggleSelection();
+ if (DOM.eventGetType(event) == Event.ONCLICK) {
+ final Element target = DOM.eventGetTarget(event);
+ if (DOM.compare(getElement(), target)
+ || DOM.compare(ie6compatnode, target)) {
+ // state change
+ toggleState();
+ } else if (!readonly && DOM.compare(target, nodeCaptionSpan)) {
+ // caption click = selection change
+ toggleSelection();
+ }
+ DOM.eventCancelBubble(event, true);
+ } else {
+ ApplicationConnection.getConsole().log(
+ "ITree event?? " + DOM.eventToString(event));
}
}
}
protected void constructDom() {
+ // workaround for a very weird IE6 issue #1245
+ ie6compatnode = DOM.createDiv();
+ setStyleName(ie6compatnode, CLASSNAME + "-ie6compatnode");
+ DOM.setInnerText(ie6compatnode, " ");
+ DOM.appendChild(getElement(), ie6compatnode);
+
+ DOM.sinkEvents(ie6compatnode, Event.ONCLICK);
+
nodeCaptionDiv = DOM.createDiv();
DOM.setElementProperty(nodeCaptionDiv, "className", CLASSNAME
+ "-caption");