PDA

View Full Version : [CLOSED] [2.0][GWT 1.6.4 & 1.7.0] TreePanel - Expand / Collapse All Issue on IE



mtarantini
17 Jul 2009, 5:22 AM
Hi, I've find an issue with the Expand / Collapse All of the TreePanel.
At first click on the expand all button, only the first node is expand, at second click, the second node is expand ect..ect..

Below the init of the TreeModel



private QueryTreeModel initTreeModel()
{

QueryTreeModel root = new QueryTreeModel("root");
List<Integer> queryIdList = viewPanel.configurationMgntApp.queryIdList;

QueryTreeModel[] qtm = new QueryTreeModel[queryIdList.size()];
for (int i = 0; i < queryIdList.size(); i++)
{
qtm[i] = new QueryTreeModel(viewPanel.configurationMgntApp.queryManager.getQueryFromQueryId(queryIdList.get(i)));
List<View> viewList = viewPanel.configurationMgntApp.viewManager.getViewFromQueryId(queryIdList.get(i));

for (View v : viewList)
{
if (viewPanel.configurationMgntApp.viewIdList.contains(v.getViewId()))
{
qtm[i].add(new ViewTreeModel(v));
}
}
root.add(qtm[i]);
}

return root;
}

Below the init of the TreePanel


private void initTreeGrid()
{
QueryTreeModel root = initTreeModel();

TreeStore<ModelData> store = new TreeStore<ModelData>();
store.add(root.getChildren(), true);

treeGrid = new TreePanel<ModelData>(store);
treeGrid.setCheckable(true);
treeGrid.setCheckStyle(CheckCascade.CHILDREN);
treeGrid.setBorders(true);
treeGrid.setDisplayProperty("name");
treeGrid.setIconProvider(new ModelIconProvider<ModelData>()
{

/**
* @see com.extjs.gxt.ui.client.data.ModelIconProvider#getIcon(com.extjs.gxt.ui.client.data.ModelData)
*/
@Override
public AbstractImagePrototype getIcon(ModelData model)
{
if (model instanceof ViewTreeModel)
{

ViewConfiguration conf = model.get("viewConfiguration");
if (conf instanceof GridConfiguration)
{
if (!((GridConfiguration) conf).isDetailed())
{
return Images.newGridView();
}
else
{
return Images.newGridDetailsView();
}
}
else if (conf instanceof TreeConfiguration)
{
if (!((TreeConfiguration) conf).isDetailed())
{
return Images.newTreeView();
}
else
{
return Images.newTreeDetailView();
}
}
else if (conf instanceof ChartConfiguration)
{
return Images.newChart();
}
}
return null;
}
});

treeGrid.getStyle().setNodeOpenIcon(Images.datasource());
treeGrid.getStyle().setNodeCloseIcon(Images.datasource());
treeGrid.setStyleAttribute("backgroundColor", "white");
add(treeGrid);
}
Below the two button event


button = new Button();
button.setIcon(Images.collapseAll());
button.setToolTip(commonMessage.btn_CollapseAll());
button.addSelectionListener(new SelectionListener<ButtonEvent>()
{

public void componentSelected(ButtonEvent ce)
{
treeGrid.collapseAll();
};
});
toolBar.add(button);

button = new Button();
button.setIcon(Images.expandAll());
button.setToolTip(commonMessage.btn_ExpandAll());
button.addSelectionListener(new SelectionListener<ButtonEvent>()
{

public void componentSelected(ButtonEvent ce)
{
treeGrid.expandAll();
};
});
toolBar.add(button);
When clicking on the button, I get an exception within the wrapper


Uncaught exception escaped
com.google.gwt.core.client.JavaScriptException: (Error): Erreur d'exécution inconnue
number: -2146827688
description: Erreur d'exécution inconnue
at com.google.gwt.dom.client.Element$.setInnerHTML$(Native Method)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanelView.onTextChange(TreePanelView.java:273)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanel.refresh(TreePanel.java:1301)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanelView.expand(TreePanelView.java:55)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanel.onExpand(TreePanel.java:1178)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanel.setExpanded(TreePanel.java:731)
at com.extjs.gxt.ui.client.widget.treepanel.TreePanel.expandAll(TreePanel.java:348)
at com.comarch.web.app.configurationmgnt.client.app.ManageView$7.componentSelected(ManageView.java:160)
at com.comarch.web.app.configurationmgnt.client.app.ManageView$7.componentSelected(ManageView.java:1)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:20)
at com.extjs.gxt.ui.client.event.SelectionListener.handleEvent(SelectionListener.java:1)
at com.extjs.gxt.ui.client.event.BaseObservable.callListener(BaseObservable.java:176)
at com.extjs.gxt.ui.client.event.BaseObservable.fireEvent(BaseObservable.java:96)
at com.extjs.gxt.ui.client.widget.Component.fireEvent(Component.java:444)
at com.extjs.gxt.ui.client.widget.button.Button.onClick(Button.java:529)
at com.extjs.gxt.ui.client.widget.button.Button.onComponentEvent(Button.java:277)
at com.extjs.gxt.ui.client.widget.Component.onBrowserEvent(Component.java:760)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1320)
at com.google.gwt.user.client.DOM.dispatchEventAndCatch(DOM.java:1299)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1262)
This issue occurs only with IE, I've test with FF3.5, Chrome 2, no problem at all.

Plateform : Win XP SP2, GWT 1.6.4 & 1.7.0, GXT 2.0

sven
17 Jul 2009, 5:24 AM
Can you please post a complet runable testcase as described in the bugforum guidelines? Expandall is working fine in the explorer demo.

Also you should try your code against the latest SVN version. A couple of issues got fixed.

mtarantini
17 Jul 2009, 5:58 AM
I've find the problem, it's our implementation of the AbstractImagePrototype who is a little bugged.

Apologies for any inconveniences

sven
17 Jul 2009, 5:59 AM
Ok, thank you for this information. I am closing this issue than.