use of net.sourceforge.nattable.layer.ILayer in project translationstudio8 by heartsome.
the class DefaultGridLayer method init.
protected void init(IUniqueIndexLayer bodyDataLayer, IUniqueIndexLayer columnHeaderDataLayer, IUniqueIndexLayer rowHeaderDataLayer, IUniqueIndexLayer cornerDataLayer) {
// Body
this.bodyDataLayer = bodyDataLayer;
DefaultBodyLayerStack bodyLayer = new DefaultBodyLayerStack(bodyDataLayer);
SelectionLayer selectionLayer = bodyLayer.getSelectionLayer();
// Column header
this.columnHeaderDataLayer = columnHeaderDataLayer;
ILayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, bodyLayer, selectionLayer);
// Row header
this.rowHeaderDataLayer = rowHeaderDataLayer;
ILayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, bodyLayer, selectionLayer);
// Corner
this.cornerDataLayer = cornerDataLayer;
ILayer cornerLayer = new CornerLayer(cornerDataLayer, rowHeaderLayer, columnHeaderLayer);
setBodyLayer(bodyLayer);
setColumnHeaderLayer(columnHeaderLayer);
setRowHeaderLayer(rowHeaderLayer);
setCornerLayer(cornerLayer);
}
use of net.sourceforge.nattable.layer.ILayer in project translationstudio8 by heartsome.
the class LayerCommandUtil method convertPositionToTargetContext.
public static PositionCoordinate convertPositionToTargetContext(PositionCoordinate positionCoordinate, ILayer targetLayer) {
ILayer layer = positionCoordinate.getLayer();
if (layer == targetLayer) {
return positionCoordinate;
}
int columnPosition = positionCoordinate.getColumnPosition();
int underlyingColumnPosition = layer.localToUnderlyingColumnPosition(columnPosition);
if (underlyingColumnPosition < 0) {
return null;
}
int rowPosition = positionCoordinate.getRowPosition();
int underlyingRowPosition = layer.localToUnderlyingRowPosition(rowPosition);
if (underlyingRowPosition < 0) {
return null;
}
ILayer underlyingLayer = layer.getUnderlyingLayerByPosition(columnPosition, rowPosition);
if (underlyingLayer == null) {
return null;
}
return convertPositionToTargetContext(new PositionCoordinate(underlyingLayer, underlyingColumnPosition, underlyingRowPosition), targetLayer);
}
use of net.sourceforge.nattable.layer.ILayer in project translationstudio8 by heartsome.
the class GroupColumnReorderCommandHandler method doCommand.
@Override
protected boolean doCommand(ColumnReorderCommand command) {
int fromColumnPosition = command.getFromColumnPosition();
int toColumnPosition = command.getToColumnPosition();
if (fromColumnPosition == -1 || toColumnPosition == -1) {
System.err.println("Invalid reorder positions, fromPosition: " + fromColumnPosition + ", toPosition: " + toColumnPosition);
}
ILayer underlyingLayer = columnGroupReorderLayer.getUnderlyingLayer();
int fromColumnIndex = underlyingLayer.getColumnIndexByPosition(fromColumnPosition);
int toColumnIndex = underlyingLayer.getColumnIndexByPosition(toColumnPosition);
MoveDirectionEnum moveDirection = ColumnGroupUtils.getMoveDirection(fromColumnPosition, toColumnPosition);
String leftEdgeGroupName = null;
String rightEdgeGroupName = null;
if (MoveDirectionEnum.RIGHT == moveDirection) {
rightEdgeGroupName = movedToLeftEdgeOfAGroup(toColumnPosition, toColumnIndex);
}
if (MoveDirectionEnum.LEFT == moveDirection) {
leftEdgeGroupName = movedToRightEdgeOfAGroup(toColumnPosition, toColumnIndex);
}
if (updateModel(fromColumnIndex, toColumnIndex, leftEdgeGroupName, rightEdgeGroupName)) {
return underlyingLayer.doCommand(command);
} else {
return false;
}
}
use of net.sourceforge.nattable.layer.ILayer in project translationstudio8 by heartsome.
the class GroupMultiColumnReorderCommandHandler method doCommand.
@Override
protected boolean doCommand(MultiColumnReorderCommand command) {
int toColumnPosition = command.getToColumnPosition();
ILayer underlyingLayer = columnGroupReorderLayer.getUnderlyingLayer();
int toColumnIndex = underlyingLayer.getColumnIndexByPosition(toColumnPosition);
List<Integer> fromColumnPositions = command.getFromColumnPositions();
ColumnGroupModel model = columnGroupReorderLayer.getModel();
if (updateModel(underlyingLayer, toColumnIndex, fromColumnPositions, model)) {
return underlyingLayer.doCommand(command);
} else {
return false;
}
}
use of net.sourceforge.nattable.layer.ILayer in project translationstudio8 by heartsome.
the class ReorderColumnsAndGroupsCommandHandler method doCommand.
/**
* Check if any column belongs to a group. If yes, add all columns in that group.
* Assumes that the 'toLocation' is not inside another group
*/
@Override
protected boolean doCommand(ReorderColumnsAndGroupsCommand command) {
final ILayer underlyingLayer = columnGroupReorderLayer.getUnderlyingLayer();
List<String> groupsProcessed = new ArrayList<String>();
List<Integer> fromColumnPositions = command.getFromColumnPositions();
List<Integer> fromColumnPositionsWithGroupColumns = new ArrayList<Integer>();
for (Integer fromColumnPosition : fromColumnPositions) {
int fromColumnIndex = underlyingLayer.getColumnIndexByPosition(fromColumnPosition.intValue());
ColumnGroupModel model = columnGroupReorderLayer.getModel();
if (model.isPartOfAGroup(fromColumnIndex)) {
String groupName = model.getColumnGroupNameForIndex(fromColumnIndex);
if (!groupsProcessed.contains(groupName)) {
groupsProcessed.add(groupName);
fromColumnPositionsWithGroupColumns.addAll(columnGroupReorderLayer.getColumnGroupPositions(fromColumnIndex));
}
} else {
fromColumnPositionsWithGroupColumns.add(fromColumnPosition);
}
}
return underlyingLayer.doCommand(new MultiColumnReorderCommand(columnGroupReorderLayer, fromColumnPositionsWithGroupColumns, command.getToColumnPosition()));
}
Aggregations