Exemple :
gxt 2.1.1 works fine
gxt 2.1.2 not works
(IE like FF)
Code:
import java.util.Arrays;
import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.event.ComponentEvent;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.extjs.gxt.ui.client.widget.menu.Menu;
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class PbContextMenu implements EntryPoint {
public class MyData extends BaseModelData {
public MyData() {
}
public MyData(String nature) {
set("nature", nature);
}
public String getNature() {
return (String) get("nature");
}
public void setNature(String nature) {
set("nature", nature);
}
}
private Menu contextMenuClient;
private Menu contextMenuProspect;
private Menu contextMenuReseau;
private Menu contextMenuRo;
/**
* This is the entry point method.
*/
public void onModuleLoad() {
contextMenuClient = createMenuContextuel("C");
contextMenuProspect = createMenuContextuel("P");
contextMenuReseau = createMenuContextuel("R");
contextMenuRo = createMenuContextuel("Other");
ColumnConfig nat = new ColumnConfig("nature", "nature", 100);
ColumnModel cm = new ColumnModel(Arrays.asList(nat));
ListStore<MyData> store = new ListStore<MyData>();
store.add(new MyData("C"));
store.add(new MyData("P"));
store.add(new MyData("R"));
Grid<MyData> grid = new Grid<MyData>(store, cm){
@Override
protected void onRightClick(ComponentEvent ce) {
MyData data = this.getSelectionModel().getSelectedItem();
if (data!=null) {
if ("C".equals(data.getNature())){
this.setContextMenu(contextMenuClient);
}else if ("P".equals(data.getNature())){
this.setContextMenu(contextMenuProspect);
}else if ("R".equals(data.getNature())){
this.setContextMenu(contextMenuReseau);
}
}else{
this.setContextMenu(contextMenuRo);
}
super.onRightClick(ce);
}
};
ContentPanel lay = new ContentPanel(new FitLayout());
lay.setSize(300, 200);
lay.add(grid);
RootPanel.get().add(lay);
}
private Menu createMenuContextuel(String s){
Menu contextMenu = new Menu();
contextMenu.setWidth(140);
MenuItem crm = new MenuItem();
crm.setText(s);
contextMenu.add(crm);
return contextMenu;
}
}