Home » Eclipse Projects » NatTable » column with by percent and group column header
| |
Re: column with by percent and group column header [message #1735294 is a reply to message #1735243] |
Fri, 17 June 2016 07:13 |
Martin Jacob Messages: 191 Registered: July 2009 |
Senior Member |
|
|
Good Morning,
thanks Dirk. The column width is set at the BodyDataLayer only.
Please the implementation of the BodyLayerStack below:
class BodyLayerStack extends AbstractLayerTransform {
private SelectionLayer mSelectionLayer;
private DataLayer mBodyDataLayer;
public BodyLayerStack(BodyDataProvider dataProvider) {
mBodyDataLayer = new DataLayer(dataProvider);
mBodyDataLayer.setColumnPercentageSizing(true);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.X_AXIS.getValue(), 5);
//
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.ITEMS_INFRA.getValue(),
9);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.SHOW_H_LINES.getValue(),
5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y11_AXIS.getValue(), 5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y11_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y11_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y11_COMPARATOR_FUNCTION_TYPE.getValue(),
5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y12_AXIS.getValue(), 5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y12_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y12_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y21_AXIS.getValue(), 5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y21_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y21_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y22_AXIS.getValue(), 5);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y22_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthByPosition(ColumnIndex.Y22_AVG_FUNCTION_TYPE.getValue(),
7);
mSelectionLayer = new SelectionLayer(mBodyDataLayer);
ViewportLayer viewportLayer = new ViewportLayer(mSelectionLayer);
setUnderlyingLayer(viewportLayer);
}
public SelectionLayer getSelectionLayer() {
return mSelectionLayer;
}
public DataLayer getBodyDataLayer() {
return mBodyDataLayer;
}
}
as well as the ColumnHeaderLayerStack
class ColumnHeaderLayerStack extends AbstractLayerTransform {
private ColumnHeaderLayer mColHeaderLayer;
private ColumnGroupHeaderLayer mColumnGroupHeaderLayer;
public ColumnHeaderLayerStack(IDataProvider dataProvider,
BodyLayerStack pBodyLayer) {
DataLayer dataLayer = new DataLayer(dataProvider);
mColHeaderLayer = new ColumnHeaderLayer(dataLayer, pBodyLayer,
pBodyLayer.getSelectionLayer());
ColumnGroupModel lColumnGroupModel = new ColumnGroupModel();
mColumnGroupHeaderLayer = new ColumnGroupHeaderLayer(mColHeaderLayer,
pBodyLayer.getSelectionLayer(), lColumnGroupModel);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("X Axis"),
ColumnIndex.X_AXIS.mValue, ColumnIndex.ITEMS_INFRA.mValue,
ColumnIndex.SHOW_H_LINES.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(1);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Primary
1"), ColumnIndex.Y11_AXIS.mValue, ColumnIndex.Y11_ITEMS_VALUES.mValue,
ColumnIndex.Y11_AVG_FUNCTION_TYPE.mValue,
ColumnIndex.Y11_COMPARATOR_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(2);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Primary
2"), ColumnIndex.Y12_AXIS.mValue, ColumnIndex.Y12_ITEMS_VALUES.mValue,
ColumnIndex.Y12_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(3);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Secondary
1"), ColumnIndex.Y21_AXIS.mValue,
ColumnIndex.Y21_ITEMS_VALUES.mValue,
ColumnIndex.Y21_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(4);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Secondary
2"), ColumnIndex.Y22_AXIS.mValue,
ColumnIndex.Y22_ITEMS_VALUES.mValue,
ColumnIndex.Y22_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(5);
setUnderlyingLayer(mColHeaderLayer);
}
public ColumnGroupHeaderLayer getColumnGroupHeaderLayer() {
return mColumnGroupHeaderLayer;
}
}
Do you see any thing suspicious?
Thanks, Martin
|
|
| |
Re: column with by percent and group column header [message #1735307 is a reply to message #1735297] |
Fri, 17 June 2016 09:18 |
Martin Jacob Messages: 191 Registered: July 2009 |
Senior Member |
|
|
Sorry, I forgot to replace when I was adding the ColumnGroupHeaderLayer.
I use now setUnderlyingLayer(mColumnGroupHeaderLayer); but the issues
still exist :(
Modified code ColumnHeaderLayerStack:
public ColumnHeaderLayerStack(IDataProvider dataProvider,
BodyLayerStack pBodyLayer) {
DataLayer dataLayer = new DataLayer(dataProvider);
mColHeaderLayer = new ColumnHeaderLayer(dataLayer, pBodyLayer,
pBodyLayer.getSelectionLayer());
ColumnGroupModel lColumnGroupModel = new ColumnGroupModel();
mColumnGroupHeaderLayer = new ColumnGroupHeaderLayer(mColHeaderLayer,
pBodyLayer.getSelectionLayer(), lColumnGroupModel);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("X Axis"),
ColumnIndex.X_AXIS.mValue, ColumnIndex.ITEMS_INFRA.mValue,
ColumnIndex.SHOW_H_LINES.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(1);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Primary
1"), ColumnIndex.Y11_AXIS.mValue, ColumnIndex.Y11_ITEMS_VALUES.mValue,
ColumnIndex.Y11_AVG_FUNCTION_TYPE.mValue,
ColumnIndex.Y11_COMPARATOR_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(2);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Primary
2"), ColumnIndex.Y12_AXIS.mValue, ColumnIndex.Y12_ITEMS_VALUES.mValue,
ColumnIndex.Y12_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(3);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Secondary
1"), ColumnIndex.Y21_AXIS.mValue,
ColumnIndex.Y21_ITEMS_VALUES.mValue,
ColumnIndex.Y21_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(4);
mColumnGroupHeaderLayer.addColumnsIndexesToGroup(_("Y Axis Secondary
2"), ColumnIndex.Y22_AXIS.mValue,
ColumnIndex.Y22_ITEMS_VALUES.mValue,
ColumnIndex.Y22_AVG_FUNCTION_TYPE.mValue);
mColumnGroupHeaderLayer.setGroupUnbreakable(5);
setUnderlyingLayer(mColumnGroupHeaderLayer);
}
|
|
| | | |
Re: column with by percent and group column header [message #1735339 is a reply to message #1735337] |
Fri, 17 June 2016 12:42 |
Martin Jacob Messages: 191 Registered: July 2009 |
Senior Member |
|
|
Thanks
here the solution code:
public BodyLayerStack(BodyDataProvider dataProvider) {
mBodyDataLayer = new DataLayer(dataProvider);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.X_AXIS.getValue(),
5);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.SHOW_H_LINES.getValue(),
5);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y11_AXIS.getValue(),
4);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y11_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y11_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y11_COMPARATOR_FUNCTION_TYPE.getValue(),
3);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y12_AXIS.getValue(),
4);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y12_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y12_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y21_AXIS.getValue(),
4);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y21_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y21_AVG_FUNCTION_TYPE.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y22_AXIS.getValue(),
4);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y22_ITEMS_VALUES.getValue(),
7);
mBodyDataLayer.setColumnWidthPercentageByPosition(ColumnIndex.Y22_AVG_FUNCTION_TYPE.getValue(),
7);
mSelectionLayer = new SelectionLayer(mBodyDataLayer);
ViewportLayer viewportLayer = new ViewportLayer(mSelectionLayer);
setUnderlyingLayer(viewportLayer);
}
|
|
|
Goto Forum:
Current Time: Wed Sep 25 08:32:20 GMT 2024
Powered by FUDForum. Page generated in 0.03354 seconds
|