keithshep
3 Jun 2009, 12:58 PM
- Detailed description of the problem:
Something changed in the grid column alignment code between M2 and M1. Now if I have grid column header names that are longer than the set column width the alignment gets messed up (header names will not line up with table columns).
- GXT version: 2.0 M2
- Host mode/web mode/both: occurs in both hosted and web mode
- Browser and version: Hosted Browser and FF 3.0.10
- Operating System: Mac OS 10.5.7
- Sample code
package test.client;
import java.util.ArrayList;
import java.util.List;
import com.extjs.gxt.ui.client.data.BaseListLoadResult;
import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.MemoryProxy;
import com.extjs.gxt.ui.client.data.Model;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
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.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Test showing column alignment bug in GXT 2.0 M2 (works fine in M1)
*/
public class Test implements EntryPoint
{
private static final int DEFAULT_COL_WIDTH = 100;
////////////////////////////////////////////////////////////////////////////
// Long column names seem to be the cause of the alignment bug
////////////////////////////////////////////////////////////////////////////
private static final String COLUMN_NAME_PREFIX = "Look! I'm column #: ";
// private static final String COLUMN_NAME_PREFIX = "Col:";
/**
* {@inheritDoc}
*/
public void onModuleLoad()
{
RootPanel.get().add(new MyContainer());
}
private class MyContainer extends LayoutContainer
{
/**
* {@inheritDoc}
*/
@Override
protected void onRender(Element parent, int index)
{
super.onRender(parent, index);
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
columns.add(new ColumnConfig(
"col1",
COLUMN_NAME_PREFIX + 1,
DEFAULT_COL_WIDTH));
columns.add(new ColumnConfig(
"col2",
COLUMN_NAME_PREFIX + 2,
DEFAULT_COL_WIDTH));
columns.add(new ColumnConfig(
"col3",
COLUMN_NAME_PREFIX + 1,
DEFAULT_COL_WIDTH));
List<BaseModel> rows = new ArrayList<BaseModel>();
for(int i = 0; i < 3; i++)
{
final BaseModel baseModel = new BaseModel();
baseModel.set("col1", "value: " + i + ".0");
baseModel.set("col2", "value: " + i + ".1");
baseModel.set("col3", "value: " + i + ".2");
rows.add(baseModel);
}
BaseListLoadResult<BaseModel> loadResult =
new BaseListLoadResult<BaseModel>(rows);
final BaseListLoader<ListLoadResult<Model>> loader =
new BaseListLoader<ListLoadResult<Model>>(
new MemoryProxy<BaseListLoadResult<BaseModel>>(loadResult));
final Grid<Model> grid = new Grid<Model>(
new ListStore<Model>(loader),
new ColumnModel(columns));
grid.setLoadMask(true);
grid.setBorders(true);
grid.setHeight(300);
grid.setWidth(600);
loader.load();
this.add(grid);
}
}
}
Something changed in the grid column alignment code between M2 and M1. Now if I have grid column header names that are longer than the set column width the alignment gets messed up (header names will not line up with table columns).
- GXT version: 2.0 M2
- Host mode/web mode/both: occurs in both hosted and web mode
- Browser and version: Hosted Browser and FF 3.0.10
- Operating System: Mac OS 10.5.7
- Sample code
package test.client;
import java.util.ArrayList;
import java.util.List;
import com.extjs.gxt.ui.client.data.BaseListLoadResult;
import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.MemoryProxy;
import com.extjs.gxt.ui.client.data.Model;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
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.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Test showing column alignment bug in GXT 2.0 M2 (works fine in M1)
*/
public class Test implements EntryPoint
{
private static final int DEFAULT_COL_WIDTH = 100;
////////////////////////////////////////////////////////////////////////////
// Long column names seem to be the cause of the alignment bug
////////////////////////////////////////////////////////////////////////////
private static final String COLUMN_NAME_PREFIX = "Look! I'm column #: ";
// private static final String COLUMN_NAME_PREFIX = "Col:";
/**
* {@inheritDoc}
*/
public void onModuleLoad()
{
RootPanel.get().add(new MyContainer());
}
private class MyContainer extends LayoutContainer
{
/**
* {@inheritDoc}
*/
@Override
protected void onRender(Element parent, int index)
{
super.onRender(parent, index);
List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
columns.add(new ColumnConfig(
"col1",
COLUMN_NAME_PREFIX + 1,
DEFAULT_COL_WIDTH));
columns.add(new ColumnConfig(
"col2",
COLUMN_NAME_PREFIX + 2,
DEFAULT_COL_WIDTH));
columns.add(new ColumnConfig(
"col3",
COLUMN_NAME_PREFIX + 1,
DEFAULT_COL_WIDTH));
List<BaseModel> rows = new ArrayList<BaseModel>();
for(int i = 0; i < 3; i++)
{
final BaseModel baseModel = new BaseModel();
baseModel.set("col1", "value: " + i + ".0");
baseModel.set("col2", "value: " + i + ".1");
baseModel.set("col3", "value: " + i + ".2");
rows.add(baseModel);
}
BaseListLoadResult<BaseModel> loadResult =
new BaseListLoadResult<BaseModel>(rows);
final BaseListLoader<ListLoadResult<Model>> loader =
new BaseListLoader<ListLoadResult<Model>>(
new MemoryProxy<BaseListLoadResult<BaseModel>>(loadResult));
final Grid<Model> grid = new Grid<Model>(
new ListStore<Model>(loader),
new ColumnModel(columns));
grid.setLoadMask(true);
grid.setBorders(true);
grid.setHeight(300);
grid.setWidth(600);
loader.load();
this.add(grid);
}
}
}