Changeset 5271

Show
Ignore:
Timestamp:
08/26/08 13:09:50 (3 months ago)
Author:
matti.tahvonen@…
Message:

fixes #1245 (ITree in IOrderedLayout in IE6)

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/WebContent/ITMILL/themes/default/styles.css

    r5269 r5271  
    21712171} 
    21722172 
     2173/* ie6compatnode is hidden from non ie6 browsers, for ie6  
     2174 * uses weird hack to sink all events properly  
     2175 */ 
     2176.i-tree-node-ie6compatnode { 
     2177        display: none; 
     2178} 
     2179 
     2180* html .i-tree-node-ie6compatnode { 
     2181        display: inline; 
     2182        float:left; 
     2183        background: orange; 
     2184        margin:0; 
     2185        width:14px; 
     2186        height:10px; 
     2187        padding:1px; 
     2188        filter: Alpha(opacity=0); 
     2189} 
     2190* html .i-tree-node { 
     2191        clear: both; 
     2192} 
     2193 
    21732194.i-tree-node { 
    21742195        background: transparent url(tree/img/collapsed.png) no-repeat 2px 1px; 
     
    21832204        margin-left: 16px; 
    21842205} 
     2206 
    21852207.i-tree-node span { 
    21862208        padding: 0 2px; 
  • trunk/WebContent/ITMILL/themes/default/tree/tree.css

    r3251 r5271  
    11.i-tree { 
    22        text-align: left /* Force default alignment */ 
     3} 
     4 
     5/* ie6compatnode is hidden from non ie6 browsers, for ie6  
     6 * uses weird hack to sink all events properly  
     7 */ 
     8.i-tree-node-ie6compatnode { 
     9        display: none; 
     10} 
     11 
     12* html .i-tree-node-ie6compatnode { 
     13        display: inline; 
     14        float:left; 
     15        background: orange; 
     16        margin:0; 
     17        width:14px; 
     18        height:10px; 
     19        padding:1px; 
     20        filter: Alpha(opacity=0); 
     21} 
     22* html .i-tree-node { 
     23        clear: both; 
    324} 
    425 
     
    1536        margin-left: 16px; 
    1637} 
     38 
    1739.i-tree-node span { 
    1840        padding: 0 2px; 
  • trunk/src/com/itmill/toolkit/terminal/gwt/client/ui/ITree.java

    r4899 r5271  
    186186        private Icon icon; 
    187187 
     188        private Element ie6compatnode; 
     189 
    188190        public TreeNode() { 
    189191            constructDom(); 
     
    196198                return; 
    197199            } 
    198             final Element target = DOM.eventGetTarget(event); 
    199             if (DOM.compare(getElement(), target)) { 
    200                 // state change 
    201                 toggleState(); 
    202             } else if (!readonly && DOM.compare(target, nodeCaptionSpan)) { 
    203                 // caption click = selection change 
    204                 toggleSelection(); 
     200            if (DOM.eventGetType(event) == Event.ONCLICK) { 
     201                final Element target = DOM.eventGetTarget(event); 
     202                if (DOM.compare(getElement(), target) 
     203                        || DOM.compare(ie6compatnode, target)) { 
     204                    // state change 
     205                    toggleState(); 
     206                } else if (!readonly && DOM.compare(target, nodeCaptionSpan)) { 
     207                    // caption click = selection change 
     208                    toggleSelection(); 
     209                } 
     210                DOM.eventCancelBubble(event, true); 
     211            } else { 
     212                ApplicationConnection.getConsole().log( 
     213                        "ITree event?? " + DOM.eventToString(event)); 
    205214            } 
    206215 
     
    218227 
    219228        protected void constructDom() { 
     229            // workaround for a very weird IE6 issue #1245 
     230            ie6compatnode = DOM.createDiv(); 
     231            setStyleName(ie6compatnode, CLASSNAME + "-ie6compatnode"); 
     232            DOM.setInnerText(ie6compatnode, " "); 
     233            DOM.appendChild(getElement(), ie6compatnode); 
     234 
     235            DOM.sinkEvents(ie6compatnode, Event.ONCLICK); 
     236 
    220237            nodeCaptionDiv = DOM.createDiv(); 
    221238            DOM.setElementProperty(nodeCaptionDiv, "className", CLASSNAME