public GridPane build() { area = getNewGrid(); for (int i = 0; i < eaTabs.size(); i++) { EATab eaTab = eaTabs.get(i); /*Label label = new Label(eaTab.getTabText() + " Gen: 0"); eaTab.fitnessGrapher.genHolder.addListener((val) -> { label.setText(eaTab.getTabText() + " Gen: " + (Integer)val); });*/ final Label label = new Label(eaTab.getTabText() + " Fit: --"); eaTab.fitnessGrapher.fitHolder.addListener( (val) -> { label.setText( eaTab.getTabText() + " Fit: " + (Math.round(((Double) val) * 100.0) / 100.0)); }); final Popup popup = new Popup(); final Label popupMessage = new Label(label.getText()); popupMessage.getStylesheets().add("./ui/css/style.css"); popupMessage.getStyleClass().add("popup"); label.setOnMouseEntered( event -> { popup.setAnchorX(event.getScreenX() + 20); popup.setAnchorY(event.getScreenY()); popup.setAutoFix(true); popup.setHideOnEscape(true); popup.getContent().clear(); popup.getContent().add(popupMessage); popup.show(GUI.stage); }); label.setOnMouseExited( event -> { popup.hide(); }); Line line = new Line(); line.setEndX(100); line.setStroke(Paint.valueOf("B4B4B4")); GridPane.setColumnSpan(line, 2); GridPane.setRowSpan(line, 1); GridPane.setHalignment(line, HPos.CENTER); GridPane.setValignment(line, VPos.CENTER); area.add(line, 0, i * 2 + 1); TetheredProgressBar progress = new TetheredProgressBar(eaTab.progressBar); StackPane sp = new StackPane(); sp.getChildren().add(label); StackPane sp2 = new StackPane(); sp2.getChildren().add(progress); VBox vbox = new VBox(); vbox.getChildren().addAll(sp, sp2); HBox hbox = new HBox(); TetheredButton button = new TetheredButton(eaTab.startButton); MenuButton mb = new MenuButton(); mb.setText("..."); MenuItem save = new MenuItem("Save"); save.setOnAction( (event) -> { System.out.println("SAVE"); fxController.saveEvolution(eaTab); }); MenuItem close = new MenuItem("Close"); close.setOnAction( (event) -> { fxController.closeTab(eaTab); }); mb.getItems().addAll(save, close, new MenuItem("Send")); hbox.getChildren().addAll(button, mb); hbox.setSpacing(5); area.add(vbox, 0, i * 2); area.add(hbox, 1, i * 2); // button = null; } return area; }
/** * @param axis Axis name to wich the new series belongs * @param cs Series Coinfiguration */ @Override public final void addSeries(String axis, SimpleSeriesConfiguration cs) { for (int i = 0; i < axes.size(); i++) { if (axes.get(i).getName().equals(axis)) { String strColor; javafx.scene.paint.Color color; int indice = seriesList.size(); if (cs.getColor() == null) { color = getColor(indice); } else { color = cs.getColor(); } strColor = color.toString(); XYSeriesCollection dataset = datasetList.get(i); Series series = new Series( cs.getName(), "color: " + strColor + ";width: " + String.valueOf(cs.getLineWidth()) + ";shape: " + cs.getShapeName() + ";", i, dataset.getSeriesCount()); dataset.addSeries(series); XYItemRenderer renderer = plot.getRenderer(i); renderer.setSeriesPaint(dataset.getSeriesCount() - 1, scene2awtColor(color)); SeriesShape simb = new SeriesShape( cs.getShapeName(), javafx.scene.paint.Color.web(strColor.replace("#", "0x"))); if (cs.getLineWidth() > 0) { ((XYLineAndShapeRenderer) renderer) .setSeriesLinesVisible(dataset.getSeriesCount() - 1, true); renderer.setSeriesStroke( dataset.getSeriesCount() - 1, new BasicStroke(cs.getLineWidth())); } else { ((XYLineAndShapeRenderer) renderer) .setSeriesLinesVisible(dataset.getSeriesCount() - 1, false); } if (cs.getShapeName().equals("null")) { renderer.setSeriesShape(dataset.getSeriesCount() - 1, null); ((XYLineAndShapeRenderer) renderer) .setSeriesShapesVisible(dataset.getSeriesCount() - 1, false); } else { renderer.setSeriesShape(dataset.getSeriesCount() - 1, simb.getShapeAWT()); ((XYLineAndShapeRenderer) renderer) .setSeriesShapesVisible(dataset.getSeriesCount() - 1, true); if (cs.getShapeName().contains("empty")) { ((XYLineAndShapeRenderer) renderer) .setSeriesShapesFilled(dataset.getSeriesCount() - 1, false); } else { ((XYLineAndShapeRenderer) renderer) .setSeriesShapesFilled(dataset.getSeriesCount() - 1, true); } } if (i == 0) { plot.setRenderer(renderer); } else { plot.setRenderer(i, renderer); } seriesList.add(series); final LegendAxis le = getLegendAxis(axis); final Label label = new Label(cs.toString()); Platform.runLater( () -> { label.setStyle( "fondo: " + strChartBackgroundColor + ";-fx-background-color: fondo;-fx-text-fill: ladder(fondo, white 49%, black 50%);-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: " + String.valueOf(fontSize) + "px"); }); label.setOnMouseClicked( (MouseEvent t) -> { if (t.getClickCount() == 2) { for (int i1 = 0; i1 < seriesList.size(); i1++) { if (seriesList.get(i1).getKey().toString().equals(label.getText())) { editSeries(seriesList.get(i1)); break; } } } }); label.setOnMouseExited( (MouseEvent t) -> { label.setStyle( label .getStyle() .replace("-fx-background-color: blue", "-fx-background-color: fondo")); }); label.setOnMouseEntered( (MouseEvent t) -> { label.setStyle( label .getStyle() .replace("-fx-background-color: fondo", "-fx-background-color: blue")); for (Node le1 : legendFrame.getChildren()) { if (le1 instanceof LegendAxis) { le1.setStyle("-fx-background-color:" + strBackgroundColor); ((LegendAxis) le1).selected = false; } } }); label.setStyle( "fondo: " + strChartBackgroundColor + ";-fx-text-fill: white;-fx-background-color: fondo;-fx-padding:5px;-fx-background-radius: 5;-fx-font-size: " + String.valueOf(fontSize) + "px"); le.getChildren().add(label); label.setGraphic(simb.getShapeGraphic()); break; } } }