spread view columns highlighted

This commit is contained in:
woodser 2025-05-17 15:27:44 -04:00
parent 96db67643d
commit 8c7e6b2a36
No known key found for this signature in database
GPG key ID: 55A10DD48ADEE5EF
3 changed files with 17 additions and 8 deletions

View file

@ -26,33 +26,37 @@ import javafx.scene.layout.HBox;
public class ColoredDecimalPlacesWithZerosText extends HBox {
public ColoredDecimalPlacesWithZerosText(String number, int numberOfZerosToColorize) {
this(number, numberOfZerosToColorize, false);
}
public ColoredDecimalPlacesWithZerosText(String number, int numberOfZerosToColorize, boolean highlight) {
super();
if (numberOfZerosToColorize <= 0) {
getChildren().addAll(new Label(number));
} else if (number.contains(FormattingUtils.RANGE_SEPARATOR)) {
String[] splitNumber = number.split(FormattingUtils.RANGE_SEPARATOR);
Tuple2<Label, Label> numbers = getSplittedNumberNodes(splitNumber[0], numberOfZerosToColorize);
Tuple2<Label, Label> numbers = getSplittedNumberNodes(splitNumber[0], numberOfZerosToColorize, highlight);
getChildren().addAll(numbers.first, numbers.second);
getChildren().add(new Label(FormattingUtils.RANGE_SEPARATOR));
numbers = getSplittedNumberNodes(splitNumber[1], numberOfZerosToColorize);
numbers = getSplittedNumberNodes(splitNumber[1], numberOfZerosToColorize, highlight);
getChildren().addAll(numbers.first, numbers.second);
} else {
Tuple2<Label, Label> numbers = getSplittedNumberNodes(number, numberOfZerosToColorize);
Tuple2<Label, Label> numbers = getSplittedNumberNodes(number, numberOfZerosToColorize, highlight);
getChildren().addAll(numbers.first, numbers.second);
}
setAlignment(Pos.CENTER_LEFT);
}
private Tuple2<Label, Label> getSplittedNumberNodes(String number, int numberOfZeros) {
private Tuple2<Label, Label> getSplittedNumberNodes(String number, int numberOfZeros, boolean highlight) {
String placesBeforeZero = number.split("0{1," + Integer.toString(numberOfZeros) + "}$")[0];
String zeroDecimalPlaces = number.substring(placesBeforeZero.length());
Label first = new AutoTooltipLabel(placesBeforeZero);
if (highlight) first.getStyleClass().add("highlight-text");
Label last = new Label(zeroDecimalPlaces);
last.getStyleClass().add("zero-decimals");
return new Tuple2<>(first, last);
}
}

View file

@ -2542,3 +2542,8 @@ textfield */
-fx-border-width: 1;
-fx-border-color: -bs-color-border-form-field;
}
.highlight-text {
-fx-text-fill: -fx-dark-text-color !important;
}

View file

@ -261,7 +261,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
setMinWidth(140);
}
};
column.getStyleClass().add("number-column");
column.getStyleClass().addAll("number-column", "highlight-text");
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(
new Callback<>() {
@ -273,7 +273,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
public void updateItem(final SpreadItem item, boolean empty) {
super.updateItem(item, empty);
if (item != null && !empty)
setGraphic(new ColoredDecimalPlacesWithZerosText(model.getAmount(item.totalAmount), GUIUtil.AMOUNT_DECIMALS_WITH_ZEROS));
setGraphic(new ColoredDecimalPlacesWithZerosText(model.getAmount(item.totalAmount), GUIUtil.AMOUNT_DECIMALS_WITH_ZEROS, true));
else {
setText("");
setGraphic(null);
@ -291,7 +291,7 @@ public class SpreadView extends ActivatableViewAndModel<GridPane, SpreadViewMode
setMinWidth(110);
}
};
column.getStyleClass().addAll("number-column");
column.getStyleClass().addAll("number-column", "highlight-text");
column.setCellValueFactory((item) -> new ReadOnlyObjectWrapper<>(item.getValue()));
column.setCellFactory(
new Callback<>() {