From a146fbd93628b77ded4e3a68b5b69cedc0f1c2df Mon Sep 17 00:00:00 2001 From: crschnick Date: Sat, 21 Sep 2024 12:43:53 +0000 Subject: [PATCH] Rework section list style --- .../io/xpipe/app/comp/base/ListBoxViewComp.java | 9 ++++++--- .../app/resources/style/store-entry-comp.css | 16 +++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/comp/base/ListBoxViewComp.java b/app/src/main/java/io/xpipe/app/comp/base/ListBoxViewComp.java index cc4921cac..f013c329b 100644 --- a/app/src/main/java/io/xpipe/app/comp/base/ListBoxViewComp.java +++ b/app/src/main/java/io/xpipe/app/comp/base/ListBoxViewComp.java @@ -26,6 +26,8 @@ public class ListBoxViewComp extends Comp> { private static final PseudoClass ODD = PseudoClass.getPseudoClass("odd"); private static final PseudoClass EVEN = PseudoClass.getPseudoClass("even"); + private static final PseudoClass FIRST = PseudoClass.getPseudoClass("first"); + private static final PseudoClass LAST = PseudoClass.getPseudoClass("last"); private final ObservableList shown; private final ObservableList all; @@ -114,9 +116,10 @@ public class ListBoxViewComp extends Comp> { for (int i = 0; i < newShown.size(); i++) { var r = newShown.get(i); - r.pseudoClassStateChanged(ODD, false); - r.pseudoClassStateChanged(EVEN, false); - r.pseudoClassStateChanged(i % 2 == 0 ? EVEN : ODD, true); + r.pseudoClassStateChanged(ODD, i % 2 != 0); + r.pseudoClassStateChanged(EVEN, i % 2 == 0); + r.pseudoClassStateChanged(FIRST, i == 0); + r.pseudoClassStateChanged(LAST, i == newShown.size() - 1); } var d = new DerivedObservableList<>(listView.getChildren(), true); diff --git a/app/src/main/resources/io/xpipe/app/resources/style/store-entry-comp.css b/app/src/main/resources/io/xpipe/app/resources/style/store-entry-comp.css index 28ab2e96f..406b10d0f 100644 --- a/app/src/main/resources/io/xpipe/app/resources/style/store-entry-comp.css +++ b/app/src/main/resources/io/xpipe/app/resources/style/store-entry-comp.css @@ -111,7 +111,7 @@ } .store-entry-section-comp > .children-content { - -fx-padding: 5px 0 5px 25px; + -fx-padding: 5px 0 0 25px; } .store-entry-section-comp > .separator .line { @@ -136,6 +136,20 @@ -fx-background-radius: 4 0 0 4; } +.store-entry-section-comp:last:sub:expanded { + -fx-border-width: 1 0 0 1; + -fx-background-radius: 4 0 0 0; + -fx-border-radius: 4 0 0 0; +} + +.store-entry-section-comp:last:sub { + -fx-padding: 0 0 3 0; +} + +.store-entry-section-comp:last:sub:expanded { + -fx-padding: 0; +} + .root.nord .store-entry-section-comp { -fx-border-radius: 0; -fx-background-radius: 0;