use of org.eclipse.nebula.widgets.nattable.coordinate.Range in project nebula.widgets.nattable by eclipse.
the class HierarchicalTreeLayer method underlyingToLocalColumnPositions.
@Override
public Collection<Range> underlyingToLocalColumnPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingColumnPositionRanges) {
if (isShowTreeLevelHeader()) {
Collection<Range> localColumnPositionRanges = new ArrayList<Range>();
for (Range underlyingColumnPositionRange : underlyingColumnPositionRanges) {
int start = underlyingToLocalColumnPosition(sourceUnderlyingLayer, underlyingColumnPositionRange.start);
// test end with 1 offset to avoid -1 result from asking out of
// range
int end = underlyingToLocalColumnPosition(sourceUnderlyingLayer, underlyingColumnPositionRange.end - 1);
end++;
// reduce the end
for (int pos : this.levelHeaderPositions) {
if (pos == (end - 1)) {
end--;
}
}
localColumnPositionRanges.add(new Range(start, end));
}
return localColumnPositionRanges;
}
return super.underlyingToLocalColumnPositions(sourceUnderlyingLayer, underlyingColumnPositionRanges);
}
use of org.eclipse.nebula.widgets.nattable.coordinate.Range in project nebula.widgets.nattable by eclipse.
the class AbstractRowHideShowLayer method underlyingToLocalRowPositions.
@Override
public Collection<Range> underlyingToLocalRowPositions(ILayer sourceUnderlyingLayer, Collection<Range> underlyingRowPositionRanges) {
Collection<Range> localRowPositionRanges = new ArrayList<Range>(underlyingRowPositionRanges.size());
for (Range underlyingRowPositionRange : underlyingRowPositionRanges) {
int startRowPosition = getAdjustedUnderlyingToLocalStartPosition(sourceUnderlyingLayer, underlyingRowPositionRange.start, underlyingRowPositionRange.end);
int endRowPosition = getAdjustedUnderlyingToLocalEndPosition(sourceUnderlyingLayer, underlyingRowPositionRange.end, underlyingRowPositionRange.start);
// returned.
if (startRowPosition > -1) {
localRowPositionRanges.add(new Range(startRowPosition, endRowPosition));
}
}
return localRowPositionRanges;
}
use of org.eclipse.nebula.widgets.nattable.coordinate.Range in project nebula.widgets.nattable by eclipse.
the class ResizeColumnHideShowLayer method showAllColumns.
@Override
public void showAllColumns() {
// On show we expect that all visible columns share the free
// space. To avoid that only the adjacent column is decreased, we
// disable fixColumnPercentageValuesOnResize in any case and restore it
// afterwards
boolean fix = this.bodyDataLayer.isFixColumnPercentageValuesOnResize();
this.bodyDataLayer.setFixColumnPercentageValuesOnResize(false);
for (Map.Entry<Integer, ColumnSizeInfo> entry : this.hiddenColumns.entrySet()) {
Integer index = entry.getKey();
ColumnSizeInfo info = entry.getValue();
// first make the column resizable
this.bodyDataLayer.setColumnPositionResizable(index, true);
// set the previous configured min width
if (info.configuredMinWidth < 0) {
this.bodyDataLayer.resetMinColumnWidth(index, false);
} else {
this.bodyDataLayer.setMinColumnWidth(index, info.configuredMinWidth);
}
// set the previous configured width
if (info.configuredPercentage && info.configuredPercentageValue >= 0) {
this.bodyDataLayer.setColumnWidthPercentageByPosition(index, info.configuredPercentageValue);
} else if (!info.configuredPercentage && info.configuredSize >= 0) {
this.bodyDataLayer.setColumnWidthByPosition(index, info.configuredSize, false);
} else {
this.bodyDataLayer.resetColumnWidth(index, false);
}
// set the configured resizable value
this.bodyDataLayer.setColumnPositionResizable(index, info.configuredResizable);
}
List<Range> ranges = PositionUtil.getRanges(this.hiddenColumns.keySet());
this.hiddenColumns.clear();
// reset the fixColumnPercentageValuesOnResize flag
this.bodyDataLayer.setFixColumnPercentageValuesOnResize(fix);
// fire events
for (Range range : ranges) {
this.bodyDataLayer.fireLayerEvent(new ColumnResizeEvent(this.bodyDataLayer, range));
}
}
use of org.eclipse.nebula.widgets.nattable.coordinate.Range in project nebula.widgets.nattable by eclipse.
the class HideRowPositionsEvent method getRowDiffs.
@Override
public Collection<StructuralDiff> getRowDiffs() {
Collection<StructuralDiff> rowDiffs = new ArrayList<StructuralDiff>(getRowPositionRanges().size());
for (Range range : getRowPositionRanges()) {
StructuralDiff diff = new StructuralDiff(DiffTypeEnum.DELETE, range, new Range(range.start, range.start));
rowDiffs.add(diff);
}
return rowDiffs;
}
use of org.eclipse.nebula.widgets.nattable.coordinate.Range in project nebula.widgets.nattable by eclipse.
the class ShowColumnPositionsEvent method getColumnDiffs.
@Override
public Collection<StructuralDiff> getColumnDiffs() {
Collection<StructuralDiff> columnDiffs = new ArrayList<StructuralDiff>(getColumnPositionRanges().size());
int offset = 0;
for (Range range : getColumnPositionRanges()) {
columnDiffs.add(new StructuralDiff(DiffTypeEnum.ADD, new Range(range.start - offset, range.start - offset), range));
offset += range.size();
}
return columnDiffs;
}
Aggregations