Module technology.sola.engine
Class GuiElementJsonBlueprint<Styles extends BaseStyles,Element extends GuiElement<Styles,?>,StylesBuilder extends BaseStyles.Builder<?>>
java.lang.Object
technology.sola.engine.graphics.gui.json.element.GuiElementJsonBlueprint<Styles,Element,StylesBuilder>
- Type Parameters:
Styles
- the styles typeElement
- the gui element typeStylesBuilder
- the styles builder type
- Direct Known Subclasses:
ButtonElementJsonBlueprint
,ImageElementJsonBlueprint
,SectionElementJsonBlueprint
,SpriteElementJsonBlueprint
,TextElementJsonBlueprint
,TextInputElementJsonBlueprint
@NullMarked
public abstract class GuiElementJsonBlueprint<Styles extends BaseStyles,Element extends GuiElement<Styles,?>,StylesBuilder extends BaseStyles.Builder<?>>
extends Object
GuiElementJsonBlueprint provides functionality for building a
GuiElement
with its styles from JSON. Each
blueprint should have a unique tag (getTag()
).-
Constructor Summary
ConstructorsConstructorDescriptionGuiElementJsonBlueprint
(StylesJsonValueParser<StylesBuilder> stylesJsonValueParser) Creates an instance of this blueprint. -
Method Summary
Modifier and TypeMethodDescriptionabstract Element
createElementFromJson
(technology.sola.json.JsonObject propsJson) Creates an instance of the Element of this blueprint.protected abstract StylesBuilder
createStylesFromJson
(technology.sola.json.JsonObject stylesJson) Creates an instance of the Element's Styles.abstract String
getTag()
-
Constructor Details
-
GuiElementJsonBlueprint
Creates an instance of this blueprint.- Parameters:
stylesJsonValueParser
- theStylesJsonValueParser
used to parse styles values
-
-
Method Details
-
getTag
- Returns:
- the tag identifier of this blueprint
-
createStylesFromJson
Creates an instance of the Element's Styles.- Parameters:
stylesJson
- theJsonObject
to build the Styles from- Returns:
- the Styles instance with properties set
-
createElementFromJson
Creates an instance of the Element of this blueprint.- Parameters:
propsJson
- theJsonObject
to build from- Returns:
- the Element with props set
-
createStylesBuilder
- Returns:
- a new StylesBuilder for this blueprint to use
-