public abstract class GralTable.GraphicImplAccess extends GralWidget.ImplAccess implements GralWidgImplAccess_ifc
Modifier and Type | Field and Description |
---|---|
protected boolean |
bFocused
Set true if the focus is gained by mouse click.
|
protected boolean |
bFocusLost
Sets temporary between focus lost and redraw.
|
protected boolean |
bRedrawPending
Set to true while
#table . |
protected boolean |
bVscrollbarChanged |
protected GralTable.CellData[][] |
cells |
static int |
chgEditableColumn |
protected int |
ixColorScrollbar
New and last index of the sliderColor.
|
protected int |
ixColorScrollbarLast
New and last index of the sliderColor.
|
protected int |
ixColumnFocus |
protected int |
ixLineFocus |
protected int |
linePixel
Pixel per line.
|
private GralTable.LinePresentation |
linePresentation
|
protected long |
mousect |
private boolean |
mouseDoubleClick |
protected long |
mousetime |
protected int |
nrofColumnTreeShift
number of columns which should be shift to rigth on tree indent. 0. don't shift.
|
protected GralTable<UserData> |
outer |
protected long |
redrawct |
protected long |
redrawtime |
protected int[] |
xpixelCell
Column position for the cells in pixel from 0 (left) calculated from the pixel size of the table.
|
protected int |
xPixelUnit |
protected boolean |
XXXhasFocus
Set to true if the table has the focus in window.
|
protected GralRectangle |
xyVscrollbar
Pixel position of the vertical scroll bar.
|
protected int |
y1Scrollbar
Position of vScrollBar calculated from
GralTable.rootLine . |
protected int |
y2Scrollbar
Position of vScrollBar calculated from
GralTable.rootLine . |
bRedrawOnlyDynamics, chgBitsDerived, chgColorBack, chgColorLine, chgColorText, chgCurrTab, chgEditable, chgFloat, chgFocus, chgFont, chgIntg, chgInvisible, chgObjects, chgPos, chgText, chgVisible, chgVisibleInfo, mngImpl, pixBounds, wdgimpl, widgg
version
Modifier | Constructor and Description |
---|---|
protected |
GraphicImplAccess(GralTable<UserData> outer,
GralMng mng) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
bChangedLinesForCell() |
protected void |
bChangedLinesForCell(boolean val) |
protected boolean |
bColumnEditable(int ix) |
protected void |
checkAndUpdateText(java.lang.String sText,
GralTable.CellData celldata) |
protected GralColor |
colorBackTable() |
protected GralColor |
colorBackVscrollbar() |
protected GralColor |
colorLineVscrollbar() |
protected GralColor |
colorSelectChars() |
protected GralColor |
colorSelectCharsBack() |
protected int[] |
columnWidthsGral() |
protected int[] |
columnWidthsPromille() |
protected abstract GralMenu |
createColumnMenu(int column)
Should be implemented by the implementation class.
|
protected void |
determineSizeAndPositionScrollbar(int yPixel)
This method have to be called before the vertical scroll bar is painted
in the
GralWidgImplAccess_ifc.redrawGthread() routine.. |
protected abstract void |
drawCellContent(int iCellLine,
GralTable.CellData[] cellData,
GralTable.TableLineData line,
GralTable.LinePresentation linePresentationP) |
protected abstract GralTable.CellData |
drawCellInvisible(int iCellLine,
int iCellCol) |
void |
focusGainedTable()
This routine is invoked if any cell of the table gets the focus.
|
protected void |
focusLostTable()
Invoked if any cell has lost the focus.
|
protected abstract java.lang.String |
getCellText(GralTable.CellData cell)
Gets the current text of the given cell from the graphic implementation.
|
protected abstract java.lang.String |
getCellTextFocus()
Gets the cell text from the focused cell in the implementation.
|
protected GralMenu[] |
getContextMenuColumns() |
protected abstract int |
getVisibleLinesTableImpl() |
protected GralMng |
itsMng() |
protected int |
ixColumn() |
protected void |
mouseDoubleGral(int key,
GralTable.CellData cell) |
protected void |
mouseDownGral(int key,
GralTable.CellData cell) |
protected void |
mouseUpGral(int key,
GralTable.CellData cell) |
protected boolean |
processKeys(int keyCode)
Handle all standard keys of table.
|
protected boolean |
redrawTableWithFocusedCell(GralTable.CellData data)
Sets the current cell as focused with the focus color.
|
boolean |
remove() |
protected void |
resizeTable(GralRectangle pixTable)
This routine will be called inside the resize listener of the implementation graphic.
|
protected java.lang.StringBuilder |
searchChars() |
protected abstract void |
setBoundsCells(int treeDepthBase,
int zLineVisible)
Invoked in
resizeTable(GralRectangle) as action which should be implemented in the implementation layer. |
protected void |
setCellText(GralTable.CellData cell,
java.lang.String text)
Invoked on editing a text field
|
protected void |
setFocusCellMousePressed() |
private void |
setLineColors(GralTable.TableLineData line)
Sets the colors of the given line depending on the state
line ==
GralTable.lineSelected :
marked: GralTable.TableLineData.colorBackSelectMarked or GralTable.colorBackSelectMarked
childrenMarked: GralTable.TableLineData.colorBackSelectSomeMarked or GralTable.colorBackSelectSomeMarked
not marked: GralTable.TableLineData.colorBackSelect or GralTable.colorBackSelect
selected new: GralTable.colorBackSelectNewMarked or GralTable.colorBackSelectNew
normal non selected line:
marked: GralTable.TableLineData.colorBackSelectMarked or GralTable.colorBackSelectMarked
childrenMarked: GralTable.TableLineData.colorBackSelectSomeMarked or GralTable.colorBackSelectSomeMarked
not focused: GralWidget.DynamicData.backColorNoFocus
not marked: GralTable.TableLineData.colorBackSelect or GralTable.colorBackSelect
|
protected void |
updateGraphicCellContent()
Updates the cell text fields which presents the content of the table.
|
protected int |
zColumn() |
acknChanged, actionShow, dyda, getActionChange, getChanged, getWidgetImplementation, gralMng, gralWidgetFromImplData, redrawOnlyDynamics, setDragEnable, setDropEnable, setPosBounds, setTextChanged, setVisibleState, XXXfocusGained
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getPixelPositionSize, getWidgetImplementation, redrawGthread, removeWidgetImplementation, setBoundsPixel, setFocusGThread, setPosBounds, setVisibleGThread, updateValuesForAction
public static final int chgEditableColumn
private final GralTable.LinePresentation linePresentation
protected GralTable.CellData[][] cells
protected boolean bRedrawPending
#table
.Table#redrawGthread()
is running.
It prevents recursive invocation of redraw() while setFocus() is invoked.protected int linePixel
protected final int[] xpixelCell
resizeTable(GralRectangle)
.protected final GralRectangle xyVscrollbar
protected int y1Scrollbar
GralTable.rootLine
. GralTable.NodeTableLine.tbl_zLineUnfolded
and GralTable#nLineCurr
written in #determineSizeAndPosition()
used for painting vScrollBar.protected int y2Scrollbar
GralTable.rootLine
. GralTable.NodeTableLine.tbl_zLineUnfolded
and GralTable#nLineCurr
written in #determineSizeAndPosition()
used for painting vScrollBar.protected boolean bVscrollbarChanged
protected int ixColorScrollbar
protected int ixColorScrollbarLast
protected final int xPixelUnit
protected int nrofColumnTreeShift
protected boolean bFocused
#actionOnLineSelected(GralTableLine_ifc)
.protected boolean bFocusLost
protected int ixLineFocus
protected int ixColumnFocus
protected boolean XXXhasFocus
protected long mousetime
protected long redrawtime
protected long mousect
protected long redrawct
private boolean mouseDoubleClick
protected GralMng itsMng()
protected boolean bColumnEditable(int ix)
protected GralMenu[] getContextMenuColumns()
protected void checkAndUpdateText(java.lang.String sText, GralTable.CellData celldata)
protected int ixColumn()
protected int[] columnWidthsGral()
protected int[] columnWidthsPromille()
protected int zColumn()
protected GralColor colorSelectCharsBack()
protected boolean bChangedLinesForCell()
protected void bChangedLinesForCell(boolean val)
protected GralColor colorSelectChars()
protected GralColor colorBackTable()
protected GralColor colorBackVscrollbar()
protected GralColor colorLineVscrollbar()
protected java.lang.StringBuilder searchChars()
protected boolean processKeys(int keyCode)
GralTable.keyMarkUp
GralTable.keyMarkDn
GralMng.getRegisteredUserAction(String what)
with what="KeyAction"
and invokes the returned action method. With them all standard key actions of this application
may be done if a GralUserAction
is registered for that.
keyCode
- Encoding see KeyCode
.protected void setFocusCellMousePressed()
protected void setCellText(GralTable.CellData cell, java.lang.String text)
cell
- text
- protected abstract java.lang.String getCellText(GralTable.CellData cell)
cell
- protected abstract java.lang.String getCellTextFocus()
protected void updateGraphicCellContent()
#drawCellContent(int, CellData[], TableLineData, LinePresentation)
is called inside for any cell. This method is implemented in the implementation layer.private void setLineColors(GralTable.TableLineData line)
GralTable.lineSelected
:
GralTable.colorBackSelectNewMarked
or GralTable.colorBackSelectNew
GralTable.TableLineData.colorBackSelectMarked
or GralTable.colorBackSelectMarked
GralTable.TableLineData.colorBackSelectSomeMarked
or GralTable.colorBackSelectSomeMarked
GralWidget.DynamicData.backColorNoFocus
GralTable.TableLineData.colorBackSelect
or GralTable.colorBackSelect
line
- protected void determineSizeAndPositionScrollbar(int yPixel)
GralWidgImplAccess_ifc.redrawGthread()
routine..
It checks whether the GralTable#nLineCurr
and the shown number of lines
in GralTable.rootLine
. GralTable.NodeTableLine.tbl_zLineUnfolded
is given, e.g. >=0. If one of them is <0 or lines are countered
calling GralTable.NodeTableLine.countChildren(boolean, int)
.
Therewith the GralTable#nLineCurr
is set too. Anytime if the situation is not specified
the GralTable#nLineCurr
can be set to -1. This forces new calculation.protected void resizeTable(GralRectangle pixTable)
#setBoundsCells()
will be called.
That is implemented in the underlying graphic layer and sets the bounds for each cell.pixTable
- Size of the table area.protected abstract void setBoundsCells(int treeDepthBase, int zLineVisible)
resizeTable(GralRectangle)
as action which should be implemented in the implementation layer.
The xpixelCell
was set before.treeDepthBase
- public boolean remove()
protected boolean redrawTableWithFocusedCell(GralTable.CellData data)
GralMng#setInfo(GralWidget, int, int, Object, Object)
.cell
- The cellpublic void focusGainedTable()
bFocusLost
is true, another cell of this table has lost the focus
in the last 50 ms before the repaint() was invoked. Then the super.GralWidget.setFocus()
will not be called.
bRedrawPending
is set, it means that the focus gained is invoked by a setFocus()-call
of the graphic representation layer. Then the GralWidget.setFocus()
will not be called.
GralWidget.setFocus()
is called to designate, that the table is focused.
protected void focusLostTable()
bFocused
= false.
But if another cell of the table has gotten the focus in this time, the bFocus = true is set.protected void mouseDownGral(int key, GralTable.CellData cell)
protected void mouseUpGral(int key, GralTable.CellData cell)
protected void mouseDoubleGral(int key, GralTable.CellData cell)
protected abstract void drawCellContent(int iCellLine, GralTable.CellData[] cellData, GralTable.TableLineData line, GralTable.LinePresentation linePresentationP)
iCellLine
- cellData
- line
- linePresentationP
- protected abstract GralTable.CellData drawCellInvisible(int iCellLine, int iCellCol)
protected abstract int getVisibleLinesTableImpl()
protected abstract GralMenu createColumnMenu(int column)
column
- The column