CustomLineBorderDecorator Continous Line between columns
I'm currently stuck on a task of drawing a continous line between specific columns using nattable. I've drawn the lines on each cell with CustomLineBorderDecorator. Problem is between each row there is a thin gray line
This gray line is visible inbetween the singular segments of the Border hat each cell generates.
I need a continous line from Header to bottom of the table. How can i get there?

nattable
add a comment |
I'm currently stuck on a task of drawing a continous line between specific columns using nattable. I've drawn the lines on each cell with CustomLineBorderDecorator. Problem is between each row there is a thin gray line
This gray line is visible inbetween the singular segments of the Border hat each cell generates.
I need a continous line from Header to bottom of the table. How can i get there?

nattable
add a comment |
I'm currently stuck on a task of drawing a continous line between specific columns using nattable. I've drawn the lines on each cell with CustomLineBorderDecorator. Problem is between each row there is a thin gray line
This gray line is visible inbetween the singular segments of the Border hat each cell generates.
I need a continous line from Header to bottom of the table. How can i get there?

nattable
I'm currently stuck on a task of drawing a continous line between specific columns using nattable. I've drawn the lines on each cell with CustomLineBorderDecorator. Problem is between each row there is a thin gray line
This gray line is visible inbetween the singular segments of the Border hat each cell generates.
I need a continous line from Header to bottom of the table. How can i get there?

nattable
nattable
asked Nov 12 at 9:38
Madalin Branea
155
155
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
If you want to draw over the grid lines, you need to implement an IOverlayPainter. ICellPainter like the CustomLineBorderDecorator will only paint inside a cell.
A simple version could look like this:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
But that version for example does not take into account scrolling.
The SNAPSHOT builds contain the HideIndicatorOverlayPainter that does some more checks to render such a line based on a label inside the header regions. But you could adapt that to find the position to render label based.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53259358%2fcustomlineborderdecorator-continous-line-between-columns%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you want to draw over the grid lines, you need to implement an IOverlayPainter. ICellPainter like the CustomLineBorderDecorator will only paint inside a cell.
A simple version could look like this:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
But that version for example does not take into account scrolling.
The SNAPSHOT builds contain the HideIndicatorOverlayPainter that does some more checks to render such a line based on a label inside the header regions. But you could adapt that to find the position to render label based.
add a comment |
If you want to draw over the grid lines, you need to implement an IOverlayPainter. ICellPainter like the CustomLineBorderDecorator will only paint inside a cell.
A simple version could look like this:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
But that version for example does not take into account scrolling.
The SNAPSHOT builds contain the HideIndicatorOverlayPainter that does some more checks to render such a line based on a label inside the header regions. But you could adapt that to find the position to render label based.
add a comment |
If you want to draw over the grid lines, you need to implement an IOverlayPainter. ICellPainter like the CustomLineBorderDecorator will only paint inside a cell.
A simple version could look like this:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
But that version for example does not take into account scrolling.
The SNAPSHOT builds contain the HideIndicatorOverlayPainter that does some more checks to render such a line based on a label inside the header regions. But you could adapt that to find the position to render label based.
If you want to draw over the grid lines, you need to implement an IOverlayPainter. ICellPainter like the CustomLineBorderDecorator will only paint inside a cell.
A simple version could look like this:
natTable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(GC gc, ILayer layer) {
Color beforeColor = gc.getForeground();
gc.setForeground(GUIHelper.COLOR_RED);
int gridBorderX = natTable.getStartXOfColumnPosition(4) - 1;
gc.drawLine(gridBorderX, 0, gridBorderX, layer.getHeight() - 1);
gc.setForeground(beforeColor);
}
});
But that version for example does not take into account scrolling.
The SNAPSHOT builds contain the HideIndicatorOverlayPainter that does some more checks to render such a line based on a label inside the header regions. But you could adapt that to find the position to render label based.
answered Nov 12 at 10:29
Dirk Fauth
2,3762816
2,3762816
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53259358%2fcustomlineborderdecorator-continous-line-between-columns%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown