wingS Komponenten im Selbstbau
Das einfache Beispiel einer eigenen Minimalkomponente soll im Folgenden die einfache Erweiterbarkeit aber auch die innere Funktionsweise von wingS etwas veranschaulichen. Wie bereits erläutert nimmt selbst diese Minimalkomponente bereits automatisch an der inkrementellen Aktualisierung teil. Die Mittel hierzu sowie ihre Eigenschaft als wingS-Komponente erbt sie über die gemeinsame Basisklasse SComponent. Wichtig ist nur, dass sie den ReloadManager über alle Aktualisierungen in ihrer Darstellung informiert. Im folgenden Fall erledigt das der Aufruf der Methode reloadIfChange.
public class MyComponent extends SComponent {private String payload;public MyComponent() {setCG(new MyComponentCG());}public void setValue(String v) {reloadIfChange(v, payload);this.payload = v;}public String getValue() {return payload;}}
Unsere Komponente benötigt noch einen passenden Renderer, der sich um die Generierung der HTML-Darstellung kümmert. Hierbei sollten auch alle bereits in der Basisklasse SComponent deklarierten Eigenschaften wie Größe, Ausrichtung und Farbe mit berücksichtigt werden, was wir uns aber aufgrund unseres einfachen Beispiels ersparen.
public class MyComponentCGextends AbstractComponentCG {public void writeInternal(Device d,SComponent c) throws IOException {MyComponent mc = (MyComponent) c;d.print("<span");Utils.optAttribute(d, "id", mc.getName());d.print(">").print(mc.getValue());d.print("</span>");}}




