-
12 Apr 2012 12:33 AM #1
GXT 3 RC Grouping Inline Editing Grid
GXT 3 RC Grouping Inline Editing Grid
When creating a grouping with inline editing, the display of the textfields does not take the height of the grouping header into account, thus displaying it higher then it should.
-
17 Apr 2012 11:17 AM #2
I'm not able to replicate the exact case you're showing in your screenshot. Please post your test case implementing EntryPoint and I'll see what I can do.
-
31 Aug 2012 1:40 AM #3
I'm using 3.0.1. Here is test case:
Code:package test.client; import java.util.ArrayList; import java.util.List; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.editor.client.Editor.Path; import com.google.gwt.user.client.Random; import com.google.gwt.user.client.ui.RootPanel; import com.sencha.gxt.core.client.ValueProvider; import com.sencha.gxt.data.shared.ListStore; import com.sencha.gxt.data.shared.ModelKeyProvider; import com.sencha.gxt.data.shared.PropertyAccess; import com.sencha.gxt.widget.core.client.form.TextField; import com.sencha.gxt.widget.core.client.grid.ColumnConfig; import com.sencha.gxt.widget.core.client.grid.ColumnModel; import com.sencha.gxt.widget.core.client.grid.Grid; import com.sencha.gxt.widget.core.client.grid.GroupingView; import com.sencha.gxt.widget.core.client.grid.editing.GridEditing; import com.sencha.gxt.widget.core.client.grid.editing.GridInlineEditing; /** * Entry point classes define <code>onModuleLoad()</code>. */ public class GroupingGridInlineEditingBug implements EntryPoint { private int genCounter = 0; private String generateString(int nChars) { return generate(nChars, 26, 65); } private String generate(int nChars, int range, int offset) { StringBuilder sb = new StringBuilder(); for (int i=0; i<nChars; i++) { char c = (char) (Random.nextInt(range) + offset); sb.append(c); } return sb.toString(); } private void populateStore(ListStore<FuelPrice> store) { for (int i=0; i<10; i++) store.add(new FuelPrice()); } public interface Properties extends PropertyAccess<FuelPrice> { @Path("col1") ModelKeyProvider<FuelPrice> key(); ValueProvider<FuelPrice, String> col1(); ValueProvider<FuelPrice, String> col2(); ValueProvider<FuelPrice, String> col3(); } public final Properties props = GWT.create(Properties.class); public class FuelPrice { private String col1; private String col2; private String col3; public FuelPrice() { col1 = generateString(3); col2 = generateString(3); col3 = genCounter + ""; genCounter++; genCounter = genCounter % 3; } public String getCol1() { return col1; } public String getCol2() { return col2; } public String getCol3() { return col3; } } public void onModuleLoad() { final ListStore<FuelPrice> store = new ListStore<FuelPrice>(props.key()); populateStore(store); final ColumnConfig<FuelPrice, String> col1 = new ColumnConfig<FuelPrice, String>(props.col1(), 30, "Col1"); final ColumnConfig<FuelPrice, String> col2 = new ColumnConfig<FuelPrice, String>(props.col2(), 30, "Col2"); final ColumnConfig<FuelPrice, String> col3 = new ColumnConfig<FuelPrice, String>(props.col3()); List<ColumnConfig<FuelPrice, ?>> configs = new ArrayList<ColumnConfig<FuelPrice, ?>>(); configs.add(col1); configs.add(col2); configs.add(col3); ColumnModel<FuelPrice> cm = new ColumnModel<FuelPrice>(configs); final GroupingView<FuelPrice> view = new GroupingView<FuelPrice>(); view.setShowGroupedColumn(false); view.setForceFit(true); final Grid<FuelPrice> grid = new Grid<FuelPrice>(store, cm); grid.setView(view); view.groupBy(col3); final GridEditing<FuelPrice> editing = new GridInlineEditing<FuelPrice>(grid); editing.addEditor(col1, new TextField()); editing.addEditor(col2, new TextField()); RootPanel.get().add(grid); } }
-
4 Sep 2012 9:09 PM #4
I have the same problem it can be reproduced with the groupingGridExample.java
I have the same problem it can be reproduced with the groupingGridExample.java
release 3.0.0b and 3.0.1 suffer from the same problem.
GroupingView GridInlineEditing
/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.explorer.client.grid;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.gwt.cell.client.DateCell;
import com.google.gwt.cell.client.TextCell;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.examples.resources.client.TestData;
import com.sencha.gxt.examples.resources.client.model.Stock;
import com.sencha.gxt.examples.resources.client.model.StockProperties;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.form.NumberField;
import com.sencha.gxt.widget.core.client.form.NumberPropertyEditor;
import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
import com.sencha.gxt.widget.core.client.grid.Grid;
import com.sencha.gxt.widget.core.client.grid.GroupingView;
import com.sencha.gxt.widget.core.client.grid.editing.GridInlineEditing;
@Detail(name = "Grouping Grid", icon = "grouping", category = "Grid", classes = {Stock.class, StockProperties.class})
public class GroupingGridExample implements EntryPoint, IsWidget {
@Override
public Widget asWidget() {
StockProperties properties = GWT.create(StockProperties.class);
ListStore<Stock> store = new ListStore<Stock>(properties.key());
store.addAll(TestData.getCompanies());
List<ColumnConfig<Stock, ?>> cfgs = new ArrayList<ColumnConfig<Stock, ?>>();
ColumnConfig<Stock, String> name = new ColumnConfig<Stock, String>(properties.name(), 60);
name.setHeader("Name");
name.setCell(new TextCell());
cfgs.add(name);
ColumnConfig<Stock, Double> price = new ColumnConfig<Stock, Double>(properties.open(), 20);
price.setHeader("Price");
cfgs.add(price);
ColumnConfig<Stock, Double> change = new ColumnConfig<Stock, Double>(properties.change(), 20);
change.setHeader("Change");
cfgs.add(change);
final ColumnConfig<Stock, String> industry = new ColumnConfig<Stock, String>(properties.industry(), 20);
industry.setHeader("Industry");
cfgs.add(industry);
final ColumnConfig<Stock, Date> lastUpdated = new ColumnConfig<Stock, Date>(properties.lastTrans(), 20);
lastUpdated.setHeader("Last Updated");
lastUpdated.setCell(new DateCell(DateTimeFormat.getFormat("MM/dd/yyyy")));
cfgs.add(lastUpdated);
ColumnModel<Stock> cm = new ColumnModel<Stock>(cfgs);
final GroupingView<Stock> view = new GroupingView<Stock>();
view.setShowGroupedColumn(false);
view.setForceFit(true);
Grid<Stock> grid = new Grid<Stock>(store, cm);
// edit the grid
GridInlineEditing<Stock> gridInlineEdit = new GridInlineEditing<Stock>(grid);
NumberField<Double> priceEditField = new NumberField<Double>(
new NumberPropertyEditor.DoublePropertyEditor(null));
gridInlineEdit.addEditor(price, priceEditField);
grid.setView(view);
view.groupBy(industry);
ContentPanel panel = new ContentPanel();
panel.setHeadingHtml("Grouping Example");
panel.setSize("700", "450");
panel.add(grid);
panel.addStyleName("margin-10");
panel.setCollapsible(true);
return panel;
}
@Override
public void onModuleLoad() {
RootPanel.get().add(this);
}
}
-
5 Apr 2013 5:23 AM #5
I've encounter the same problem. It's solved?
Thank you for reporting this bug. We will make it our priority to review this report.


Reply With Quote