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"> prefWidth="600.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1">
<children> <children>
<TreeView fx:id="treeView" layoutX="129.0" layoutY="27.0" prefHeight="347.0" prefWidth="343.0" /> <TreeView fx:id="treeView" layoutX="129.0" layoutY="27.0" prefHeight="347.0" prefWidth="343.0" />
<Spinner fx:id="spinnerTemp"></Spinner>
</children> </children>
</AnchorPane> </AnchorPane>

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

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

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

@ -13,62 +13,67 @@ import javafx.scene.control.*;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent; import javafx.scene.input.MouseEvent;
import model.CapteurAbstrait; import model.*;
import model.CapteurVirtuel;
import model.TreeItemFactoryVisitor;
public class TreeViewCtrl extends FXMLView { public class TreeViewCtrl extends FXMLView {
@FXML @FXML
private TreeView<CapteurAbstrait> treeView; private TreeView<CapteurAbstrait> treeView;
@FXML
private Spinner<Double> spinnerTemp;
private ArrayList<CapteurAbstrait> capteurAbstraits; private ArrayList<CapteurAbstrait> capteurAbstraits;
public TreeViewCtrl(ArrayList<CapteurAbstrait> capteurs, String url, String title) throws IOException { public TreeViewCtrl(ArrayList<CapteurAbstrait> capteurs, String url, String title) throws IOException {
super(url,title); super(url,title);
this.capteurAbstraits = capteurs;; this.capteurAbstraits = capteurs;
TreeItem<CapteurAbstrait> root = new TreeItem<>(); TreeItem<CapteurAbstrait> root = new TreeItem<>();
root.setExpanded(true);
treeView.setShowRoot(false); treeView.setShowRoot(false);
root.setExpanded(true);
//treeView.setRoot(root);
TreeItemFactoryVisitor treeItemFactoryVisitor = new TreeItemFactoryVisitor(); TreeItemFactoryVisitor treeItemFactoryVisitor = new TreeItemFactoryVisitor();
treeView.setVisible(true); treeView.setVisible(true);
for(CapteurAbstrait capteur: capteurAbstraits){
TreeItem<CapteurAbstrait> item = capteur.accept(treeItemFactoryVisitor); if (root != null && treeView != null) {
root.getChildren().add(item); 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(); this.initializeCapteur();
} }
public void initializeCapteur(){ public void initializeCapteur() {
treeView.setCellFactory(param -> new TreeCell<CapteurAbstrait>(){ treeView.setCellFactory(param -> new TreeCell<CapteurAbstrait>() {
@Override @Override
protected void updateItem(CapteurAbstrait capteur, boolean empty){ protected void updateItem(CapteurAbstrait capteur, boolean empty) {
super.updateItem(capteur,empty); super.updateItem(capteur, empty);
if(empty){ if (empty || capteur == null) {
textProperty().unbind(); textProperty().unbind();
setText(""); setText("");
} else { } else {
textProperty().bind(capteur.getNom()); 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); setGraphic(new ImageView(new Image(image)) {{
setFitHeight(40);
CapteurAbstrait capteur = capteurAbstraits.get(0); setFitWidth(40);
capteur.getTemp().addListener((observable, oldValue, newValue) -> { }});
System.out.println("Changement de température: " + oldValue + " est passé à " }
+ newValue); }
}); });
}
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