Beim Programmieren hat man öfter mal den Fall, daß der Anwender aus einer zur Verfügung gestellten Grundgesamtheit eine Untermenge auswählen soll. Hier einige Klassen, die dabei helfen könnten:
Um die geschilderte Aufgabe einfacher zu machen, schuf ich eine generische Klasse ActivityToggle, die lediglich einen Container für das eigentliche Objekt darstellt (das auch den Template-Parameter bildet) und dazu noch eine les- und schreibbare boolean Property namens active hat. Bei Ändern dieser Property wird ein PropertyChangeEvent gesendet. Die Identität von Objekten dieser Klasse wird durch eigentliche Objekt vorgegeben: equals- und hashCode-Methode werden an dieses delegiert. Daher ist es nicht erlaubt, eine null-Referenz als Objekt zu setzen.
Dazu entwickelte ich ein TableModel, das ebenfalls eine generische Klasse darstellt. Man kann neue Objekte - deren Typ dem Template-Parameter entspricht - hinzufügen und bereits enthaltene Objekte entfernen. Sind dies keine ActivityToggles, werden sie mit einem solchen umhüllt. Das Model stellt einige spezielle Methoden zur Verfügung - so zum Beispiel eine, die eine Collection der Objekte liefert, deren active-Property aktuell den Wert true aufweist.
Diese Technik wurde zum Beispiel in der sQLshell benutzt, um die Generatoren für das Hinzufügen oder Modifizieren von Tabelleninhalten auszuwählen. Daher stammt auch der folgende Screenshot, der den angepassten ActivityToggleRenderer demonstriert, der den Status des jeweiligen Objektes durch die Darstellung des Namens reflektiert: Der Dialog zur Bestimmung, welche Generatoren zur Erzeugung der Inhalte herangezogen werden sollen
10.05.2014
Aufbauend auf der Arbeit, über die ich in einem der früheren Artikel berichtete, habe ich das dort beschriebene Konzept erweitert und auf einen Baum angewendet
InfluxDB Appender für Log4J 1.x
17.03.2018
Nachdem ich vor einiger Zeit zwei Appender für Log4J 1.x vorgestellt habe, habe ich - motiviert durch meine Experimente mit Raspi und ADS-B - einen weiteren verfasst - diesmal zum Schreiben der Daten in eine Zeitreihendatenbank.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Ich habe mich ein wenig mit Attribut-Zertifikaten beschäftigt - Resultat sind einige Klassen zum leichteren Zugriff auf die enthaltenen Attribute...
Weiterlesen...Ich wollte eine Methode schaffen, neue Graphik-Primitiven, die zumindest in java.awt.Graphics2D - in Java noch fehlen, zu ergänzen.
Weiterlesen...Ich wollte eine Methode schaffen, unterschiedlichste Schraffuren in beliebigen Shapes zu erzeugen. diese Möglichkeit fehlt - zumindest in java.awt.Graphics2D - in Java noch.
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.