From d463e576122defd71a7034e38cafeb0359f5a2b2 Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage Date: Tue, 13 Aug 2019 19:20:29 +0200 Subject: [PATCH 1/2] Initial --- .../gui/maintable/MainTableColumnFactory.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java b/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java index 0bbe346fe92..117c83d2931 100644 --- a/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java +++ b/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java @@ -9,6 +9,7 @@ import javax.swing.undo.UndoManager; +import javafx.geometry.Pos; import javafx.scene.Node; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; @@ -16,7 +17,7 @@ import javafx.scene.control.Tooltip; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; -import javafx.scene.layout.BorderPane; +import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; @@ -122,28 +123,36 @@ public MainTableColumnFactory(BibDatabaseContext database, ColumnPreferences pre new ValueTableCellFactory>() .withGraphic(this::createGroupColorRegion) .install(column); + column.setStyle("-fx-padding: 0 0 0 0;"); column.setSortable(true); return column; } private Node createGroupColorRegion(BibEntryTableViewModel entry, List matchedGroups) { - Rectangle rectangle = new Rectangle(); - rectangle.setWidth(3); - rectangle.setHeight(20); + Rectangle borderColor = new Rectangle(); + borderColor.setWidth(5); + borderColor.setHeight(20); + borderColor.setFill(Color.DARKGRAY); + Rectangle groupColor = new Rectangle(); + groupColor.setWidth(3); + groupColor.setHeight(18); Color color = matchedGroups.stream() .flatMap(group -> OptionalUtil.toStream(group.getColor())) .findFirst() .orElse(Color.TRANSPARENT); - rectangle.setFill(color); + groupColor.setFill(color); + + StackPane container = new StackPane(); + container.setMinWidth(10); + container.setAlignment(Pos.CENTER); + container.getChildren().addAll(borderColor,groupColor); String matchedGroupsString = matchedGroups.stream() .map(AbstractGroup::getName) .collect(Collectors.joining(", ")); Tooltip tooltip = new Tooltip(Localization.lang("Entry is contained in the following groups:") + "\n" + matchedGroupsString); - Tooltip.install(rectangle, tooltip); + Tooltip.install(container, tooltip); - BorderPane container = new BorderPane(); - container.setLeft(rectangle); return container; } From af3e2371aceaa90e866a0b94ffa23036dca50cf0 Mon Sep 17 00:00:00 2001 From: Carl Christian Snethlage Date: Wed, 14 Aug 2019 09:47:41 +0200 Subject: [PATCH 2/2] Removed Border behind transparent groupRectangle, rewording --- .../gui/maintable/MainTableColumnFactory.java | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java b/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java index 117c83d2931..53d7987f665 100644 --- a/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java +++ b/src/main/java/org/jabref/gui/maintable/MainTableColumnFactory.java @@ -17,6 +17,7 @@ import javafx.scene.control.Tooltip; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; +import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; @@ -129,31 +130,36 @@ public MainTableColumnFactory(BibDatabaseContext database, ColumnPreferences pre } private Node createGroupColorRegion(BibEntryTableViewModel entry, List matchedGroups) { - Rectangle borderColor = new Rectangle(); - borderColor.setWidth(5); - borderColor.setHeight(20); - borderColor.setFill(Color.DARKGRAY); - Rectangle groupColor = new Rectangle(); - groupColor.setWidth(3); - groupColor.setHeight(18); - Color color = matchedGroups.stream() - .flatMap(group -> OptionalUtil.toStream(group.getColor())) - .findFirst() - .orElse(Color.TRANSPARENT); - groupColor.setFill(color); - - StackPane container = new StackPane(); - container.setMinWidth(10); - container.setAlignment(Pos.CENTER); - container.getChildren().addAll(borderColor,groupColor); - - String matchedGroupsString = matchedGroups.stream() - .map(AbstractGroup::getName) - .collect(Collectors.joining(", ")); - Tooltip tooltip = new Tooltip(Localization.lang("Entry is contained in the following groups:") + "\n" + matchedGroupsString); - Tooltip.install(container, tooltip); - - return container; + Color groupColor = matchedGroups.stream() + .flatMap(group -> OptionalUtil.toStream(group.getColor())) + .findFirst() + .orElse(Color.TRANSPARENT); + + if (groupColor != Color.TRANSPARENT) { + Rectangle border = new Rectangle(); + border.setWidth(5); + border.setHeight(20); + border.setFill(Color.DARKGRAY); + + Rectangle groupRectangle = new Rectangle(); + groupRectangle.setWidth(3); + groupRectangle.setHeight(18); + groupRectangle.setFill(groupColor); + + StackPane container = new StackPane(); + container.setMinWidth(10); + container.setAlignment(Pos.CENTER); + + container.getChildren().addAll(border,groupRectangle); + + String matchedGroupsString = matchedGroups.stream() + .map(AbstractGroup::getName) + .collect(Collectors.joining(", ")); + Tooltip tooltip = new Tooltip(Localization.lang("Entry is contained in the following groups:") + "\n" + matchedGroupsString); + Tooltip.install(container, tooltip); + return container; + } + return new Pane(); } private List> createNormalColumns() {