-
Notifications
You must be signed in to change notification settings - Fork 1
/
ILayerDim.java
128 lines (96 loc) · 3.26 KB
/
ILayerDim.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*******************************************************************************
* Copyright (c) 2013 Stephan Wahlbrink and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Stephan Wahlbrink - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.layer;
import java.util.Collection;
import org.eclipse.nebula.widgets.nattable.coordinate.Orientation;
import org.eclipse.nebula.widgets.nattable.coordinate.Range;
/**
* This interface for layer allows to write code which is independent of the orientation
* (horizontal = columns / vertical = rows).
*
* @see HorizontalLayerDim
* @see VerticalLayerDim
*/
public interface ILayerDim {
ILayer getLayer();
Orientation getOrientation();
// Index
/**
* {@link ILayer#getColumnIndexByPosition(int)} /
* {@link ILayer#getRowIndexByPosition(int)}
*/
int getPositionIndex(int refPosition, int position);
// Position = Columns / Rows
/**
* {@link ILayer#getColumnCount()} /
* {@link ILayer#getRowCount()}
*/
int getPositionCount();
/**
* {@link ILayer#getPreferredColumnCount()} /
* {@link ILayer#getPreferredRowCount()}
*/
int getPreferredPositionCount();
/**
* {@link ILayer#localToUnderlyingColumnPosition(int)} /
* {@link ILayer#localToUnderlyingRowPosition(int)}
*/
int localToUnderlyingPosition(int refPosition, int position);
/**
* {@link ILayer#underlyingToLocalColumnPosition(ILayer, int)} /
* {@link ILayer#underlyingToLocalRowPosition(ILayer, int)}
*/
int underlyingToLocalPosition(int refPosition, int underlyingPosition);
int underlyingToLocalPosition(ILayer sourceUnderlyingLayer, int underlyingPosition);
/**
* {@link ILayer#underlyingToLocalColumnPositions(ILayer, Collection)} /
* {@link ILayer#underlyingToLocalRowPositions(ILayer, Collection)}
*/
Collection<Range> underlyingToLocalPositions(ILayer sourceUnderlyingLayer,
Collection<Range> underlyingPositionRanges);
/**
* {@link ILayer#getUnderlyingLayersByColumnPosition(int)} /
* {@link ILayer#getUnderlyingLayersByRowPosition(int)}
*/
Collection<ILayer> getUnderlyingLayersByPosition(int position);
// Pixel = X / Y, Width / Height
/**
* {@link ILayer#getWidth()} /
* {@link ILayer#getHeight()}
*/
int getSize();
/**
* {@link ILayer#getPreferredWidth()} /
* {@link ILayer#getPreferredHeight()}
*/
int getPreferredSize();
/**
* {@link ILayer#getColumnPositionByX(int)} /
* {@link ILayer#getRowPositionByY(int)}
*/
int getPositionByPixel(int pixel);
/**
* {@link ILayer#getStartXOfColumnPosition(int)} /
* {@link ILayer#getStartYOfRowPosition(int)}
*/
int getPositionStart(int refPosition, int position);
/**
* {@link ILayer#getColumnWidthByPosition(int)} /
* {@link ILayer#getRowHeightByPosition(int)}
*/
int getPositionSize(int refPosition, int position);
// Resize
/**
* {@link ILayer#isColumnPositionResizable(int)} /
* {@link ILayer#isRowPositionResizable(int)}
*/
boolean isPositionResizable(int position);
}