This issue is solved successfully.  I put this solution if any would face 
such issue.
The issue with *Event.ONMOUSEDOWN* in super.onBrowserEvent(event); and do 
some weird behaviour.

So I implemented onBrowserEvent in tree panel. When the Event.ONMOUSEDOWN 
 is fired, then avoid call of super.onBrowserEvent(event); but Tree node 
have images like open (+) and  close(-). That event only allow to fire.

so make condition don't fire any event  except open (+) and  close(-) image 
of tree node. and scrolling problem solved.

@Override
public void onBrowserEvent(Event event) {
int eventType = DOM.eventGetType(event);

switch (eventType) {
 case Event.ONCLICK:
case Event.ONKEYDOWN:
case Event.ONKEYPRESS:
case Event.ONKEYUP:
return;
 case Event.ONMOUSEDOWN:
        Element e = DOM.eventGetTarget(event);
        if (e.getTagName().equals("IMG")) {
        if( e.getAttribute("title")!=null)
        {
        if(e.getAttribute("title").equals("Add Item") || 
e.getAttribute("title").equals("Import Child Items") || 
e.getAttribute("title").equals("Attach files") ||
         e.getAttribute("title").equals("Delete Item"))
        {
          return;
        }
        }
        }
        else
        {
         return;
        }
default:
break;
}
super.onBrowserEvent(event);
  
}

On Tuesday, 3 September 2013 18:47:20 UTC+5:30, Bhumika Thaker wrote:
>
> Hi, 
>
>
> I am facing issue with scrolling while  selecting  tree item in tree. 
>
>
> While tree is bigger then it's root panel, scroll is coming.  If I click 
> on any item, it will just adjust scroll first then second time I have to do 
> same thing. It will do selection as expected. But The problem with  I don't 
> want twice click / selection. It should do in first attempt only.
>
>
> As I goggled then find similar this problem like 
> http://code.google.com/p/google-web-toolkit/issues/detail?id=1467
>
>
> See below code, This is not my actual code implementation, It is sample 
> example to find actual root cause.
>
>
> public class TestGWTScroll implements EntryPoint {
>
>
> @Override
>
> public void onModuleLoad() {
>
> ScrollPanel scrollPanel=new ScrollPanel();
>
> scrollPanel.setHeight("200px");
>
> scrollPanel.setWidth("100px");
>
> CustomTree  tree=new CustomTree();
>
> tree.setTitle("tEST");
>
> TreeItem item=tree.addItem(new HTML("Node1"));
>
> item.addItem(new HTML("Child1 
> Item------------------------------------------->"));
>
> item.addItem(new HTML("Child2"));
>
> tree.addItem(new HTML("Node2"));
>
> tree.addItem(new HTML("Node3"));
>
>  scrollPanel.add(tree);
>
> RootPanel.get().add(scrollPanel);
>
> }
>
> class CustomTree extends Tree
>
> {
>
> @Override
>
> public void onBrowserEvent(Event event) {
>
> int eventType = DOM.eventGetType(event);
>
> switch (eventType) {
>
>  case Event.ONCLICK:
>
> case Event.ONKEYDOWN:
>
> case Event.ONKEYPRESS:
>
> case Event.ONKEYUP:
>
> //case Event.ONMOUSEDOWN
>
> return;
>
> case Event.ONMOUSEDOWN:
>
>   if ((DOM.eventGetCurrentTarget(event) == getElement())
>
>                && (event.getButton() == Event.BUTTON_LEFT)) {
>
>   //How to open selected tree item
>
>   }
>
> default:
>
> break;
>
> }
>
> super.onBrowserEvent(event);
>
> }
>
> }
>
> }
>
>
>
> As I found, The problem is with Dom event Event.ONMOUSEDOWN. 
>
>
> 1) You find in code then I commented Case Event.ONMOUSEDOWN. if I return 
> this event,  it works perfect. Doesn’t do scrolling first while mouse left 
> key pressed. But tree open (+) operation stopped. Because Then open node 
> event is handle inside this event.
>
> 2) So I decide to these events manually but how I don't know. As I found 
> its all implementation methods are private.
>
> Just example elementClicked is private not accessible. So this option is 
> also not work for me.
>
>
>    case Event.ONMOUSEDOWN: {
>
>         // Currently, the way we're using image bundles causes extraneous 
> events
>
>         // to be sunk on individual items' open/close images. This leads 
> to an
>
>         // extra event reaching the Tree, which we will ignore here.
>
>         // Also, ignore middle and right clicks here.
>
>         if ((DOM.eventGetCurrentTarget(event) == getElement())
>
>             && (event.getButton() == Event.BUTTON_LEFT)) {
>
>           elementClicked(DOM.eventGetTarget(event));
>
>         }
>
>         break;
>
>       }
>
>
> How can I resolve this issue? From that tree open activity and scrolling 
> issue work perfect for me.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to