|
|
|
@ -3,6 +3,7 @@ package fr.uca.iut.clfreville2.gui;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.image.ImageSupplier;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.image.SensorTypeImageSupplier;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.image.StandardImageSupplier;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.list.NameableStringConverter;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.table.WeightSpinnerTableCell;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.thread.Ticker;
|
|
|
|
|
import fr.uca.iut.clfreville2.gui.tree.SensorTreeCell;
|
|
|
|
@ -12,12 +13,17 @@ import fr.uca.iut.clfreville2.model.binding.ToBooleanBinding;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.ManualSensor;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.Sensor;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.VirtualSensor;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.provider.AutoSensorProvider;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.provider.ManualSensorProvider;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.provider.SensorProvider;
|
|
|
|
|
import fr.uca.iut.clfreville2.model.sensor.provider.VirtualSensorProvider;
|
|
|
|
|
import fr.uca.iut.clfreville2.persistence.StubSensorRegistryLoader;
|
|
|
|
|
import javafx.beans.property.SimpleObjectProperty;
|
|
|
|
|
import javafx.collections.FXCollections;
|
|
|
|
|
import javafx.fxml.FXML;
|
|
|
|
|
import javafx.scene.control.Button;
|
|
|
|
|
import javafx.scene.control.CheckBox;
|
|
|
|
|
import javafx.scene.control.ChoiceBox;
|
|
|
|
|
import javafx.scene.control.Slider;
|
|
|
|
|
import javafx.scene.control.Spinner;
|
|
|
|
|
import javafx.scene.control.TableCell;
|
|
|
|
@ -26,7 +32,6 @@ import javafx.scene.control.TableView;
|
|
|
|
|
import javafx.scene.control.TextField;
|
|
|
|
|
import javafx.scene.control.TreeItem;
|
|
|
|
|
import javafx.scene.control.TreeView;
|
|
|
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
|
|
|
import javafx.scene.image.ImageView;
|
|
|
|
|
import javafx.scene.text.Text;
|
|
|
|
|
import javafx.stage.Stage;
|
|
|
|
@ -66,6 +71,15 @@ public class MainWindows {
|
|
|
|
|
@FXML
|
|
|
|
|
private TableColumn<VirtualSensor.DataSource, String> sourceId;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private TextField newName;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private ChoiceBox<SensorProvider> createType;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private Button createButton;
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private Spinner<Integer> updateInterval;
|
|
|
|
|
|
|
|
|
@ -112,11 +126,17 @@ public class MainWindows {
|
|
|
|
|
}).show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
public void onCreateClick() {
|
|
|
|
|
createType.getSelectionModel().getSelectedItem().create(registry, newName.getText());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private void initialize() {
|
|
|
|
|
bindSensorTree();
|
|
|
|
|
bindActiveButtons();
|
|
|
|
|
bindSources();
|
|
|
|
|
bindProvidable();
|
|
|
|
|
bindUpdate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -171,6 +191,16 @@ public class MainWindows {
|
|
|
|
|
sourceId.setCellValueFactory(cell -> cell.getValue().sensor().idProperty().asString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private void bindProvidable() {
|
|
|
|
|
createType.getItems().addAll(
|
|
|
|
|
new ManualSensorProvider(),
|
|
|
|
|
new AutoSensorProvider(),
|
|
|
|
|
new VirtualSensorProvider()
|
|
|
|
|
);
|
|
|
|
|
createType.setConverter(new NameableStringConverter<>(createType.getItems()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@FXML
|
|
|
|
|
private void bindUpdate() {
|
|
|
|
|
updateInterval.getValueFactory().valueProperty().bindBidirectional(ticker.millisPerTickProperty().asObject());
|
|
|
|
|