@@ -0,0 +1,3276 @@
+package SW9.abstractions;%0A%0Aimport SW9.utility.colors.Color;%0Aimport javafx.beans.property.*;%0Aimport javafx.collections.FXCollections;%0Aimport javafx.collections.ObservableList;%0A%0Apublic class Component %7B%0A%0A    // Verification properties%0A    private final StringProperty name;%0A    private final StringProperty declarations = new SimpleStringProperty(%22%22);%0A    private final ObservableList%3CLocation%3E locations = FXCollections.observableArrayList();%0A    private final ObservableList%3CEdge%3E edges = FXCollections.observableArrayList();%0A%0A    // Styling properties%0A    private final DoubleProperty x = new SimpleDoubleProperty(0d);%0A    private final DoubleProperty y = new SimpleDoubleProperty(0d);%0A    private final DoubleProperty width = new SimpleDoubleProperty(0d);%0A    private final DoubleProperty height = new SimpleDoubleProperty(0d);%0A    private final ObjectProperty%3CColor%3E color = new SimpleObjectProperty%3C%3E(Color.GREY_BLUE);%0A    private final ObjectProperty%3CColor.Intensity%3E colorIntensity = new SimpleObjectProperty%3C%3E(Color.Intensity.I700);%0A%0A    public Component(final String name) %7B%0A        this(new SimpleStringProperty(name));%0A    %7D%0A%0A    public Component(final StringProperty name) %7B%0A        this.name = name;%0A    %7D%0A%0A    public String getName() %7B%0A        return name.get();%0A    %7D%0A%0A    public void setName(final String name) %7B%0A        this.name.set(name);%0A    %7D%0A%0A    public StringProperty nameProperty() %7B%0A        return name;%0A    %7D%0A%0A    public String getDeclarations() %7B%0A        return declarations.get();%0A    %7D%0A%0A    public void setDeclarations(final String declarations) %7B%0A        this.declarations.set(declarations);%0A    %7D%0A%0A    public StringProperty declarationsProperty() %7B%0A        return declarations;%0A    %7D%0A%0A    public ObservableList%3CLocation%3E getLocations() %7B%0A        return locations;%0A    %7D%0A%0A    public ObservableList%3CEdge%3E getEdges() %7B%0A        return edges;%0A    %7D%0A%0A    public double getX() %7B%0A        return x.get();%0A    %7D%0A%0A    public void setX(final double x) %7B%0A        this.x.set(x);%0A    %7D%0A%0A    public DoubleProperty xProperty() %7B%0A        return x;%0A    %7D%0A%0A    public double getY() %7B%0A        return y.get();%0A    %7D%0A%0A    public void setY(final double y) %7B%0A        this.y.set(y);%0A    %7D%0A%0A    public DoubleProperty yProperty() %7B%0A        return y;%0A    %7D%0A%0A    public double getWidth() %7B%0A        return width.get();%0A    %7D%0A%0A    public void setWidth(final double width) %7B%0A        this.width.set(width);%0A    %7D%0A%0A    public DoubleProperty widthProperty() %7B%0A        return width;%0A    %7D%0A%0A    public double getHeight() %7B%0A        return height.get();%0A    %7D%0A%0A    public void setHeight(final double height) %7B%0A        this.height.set(height);%0A    %7D%0A%0A    public DoubleProperty heightProperty() %7B%0A        return height;%0A    %7D%0A%0A    public Color getColor() %7B%0A        return color.get();%0A    %7D%0A%0A    public void setColor(final Color color) %7B%0A        this.color.set(color);%0A    %7D%0A%0A    public ObjectProperty%3CColor%3E colorProperty() %7B%0A        return color;%0A    %7D%0A%0A    public Color.Intensity getColorIntensity() %7B%0A        return colorIntensity.get();%0A    %7D%0A%0A    public void setColorIntensity(final Color.Intensity colorIntensity) %7B%0A        this.colorIntensity.set(colorIntensity);%0A    %7D%0A%0A    public ObjectProperty%3CColor.Intensity%3E colorIntensityProperty() %7B%0A        return colorIntensity;%0A    %7D%0A%7D%0A

Add Component abstraction.