BakeoutController-Basic  0.1
A Controller for the Omicron vacuum chamber
DeviceListController.java
1 package ui.controllers;
2 
3 import devices.PowerSupply;
5 import javafx.fxml.FXML;
6 import javafx.geometry.Pos;
7 import javafx.scene.layout.GridPane;
8 import javafx.scene.layout.TilePane;
9 import javafx.scene.paint.Color;
10 import javafx.scene.text.Text;
11 import kernel.Kernel;
13 import org.springframework.beans.factory.annotation.Autowired;
14 import ui.Controller;
15 
20 public class DeviceListController {
21 
25  @Autowired
26  private Kernel kernel;
27 
31  @FXML private GridPane deviceList;
32 
36  @FXML public void handleRefreshButtonClicked(){
37  DeviceContainer registry = kernel.getDeviceRegistryView();
38  lookupPowerSupply(registry);
39  lookupPressureGauge(registry);
40  }
41 
45  public Kernel getKernel(){
46  return kernel;
47  }
48 
52  public void setKernel(Kernel kernel){
53  this.kernel = kernel;
54  }
55 
61  private void lookupPowerSupply(DeviceContainer container){
62  if(container.hasPowerSupply()){
63  PowerSupply supply = container.getPowerSupply();
64  DeviceListEntry entry = new DeviceListEntry(supply.getClass());
65  deviceList.getChildren().add(entry);
66  } else {
67  deviceList.getChildren().add(new NoPowerSupplyText());
68  }
69  }
70 
76  private void lookupPressureGauge(DeviceContainer container){
77  if(container.hasPressureGauge()){
78  PressureGauge gauge = container.getPressureGauge();
79 
80  PressureGaugeEntry entry = new PressureGaugeEntry(
81  gauge.getClass());
82 
83  deviceList.getChildren().add(entry);
84  } else {
85  deviceList.getChildren().addAll(new NoPressureGaugeText());
86  }
87  }
88 
92  private class DeviceListEntry extends TilePane {
93 
98  private static final String id = "power-supply-message";
99 
103  private Text typeText;
104 
108  protected DeviceListEntry(Class type){
109  this.setAlignment(Pos.CENTER);
110 
111  typeText = new Text();
112  typeText.setText(type.toString());
113 
114  this.getChildren().add(typeText);
115  this.setId(id);
116  }
117  }
118 
122  private class NoPowerSupplyText extends Text {
123 
127  private static final String id = "no-power-supply-message";
128 
132  protected NoPowerSupplyText(){
133  this.setText("No Power Supply");
134  this.setFill(Color.RED);
135  this.setId(id);
136  }
137  }
138 
142  private class PressureGaugeEntry extends TilePane {
143 
147  private static final String id = "pressure-gauge-message";
148 
152  private Text text;
153 
157  protected PressureGaugeEntry(Class type){
158  this.setAlignment(Pos.CENTER);
159 
160  text = new Text();
161  text.setText(type.toString());
162 
163  this.getChildren().addAll(text);
164 
165  this.setId(id);
166  }
167  }
168 
172  private class NoPressureGaugeText extends Text {
173 
177  private static final String id = "no-pressure-gauge-message";
178 
182  protected NoPressureGaugeText(){
183  this.setText("No Pressure Gauge");
184  this.setFill(Color.RED);
185  this.setId(id);
186  }
187  }
188 }
PressureGauge getPressureGauge()
Git Repo