mirror of
https://github.com/davidalves04/Trabalho-Pratico-SD.git
synced 2025-12-08 12:33:31 +00:00
color update
This commit is contained in:
@@ -50,10 +50,11 @@ public class ConfigurationDialog {
|
|||||||
// Criar painel de configuração
|
// Criar painel de configuração
|
||||||
VBox content = new VBox(15);
|
VBox content = new VBox(15);
|
||||||
content.setPadding(new Insets(20));
|
content.setPadding(new Insets(20));
|
||||||
|
content.setStyle("-fx-background-color: #2b2b2b;");
|
||||||
|
|
||||||
// Seção 1: Parâmetros de Chegada
|
// Seção 1: Parâmetros de Chegada
|
||||||
Label arrivalHeader = new Label("Parâmetros de Chegada de Veículos");
|
Label arrivalHeader = new Label("Parâmetros de Chegada de Veículos");
|
||||||
arrivalHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px;");
|
arrivalHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px; -fx-text-fill: white;");
|
||||||
|
|
||||||
GridPane arrivalGrid = new GridPane();
|
GridPane arrivalGrid = new GridPane();
|
||||||
arrivalGrid.setHgap(10);
|
arrivalGrid.setHgap(10);
|
||||||
@@ -62,6 +63,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Modelo de chegada
|
// Modelo de chegada
|
||||||
Label modelLabel = new Label("Modelo de chegada:");
|
Label modelLabel = new Label("Modelo de chegada:");
|
||||||
|
modelLabel.setStyle("-fx-text-fill: white;");
|
||||||
ComboBox<String> modelCombo = new ComboBox<>();
|
ComboBox<String> modelCombo = new ComboBox<>();
|
||||||
modelCombo.getItems().addAll("POISSON", "FIXED");
|
modelCombo.getItems().addAll("POISSON", "FIXED");
|
||||||
modelCombo.setValue("POISSON");
|
modelCombo.setValue("POISSON");
|
||||||
@@ -70,6 +72,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Taxa de chegada (λ)
|
// Taxa de chegada (λ)
|
||||||
Label rateLabel = new Label("Taxa de chegada (λ) [veículos/s]:");
|
Label rateLabel = new Label("Taxa de chegada (λ) [veículos/s]:");
|
||||||
|
rateLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Double> rateSpinner = new Spinner<>(0.1, 2.0, 0.5, 0.1);
|
Spinner<Double> rateSpinner = new Spinner<>(0.1, 2.0, 0.5, 0.1);
|
||||||
rateSpinner.setEditable(true);
|
rateSpinner.setEditable(true);
|
||||||
rateSpinner.setPrefWidth(100);
|
rateSpinner.setPrefWidth(100);
|
||||||
@@ -78,6 +81,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Intervalo fixo (se aplicável)
|
// Intervalo fixo (se aplicável)
|
||||||
Label intervalLabel = new Label("Intervalo fixo [s]:");
|
Label intervalLabel = new Label("Intervalo fixo [s]:");
|
||||||
|
intervalLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Double> intervalSpinner = new Spinner<>(0.5, 10.0, 2.0, 0.5);
|
Spinner<Double> intervalSpinner = new Spinner<>(0.5, 10.0, 2.0, 0.5);
|
||||||
intervalSpinner.setEditable(true);
|
intervalSpinner.setEditable(true);
|
||||||
intervalSpinner.setPrefWidth(100);
|
intervalSpinner.setPrefWidth(100);
|
||||||
@@ -94,7 +98,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Seção 2: Parâmetros de Tempo
|
// Seção 2: Parâmetros de Tempo
|
||||||
Label timeHeader = new Label("Parâmetros de Tempo");
|
Label timeHeader = new Label("Parâmetros de Tempo");
|
||||||
timeHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px;");
|
timeHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px; -fx-text-fill: white;");
|
||||||
|
|
||||||
GridPane timeGrid = new GridPane();
|
GridPane timeGrid = new GridPane();
|
||||||
timeGrid.setHgap(10);
|
timeGrid.setHgap(10);
|
||||||
@@ -103,6 +107,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Duração da simulação
|
// Duração da simulação
|
||||||
Label durationLabel = new Label("Duração da simulação [s]:");
|
Label durationLabel = new Label("Duração da simulação [s]:");
|
||||||
|
durationLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Integer> durationSpinner = new Spinner<>(60, 7200, 300, 60);
|
Spinner<Integer> durationSpinner = new Spinner<>(60, 7200, 300, 60);
|
||||||
durationSpinner.setEditable(true);
|
durationSpinner.setEditable(true);
|
||||||
durationSpinner.setPrefWidth(100);
|
durationSpinner.setPrefWidth(100);
|
||||||
@@ -111,6 +116,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Escala temporal (para visualização)
|
// Escala temporal (para visualização)
|
||||||
Label scaleLabel = new Label("Escala temporal (0=instantâneo, 1=tempo real):");
|
Label scaleLabel = new Label("Escala temporal (0=instantâneo, 1=tempo real):");
|
||||||
|
scaleLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Double> scaleSpinner = new Spinner<>(0.0, 1.0, 0.01, 0.01);
|
Spinner<Double> scaleSpinner = new Spinner<>(0.0, 1.0, 0.01, 0.01);
|
||||||
scaleSpinner.setEditable(true);
|
scaleSpinner.setEditable(true);
|
||||||
scaleSpinner.setPrefWidth(100);
|
scaleSpinner.setPrefWidth(100);
|
||||||
@@ -119,6 +125,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Tempo de drenagem
|
// Tempo de drenagem
|
||||||
Label drainLabel = new Label("Tempo de drenagem [s]:");
|
Label drainLabel = new Label("Tempo de drenagem [s]:");
|
||||||
|
drainLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Integer> drainSpinner = new Spinner<>(0, 300, 60, 10);
|
Spinner<Integer> drainSpinner = new Spinner<>(0, 300, 60, 10);
|
||||||
drainSpinner.setEditable(true);
|
drainSpinner.setEditable(true);
|
||||||
drainSpinner.setPrefWidth(100);
|
drainSpinner.setPrefWidth(100);
|
||||||
@@ -127,7 +134,7 @@ public class ConfigurationDialog {
|
|||||||
|
|
||||||
// Seção 3: Distribuição de Tipos de Veículos
|
// Seção 3: Distribuição de Tipos de Veículos
|
||||||
Label vehicleHeader = new Label("Distribuição de Tipos de Veículos");
|
Label vehicleHeader = new Label("Distribuição de Tipos de Veículos");
|
||||||
vehicleHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px;");
|
vehicleHeader.setStyle("-fx-font-weight: bold; -fx-font-size: 14px; -fx-text-fill: white;");
|
||||||
|
|
||||||
GridPane vehicleGrid = new GridPane();
|
GridPane vehicleGrid = new GridPane();
|
||||||
vehicleGrid.setHgap(10);
|
vehicleGrid.setHgap(10);
|
||||||
@@ -135,6 +142,7 @@ public class ConfigurationDialog {
|
|||||||
vehicleGrid.setPadding(new Insets(10));
|
vehicleGrid.setPadding(new Insets(10));
|
||||||
|
|
||||||
Label bikeLabel = new Label("Bicicletas/Motos [%]:");
|
Label bikeLabel = new Label("Bicicletas/Motos [%]:");
|
||||||
|
bikeLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Integer> bikeSpinner = new Spinner<>(0, 100, 10, 5);
|
Spinner<Integer> bikeSpinner = new Spinner<>(0, 100, 10, 5);
|
||||||
bikeSpinner.setEditable(true);
|
bikeSpinner.setEditable(true);
|
||||||
bikeSpinner.setPrefWidth(100);
|
bikeSpinner.setPrefWidth(100);
|
||||||
@@ -142,6 +150,7 @@ public class ConfigurationDialog {
|
|||||||
vehicleGrid.add(bikeSpinner, 1, 0);
|
vehicleGrid.add(bikeSpinner, 1, 0);
|
||||||
|
|
||||||
Label lightLabel = new Label("Veículos Ligeiros [%]:");
|
Label lightLabel = new Label("Veículos Ligeiros [%]:");
|
||||||
|
lightLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Integer> lightSpinner = new Spinner<>(0, 100, 70, 5);
|
Spinner<Integer> lightSpinner = new Spinner<>(0, 100, 70, 5);
|
||||||
lightSpinner.setEditable(true);
|
lightSpinner.setEditable(true);
|
||||||
lightSpinner.setPrefWidth(100);
|
lightSpinner.setPrefWidth(100);
|
||||||
@@ -149,6 +158,7 @@ public class ConfigurationDialog {
|
|||||||
vehicleGrid.add(lightSpinner, 1, 1);
|
vehicleGrid.add(lightSpinner, 1, 1);
|
||||||
|
|
||||||
Label heavyLabel = new Label("Veículos Pesados [%]:");
|
Label heavyLabel = new Label("Veículos Pesados [%]:");
|
||||||
|
heavyLabel.setStyle("-fx-text-fill: white;");
|
||||||
Spinner<Integer> heavySpinner = new Spinner<>(0, 100, 20, 5);
|
Spinner<Integer> heavySpinner = new Spinner<>(0, 100, 20, 5);
|
||||||
heavySpinner.setEditable(true);
|
heavySpinner.setEditable(true);
|
||||||
heavySpinner.setPrefWidth(100);
|
heavySpinner.setPrefWidth(100);
|
||||||
@@ -159,7 +169,7 @@ public class ConfigurationDialog {
|
|||||||
Label noteLabel = new Label("Nota: Estes parâmetros sobrepõem os valores do ficheiro .properties selecionado.\n" +
|
Label noteLabel = new Label("Nota: Estes parâmetros sobrepõem os valores do ficheiro .properties selecionado.\n" +
|
||||||
"Para usar os valores padrão do ficheiro, deixe em branco ou cancele.");
|
"Para usar os valores padrão do ficheiro, deixe em branco ou cancele.");
|
||||||
noteLabel.setWrapText(true);
|
noteLabel.setWrapText(true);
|
||||||
noteLabel.setStyle("-fx-font-size: 11px; -fx-text-fill: #666666;");
|
noteLabel.setStyle("-fx-font-size: 11px; -fx-text-fill: #aaaaaa;");
|
||||||
|
|
||||||
// Adicionar tudo ao conteúdo
|
// Adicionar tudo ao conteúdo
|
||||||
content.getChildren().addAll(
|
content.getChildren().addAll(
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ public class DashboardUI extends Application {
|
|||||||
// Build UI Layout
|
// Build UI Layout
|
||||||
BorderPane root = new BorderPane();
|
BorderPane root = new BorderPane();
|
||||||
root.getStyleClass().add("root");
|
root.getStyleClass().add("root");
|
||||||
|
root.setStyle("-fx-background-color: #2b2b2b;");
|
||||||
|
|
||||||
// Header (Top)
|
// Header (Top)
|
||||||
VBox header = createHeader();
|
VBox header = createHeader();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* Global Styles */
|
/* Global Styles */
|
||||||
.root {
|
.root {
|
||||||
-fx-background-color: #f4f7f6;
|
-fx-background-color: #2b2b2b;
|
||||||
-fx-font-family: 'Segoe UI', sans-serif;
|
-fx-font-family: 'Segoe UI', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,24 +63,24 @@
|
|||||||
|
|
||||||
/* Cards / Panels */
|
/* Cards / Panels */
|
||||||
.card {
|
.card {
|
||||||
-fx-background-color: white;
|
-fx-background-color: #1e1e1e;
|
||||||
-fx-background-radius: 8;
|
-fx-background-radius: 8;
|
||||||
-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.05), 10, 0, 0, 2);
|
-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.3), 10, 0, 0, 2);
|
||||||
-fx-padding: 0;
|
-fx-padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-header {
|
.card-header {
|
||||||
-fx-background-color: #ecf0f1;
|
-fx-background-color: #3a3a3a;
|
||||||
-fx-background-radius: 8 8 0 0;
|
-fx-background-radius: 8 8 0 0;
|
||||||
-fx-padding: 10 15;
|
-fx-padding: 10 15;
|
||||||
-fx-border-color: #bdc3c7;
|
-fx-border-color: #555555;
|
||||||
-fx-border-width: 0 0 1 0;
|
-fx-border-width: 0 0 1 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-title {
|
.card-title {
|
||||||
-fx-font-size: 16px;
|
-fx-font-size: 16px;
|
||||||
-fx-font-weight: bold;
|
-fx-font-weight: bold;
|
||||||
-fx-text-fill: #2c3e50;
|
-fx-text-fill: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-content {
|
.card-content {
|
||||||
@@ -90,43 +90,48 @@
|
|||||||
/* Statistics Grid */
|
/* Statistics Grid */
|
||||||
.stat-label {
|
.stat-label {
|
||||||
-fx-font-size: 14px;
|
-fx-font-size: 14px;
|
||||||
-fx-text-fill: #7f8c8d;
|
-fx-text-fill: #cccccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stat-value {
|
.stat-value {
|
||||||
-fx-font-size: 20px;
|
-fx-font-size: 20px;
|
||||||
-fx-font-weight: bold;
|
-fx-font-weight: bold;
|
||||||
-fx-text-fill: #2980b9;
|
-fx-text-fill: #4ca1af;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tables */
|
/* Tables */
|
||||||
.table-view {
|
.table-view {
|
||||||
-fx-background-color: transparent;
|
-fx-background-color: #1e1e1e;
|
||||||
-fx-border-color: transparent;
|
-fx-border-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-view .column-header-background {
|
.table-view .column-header-background {
|
||||||
-fx-background-color: #ecf0f1;
|
-fx-background-color: #3a3a3a;
|
||||||
-fx-border-color: #bdc3c7;
|
-fx-border-color: #555555;
|
||||||
-fx-border-width: 0 0 1 0;
|
-fx-border-width: 0 0 1 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-view .column-header .label {
|
.table-view .column-header .label {
|
||||||
-fx-text-fill: #2c3e50;
|
-fx-text-fill: white;
|
||||||
-fx-font-weight: bold;
|
-fx-font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-row-cell {
|
.table-row-cell {
|
||||||
-fx-background-color: white;
|
-fx-background-color: #1e1e1e;
|
||||||
-fx-border-color: transparent;
|
-fx-border-color: transparent;
|
||||||
|
-fx-text-fill: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-row-cell:odd {
|
.table-row-cell:odd {
|
||||||
-fx-background-color: #f9f9f9;
|
-fx-background-color: #252525;
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-row-cell:selected {
|
.table-row-cell:selected {
|
||||||
-fx-background-color: #3498db;
|
-fx-background-color: #4ca1af;
|
||||||
|
-fx-text-fill: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-cell {
|
||||||
-fx-text-fill: white;
|
-fx-text-fill: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user