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.