Einige Gedanken zur Idee, Module automatisch miteinander zu verbinden...
Dennoch - die Idee, Komponenten, die offensichtlich "zusammenpassen", automatisch miteinander zu verbinden, klingt logisch...
Also erstellen wir automatische Verbindungen nur zwischen zwei auszuwählenden Modulen? Aber wie soll die Interqaktionsmetapher aussehen, die diesen Prozess startet? Drag'n'Drop ist aus meiner Sicht zu ungenau. Ich habe mir daher eine andere Möglichkeit einfallen lassen: Die Außenkanten der Module sind jetzt magnetisch - sie ecken sozusagen aneinander an.
Wenn ein Modul mit seinen Outputslots an die Inputslots eines anderen aneckt, ist dies das Signal, automatisch Verbindungen zwischen zueinander "passenden" Slots zu erstellen.
Setzt man dies als Kriterium an, stellt man aber schnell fest, dass dadurch fast jeder Outputslot mit jedem Inputslot verbunden wird - daher funktioniert das nicht.
Es ist auch keine Lösung, den automatischen Verbindungsaufbau dadurch einzuschränken, dass er nur dann erfolgt, wenn weder Aus- noch Eingang bisher mit einem anderen Modul verbunden sind. Das kann man sich am Beispiel eines Taktgeber-Moduls veranschaulichen: dort ist es ja So., dass wahrscheinlich gerade mehrere Module von seinem Taktausgang gesteuert werden sollen.
Man könnte dazu die Informationen im PropertyDescriptor nehmen, die im Attribut preferred steckt. Das würde aber nur auf Properties - mit anderen Worten Ausgänge - wirken und nicht auf Eingänge. Darüber hinaus kennzeichnet dieses Attribut laut Dokumentation die Properties, die an prominenter Position in der GUI platziert werden sollen - also wahrscheinlich nichts mit dem Erstellen von Verbindungen zu tun haben...
Man könnte den Ein- und Ausgängen selbst definierte Flags zuordnen, die einen Ein- oder Ausgang zweifelsfrei als solchen markieren, der die automatische Erzeugung von Verbindungen erlauben soll. In diesem Fall funktioniert diese Erstellung aber mit keinem Modul, das von Entwicklern geschaffen wurde, bevor das Feature "automatische Verbindungserstellung aktiviert wurde. Wenn ein Anwender nun verschiedene Module auf den Arbeitstisch zieht und versucht, diese per Automatik zu verbinden, dabei aber solcche erwischt, die dieses Flag nicht aufweisen, wird er nach dem dritten vergeblichen Versuch denken "Feature funktioniert nicht - mach ichs eben per Hand".
Ein möglicher Ausweg wäre die visuelle Markierung von Modulen, die die Automatik unterstützen - etwa durch Embleme...
Ein Seiteneffekt der Untersuchungen rund um das Thema war die Erweiterung der Interaktionsmöglichkeiten mit Verbindungen: ein Klick mit der linken Maustaste auf eine Verbindung schaltet sie zwischen den Stati aktiv und inaktiv um. Klickt man bei gehaltener Feststelltaste auf eine Verbindung, wird diese sofort entfernt.
Praktisch wurden von den hier vorgestellten Ideen zwei erprobt: die Erstellung von Verbindungen lediglich basierend auf der Kompatibilität ihrer Datentypen und die Markierung von "geeigneten" Slots per BeanInfo-Attributen. Die letztere wird hier in einem kurzen Video veranschaulicht: Das Modul Clock hat einen Ausgang, das Modul GaussianRandomBoxMuller je einen Aus- und Eingang und das Modul Sink einen Eingang, die als mögliche Kandidaten für die automartische Erstellung von Verbindungen gekennzeichnet wurden - zu erkennen jeweils an den Dekorationen rechts oben.
26.03.2017
Da ich - wie ich neulich in einer Kommunikation mit einem geschätzten Kollegen zum erstenmal explizit realisierte - dWb+ schon länger pflege als es die Herstellerfirma anderer Produkte überhaupt gibt, bin ich dennoch nicht zu stolz, neue Ideen einfließen zu lassen...
Vorhaben 2020
03.01.2020
Genau wie letztes Jahr habe ich auch dieses Jahr wieder ein "Listche" verfasst, um mir all die interessanten Vorhaben zu notieren, die ich mit mittlerem zeitlichen Horizont anzugehen gedenke.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Nach dem ersten Teil von mir als interessant eingestufter Vorträge des Chaos Communication Congress 2024 hier nun die Nachlese
Weiterlesen...Nach dem So - wie auch im letzten Jahr: Meine Empfehlungen für Vorträge vom Chaos Communication Congress 2024 - vulgo: 38c3:
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, muss 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 Codeberg-Repositories findet man hier.