treeView display partially fixed (images added)

multiple-captors
Nicolas FRANCO 2 years ago
parent bc6c5596ea
commit bcce3deeac

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -8,6 +8,5 @@
prefWidth="600.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children>
<TreeView fx:id="treeView" layoutX="129.0" layoutY="27.0" prefHeight="347.0" prefWidth="343.0" />
<Spinner fx:id="spinnerTemp"></Spinner>
</children>
</AnchorPane>

@ -41,11 +41,9 @@ public class Launch extends Application {
capteurs.add(captorV);
// FXML NOT WORKING
//Stage thermostatStage = new Stage();
//CapteurView capteurView = new ImageCtrlView(captorV,"view/Image.fxml","mon titre");
//ThermostatView thermostatView = new ThermostatView(captorV,"view/Thermostat.fxml","mon titre");
Stage thermostatStage = new Stage();
TreeViewCtrl treeViewCtrl = new TreeViewCtrl(capteurs,"view/TreeView.fxml","treeView");
treeViewCtrl.show();
Thread t = new Thread() {
public void run() {
while (true) {
@ -55,12 +53,12 @@ public class Launch extends Application {
}
captorV.genTemp();
try {
//((ImageCtrlView) capteurView).changeImage();
/*((ImageCtrlView) capteurView).changeImage();
System.out.println(captorV.getNom() + ": " + captorV.getTemp().getValue() + " °C");
for (Map.Entry<CapteurAbstrait, Integer> entry : captorV.getCapteurs().entrySet()) {
CapteurAbstrait c = entry.getKey();
System.out.println(c.getNom() + ": " + c.getTemp().getValue() + " °C");
}
}*/
sleep(4000);
} catch (InterruptedException e) {
throw new RuntimeException(e);

@ -19,4 +19,8 @@ public class UnitCapteur extends CapteurAbstrait{
public <T> T accept(Visitor<T> v) {
return v.visit(this);
}
public StrategyCaptor getStrategie() {
return strategie;
}
}

@ -16,6 +16,5 @@ public class FXMLView extends Stage {
Parent root = fxmlLoader.load();
Scene scene = new Scene(root);
setScene(scene);
show();
}
}

@ -13,62 +13,67 @@ import javafx.scene.control.*;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import model.CapteurAbstrait;
import model.CapteurVirtuel;
import model.TreeItemFactoryVisitor;
import model.*;
public class TreeViewCtrl extends FXMLView {
@FXML
private TreeView<CapteurAbstrait> treeView;
@FXML
private Spinner<Double> spinnerTemp;
private ArrayList<CapteurAbstrait> capteurAbstraits;
public TreeViewCtrl(ArrayList<CapteurAbstrait> capteurs, String url, String title) throws IOException {
super(url,title);
this.capteurAbstraits = capteurs;;
this.capteurAbstraits = capteurs;
TreeItem<CapteurAbstrait> root = new TreeItem<>();
root.setExpanded(true);
treeView.setShowRoot(false);
root.setExpanded(true);
//treeView.setRoot(root);
TreeItemFactoryVisitor treeItemFactoryVisitor = new TreeItemFactoryVisitor();
treeView.setVisible(true);
for(CapteurAbstrait capteur: capteurAbstraits){
if (root != null && treeView != null) {
treeView.setRoot(root);
for (CapteurAbstrait capteur : capteurAbstraits) {
TreeItem<CapteurAbstrait> item = capteur.accept(treeItemFactoryVisitor);
root.getChildren().add(item);
}
}
// for(CapteurAbstrait capteur: capteurAbstraits){
// TreeItem<CapteurAbstrait> item = capteur.accept(treeItemFactoryVisitor);
// root.getChildren().add(item);
// }
this.initializeCapteur();
}
public void initializeCapteur(){
treeView.setCellFactory(param -> new TreeCell<CapteurAbstrait>(){
public void initializeCapteur() {
treeView.setCellFactory(param -> new TreeCell<CapteurAbstrait>() {
@Override
protected void updateItem(CapteurAbstrait capteur, boolean empty){
super.updateItem(capteur,empty);
if(empty){
protected void updateItem(CapteurAbstrait capteur, boolean empty) {
super.updateItem(capteur, empty);
if (empty || capteur == null) {
textProperty().unbind();
setText("");
} else {
textProperty().bind(capteur.getNom());
String image = "/images/random.png";
if (capteur.getClass() == CapteurVirtuel.class) {
image = "/images/virtual.png";
} else if (capteur.getClass() == UnitCapteur.class && ((UnitCapteur) capteur).getStrategie().getClass() == StrategyCPU.class) {
image = "/images/cpu.png";
} else if (capteur.getClass() == UnitCapteur.class && ((UnitCapteur) capteur).getStrategie().getClass() == StrategyRandom.class) {
image = "/images/random.png";
}
}
});
spinnerTemp.setVisible(true);
CapteurAbstrait capteur = capteurAbstraits.get(0);
capteur.getTemp().addListener((observable, oldValue, newValue) -> {
System.out.println("Changement de température: " + oldValue + " est passé à "
+ newValue);
setGraphic(new ImageView(new Image(image)) {{
setFitHeight(40);
setFitWidth(40);
}});
}
}
});
SpinnerValueFactory<Double> spinnerValueFactory = new SpinnerValueFactory.DoubleSpinnerValueFactory(-150,1000,capteur.getTemp().getValue(),0.5);
spinnerTemp.setValueFactory(spinnerValueFactory);
spinnerTemp.getValueFactory().valueProperty().bindBidirectional(capteur.getTemp());
capteur.genTemp();
capteur.setTemp(capteur.getTemp().getValue());
System.out.println("initialize spinner");
System.out.println(spinnerTemp.getValueFactory().getValue());
};
}
}

Loading…
Cancel
Save