From 70201856461a3b99aec0fa61a01503a23dfb04cd Mon Sep 17 00:00:00 2001 From: Riegel Date: Tue, 7 Jan 2025 12:01:02 +0100 Subject: [PATCH] Feat: Add JavaFX ListCell & Node for CityGmlZipEntry --- .../gui/tree/ZipEntryListCell.java | 20 ++++++++++++ .../citydoctor2/gui/tree/ZipEntryNode.java | 32 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryListCell.java create mode 100644 CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryNode.java diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryListCell.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryListCell.java new file mode 100644 index 00000000..df713ee2 --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryListCell.java @@ -0,0 +1,20 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import javafx.scene.control.ListCell; + +public class ZipEntryListCell extends ListCell { + + @Override + protected void updateItem(ZipEntryNode item, boolean empty) { + super.updateItem(item, empty); + if (!empty || item != null) { + setText(item.getText()); + } else { + setText(null); + } + } + + public void updateColor() { + setTextFill(getItem().getTextColor()); + } +} diff --git a/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryNode.java b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryNode.java new file mode 100644 index 00000000..a260a62a --- /dev/null +++ b/CityDoctorParent/Extensions/CityDoctorGUI/src/main/java/de/hft/stuttgart/citydoctor2/gui/tree/ZipEntryNode.java @@ -0,0 +1,32 @@ +package de.hft.stuttgart.citydoctor2.gui.tree; + +import de.hft.stuttgart.citydoctor2.zip.CityGmlZipEntry; +import javafx.scene.paint.Color; + +public class ZipEntryNode { + + private final CityGmlZipEntry entry; + + public ZipEntryNode(CityGmlZipEntry entry) { + this.entry = entry; + } + + public Color getTextColor() { + if (entry.getErrorType() != null) { + return Color.RED; + } else if (entry.isDecompressed()) { + return Color.GREEN; + } else { + return Color.BLACK; + } + } + + public String getText() { + return entry.getDisplayName(); + } + + public CityGmlZipEntry getEntry() { + return entry; + } + +} -- GitLab