Tipos de Widget
Mientras Widget
es bastante sencillo en lo que respecta a la interfaz, hay varias implementaciones intermedias para facilitar definir el widget.
Clase |
Descripción |
---|---|
|
Implementos |
|
Agrega propiedades para widgets que solo admiten un único tipo de datos |
|
Agrega implementaciones predeterminadas para |
|
Para widgets con una sola fuente (de forma predeterminada, los widgets admiten múltiples fuentes) |
|
Combina |
También hay dos anotaciones para ayudar a definir los widgets:
Nombre |
Descripción |
---|---|
|
Permite que los widgets sean controladores FXML para vistas JavaFX definidas a través de FXML |
|
Permite definir el nombre y los tipos de datos admitidos en una sola línea. |
AbstractWidget
This class implements getProperties()
, getSources()
, addSource()
, and titleProperty()
. It also defines a method exportProperties(Property<?>...)
method so subclasses can easy add custom widget properties, or properties for the JavaFX components in the widget. Most of the widgets in the base plugin use this.
SingleTypeWidget
Un tipo de widget que solo admite un tipo de datos. Esta interfaz está parametrizada y tiene métodos para configurar u obtener los datos, así como un método para obtener el tipo de datos (único) del widget.
AnnotatedWidget
This interface implements getDataTypes()
and getName()
by looking at the @Description
annotation on the implementing class. This requires the annotation to be present, or the widget will not be able to be loaded and used.
// No @Description annotation!
public class WrongImplementation implements AnnotatedWidget {
// ...
}
@Description(name = ..., dataTypes = ...)
public class CorrectImplementation implements AnnotatedWidget {
// ...
}
SingleSourceWidget
Un tipo de widget que solo utiliza una fuente.
SimpleAnnotatedWidget
Una combinación de `` SingleTypeWidget <T>``, `` AnnotatedWidget “” y `` SingleSourceWidget “”. La mayoría de los widgets del complemento base se extienden desde esta clase. Esto también tiene un campo protegido'' llamado ``dataOrDefault
que permite que las subclases usen un valor de datos predeterminado si el widget no tiene una fuente, o si la fuente proporciona nulo
.
@ParametrizedController
Esta anotación se puede colocar en una clase de widget para que permita a shuffleboard saber que es un controlador FXML para una vista JavaFX definida a través de FXML. La anotación toma un único parámetro que define dónde se encuentra el archivo FXML en relación con la clase en la que se coloca. Por ejemplo, un widget en el directorio src/main/java/com/acme
que es un controlador FXML para un archivo FXML en src/main/resources/com/acme
puede usar la anotación como
@ParametrizedController("MyWidget.fxml")
o como
@ParametrizedController("/com/acme/MyWidget.fxml")
@Description
Esto permite que los widgets tengan su nombre y los tipos de datos admitidos definidos por una sola anotación, cuando se utilizan junto con AnnotatedWidget.