LUMIERA.clone/wiki/thinkPad.ichthyo.mm
Ichthyostega 94edb5de86 BufferMetadata: likewise abandon use of function comparison for buffer handlers
The existing implementation created a Buffer-Type based on various traits,
including the constructor and destructor functions for the buffer content.
However, this necessitates calculating the hash_value of a std::function,
which (see #294) is generally not possible to implement.

So with this changeset we now store an additional identity hash value
right into the TypeHandler, based on the target type placed into the buffer
2019-06-23 18:57:21 +02:00

46386 lines
2.1 MiB

<map version="1.0.1">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node BACKGROUND_COLOR="#6666ff" CREATED="1434127882200" ID="ID_1452170048" MODIFIED="1557498707243" STYLE="fork" TEXT="Lumi">
<font NAME="SansSerif" SIZE="25"/>
<node CREATED="1434128046296" ID="ID_1900827283" MODIFIED="1557498707213" POSITION="right" TEXT="GUI">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1434128054470" HGAP="7" ID="ID_1166611516" MODIFIED="1557498707213" TEXT="Workflow" VSHIFT="-15">
<node CREATED="1455289597596" ID="ID_970065036" MODIFIED="1557498707213" TEXT="work site"/>
<node CREATED="1455289466261" ID="ID_273679080" MODIFIED="1557498707213" TEXT="PresentationState"/>
<node CREATED="1487210691163" ID="ID_1259700796" MODIFIED="1557498707214" TEXT="konzeptioneller Rahmen">
<linktarget COLOR="#34dbd3" DESTINATION="ID_1259700796" ENDARROW="Default" ENDINCLINATION="473;607;" ID="Arrow_ID_114106295" SOURCE="ID_1430752735" STARTARROW="None" STARTINCLINATION="-1346;-1090;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1487210978300" ID="ID_1502972928" MODIFIED="1557498707214" TEXT="Spot == wo wir sind"/>
<node CREATED="1487211011447" ID="ID_61564732" MODIFIED="1557498707214" TEXT="Work Site == wo wir sein k&#xf6;nnen"/>
<node CREATED="1487211200966" ID="ID_1565474518" MODIFIED="1557498707214" TEXT="Focus == Realisierung des Spot in einem ControlSystem"/>
<node CREATED="1487211243656" ID="ID_953924547" MODIFIED="1557498707214" TEXT="ControlSystem == Steuerungs-Paradigma">
<node CREATED="1487211263461" ID="ID_374086294" MODIFIED="1557498707214" TEXT="Maus / current element"/>
<node CREATED="1487211266901" ID="ID_306043379" MODIFIED="1557498707214" TEXT="Keyboard / Input Focus"/>
</node>
<node CREATED="1487211777687" ID="ID_577769257" MODIFIED="1557498707214" TEXT="Focus Path == kanonische Koordinaten innerhalb von einem UI Frame"/>
<node CREATED="1487211825857" ID="ID_883246945" MODIFIED="1557498707214" TEXT="UI Frame == top-level-Segment (konkret: WorkspaceWindow)"/>
<node CREATED="1487212066024" ID="ID_378199749" MODIFIED="1557498707214" TEXT="Spot Locator == das was navigiert wird, wenn sich der Spot bewegt"/>
</node>
</node>
<node CREATED="1477784761581" HGAP="72" ID="ID_854334914" MODIFIED="1557498707214" TEXT="Rahmen" VGAP="19" VSHIFT="-21">
<node CREATED="1481320580216" ID="ID_1418071897" MODIFIED="1557498707214" TEXT="vorantreiben">
<node CREATED="1501776053522" ID="ID_664046169" MODIFIED="1557498707214" TEXT="R&#xfc;ckpfad Session -&gt; UI">
<node CREATED="1501776081782" ID="ID_1369579979" MODIFIED="1557498707214" TEXT="warum wichtig?">
<icon BUILTIN="help"/>
<node CREATED="1501776102419" ID="ID_1120643044" MODIFIED="1557498707214" TEXT="full circle"/>
<node CREATED="1501776110026" ID="ID_53068153" MODIFIED="1557498707214" TEXT="asynchron"/>
<node CREATED="1501776132767" ID="ID_1853082326" MODIFIED="1557498707214" TEXT="treibt Diff-System"/>
</node>
<node CREATED="1501776157116" ID="ID_198311058" MODIFIED="1557498707214" TEXT="wie">
<node CREATED="1501776171290" ID="ID_1964256208" MODIFIED="1557498707214" TEXT="Diffs in Proc erzeugen"/>
<node CREATED="1501776183817" ID="ID_415789885" MODIFIED="1557498707214" TEXT="an UiNotification schicken">
<arrowlink COLOR="#9292a1" DESTINATION="ID_1578367045" ENDARROW="Default" ENDINCLINATION="45;-124;" ID="Arrow_ID_1265828105" STARTARROW="None" STARTINCLINATION="389;0;"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1501940591109" ID="ID_1925240675" MODIFIED="1557498707214" TEXT="#1099 DemoGuiRoundtrip">
<arrowlink COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" STARTARROW="None" STARTINCLINATION="-7;605;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1501940627280" ID="ID_1675066241" MODIFIED="1557498707214" TEXT="Dummy-Code im UI"/>
<node CREATED="1501940632871" ID="ID_189611570" MODIFIED="1557498707214" TEXT="Dummy Proc-Command"/>
<node CREATED="1501940639479" ID="ID_1314787910" MODIFIED="1557498707214" TEXT="komplettes Ping-Pong"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1481320590214" ID="ID_635303062" MODIFIED="1557498707214" TEXT="#1042 DummySessionConnection">
<arrowlink COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-36;-73;" ID="Arrow_ID_1867016690" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<arrowlink COLOR="#f9b709" DESTINATION="ID_330280074" ENDARROW="Default" ENDINCLINATION="-37;-88;" ID="Arrow_ID_779644313" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<arrowlink COLOR="#f9b709" DESTINATION="ID_791449946" ENDARROW="Default" ENDINCLINATION="-842;-559;" ID="Arrow_ID_1347689482" STARTARROW="None" STARTINCLINATION="-81;124;"/>
<arrowlink COLOR="#f9b709" DESTINATION="ID_1478381189" ENDARROW="Default" ENDINCLINATION="-1009;-357;" ID="Arrow_ID_1072548081" STARTARROW="None" STARTINCLINATION="-87;103;"/>
<icon BUILTIN="idea"/>
<node CREATED="1481320639544" ID="ID_1440497947" MODIFIED="1557498707214" TEXT="Singleton"/>
<node CREATED="1481320642455" ID="ID_1938045938" MODIFIED="1557498707214" TEXT="hat fake Session content"/>
<node CREATED="1481320650486" ID="ID_155238526" MODIFIED="1557498707214" TEXT="bietet fake Commands"/>
<node CREATED="1481320666196" ID="ID_1580591981" MODIFIED="1557498707214" TEXT="plus zugeh&#xf6;rige Diagnostik"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419217662" ID="ID_1622732481" MODIFIED="1557498707214" TEXT="#1147 establish UI start-up sequence">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538839140096" ID="ID_1491571377" MODIFIED="1557498707214" TEXT="#1145 define startup sequence">
<icon BUILTIN="pencil"/>
<node CREATED="1538839163477" ID="ID_840651927" MODIFIED="1557498707214" TEXT="&quot;eigentlich&quot; schon erledigt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1538839170700" ID="ID_172497653" MODIFIED="1557498707214" STYLE="fork">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b><font color="#e01f1f">TODO</font></b>: Infos zusammentragen und dokumentieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1538839205056" ID="ID_1118716259" MODIFIED="1557498707215" TEXT="Lumiera Website -- Design-Sektion">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1531419242634" ID="ID_1022049727" MODIFIED="1557498707215" TEXT="Interfaces hochfahren">
<arrowlink COLOR="#effa97" DESTINATION="ID_687951877" ENDARROW="Default" ENDINCLINATION="-340;-552;" ID="Arrow_ID_1500281313" STARTARROW="None" STARTINCLINATION="-245;17;"/>
</node>
<node CREATED="1531419250684" ID="ID_1850773836" MODIFIED="1557498707215" TEXT="Verbindungsstrukturen installieren">
<arrowlink COLOR="#fee998" DESTINATION="ID_176564515" ENDARROW="Default" ENDINCLINATION="-1211;-7367;" ID="Arrow_ID_157207334" STARTARROW="None" STARTINCLINATION="-617;103;"/>
</node>
</node>
</node>
<node CREATED="1538938685096" HGAP="138" ID="ID_511824194" MODIFIED="1557498707215" TEXT="gr&#xfc;nden" VSHIFT="42">
<node CREATED="1477784793993" ID="ID_1868522177" MODIFIED="1557498707215" TEXT="Umbau">
<linktarget COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" SOURCE="ID_707273464" STARTARROW="None" STARTINCLINATION="1984;197;"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1477784813895" ID="ID_1343270939" MODIFIED="1557498707215" TEXT="Model durch UI-Bus ersetzen">
<linktarget COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-36;-73;" ID="Arrow_ID_1867016690" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-197;638;" ID="Arrow_ID_1686519160" SOURCE="ID_202253849" STARTARROW="Default" STARTINCLINATION="-83;-1020;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1481320683706" ID="ID_1226263415" MODIFIED="1557498707215" TEXT="kl&#xe4;ren, wo der Bus aufgeh&#xe4;ngt wird">
<icon BUILTIN="button_ok"/>
<node CREATED="1481331063782" ID="ID_1606852933" MODIFIED="1557498707215" TEXT="Lifecycle-Frontend UI-Bus"/>
<node CREATED="1481331150275" ID="ID_814186655" MODIFIED="1557498707215" TEXT="CoreService als PImpl"/>
<node CREATED="1481333616753" ID="ID_709873899" MODIFIED="1557498707215" TEXT="Nexus ist Teil von CoreService"/>
<node CREATED="1481335769192" ID="ID_1335469664" MODIFIED="1557498707215" TEXT="Interface-Manager gleicherma&#xdf;en"/>
</node>
<node COLOR="#338800" CREATED="1481320693912" ID="ID_918908848" MODIFIED="1557498707215" TEXT="Lebenszyklus kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
<node CREATED="1481332855167" ID="ID_362694314" MODIFIED="1557498707215">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#cf1445">AUA</font>: Henne oder Ei?
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1481332888362" ID="ID_85978592" MODIFIED="1557498707215" TEXT="Nexus braucht CoreService braucht Nexus...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn:
</p>
<ul>
<li>
Nexus verwendet CoreService als &quot;upstream&quot;, um <i>alle sonstigen Nachriten</i>&#160;dorthin zuzustellen
</li>
<li>
CoreService hat Nexus als Upstream, um mit dem restlichen System kommunizieren zu k&#246;nnen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1481332999091" ID="ID_1793743943" MODIFIED="1557498707215" TEXT="Problem ist: ich wollte Nexus nicht speziell konstruieren"/>
<node CREATED="1481338218216" ID="ID_128336616" MODIFIED="1557498707215" TEXT="L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node CREATED="1481338222672" ID="ID_318056010" MODIFIED="1557498707215" TEXT="Bus-Term greift tats&#xe4;chlich nicht auf Uplink zu">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist: im ctor
</p>
<p>
Es speichert nur die Referenz
</p>
<p>
</p>
<p>
Ganz anders Model::Tangible: dieses registriert sich bei der Konstruktion
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481338237550" ID="ID_781727426" MODIFIED="1557498707215" TEXT="kann also eine Referenz auf lokalen Speicher reinreichen"/>
<node CREATED="1481338295614" ID="ID_1811061645" MODIFIED="1557498707215" TEXT="Folglich mu&#xdf; Nexus lokal in CoreServices angesiedelt werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
oder anders herum,
</p>
<p>
aber so herum macht es mehr Sinn
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node CREATED="1481335696027" ID="ID_785830602" MODIFIED="1557498707215" TEXT="Lebenszyklus generell unsauber">
<node CREATED="1481335709297" ID="ID_1340554881" MODIFIED="1557498707215" TEXT="Ticket #1048"/>
<node CREATED="1481335723887" ID="ID_689818706" MODIFIED="1557498707215" TEXT="GtkLumiera ist ein Singleton">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1481335735901" ID="ID_185489405" MODIFIED="1557498707215" TEXT="das lebt so viel zu lange">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1481338348143" ID="ID_713195335" MODIFIED="1557498707215" TEXT="Entscheidung">
<icon BUILTIN="yes"/>
<node CREATED="1481338354702" ID="ID_1755264056" MODIFIED="1557498707215" TEXT="CoreServices ist das Lebenszyklus-PImpl"/>
<node CREATED="1481338363965" ID="ID_1656280824" MODIFIED="1557498707215" TEXT="wenn geschlossen, mu&#xdf; das ganze &#xfc;brige GUI schon tot sein"/>
<node CREATED="1481338393113" ID="ID_1854005469" MODIFIED="1557498707215" TEXT="Warn-Log hierf&#xfc;r eingebaut">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481338408983" ID="ID_516483369" MODIFIED="1557498707215" TEXT="k&#xf6;nnte sp&#xe4;ter sogar eine Exception sein">
<icon BUILTIN="help"/>
</node>
<node CREATED="1484871442777" ID="ID_492545805" MODIFIED="1557498707215">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
CoreService hat <i>keine volle</i>&#160;Bus-Connection
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hab ich mir jetzt explizit so &#252;berlegt und es ist sinnvoll.
</p>
<p>
Nur ein Tangible kann eine volle Bus-Connection haben, und das hei&#223;t,
</p>
<p>
es kann downlink-Nachrichten bekommen. Dagegen hat CoreService lediglich ein &quot;freistehendes&quot;
</p>
<p>
BusTerm, das damit Nachrichten an den Nexus schicken kann.
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1481320699056" ID="ID_728332859" MODIFIED="1557498707216" TEXT="wo kommen die CoreServices hin">
<icon BUILTIN="button_ok"/>
<node CREATED="1481338456152" ID="ID_266095129" MODIFIED="1557498707216" TEXT="sie leben im Objekt Ui-Bus"/>
<node CREATED="1481338465823" ID="ID_78520725" MODIFIED="1557498707216" TEXT="und zwar als PImpl"/>
<node CREATED="1481338478069" ID="ID_406101846" MODIFIED="1557498707216" TEXT="und UI-Bus lebt im lokalen scope von GtkLumiera::main()"/>
</node>
<node COLOR="#338800" CREATED="1481320759472" ID="ID_687951877" MODIFIED="1557498707216" TEXT="Interfaces &#xf6;ffnen">
<linktarget COLOR="#effa97" DESTINATION="ID_687951877" ENDARROW="Default" ENDINCLINATION="-340;-552;" ID="Arrow_ID_1500281313" SOURCE="ID_1022049727" STARTARROW="None" STARTINCLINATION="-245;17;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1481320765135" ID="ID_379585622" MODIFIED="1557498707216">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
UI: <b>GuiNotification</b>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#51517b" DESTINATION="ID_379585622" ENDARROW="Default" ENDINCLINATION="-476;439;" ID="Arrow_ID_1616528570" SOURCE="ID_1324099152" STARTARROW="Default" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1484792679322" HGAP="13" ID="ID_426218722" MODIFIED="1557498707216" TEXT="#1047 preliminary definition of GuiNotification facade" VSHIFT="-3">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
4/18 inzwischen hier alles gekl&#228;rt.
</p>
<p>
Wartet nur noch auf proof-of-concept (DemoGuiRoundtrip)
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1493753178082" ID="ID_152757560" MODIFIED="1557498707216" TEXT="grunds&#xe4;tzliche Architektur gekl&#xe4;rt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...h&#228;ngt am UI-Bus,
</p>
<p>
aber nur via einfacher &quot;uplink&quot;-Verbindung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1493753215852" ID="ID_1971120" MODIFIED="1557498707216" TEXT="gekl&#xe4;rt: wie kann man Shutdown implementieren">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1493753249399" ID="ID_575609638" MODIFIED="1557498707216" TEXT="gekl&#xe4;rt: #1098 hand-Over in UI-Thread">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1501776210069" ID="ID_228920906" MODIFIED="1557498707216" TEXT="gekl&#xe4;rt: konkrete Diff-Nachrichten">
<icon BUILTIN="help"/>
</node>
</node>
<node COLOR="#5c1010" CREATED="1501776256263" HGAP="21" ID="ID_1196529588" MODIFIED="1557498707216" TEXT="Bedeutung" VSHIFT="-11">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1501776296394" ID="ID_1578367045" MODIFIED="1557498707216" TEXT="R&#xfc;ckpfad Proc -&gt; UI">
<linktarget COLOR="#9292a1" DESTINATION="ID_1578367045" ENDARROW="Default" ENDINCLINATION="45;-124;" ID="Arrow_ID_1265828105" SOURCE="ID_415789885" STARTARROW="None" STARTINCLINATION="389;0;"/>
</node>
<node CREATED="1501776305305" ID="ID_1193603370" MODIFIED="1557498707216" TEXT="Abstraktion des GUI"/>
<node CREATED="1501776319543" ID="ID_641656399" MODIFIED="1557498707216">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Sicht <i>&quot;von unten&quot;</i>
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538267608198" FOLDED="true" HGAP="39" ID="ID_181594780" MODIFIED="1557498707216" TEXT="pa&#xdf;t der Name" VSHIFT="21">
<icon BUILTIN="help"/>
<node COLOR="#435e98" CREATED="1533915343891" ID="ID_1650034681" MODIFIED="1538267897031" TEXT="&#xdc;berlegungen">
<icon BUILTIN="info"/>
<node CREATED="1533915353434" ID="ID_1231213592" MODIFIED="1533915424732" TEXT="ist mehr als &quot;notification&quot;?">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533915365545" ID="ID_892577975" MODIFIED="1538267801552" TEXT="ja -- aber vorerst nicht relevant">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1533915439279" ID="ID_285136109" MODIFIED="1533915452025" TEXT="Notification auf Architektur-Level"/>
</node>
<node CREATED="1533915371872" ID="ID_1003239787" MODIFIED="1533915380406" TEXT="GuiFeedback?">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533915407171" ID="ID_728064464" MODIFIED="1533915412457" TEXT="GuiReaction">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538263882239" ID="ID_1273122422" MODIFIED="1538263888584" TEXT="GuiResponse">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533915454893" ID="ID_877610316" MODIFIED="1538267861452" TEXT="GuiNotification ist nicht schlecht">
<icon BUILTIN="yes"/>
<node CREATED="1533915472186" ID="ID_1748932158" MODIFIED="1533915479325" TEXT="GuiFeedback w&#xfc;rde auch gehen"/>
<node CREATED="1533915480649" ID="ID_846895155" MODIFIED="1533915485628" TEXT="aber klingt nicht so sch&#xf6;n"/>
<node CREATED="1533915486336" ID="ID_627537189" MODIFIED="1533915508660" TEXT="und ist doppeldeutig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es k&#246;nnte auch den Feedback des Users meinen
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538267874378" ID="ID_1732454504" MODIFIED="1538267888571" TEXT="Umbenennen in GuiResponse">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node CREATED="1484877839299" HGAP="23" ID="ID_957622878" MODIFIED="1557498707216" TEXT="Asynchrones Protokoll" VSHIFT="1">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484877856640" ID="ID_1256835676" MODIFIED="1557498707216" TEXT="bedenke: alle Aktionen m&#xfc;ssen in den Event-Thread"/>
<node CREATED="1484877868015" ID="ID_1612427727" MODIFIED="1557498707216" TEXT="&#xfc;ber die Rolle des GUI-Modells nachdenken!"/>
</node>
<node COLOR="#338800" CREATED="1481502305995" ID="ID_1943234904" MODIFIED="1557498707216" TEXT="direkt vom UiManager betrieben">
<icon BUILTIN="button_ok"/>
<node CREATED="1481502320065" HGAP="-23" ID="ID_1298358905" MODIFIED="1557498707216" TEXT="bisher vom GuiRunner betrieben" VSHIFT="-26">
<icon BUILTIN="info"/>
<node CREATED="1481502327528" ID="ID_75293128" MODIFIED="1557498707216" TEXT="das ist ohnehin schlecht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil es dadurch passieren k&#246;nnte,
</p>
<p>
da&#223; die Konstruktion des GuiRunners schon scheitert, bevor der Rumpf des ctors aufgerufen wird.
</p>
<p>
In einem solchen Fall wird leider auch der Rumpf des dtors nicht aufgerufen, wodurch das
</p>
<p>
Term-Signal nicht ausgesendet w&#252;rde.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1481502335583" ID="ID_1245191241" MODIFIED="1557498707216" TEXT="Felder im GuiRunner sollten noexcept sein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1484793048273" ID="ID_66499328" MODIFIED="1557498707216" TEXT="verschoben">
<arrowlink COLOR="#4072ad" DESTINATION="ID_1019455888" ENDARROW="Default" ENDINCLINATION="6;-96;" ID="Arrow_ID_693735378" STARTARROW="None" STARTINCLINATION="-105;33;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1484793113472" ID="ID_221612387" MODIFIED="1557498707216" TEXT="Lebenszyklus nochmal pr&#xfc;fen">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484797253856" ID="ID_226245696" MODIFIED="1557498707216" TEXT="GUI start sauber">
<linktarget COLOR="#77c1c5" DESTINATION="ID_226245696" ENDARROW="Default" ENDINCLINATION="-1683;73;" ID="Arrow_ID_532646791" SOURCE="ID_1843835835" STARTARROW="None" STARTINCLINATION="3001;448;"/>
<icon BUILTIN="broken-line"/>
<node CREATED="1484797307376" ID="ID_842106541" MODIFIED="1557498707216" TEXT="Abfolge">
<icon BUILTIN="info"/>
<node CREATED="1484797311008" ID="ID_424744338" MODIFIED="1557498707216" TEXT="GuiFacade::start"/>
<node CREATED="1484797337516" ID="ID_750979034" MODIFIED="1557498707216" TEXT="erzeugt unique_ptr&lt;GuiRunner&gt;"/>
<node CREATED="1484797370352" ID="ID_622906815" MODIFIED="1557498707216" TEXT="dieser hat GuiHandle als member">
<node CREATED="1484797379239" ID="ID_1948690926" MODIFIED="1557498707216" TEXT="l&#xe4;d Plugin"/>
<node CREATED="1484797399756" ID="ID_1084903350" MODIFIED="1557498707216" TEXT="ruft im ctor launchUi()"/>
</node>
<node CREATED="1484797429160" ID="ID_959278184" MODIFIED="1557498707216" TEXT="gtk-lumiera.cpp">
<node CREATED="1484797432999" ID="ID_1571358017" MODIFIED="1557498707216" TEXT="implementiert GUI-Plugin"/>
<node CREATED="1484797442686" ID="ID_83446606" MODIFIED="1557498707216" TEXT="launchUI -&gt; erzeugt GUI-Thread"/>
</node>
<node CREATED="1484797483865" ID="ID_159090609" MODIFIED="1557498707216" TEXT="GuiThread (==runGUI())">
<node CREATED="1484797502462" ID="ID_21819368" MODIFIED="1557498707216" TEXT="erzeugt GtkLumiera"/>
<node CREATED="1484797512341" ID="ID_57994807" MODIFIED="1557498707216" TEXT="ruft darauf run()">
<node CREATED="1501854771820" ID="ID_1849270384" MODIFIED="1557498707216" TEXT="erzeugt UI-Backbone">
<arrowlink COLOR="#577ca7" DESTINATION="ID_1734603717" ENDARROW="Default" ENDINCLINATION="-18;-71;" ID="Arrow_ID_1972220174" STARTARROW="None" STARTINCLINATION="-130;2;"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544238872425" HGAP="71" ID="ID_478753729" MODIFIED="1557498707216" TEXT="hier kann ein ungesch&#xfc;tzter Fehler passieren" VSHIFT="-58">
<linktarget COLOR="#e02825" DESTINATION="ID_478753729" ENDARROW="Default" ENDINCLINATION="-3550;0;" ID="Arrow_ID_840138296" SOURCE="ID_1795051800" STARTARROW="None" STARTINCLINATION="-69;-346;"/>
<linktarget COLOR="#e02825" DESTINATION="ID_478753729" ENDARROW="Default" ENDINCLINATION="-3550;0;" ID="Arrow_ID_390741072" SOURCE="ID_138383314" STARTARROW="None" STARTINCLINATION="-1804;756;"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
<node CREATED="1484797517052" ID="ID_840628023" MODIFIED="1557498707216" TEXT="l&#xf6;st das sigTerm aus"/>
</node>
</node>
<node CREATED="1484797531482" HGAP="104" ID="ID_1734603717" MODIFIED="1557498707216" TEXT="GtkLumiera::run()" VSHIFT="26">
<linktarget COLOR="#577ca7" DESTINATION="ID_1734603717" ENDARROW="Default" ENDINCLINATION="-18;-71;" ID="Arrow_ID_1972220174" SOURCE="ID_1849270384" STARTARROW="None" STARTINCLINATION="-130;2;"/>
<node CREATED="1484797543593" HGAP="-5" ID="ID_143907787" MODIFIED="1557498707216" TEXT="erzeugt UiBus" VSHIFT="-19">
<arrowlink COLOR="#74869a" DESTINATION="ID_1916035717" ENDARROW="Default" ENDINCLINATION="-84;2;" ID="Arrow_ID_355694260" STARTARROW="None" STARTINCLINATION="0;49;"/>
</node>
<node CREATED="1501855022131" ID="ID_1152163957" MODIFIED="1557498707216" TEXT="erzeugt UiManager">
<node CREATED="1501855161616" ID="ID_1916035717" MODIFIED="1557498707216" TEXT="verdrahtet mit UiBus">
<linktarget COLOR="#74869a" DESTINATION="ID_1916035717" ENDARROW="Default" ENDINCLINATION="-84;2;" ID="Arrow_ID_355694260" SOURCE="ID_143907787" STARTARROW="None" STARTINCLINATION="0;49;"/>
</node>
<node CREATED="1501855107127" FOLDED="true" ID="ID_135398487" MODIFIED="1557498707216" TEXT="erzeugt GlobalCtx">
<node CREATED="1501855278529" ID="ID_1800772710" MODIFIED="1518487921042" TEXT="UiBus&amp;"/>
<node CREATED="1501855278529" ID="ID_146051630" MODIFIED="1518487921042" TEXT="UiManager&amp;"/>
<node CREATED="1501855278529" ID="ID_217835618" MODIFIED="1518487921042" TEXT="WindowLocator"/>
<node CREATED="1501855278529" ID="ID_1549587580" MODIFIED="1518487921042" TEXT="InteractionDirector"/>
<node CREATED="1501855278529" ID="ID_1835031486" MODIFIED="1518487921042" TEXT="interact::Wizard"/>
</node>
<node CREATED="1501855218496" ID="ID_958941481" MODIFIED="1557498707216" TEXT="bindet Men&#xfc;-Actions"/>
</node>
<node CREATED="1501855040016" ID="ID_1016475327" MODIFIED="1557498707216" TEXT="erstellt Hautpfenster"/>
<node CREATED="1501855050087" ID="ID_1167747758" MODIFIED="1557498707216" TEXT="startet Event-Loop">
<node CREATED="1501855083654" ID="ID_207237338" MODIFIED="1557498707216" TEXT="uiManager.performMainLoop()"/>
<node CREATED="1538264133989" ID="ID_310550142" MODIFIED="1557498707216" TEXT="installiert fa&#xe7;ade-Interfaces">
<node CREATED="1484797620495" ID="ID_1710248767" MODIFIED="1557498707216" TEXT="NotificationService"/>
<node CREATED="1538264160993" ID="ID_1729118785" MODIFIED="1557498707216" TEXT="DisplayService"/>
</node>
<node CREATED="1484797557383" ID="ID_637078214" MODIFIED="1557498707216" TEXT="Gtk-Kit::run()"/>
</node>
</node>
<node CREATED="1484797573701" ID="ID_162958920" MODIFIED="1557498707216" TEXT="UiBus">
<node CREATED="1484797576972" ID="ID_1159570219" MODIFIED="1557498707216" TEXT="erzeugt CoreService">
<node CREATED="1484871312594" ID="ID_1351400025" MODIFIED="1557498707216" TEXT="erbt zwar von BusTerm"/>
<node CREATED="1484871321473" ID="ID_112216780" MODIFIED="1557498707216" TEXT="hat aber keine connection">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist: keine volle bidirektionale Connection,
</p>
<p>
denn CoreService ist kein Tangible. Das macht Sinn so, habe dar&#252;ber nachgedacht.
</p>
<p>
</p>
<p>
Anmerkung: ein &quot;frestehendes&quot; BusTerm ist valide und zugelassen, es hat halt nur eine uplink-Connection.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484871556194" ID="ID_1978811406" MODIFIED="1557498707216" TEXT="macht Sinn so">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
nur ein Tangible kann downlink-Nachrichten sinnvoll empfangen;
</p>
<p>
es mu&#223; dazu auch jede Menge Methoden implementieren.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484797584483" ID="ID_1316050570" MODIFIED="1557498707216" TEXT="dieser hat Member ">
<node CREATED="1484797623574" ID="ID_1754670675" MODIFIED="1557498707216" TEXT="Nexus"/>
<node CREATED="1538264091954" ID="ID_1287413267" MODIFIED="1557498707216" TEXT="StateManager"/>
</node>
</node>
</node>
</node>
<node CREATED="1501857011825" ID="ID_1201296805" MODIFIED="1557498707216" TEXT="Synchronisation">
<icon BUILTIN="info"/>
<node CREATED="1501857019737" ID="ID_1981037750" MODIFIED="1557498707216" TEXT="GuiSubsysDescriptor">
<node CREATED="1501857031391" ID="ID_1576806105" MODIFIED="1557498707216" TEXT="start h&#xe4;lt Lock">
<arrowlink COLOR="#31be34" DESTINATION="ID_1470293650" ENDARROW="Default" ENDINCLINATION="14;-46;" ID="Arrow_ID_681325673" STARTARROW="None" STARTINCLINATION="-84;0;"/>
</node>
<node CREATED="1501857073041" ID="ID_1936840706" MODIFIED="1557498707216" TEXT="erzeugt GuiRunner"/>
<node CREATED="1501857054324" ID="ID_907543967" MODIFIED="1557498707216" TEXT="reset facade-Pointer">
<linktarget COLOR="#4fa071" DESTINATION="ID_907543967" ENDARROW="Default" ENDINCLINATION="191;11;" ID="Arrow_ID_249160033" SOURCE="ID_1335129961" STARTARROW="None" STARTINCLINATION="134;-11;"/>
</node>
</node>
<node CREATED="1501857081496" ID="ID_1470293650" MODIFIED="1557498707216" TEXT="GuiRunner-ctor">
<linktarget COLOR="#31be34" DESTINATION="ID_1470293650" ENDARROW="Default" ENDINCLINATION="14;-46;" ID="Arrow_ID_681325673" SOURCE="ID_1576806105" STARTARROW="None" STARTINCLINATION="-84;0;"/>
<node CREATED="1501857138848" ID="ID_1487509134" MODIFIED="1557498707216" TEXT="l&#xe4;d Gui-Plugin"/>
<node CREATED="1501857152263" ID="ID_521610150" MODIFIED="1557498707216" TEXT="triggert auf diesem launchUI"/>
</node>
<node CREATED="1501857292596" ID="ID_453282087" MODIFIED="1557498707216" TEXT="Gui-Plugin-launchUI">
<node CREATED="1501857310890" ID="ID_1249679018" MODIFIED="1557498707216" TEXT="erzeugt UI-Thread"/>
<node CREATED="1501857327592" ID="ID_1036948610" MODIFIED="1557498707216" TEXT="dieser bindet an runGUI"/>
</node>
<node CREATED="1501857358387" ID="ID_807727617" MODIFIED="1557498707216" TEXT="runGUI">
<node CREATED="1501857365394" ID="ID_509238853" MODIFIED="1557498707217" TEXT="erzeugt GtkLumiera"/>
<node CREATED="1501857382808" ID="ID_1737939783" MODIFIED="1557498707217" TEXT="ruft darauf run() auf"/>
<node COLOR="#3f9476" CREATED="1501857391335" ID="ID_1248703286" MODIFIED="1557498707217" TEXT="nicht weiter synchronisiert">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1501857518526" ID="ID_837968815" MODIFIED="1557498707217" TEXT="Ende runGUI">
<node CREATED="1501857542075" ID="ID_767030758" MODIFIED="1557498707217" TEXT="aktiviert Term-Signal"/>
<node CREATED="1501857548922" ID="ID_1335129961" MODIFIED="1557498707217" TEXT="Lock auf GuiSubsysDescriptor">
<arrowlink COLOR="#4fa071" DESTINATION="ID_907543967" ENDARROW="Default" ENDINCLINATION="191;11;" ID="Arrow_ID_249160033" STARTARROW="None" STARTINCLINATION="134;-11;"/>
</node>
</node>
</node>
<node CREATED="1501857640582" ID="ID_1028796039" MODIFIED="1557498707217" TEXT="nach dem Subsys-Start">
<node CREATED="1501857649532" ID="ID_1041981988" MODIFIED="1557498707217" TEXT="l&#xe4;uft der UI-Thread">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1501857657707" ID="ID_35727639" MODIFIED="1557498707217">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
GtkLumiera <i>in Konstruktion</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1501857681920" ID="ID_473453255" MODIFIED="1557498707217">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
NotificationFacade <b>noch nicht offen</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1501857705277" ID="ID_1642619932" MODIFIED="1557498707217" TEXT="zuverl&#xe4;ssig">
<icon BUILTIN="idea"/>
<node CREATED="1501857709325" ID="ID_1889612043" MODIFIED="1557498707217" TEXT="entweder Start geht durch"/>
<node CREATED="1501857714988" ID="ID_158695659" MODIFIED="1557498707217" TEXT="oder scheitert und aktiviert Term-Signal"/>
</node>
</node>
<node CREATED="1501857864240" ID="ID_1721447002" MODIFIED="1557498707217" TEXT="UI-Bus">
<node CREATED="1501857867935" ID="ID_1896700254" MODIFIED="1557498707217" TEXT="Nexus vorhanden"/>
<node CREATED="1501857873711" ID="ID_1994626464" MODIFIED="1557498707217" TEXT="CoreService konstruiert"/>
<node CREATED="1501857903891" ID="ID_791583661" MODIFIED="1557498707217" TEXT="aber">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501857907682" ID="ID_881624439" MODIFIED="1557498707217" TEXT="GTK_Loop mu&#xdf; (noch) nicht laufen"/>
<node CREATED="1501857924928" ID="ID_1224004206" MODIFIED="1557498707217" TEXT="InteractionDirector mu&#xdf; (noch) nicht connected sein"/>
</node>
</node>
<node CREATED="1501858109615" ID="ID_747885327" MODIFIED="1557498707217" TEXT="UI-Facaden">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501858114023" ID="ID_749414376" MODIFIED="1557498707217">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
m&#252;ssen <b>eigens</b>&#160;aktiviert werden
</p>
</body>
</html></richcontent>
<linktarget COLOR="#5365b7" DESTINATION="ID_749414376" ENDARROW="Default" ENDINCLINATION="-480;-31;" ID="Arrow_ID_1567070366" SOURCE="ID_99706930" STARTARROW="None" STARTINCLINATION="295;-51;"/>
<icon BUILTIN="yes"/>
<node CREATED="1501859757091" ID="ID_1507399957" MODIFIED="1557498707217" TEXT="eigenen Callback schaffen"/>
<node CREATED="1501859763155" ID="ID_428809729" MODIFIED="1557498707217" TEXT="generische Komponente schaffen?"/>
<node CREATED="1538264423814" ID="ID_647239893" MODIFIED="1557498707217" TEXT="gel&#xf6;st durch Instantiieren des Facade-RAII-Objektes"/>
</node>
<node CREATED="1501858134796" ID="ID_1622427478" MODIFIED="1557498707217" TEXT="nachdem die UI-Loop l&#xe4;uft">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1538264444419" ID="ID_1493499325" MODIFIED="1557498707217" TEXT="hier wechselseitige Abh&#xe4;ngigkeit">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1538264482902" ID="ID_838939814" MODIFIED="1557498707217" TEXT="Instantiiiere gui::ctrl::Facade im Stack-Frame von UiManager::performMainLoop()"/>
<node CREATED="1538264545797" ID="ID_1760435858" MODIFIED="1557498707217" TEXT="Synchronisation qua Dispatch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
zwar sind die Fasaden offen, bevor die Main-Loop l&#228;uft,
</p>
<p>
jedoch werden genau durch diese Fasaden alle Aktionen per Dispatch
</p>
<p>
in die GTK-Loop &#252;bertragen. Und das kann nur <i>in der Loop selber</i>&#160; passieren.
</p>
<p>
Ein zu fr&#252;her bzw. zu sp&#228;ter Aufruf <i>&quot;f&#228;llt einfach hinten runter&quot;</i>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1484871163902" ID="ID_274722396" MODIFIED="1557498707217" TEXT="closeGuiModule (PImpl) hat Lock">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1484871188635" ID="ID_1922412139" MODIFIED="1557498707217" TEXT="Storage/Lebenzyklus des Term-Funktors (jetzt) OK">
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_375871642" ENDARROW="Default" ENDINCLINATION="-164;-16;" ID="Arrow_ID_896120556" STARTARROW="None" STARTINCLINATION="345;-16;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1484793022924" HGAP="36" ID="ID_1019455888" MODIFIED="1557498707217" TEXT="neuer Facade-Kontext" VSHIFT="-8">
<linktarget COLOR="#4072ad" DESTINATION="ID_1019455888" ENDARROW="Default" ENDINCLINATION="6;-96;" ID="Arrow_ID_693735378" SOURCE="ID_66499328" STARTARROW="None" STARTINCLINATION="-105;33;"/>
<icon BUILTIN="idea"/>
<node CREATED="1501866627055" ID="ID_1521184600" MODIFIED="1557498707217" TEXT="RAII-Stil"/>
<node CREATED="1501866591164" ID="ID_751026549" MODIFIED="1557498707217" TEXT="&#xf6;ffnet/schlie&#xdf;t die &#xf6;ffentlichen Interfaces"/>
</node>
<node CREATED="1481502251450" HGAP="96" ID="ID_1125529151" MODIFIED="1557498707217" TEXT="m&#xf6;glicher Race" VSHIFT="16">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484797174890" ID="ID_986391148" MODIFIED="1557498707217" TEXT="triggerShutdown() kommt bevor GuiNotification offen ist">
<icon BUILTIN="info"/>
</node>
<node CREATED="1484797210597" ID="ID_1555304752" MODIFIED="1557498707217" TEXT="ist das &#xfc;berhaupt ein Problem">
<icon BUILTIN="help"/>
<node CREATED="1484797230051" ID="ID_590420902" MODIFIED="1557498707217" TEXT="ja, weil dann das GUI weiterl&#xe4;uft">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1501867017251" ID="ID_1980251688" MODIFIED="1557498707217" TEXT="...und der shutdown-Proze&#xdf; blockt"/>
</node>
<node CREATED="1481502257825" HGAP="24" ID="ID_232782099" MODIFIED="1557498707217" TEXT="Gefahr gering, aber gegeben" VSHIFT="11">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil unser Thread-Framework
</p>
<p>
tats&#228;chlich <i>erzwingt,</i>&#160;da&#223; der neue Thrad zu laufen beginnt, bevor die
</p>
<p>
startende Funktion zur&#252;ckkehrt.
</p>
<p>
</p>
<p>
Daher k&#246;nnen wir zumindest annehmen, da&#223; die ganze Initialisierung
</p>
<p>
bereits l&#228;uft, wenn die start()-Funktion mit true (Erfolg) zur&#252;ckkommt.
</p>
<p>
</p>
<p>
Allerdings ist <i>definitiv</i>&#160;ein Race gegeben, und wenn
</p>
<p>
direkt beim Starten anderer Subsysteme nach dem GUI etwas schiefl&#228;uft,
</p>
<p>
dann kann der Shutdown-Proze&#223; den Start des GUI &#252;berholen.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1484797646771" HGAP="44" ID="ID_1605520996" MODIFIED="1557498707217" TEXT="Ausgestaltung" VSHIFT="10">
<icon BUILTIN="button_ok"/>
<node CREATED="1501859455212" ID="ID_751494565" MODIFIED="1557498707217" TEXT="Lebenszyklus">
<node CREATED="1484797663121" ID="ID_134980216" MODIFIED="1557498707217" TEXT="braucht Bus-Connection">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484797863862" FOLDED="true" ID="ID_464230340" MODIFIED="1557498707217" TEXT="zum Controller machen?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1484797872109" ID="ID_1877007933" MODIFIED="1518487921045" TEXT="Controller ist Tangible"/>
<node CREATED="1484797878364" ID="ID_93289471" MODIFIED="1518487921045" TEXT="hat damit automatisch BusTerm"/>
<node CREATED="1484799604429" ID="ID_1141687282" MODIFIED="1518487921045" TEXT="Design-Problem: sinnvolles Diff">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484799625306" ID="ID_443020211" MODIFIED="1518487921045" TEXT="aus den Fingern saugen">
<icon BUILTIN="help"/>
</node>
<node CREATED="1484799634233" ID="ID_1600517820" MODIFIED="1518487921045" TEXT="nur implementation-reuse">
<icon BUILTIN="help"/>
</node>
<node CREATED="1484799675388" HGAP="29" ID="ID_228932182" MODIFIED="1518487921045" TEXT="Idee: Attribute?" VSHIFT="18">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1484876010871" ID="ID_175784507" MODIFIED="1518487921045" TEXT="Design-Problem: restliches Tangible-Protokoll">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wirkt alles mehr oder weniger beliebig...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484875935505" ID="ID_1341415727" MODIFIED="1518487921046" TEXT="nein">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node COLOR="#338800" CREATED="1484875946312" FOLDED="true" ID="ID_271363232" MODIFIED="1557498707217" TEXT="ist ein BusTerm">
<icon BUILTIN="button_ok"/>
<node CREATED="1484875959342" ID="ID_1202046492" MODIFIED="1538268186367" TEXT="nur unidirektional zum Bus verbunden">
<icon BUILTIN="info"/>
</node>
<node CREATED="1484875968557" ID="ID_1406569407" MODIFIED="1518487921046" TEXT="ist hier genau angemessen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484875972588" ID="ID_1887863793" MODIFIED="1518487921046" TEXT="damit kann der Service mit dem UI reden">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1484799525344" FOLDED="true" ID="ID_640788614" MODIFIED="1557498707217" TEXT="mu&#xdf; sauber vom Nexus disconnecten">
<icon BUILTIN="button_ok"/>
<node COLOR="#ff0000" CREATED="1484799538686" ID="ID_1136883698" MODIFIED="1518487921046" TEXT="tut es nicht">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1484799551220" ID="ID_496503271" MODIFIED="1518487921046" TEXT="Fehlermeldung + Segfault">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
0000000937: ERR: core-service.hpp:111: worker_3: ~CoreService: Some UI components are still connected to the backbone.
</p>
<p>
Speicherzugriffsfehler
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484800480472" ID="ID_1441013524" MODIFIED="1518487921046" TEXT="Sanity-Check in CoreService anpassen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...mu&#223; diejenigen Bus-Verbindungen abziehen, die von Members dieser Klasse stammen
</p>
<ul>
<li>
CoreService selber
</li>
<li>
der NotificationService
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484802745625" FOLDED="true" ID="ID_375871642" MODIFIED="1538268103533" TEXT="Heisenbug">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_375871642" ENDARROW="Default" ENDINCLINATION="-164;-16;" ID="Arrow_ID_896120556" SOURCE="ID_1922412139" STARTARROW="None" STARTINCLINATION="345;-16;"/>
<icon BUILTIN="smily_bad"/>
<node CREATED="1484802752728" ID="ID_634426848" MODIFIED="1518487921046" TEXT="passiert beim Aufruf des TerminationHandle"/>
<node CREATED="1484802766966" ID="ID_370736554" MODIFIED="1518487921046">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn ich per Value capture, dann gibts schon
</p>
<p>
beim Start des GUI einen SEGFAULT
</p>
<p>
</p>
<p>
Und noch schlimmer: im Debugger gibts keinen
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#c80e33" CREATED="1484862058589" ID="ID_1640490030" MODIFIED="1533608413516" TEXT="Locking">
<icon BUILTIN="help"/>
<node COLOR="#338800" CREATED="1484865203945" ID="ID_1990023724" MODIFIED="1518487921046" TEXT="Locking in der GuiFacade ist korrekt">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484865231878" ID="ID_1054093321" MODIFIED="1518487921046" TEXT="im Gui-Thread kein Locking notwendig"/>
<node CREATED="1484865243724" ID="ID_617730067" MODIFIED="1518487921046" TEXT="HA! das Lambda vom Threadstart">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1484865278999" ID="ID_1656236909" MODIFIED="1533608413518" TEXT="aufgekl&#xe4;rt">
<icon BUILTIN="button_ok"/>
<node CREATED="1484865298093" ID="ID_1797078596" MODIFIED="1518487921046">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
die <i>Closure</i>&#160;eines Lambdas h&#228;ngt am Kontext
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484865316147" ID="ID_687373412" MODIFIED="1518487921047" TEXT="wenn ich den Thread mit Lambda starte..."/>
<node CREATED="1484865349366" ID="ID_652410738" MODIFIED="1518487921047" TEXT="betrifft das den term-Functor"/>
<node CREATED="1484865513568" ID="ID_696204655" MODIFIED="1518487921047" TEXT="selbst wenn der Funktor selber per Value &#xfc;bergeben wird">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
konkret:
</p>
<p>
der Kontext ist hier n&#228;mlich ein anderes Lambda, das dem Aufruf des GUI-Plugins mitgegeben wurde.
</p>
<p>
Dagegen die alte L&#246;sung erzeugte an dieser Stelle einen Bind-Ausdruck, und das war offenbar genug,
</p>
<p>
um nicht mehr von dem direkten Kontext abh&#228;ngig zu sein, in dem der Thread gestartet wurde.
</p>
<p>
</p>
<p>
Denn dieser Kontext (auf dem Stack) ist nat&#252;rlich lange schon weg, wenn der Thread
</p>
<p>
terminiert und dann tats&#228;chlich den Fuktor aufrufen m&#246;chte
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1484800741349" ID="ID_1156360682" MODIFIED="1518487921047">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Debug: nur <b>ein</b>&#160;Element connected
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1484800781408" ID="ID_183164357" MODIFIED="1518487921047" TEXT="n&#xe4;mlich der NotificationService">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1484875214137" ID="ID_977859942" MODIFIED="1518487921047" TEXT="nein: das ist genau OK">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484875222128" ID="ID_1133941591" MODIFIED="1518487921047" TEXT="CoreService ist nicht bidirektional angebunden">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node CREATED="1484876114521" ID="ID_1082250595" MODIFIED="1557498707217" TEXT="Protokoll zur Kommunikation">
<icon BUILTIN="info"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#4e0099" CREATED="1484876122960" ID="ID_31825421" MODIFIED="1557498707217" STYLE="fork" TEXT="UI-Bus nur im GUI-Thread">
<arrowlink COLOR="#6c5f80" DESTINATION="ID_489078622" ENDARROW="Default" ENDINCLINATION="725;-39;" ID="Arrow_ID_485145709" STARTARROW="None" STARTINCLINATION="1538;-37;"/>
<linktarget COLOR="#b7748e" DESTINATION="ID_31825421" ENDARROW="Default" ENDINCLINATION="560;150;" ID="Arrow_ID_1434676575" SOURCE="ID_935689465" STARTARROW="Default" STARTINCLINATION="587;44;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1484876143949" FOLDED="true" ID="ID_558559630" MODIFIED="1557498707217" TEXT="mu&#xdf; Nachrichten explizit &#xfc;bergeben">
<icon BUILTIN="button_ok"/>
<node CREATED="1531583488816" ID="ID_928145965" MODIFIED="1531583491643" TEXT="Dispatcher"/>
<node CREATED="1531583492656" ID="ID_1195055295" MODIFIED="1531583502490" TEXT="Queue mit explizitem Mutex-Locking"/>
<node CREATED="1531583503318" ID="ID_40184396" MODIFIED="1531583517752" TEXT="UI-Thread signalisieren per Gtk::Dispatcher"/>
</node>
<node COLOR="#338800" CREATED="1484876154492" ID="ID_669377427" MODIFIED="1557498707217" TEXT="an Locking denken">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1484797900185" FOLDED="true" ID="ID_1895372084" MODIFIED="1557498707217" TEXT="Protokoll zum Schlie&#xdf;en">
<icon BUILTIN="button_cancel"/>
<node CREATED="1484797920846" ID="ID_472054508" MODIFIED="1518487921047" TEXT="sollte Nachricht auf dem Bus sein">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1484797928661" ID="ID_256413655" MODIFIED="1518487921047" TEXT="sollte in das bestehende Protokoll passen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1501791850068" ID="ID_1334285372" MODIFIED="1518487921047" TEXT="pa&#xdf;t aber nicht wirklich">
<icon BUILTIN="stop-sign"/>
<node CREATED="1501791881175" ID="ID_361179647" MODIFIED="1518487921047" TEXT="jede L&#xf6;sung willk&#xfc;rlich"/>
<node CREATED="1501791876032" ID="ID_381137803" MODIFIED="1518487921047" TEXT="logisch unsinnig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil die Abstraktion &quot;UI-Element&quot; eben grade
</p>
<p>
die UI-internen Framework-Aspekte ausklammert.
</p>
<p>
</p>
<p>
Die Elemente stellen eine Abbildung der Strukturen aus der <i>Session</i>&#160;dar,
</p>
<p>
und ihre <i>&quot;Methoden&quot;</i>&#160;sind Commands auf der Session!
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node CREATED="1501859470962" ID="ID_99706930" MODIFIED="1557498707217">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mu&#223; eigens <b>aktiviert</b>&#160;werden
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5365b7" DESTINATION="ID_749414376" ENDARROW="Default" ENDINCLINATION="-480;-31;" ID="Arrow_ID_1567070366" STARTARROW="None" STARTINCLINATION="295;-51;"/>
<node CREATED="1501859557934" ID="ID_764787705" MODIFIED="1557498707217" TEXT="nach Start der UI-Loop"/>
<node CREATED="1501859566837" ID="ID_984712012" MODIFIED="1557498707217" TEXT="Verbindung zum CoreCtx">
<arrowlink COLOR="#4f547b" DESTINATION="ID_36527267" ENDARROW="Default" ENDINCLINATION="-424;-2038;" ID="Arrow_ID_134552555" STARTARROW="None" STARTINCLINATION="2623;0;"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1484797808349" FOLDED="true" HGAP="31" ID="ID_389264738" MODIFIED="1557498707217" TEXT="Notification-Funktionen" VSHIFT="11">
<icon BUILTIN="button_ok"/>
<node CREATED="1501854084264" HGAP="-42" ID="ID_1333991907" MODIFIED="1538263469663" TEXT="allgemein...." VSHIFT="-60">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501854094710" ID="ID_1146157818" MODIFIED="1538263469663" TEXT="Synchronisation">
<arrowlink COLOR="#a75677" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="-317;-24;" ID="Arrow_ID_274836249" STARTARROW="None" STARTINCLINATION="-647;-66;"/>
</node>
<node CREATED="1501854114284" ID="ID_168912186" MODIFIED="1538263469663" TEXT="Lebenszyklus"/>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1502411488645" FOLDED="true" ID="ID_1875294174" MODIFIED="1538840090150" TEXT="Fehler im UI">
<linktarget COLOR="#84b6b7" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1297;-64;" ID="Arrow_ID_245240331" SOURCE="ID_1177399909" STARTARROW="None" STARTINCLINATION="285;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1502411559060" ID="ID_1282973269" MODIFIED="1538263469663" TEXT="GTK nicht exception-safe">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1502411571690" ID="ID_878676751" MODIFIED="1538263469663" TEXT="aber was tun wenn....">
<icon BUILTIN="help"/>
<node CREATED="1503444108091" ID="ID_725326352" MODIFIED="1538263469663" TEXT="loggen und weitermachen"/>
<node CREATED="1503444117593" ID="ID_1115027114" MODIFIED="1538263469663" TEXT="loggen, Fehlerlog-Widget, weitermachen">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1503444163706" ID="ID_577766875" MODIFIED="1538263469663" TEXT="UI-Reset"/>
<node CREATED="1503444173752" ID="ID_65458957" MODIFIED="1538263469663" TEXT="(emergency)-shutdown"/>
</node>
<node CREATED="1502411595263" ID="ID_58102462" MODIFIED="1538263469663" TEXT="Fallunterscheidung">
<node CREATED="1502411604054" ID="ID_1705249614" MODIFIED="1538263469663" TEXT="Fehler im Feedback/Notify harmlos">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1502411612700" ID="ID_1951009863" MODIFIED="1538263469663" TEXT="Diff darf nicht scheitern">
<node CREATED="1503670572980" ID="ID_599888416" MODIFIED="1538263469663" TEXT="einzige Ausnahme">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1503670585794" ID="ID_1806860698" MODIFIED="1538268339103" TEXT="speziellen Handler verwenden">
<arrowlink COLOR="#6d8097" DESTINATION="ID_376091136" ENDARROW="Default" ENDINCLINATION="129;8;" ID="Arrow_ID_206696117" STARTARROW="None" STARTINCLINATION="147;13;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504203543467" ID="ID_285166941" MODIFIED="1538268298994" TEXT="TODO">
<icon BUILTIN="bell"/>
<node CREATED="1504203570199" ID="ID_577706469" MODIFIED="1518487921048" TEXT="welche Fehler kann Diff-Anwendung werfen?">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504203562616" ID="ID_1637738213" MODIFIED="1518487921048" TEXT="in generischen Diff-Aufruf einbauen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1503443968096" ID="ID_986919353" MODIFIED="1538263469663" TEXT="Implementierungs-Muster">
<node CREATED="1503443979619" ID="ID_1673104600" MODIFIED="1538263469663" TEXT="jedes einzelne Lambda in Fehlerhandler wrappen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1503443999616" ID="ID_601042478" MODIFIED="1538263469663" TEXT="generischer Fehlerhandler im Invocation-Lambda">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1503670528386" ID="ID_376091136" MODIFIED="1538263469663" TEXT="generischer Chain-Fehlerhandler">
<arrowlink COLOR="#5e6d7f" DESTINATION="ID_1933339677" ENDARROW="Default" ENDINCLINATION="201;-32;" ID="Arrow_ID_1887448672" STARTARROW="None" STARTINCLINATION="-44;52;"/>
<linktarget COLOR="#6d8097" DESTINATION="ID_376091136" ENDARROW="Default" ENDINCLINATION="129;8;" ID="Arrow_ID_206696117" SOURCE="ID_1806860698" STARTARROW="None" STARTINCLINATION="147;13;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1484797813373" ID="ID_536855363" MODIFIED="1538840099146" TEXT="generische Nachricht">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1484797818780" FOLDED="true" ID="ID_354397333" MODIFIED="1538840102986" TEXT="state mark">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1484877574046" ID="ID_251939815" MODIFIED="1538263469663" TEXT="Error">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1484877577550" ID="ID_258243919" MODIFIED="1538263469663" TEXT="Note">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1504203488690" FOLDED="true" ID="ID_149796171" MODIFIED="1538840105074" TEXT="Fehlermeldungen">
<linktarget COLOR="#c19dc4" DESTINATION="ID_149796171" ENDARROW="Default" ENDINCLINATION="1300;76;" ID="Arrow_ID_451002492" SOURCE="ID_821848615" STARTARROW="None" STARTINCLINATION="1509;156;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1504203497529" ID="ID_1933339677" MODIFIED="1538839626771" TEXT="#1102 brauche Fehlerlog-Widget">
<linktarget COLOR="#5e6d7f" DESTINATION="ID_1933339677" ENDARROW="Default" ENDINCLINATION="201;-32;" ID="Arrow_ID_1887448672" SOURCE="ID_376091136" STARTARROW="None" STARTINCLINATION="-44;52;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1504203643550" ID="ID_764647453" MODIFIED="1538263469663" TEXT="via InteractionDirector ansprechen"/>
<node CREATED="1504203694423" ID="ID_812129962" MODIFIED="1538263469663">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Fehlerlog-Anzeige <i>vorl&#228;ufig irgendwo....</i>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#7893b2" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="-499;-464;" ID="Arrow_ID_1590510093" STARTARROW="None" STARTINCLINATION="808;0;"/>
</node>
<node CREATED="1533688453675" ID="ID_528918224" MODIFIED="1538263469663" TEXT="l&#xe4;ngerfristige L&#xf6;sung">
<arrowlink COLOR="#9c95b1" DESTINATION="ID_1972484306" ENDARROW="Default" ENDINCLINATION="-3826;-1250;" ID="Arrow_ID_1735504887" STARTARROW="None" STARTINCLINATION="2269;1167;"/>
<node CREATED="1533688464386" ID="ID_1583348838" MODIFIED="1538263469663" TEXT="Wizard erzeugt NotificationController"/>
<node CREATED="1533688486631" ID="ID_1186891962" MODIFIED="1538263469664" TEXT="dieser alloziert bei Bedarf ein Anzeige-Widget"/>
<node CREATED="1533688504805" ID="ID_882148786" MODIFIED="1538263469664" TEXT="welches dann in das Infobox-Panel platziert wird"/>
</node>
</node>
<node CREATED="1504203511199" ID="ID_1027795869" MODIFIED="1538263469664" TEXT="Nachricht per UI-Bus senden"/>
</node>
<node COLOR="#338800" CREATED="1484797822403" FOLDED="true" HGAP="37" ID="ID_364545191" MODIFIED="1538840131323" TEXT="Diff" VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1502401930856" FOLDED="true" ID="ID_634125084" MODIFIED="1538839622321" TEXT="#1066 concept how to hand over diff messages">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502410099141" ID="ID_1388523431" MODIFIED="1538263469664" TEXT="unn&#xf6;tig: zwei Abstraktions-Typen">
<icon BUILTIN="stop-sign"/>
<node CREATED="1502410126058" ID="ID_30550435" MODIFIED="1538263469664" TEXT="MutationMessage"/>
<node CREATED="1502410130889" ID="ID_1402431306" MODIFIED="1538263469664" TEXT="DiffMessage"/>
</node>
<node CREATED="1502410149463" ID="ID_1909971032" MODIFIED="1538263469664" TEXT="Entscheidung f&#xfc;r DiffMessage">
<icon BUILTIN="yes"/>
<node CREATED="1502599977964" ID="ID_249258988" MODIFIED="1538263469664" TEXT="ist das bessere Konzept"/>
<node CREATED="1502599993338" ID="ID_1306432135" MODIFIED="1538263469664" TEXT="abstrahierter Iterator">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502600004168" ID="ID_1865027243" MODIFIED="1538263469664" TEXT="aber Name &#xbb;MutationMessage&#xab; beibehalten">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1502410165980" ID="ID_1450795292" MODIFIED="1538263469664" TEXT="MutationMessage entfernen">
<icon BUILTIN="button_ok"/>
<node CREATED="1502410176619" ID="ID_1188430411" MODIFIED="1538263469664" TEXT="AbstractTangible_test umschreiben"/>
<node CREATED="1502410190737" ID="ID_1036564813" MODIFIED="1538263469664" TEXT="operator string() in DiffMessage &#xfc;bernehmen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das ist n&#252;tzlich zur Diagnose,
</p>
<ul>
<li>
aber l&#228;&#223;t sich das &#252;berhaupt auf IterSource &#252;bertragen?
</li>
<li>
war es &#252;berhaupt je gerechtferigt? zu starke Annahme &#252;ber den Diff-Erzeuger!
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1502410328279" ID="ID_1577461232" MODIFIED="1538263469664" TEXT="Tree-Diff-Aplikator direkt in Nexus verschieben"/>
<node CREATED="1502410351284" ID="ID_845679527" MODIFIED="1538263469664" TEXT="BusTerm-API &#xe4;ndern"/>
</node>
</node>
<node CREATED="1484799660822" ID="ID_1288003894" MODIFIED="1538263469664" TEXT="TreeMutator binden">
<node CREATED="1502410730274" ID="ID_1631270974" MODIFIED="1538263469664" TEXT="passiert bisher in MutationMessage"/>
<node CREATED="1502410738992" ID="ID_1626925051" MODIFIED="1538263469664" TEXT="direkt in den Nexus verschieben">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1484877585605" ID="ID_101718446" MODIFIED="1538263469664" TEXT="verwende MutationMessage">
<icon BUILTIN="yes"/>
<node CREATED="1502401956093" ID="ID_322700967" MODIFIED="1538263469664" TEXT="MutationMessage von DiffMessage erzeugen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1502454601603" ID="ID_384770680" MODIFIED="1538263469664" TEXT="nein: MutationMessage wird &#xfc;berfl&#xfc;ssig">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502401987033" ID="ID_1584846573" MODIFIED="1538263469664" TEXT="erfordert Festlegung der Natur der Diff Message">
<arrowlink COLOR="#bdbad3" DESTINATION="ID_89098030" ENDARROW="Default" ENDINCLINATION="600;-1189;" ID="Arrow_ID_554743885" STARTARROW="None" STARTINCLINATION="1459;870;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1502402004383" ID="ID_1491065212" MODIFIED="1538263469664" TEXT="generisch bleiben?">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1502402012558" ID="ID_1846096533" MODIFIED="1538263469664" TEXT="IterSource verwenden">
<linktarget COLOR="#2579a2" DESTINATION="ID_1846096533" ENDARROW="Default" ENDINCLINATION="-5;149;" ID="Arrow_ID_896931950" SOURCE="ID_636092614" STARTARROW="None" STARTINCLINATION="158;5;"/>
<icon BUILTIN="forward"/>
<node CREATED="1502402691844" FOLDED="true" ID="ID_286774751" MODIFIED="1538263469664" TEXT="Diskussion">
<node CREATED="1502402022580" FOLDED="true" ID="ID_1661331763" MODIFIED="1533608415752" TEXT="Pro">
<node CREATED="1502402025820" ID="ID_1076820802" MODIFIED="1518487921050" TEXT="bestehende Framework"/>
<node CREATED="1502402031275" ID="ID_104571481" MODIFIED="1518487921050" TEXT="ownership management"/>
<node CREATED="1502402038690" ID="ID_921191865" MODIFIED="1518487921050" TEXT="schlankes Interface"/>
<node CREATED="1502402049305" ID="ID_20073652" MODIFIED="1518487921050" TEXT="eigentliche Diff-Erzeugung bleibt offen"/>
</node>
<node CREATED="1502402071222" FOLDED="true" ID="ID_905919540" MODIFIED="1533608415756" TEXT="Con">
<node CREATED="1502402075413" ID="ID_913770531" MODIFIED="1518487921050" TEXT="Komplexit&#xe4;t"/>
<node CREATED="1502402086268" FOLDED="true" ID="ID_380041258" MODIFIED="1533608415359" TEXT="zus&#xe4;tzliche Indirektion">
<node CREATED="1502402254582" ID="ID_218820320" MODIFIED="1518487921050" TEXT="DiffMutable beim Empf&#xe4;nger"/>
<node CREATED="1502402499053" ID="ID_587801464" MODIFIED="1518487921050" TEXT="TreeMutator beim Empf&#xe4;nger"/>
<node CREATED="1502402266284" ID="ID_1573858698" MODIFIED="1518487921050" TEXT="IterSource&lt;DiffStep&gt; beim Generator"/>
<node CREATED="1502402516275" ID="ID_334129744" MODIFIED="1518487921050">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ist schon <i>schlimm </i>genug....
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1502402213139" FOLDED="true" ID="ID_1233670694" MODIFIED="1533608415362" TEXT="nicht C-kompatibel">
<node CREATED="1502402286425" ID="ID_683015958" MODIFIED="1518487921051" TEXT="ja mei...">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1502402291209" ID="ID_1962599608" MODIFIED="1518487921051" TEXT="aber k&#xf6;nnte SWIG-kompatibel sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn eigentlich geht es nur um ein einfaches Producer-Interface,
</p>
<p>
das einen Element-Pointer durchreicht. Das einzige Problem, das ich sehe,
</p>
<p>
ist, da&#223; hier <i>ownership </i>&#252;bertragen wird.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1502402370534" ID="ID_1923477219" MODIFIED="1518487921051" TEXT="es geht hier um C++ (Proc) &lt;-&gt; C++ (GUI)"/>
</node>
</node>
</node>
<node CREATED="1502402701106" FOLDED="true" ID="ID_510901772" MODIFIED="1538263469664" TEXT="Abw&#xe4;gung">
<icon BUILTIN="yes"/>
<node CREATED="1502402718496" ID="ID_1641881714" MODIFIED="1518487921051" TEXT="mir gef&#xe4;llt die L&#xf6;sung zum ownerhsip management"/>
<node CREATED="1502402735558" ID="ID_1883129099" MODIFIED="1518487921051" TEXT="halte das f&#xfc;r eine gute Implementierungs-Struktur..."/>
<node CREATED="1502402757163" ID="ID_1525377159" MODIFIED="1518487921051" TEXT="denn der Client ist quasi gezwungen, den Erzeugungs-Kontext herauszuabstrahieren"/>
<node CREATED="1502402778960" FOLDED="true" ID="ID_577811618" MODIFIED="1533608415758" TEXT="Indirektion/Komplexit&#xe4;t">
<node CREATED="1502402798909" ID="ID_813337624" MODIFIED="1518487921051" TEXT="z&#xe4;hlt nicht wirklich, denn.."/>
<node CREATED="1502402810620" ID="ID_439896117" MODIFIED="1518487921051" TEXT="mit dem Diff-Konzept habe ich das bereits akzeptiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich
</p>
<ul>
<li>
ein sehr theoretisches und anspruchsvolles Konzept
</li>
<li>
der Zwang, das auf jedem Empf&#228;nger umzusetzen
</li>
<li>
die hablseidene Trickserei mit der konkreten Puffergr&#246;&#223;e
</li>
<li>
den double-dispatch im Diff-Framework selber
</li>
<li>
das Variant-basierte GenNode-Framework
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1502402998859" ID="ID_1462873166" MODIFIED="1518487921051">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das wird <i>sowiso</i>&#160;ein Desaster
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
</node>
<node CREATED="1502402830713" ID="ID_1666981219" MODIFIED="1518487921051" TEXT="was z&#xe4;hlt, ist die Entkoppelung"/>
</node>
</node>
</node>
<node CREATED="1502403145431" ID="ID_636092614" MODIFIED="1538263469664" TEXT="DiffMessage ist selber der Iterator">
<arrowlink COLOR="#2579a2" DESTINATION="ID_1846096533" ENDARROW="Default" ENDINCLINATION="-5;149;" ID="Arrow_ID_896931950" STARTARROW="None" STARTINCLINATION="158;5;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1484877658891" ID="ID_1855662071" MODIFIED="1538263469664" TEXT="Vorsicht: Storage / GUI-Thread">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484877696486" ID="ID_476867583" MODIFIED="1538263469664" TEXT="wir m&#xfc;ssen jede Aktion in den Event-Thread &#xfc;bergeben"/>
<node CREATED="1484877711388" ID="ID_407918505" MODIFIED="1538263469664">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, die Diff-<b>Implementierung</b>&#160;mu&#223; l&#228;nger leben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484877731337" ID="ID_1859059266" MODIFIED="1538263469664">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
faktisch erfolgt somit ein <b>Callback</b>&#160;aus einem anderen Thread
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1484877743992" ID="ID_680582075" MODIFIED="1538263469664">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
um das Diff zu <i>pullen</i>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1502459141531" ID="ID_301431029" MODIFIED="1538263469665" TEXT="Refactoring">
<icon BUILTIN="button_ok"/>
<node CREATED="1502459182214" ID="ID_1601884743" MODIFIED="1538263469665" TEXT="MutationMessage wird &#xfc;berfl&#xfc;ssig">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1502459190477" ID="ID_102437369" MODIFIED="1538263469665" TEXT="DiffMessage &#xfc;bernimmt deren Rolle">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1502459198611" ID="ID_1739527989" MODIFIED="1538263469665" TEXT="aber DiffMessage wird umbenannt in MutationMessage">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1493753249399" FOLDED="true" HGAP="64" ID="ID_1023343635" MODIFIED="1538840125563" TEXT="#1098 hand-over in UI-Thread" VSHIFT="83">
<linktarget COLOR="#a75677" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="-317;-24;" ID="Arrow_ID_274836249" SOURCE="ID_1146157818" STARTARROW="None" STARTINCLINATION="-647;-66;"/>
<linktarget COLOR="#84c6b8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="21;233;" ID="Arrow_ID_1372135725" SOURCE="ID_995145542" STARTARROW="None" STARTINCLINATION="237;0;"/>
<linktarget COLOR="#7caaa8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="2513;3565;" ID="Arrow_ID_1832047032" SOURCE="ID_489078622" STARTARROW="Default" STARTINCLINATION="3463;134;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1501804992301" ID="ID_1647263044" MODIFIED="1538263469665" TEXT="schedule event"/>
<node CREATED="1501804985286" ID="ID_320977714" MODIFIED="1538263469665" TEXT="GTK-Mechanismus">
<node CREATED="1501850591393" ID="ID_1831316800" MODIFIED="1538263469665" TEXT="Glib::Dispatcher"/>
<node CREATED="1501850603736" ID="ID_1030340631" MODIFIED="1538263469665" TEXT="im UI-Thread erzeugen und binden"/>
<node CREATED="1501850614630" ID="ID_196299293" MODIFIED="1538263469665" TEXT="emit() -&gt; event im UI-Thread"/>
</node>
<node COLOR="#435e98" CREATED="1501850632636" FOLDED="true" ID="ID_431682708" MODIFIED="1538839594460" TEXT="technische Probleme">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501850684373" ID="ID_1688212376" MODIFIED="1538263469665" TEXT="ein Dispatcher pro Call">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
jede Facade-Funktion brauch einen Dispatcher
</p>
<p>
Das wird eine ganze Me
</p>
</body>
</html></richcontent>
<node CREATED="1501850754827" ID="ID_314216229" MODIFIED="1538263469665" TEXT="jede Facade-Funktion brauch einen Dispatcher">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1501850863525" ID="ID_1439490807" MODIFIED="1538263469665" TEXT="das wird eine Menge"/>
<node CREATED="1501850867597" ID="ID_141225152" MODIFIED="1538263469665" TEXT="alle Dispatcher haben eine gemeinsame Queue"/>
<node CREATED="1501850880179" ID="ID_745997733" MODIFIED="1538263469665" TEXT="m&#xf6;gliche contention-Probleme"/>
</node>
<node CREATED="1501850690748" ID="ID_1995715844" MODIFIED="1538263469665" TEXT="Erzeugen der Dispatcher">
<node CREATED="1501850920950" ID="ID_1529426036" MODIFIED="1538263469665" TEXT="mu&#xdf; im UI-Thread erfolgen"/>
<node CREATED="1501850933596" ID="ID_620574396" MODIFIED="1538263469665">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>bevor</i>&#160;die Facade ge&#246;ffnet wir
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1501850677790" ID="ID_1195250454" MODIFIED="1538263469665" TEXT="Argument&#xfc;bergabe">
<node CREATED="1501850716049" ID="ID_104637334" MODIFIED="1538263469665" TEXT="emit() ist void(void)"/>
<node CREATED="1501850734414" ID="ID_994424125" MODIFIED="1538263469665">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und arbeitet <i>asynchron</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1501850967855" ID="ID_859055846" MODIFIED="1538263469665">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Argument-Storage
</p>
<p>
organisieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1501867225983" ID="ID_1121867075" MODIFIED="1538263469665">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
brauche dedizierten <b>Dispatcher</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1501938738836" FOLDED="true" ID="ID_1257499857" MODIFIED="1538839544330" TEXT="Helper: CallQueue">
<icon BUILTIN="button_ok"/>
<node CREATED="1501938715247" ID="ID_1286525769" MODIFIED="1538263469666" TEXT="simplistic">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1501938699841" ID="ID_1077640328" MODIFIED="1538263469666" TEXT="std::function"/>
<node CREATED="1501938690626" ID="ID_353231581" MODIFIED="1538263469666" TEXT="thread safe queue"/>
<node CREATED="1501938705321" ID="ID_1924064403" MODIFIED="1538263469666" TEXT="lambdas f&#xfc;r Argument-binding"/>
</node>
<node COLOR="#338800" CREATED="1501938776839" FOLDED="true" ID="ID_1031878628" MODIFIED="1538839555201" TEXT="Convenience-Wrapper">
<icon BUILTIN="button_ok"/>
<node CREATED="1501939110138" ID="ID_203135379" MODIFIED="1538263469666" TEXT="Lambda konstruieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1501939132431" ID="ID_1400757157" MODIFIED="1538263469666" TEXT="Funktion zum Triggern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1501939149837" ID="ID_1733976265" MODIFIED="1538263469666" TEXT="diese an Glib::Dispatcher binden">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502404797300" FOLDED="true" ID="ID_1177399909" MODIFIED="1538839553473" TEXT="Exceptions fangen">
<arrowlink COLOR="#84b6b7" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1297;-64;" ID="Arrow_ID_245240331" STARTARROW="None" STARTINCLINATION="285;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1522935881957" HGAP="23" ID="ID_564244010" MODIFIED="1538263469666" TEXT="4/2018 was ist hier der Stand?" VSHIFT="16">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
kann mich so vague erinnern
</p>
<p>
da&#223; hier zwar schon ein catch eingebaut war,
</p>
<p>
aber noch <i>irgend ein Hund</i>&#160;begraben liegt
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node COLOR="#435e98" CREATED="1531584775498" ID="ID_1901801971" MODIFIED="1538263469666" TEXT="7/2018 notification-Display fehlt noch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und insofern ist auch die Behandlung einer <b>Folge-Exception</b>&#160;noch offen
</p>
<p>
Im Moment loggen wir nur ins textuelle Konsole-Log (NoBug)
</p>
</body>
</html></richcontent>
<linktarget COLOR="#22ed6f" DESTINATION="ID_1901801971" ENDARROW="Default" ENDINCLINATION="287;0;" ID="Arrow_ID_1609281182" SOURCE="ID_1545300987" STARTARROW="None" STARTINCLINATION="83;-25;"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538263118645" ID="ID_944384957" MODIFIED="1538263469666" TEXT="9/2018 hinreichend behandelt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Habe nochmal alle Aufrufe im Einzelnen durchgepr&#252;ft
</p>
<ul>
<li>
wenn schon das Einf&#252;gen des Funktors vor dem Dispatch wirft (out of memory),<br />dann bekommt der Aufrufer diese Exception, was typischerweise t&#246;dlich ist.<br />
</li>
<li>
aber alles, was <i>innerhalb</i>&#160;dieses Funktors passiert, wird abgefangen und geloggt.<br />
</li>
</ul>
<p>
mehr erscheint mir nicht sinnvoll; <i>behandeln</i>&#160;kann man solche Fehler ohnehin nicht.<br /><br />
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1501939174506" FOLDED="true" ID="ID_504999068" MODIFIED="1538839557169" TEXT="in NotificationService integrieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1502375098210" ID="ID_581509556" MODIFIED="1538263469666" STYLE="fork" TEXT="als PImpl">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502375146395" ID="ID_144811928" MODIFIED="1538263469666" TEXT="CallQueue einrichten">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502375120551" ID="ID_1281399419" MODIFIED="1538263469666" TEXT="Glib::Dispatcher verwenden">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502375134501" ID="ID_1011463592" MODIFIED="1538263469666" STYLE="fork" TEXT="Aufrufe in Lamdas verpacken">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1502375294344" FOLDED="true" ID="ID_640199096" MODIFIED="1538839576310" TEXT="Spezialbehandlung f&#xfc;r Shutdown">
<icon BUILTIN="button_ok"/>
<node CREATED="1502375312469" ID="ID_1075926054" MODIFIED="1538263469666" TEXT="ironischerweise...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...k&#246;nnte das am Ende nicht sinnvoll sein,
</p>
<p>
speziell den UI-Shutdown-Trigger &#252;ber den neuen Mechanismus laufen zu lassen,
</p>
<p>
obwohl jener doch genau der Anla&#223; war, diesen neuen Mechanismus zu bauen.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1502390322659" ID="ID_194166182" MODIFIED="1538263469666" TEXT="den neuen Dispatcher nutzen?">
<icon BUILTIN="help"/>
<node CREATED="1502390340193" FOLDED="true" ID="ID_1491902996" MODIFIED="1538263469666" TEXT="Con">
<icon BUILTIN="button_cancel"/>
<node CREATED="1502390353887" ID="ID_1015749080" MODIFIED="1518487921054">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn die Queue voll ist
</p>
<p>
wird erst alles Andere abgearbeitet
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1502390402273" ID="ID_929098721" MODIFIED="1518487921054">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn UI-Thread blockt/verhungert,
</p>
<p>
kommt der rettende Shutdown <i>gar nicht</i>&#160;durch
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1502390334890" FOLDED="true" ID="ID_1454460947" MODIFIED="1538263469666" TEXT="Pro">
<icon BUILTIN="button_ok"/>
<node CREATED="1502390463664" ID="ID_1786963429" MODIFIED="1518487921054" TEXT="einfach zu implementieren"/>
<node CREATED="1502390473567" ID="ID_1776620772" MODIFIED="1518487921054" TEXT="alle Glib::Dispatcher nutzen die gleiche Pipe"/>
<node CREATED="1502390485294" ID="ID_146294589" MODIFIED="1518487921054" TEXT="...d.h. echte Alternative m&#xfc;&#xdf;te aufwendig zu Fu&#xdf; programmiert werden"/>
</node>
</node>
<node CREATED="1502390572106" ID="ID_1872668444" MODIFIED="1538263469666" TEXT="zus&#xe4;tzlich noch eine Benachrichtigung">
<node CREATED="1502390583289" ID="ID_741614829" MODIFIED="1538263469666" TEXT="an die UI-Nachrichtenbox">
<icon BUILTIN="info"/>
</node>
<node CREATED="1502390886681" ID="ID_985994192" MODIFIED="1538263469666" TEXT="f&#xfc;hre Benachrichtiguns-Level ein">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1502390603674" ID="ID_125356908" MODIFIED="1538839473841" TEXT="#1102 : build a message display box in the UI">
<arrowlink COLOR="#8c8bae" DESTINATION="ID_1926586811" ENDARROW="Default" ENDINCLINATION="1456;47;" ID="Arrow_ID_1593124756" STARTARROW="None" STARTINCLINATION="-839;779;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1501939193031" HGAP="3" ID="ID_1045913810" MODIFIED="1538839583477" TEXT="Test" VSHIFT="20">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1501939204166" ID="ID_383444966" MODIFIED="1538263469666" TEXT="CallQueue_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1501946847700" ID="ID_1917302142" MODIFIED="1538263469666" TEXT="basic">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1501946852555" ID="ID_1617455971" MODIFIED="1538263469666" TEXT="mehrere">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1501946856587" ID="ID_1780067399" MODIFIED="1538263469666" TEXT="Stre&#xdf;">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1501939212693" FOLDED="true" ID="ID_1007296291" MODIFIED="1538939588120" TEXT="#1099 DemoGuiRoundtrip">
<linktarget COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" SOURCE="ID_1925240675" STARTARROW="None" STARTINCLINATION="-7;605;"/>
<linktarget COLOR="#f0eca5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="881;2029;" ID="Arrow_ID_1736540527" SOURCE="ID_1456159316" STARTARROW="None" STARTINCLINATION="418;-44;"/>
<linktarget COLOR="#ebf0a5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-3154;1704;" ID="Arrow_ID_1091720734" SOURCE="ID_1098045534" STARTARROW="None" STARTINCLINATION="1627;38;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1501939235834" FOLDED="true" ID="ID_1160414548" MODIFIED="1538263469666" TEXT="Men&#xfc;-Eintrag">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533402935579" ID="ID_263665767" MODIFIED="1533402958273" TEXT="erst mal Bang!-Button verwenden">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1533402947233" ID="ID_1533593555" MODIFIED="1533402955562" TEXT="alles fest drahten">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1501939240217" ID="ID_325602880" MODIFIED="1538263469667" TEXT="triggert Proc-Command"/>
<node CREATED="1501939252991" ID="ID_31140909" MODIFIED="1538263469667" TEXT="dieses sendet Mark zur&#xfc;ck"/>
<node CREATED="1501939263030" ID="ID_381890207" MODIFIED="1538263469667" TEXT="ein Widget im UI reagiert">
<node COLOR="#338800" CREATED="1533402866549" FOLDED="true" ID="ID_899369632" MODIFIED="1538777700165" TEXT="fest verdrahtete ID">
<icon BUILTIN="button_ok"/>
<node CREATED="1533688905326" ID="ID_709974587" MODIFIED="1538263469667" TEXT="geh&#xf6;rt dem NotificationController"/>
<node CREATED="1533688913996" ID="ID_33570780" MODIFIED="1538263469667">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>das</i>&#160;ist schon die endg&#252;ltige L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1533688935962" ID="ID_1996006263" MODIFIED="1538263469667" TEXT="NotificationController">
<node CREATED="1533688944816" ID="ID_1273458647" MODIFIED="1538263469667" TEXT="wird vom Wizard gemanagt"/>
<node CREATED="1533688953399" ID="ID_1850034653" MODIFIED="1538263469667" TEXT="belegt ein Display-widget">
<arrowlink COLOR="#455086" DESTINATION="ID_396920290" ENDARROW="Default" ENDINCLINATION="-38;-97;" ID="Arrow_ID_729082861" STARTARROW="None" STARTINCLINATION="101;-7;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1533771813324" ID="ID_930319427" MODIFIED="1538777683159" TEXT="wo ist die ID selber definiert">
<icon BUILTIN="help"/>
<node CREATED="1533911116328" ID="ID_1079600246" MODIFIED="1533911128764" TEXT="sie mu&#xdf; insgesamt reprouzierbar sein"/>
<node CREATED="1533911129424" ID="ID_659618402" MODIFIED="1533911139946" TEXT="zumindest innerhalb einer Program-Ausf&#xfc;hrung"/>
<node CREATED="1533911854871" FOLDED="true" HGAP="23" ID="ID_1953310668" MODIFIED="1538777693883" TEXT="Problem dabei" VSHIFT="11">
<node CREATED="1533911897569" ID="ID_1876551933" MODIFIED="1533911919154" TEXT="ID ist somit Teil des Interface"/>
<node CREATED="1533911919814" ID="ID_558535868" MODIFIED="1533911928937" TEXT="welches Interface?">
<node CREATED="1533915325903" ID="ID_1053391149" MODIFIED="1533915334817" TEXT="GuiNotification">
<node CREATED="1533915683535" ID="ID_1976057171" MODIFIED="1533915688561" TEXT="w&#xe4;re m&#xf6;glich"/>
<node CREATED="1533915689317" ID="ID_689429680" MODIFIED="1533915696616" TEXT="hat aber anderen Scope"/>
</node>
<node CREATED="1533915336757" ID="ID_1674509000" MODIFIED="1533915653847" TEXT="NotificationService">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1533915549928" ID="ID_1316198257" MODIFIED="1533915675249" TEXT="ErrorLogView">
<icon BUILTIN="button_cancel"/>
<node CREATED="1533915663705" ID="ID_1407115037" MODIFIED="1533915670027" TEXT="ist Implementation"/>
</node>
<node CREATED="1533915555871" ID="ID_1144697657" MODIFIED="1533915558835" TEXT="ErrorLog">
<node CREATED="1533915560942" ID="ID_981931913" MODIFIED="1533915564473" TEXT="w&#xfc;rde passen"/>
<node CREATED="1533915565111" ID="ID_779138620" MODIFIED="1533915568721" TEXT="gibts aber noch nicht"/>
<node CREATED="1533915569453" ID="ID_208285264" MODIFIED="1533915574145" TEXT="hat sonst keinen Inhalt"/>
</node>
<node CREATED="1533915576132" ID="ID_1784095931" MODIFIED="1533915585148" TEXT="Wizzard">
<icon BUILTIN="forward"/>
<node CREATED="1533915588283" ID="ID_909934131" MODIFIED="1533915603577">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Schlu&#223;folgerung: Wizzard <i>wird</i>&#160;ein Interface
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1533911886268" ID="ID_1414379746" MODIFIED="1533911931262" TEXT="ID storage">
<node CREATED="1534026768353" ID="ID_38337485" MODIFIED="1534026773780" TEXT="statisch extern"/>
<node CREATED="1534026775080" ID="ID_875112330" MODIFIED="1534026808983">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
in proc::asset::meta::<b><font color="#c01a1a">theErrorLog_ID</font></b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1534026821186" ID="ID_1959407299" MODIFIED="1534026961333" TEXT="dieses Interface f&#xfc;hlt sich irgendwie falsch an">
<linktarget COLOR="#c23581" DESTINATION="ID_1959407299" ENDARROW="Default" ENDINCLINATION="-34;0;" ID="Arrow_ID_1588328372" SOURCE="ID_1198718862" STARTARROW="Default" STARTINCLINATION="10;-26;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
<node CREATED="1534026923108" ID="ID_1896057034" MODIFIED="1534026932095" TEXT="Wizzard hat jetzt eine statische Methode"/>
<node CREATED="1534026932891" ID="ID_1643129041" MODIFIED="1534026942685" TEXT="NotificationService mu&#xdf; die ansprechen"/>
<node CREATED="1534026943481" ID="ID_445720698" MODIFIED="1534026954859" TEXT="blo&#xdf; um eine &quot;hinten herum&quot; vereinbarte ID zu bekommen"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533916387142" HGAP="-78" ID="ID_1746348489" MODIFIED="1533916411849" TEXT="Festlegung" VSHIFT="-6">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1533916393797" ID="ID_1198718862" MODIFIED="1534026961333" TEXT="Wizzard">
<arrowlink COLOR="#c23581" DESTINATION="ID_1959407299" ENDARROW="Default" ENDINCLINATION="-34;0;" ID="Arrow_ID_1588328372" STARTARROW="Default" STARTINCLINATION="10;-26;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1533916397565" ID="ID_1117749960" MODIFIED="1533918772587" TEXT="ErrorLog">
<arrowlink COLOR="#68788a" DESTINATION="ID_1121251191" ENDARROW="Default" ENDINCLINATION="-1644;0;" ID="Arrow_ID_146013003" STARTARROW="None" STARTINCLINATION="-4766;280;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1533916469971" ID="ID_802623301" MODIFIED="1533916472319" TEXT="in Proc"/>
<node CREATED="1533916473075" ID="ID_766768160" MODIFIED="1533916479190" TEXT="neu zu schaffen"/>
<node CREATED="1533916480282" ID="ID_1974491793" MODIFIED="1533916483670" TEXT="Platzhalter"/>
<node CREATED="1533916484785" ID="ID_537026197" MODIFIED="1533916497105" TEXT="(vorerst)">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504200793444" ID="ID_340215113" MODIFIED="1544133100770" TEXT="mi&#xdf;brauche InfoBox">
<arrowlink COLOR="#f5dd67" DESTINATION="ID_19179662" ENDARROW="Default" ENDINCLINATION="743;-1563;" ID="Arrow_ID_1195014928" STARTARROW="None" STARTINCLINATION="-452;605;"/>
<linktarget COLOR="#e0d18d" DESTINATION="ID_340215113" ENDARROW="Default" ENDINCLINATION="-389;5426;" ID="Arrow_ID_1440864098" SOURCE="ID_622217667" STARTARROW="None" STARTINCLINATION="-1637;-8191;"/>
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1504200974955" FOLDED="true" ID="ID_1182589184" MODIFIED="1538263469667" TEXT="neues Dock(Panel)">
<icon BUILTIN="button_ok"/>
<node CREATED="1522936169270" ID="ID_1991244597" MODIFIED="1522936194888" TEXT="vorl&#xe4;ufig eingeh&#xe4;ngt...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...in den eigentlich kaputten DockManager
</p>
</body>
</html></richcontent>
<node CREATED="1533688853229" ID="ID_396920290" MODIFIED="1534508612332" TEXT="der NotificationHub (Controller) im Wizard erzeugt es">
<linktarget COLOR="#455086" DESTINATION="ID_396920290" ENDARROW="Default" ENDINCLINATION="-38;-97;" ID="Arrow_ID_729082861" SOURCE="ID_1850034653" STARTARROW="None" STARTINCLINATION="101;-7;"/>
</node>
<node CREATED="1533688860812" ID="ID_1631735052" MODIFIED="1533688874622" TEXT="direkt im aktiven WorkspaceWindow -&gt; PanelManager"/>
<node CREATED="1533688875242" ID="ID_708108999" MODIFIED="1533688887596" TEXT="solange bis Panel-Management umgebaut wird">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1534513356842" HGAP="34" ID="ID_1371608668" MODIFIED="1534527057298" TEXT="Begriffe kl&#xe4;ren...">
<arrowlink COLOR="#8a9dae" DESTINATION="ID_1031484560" ENDARROW="Default" ENDINCLINATION="1135;-5718;" ID="Arrow_ID_1369217030" STARTARROW="None" STARTINCLINATION="1238;-672;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1534513604257" ID="ID_724835920" MODIFIED="1534513612859" TEXT="Dock == DockArea"/>
<node CREATED="1534513617543" ID="ID_1874506167" MODIFIED="1534513631737" TEXT="DockItem == Panel"/>
</node>
<node CREATED="1533607995396" ID="ID_806494084" MODIFIED="1533608457039" TEXT="wieder das Problem: wie bekommt man&apos;s">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533608171186" ID="ID_1446703192" MODIFIED="1533608449611" TEXT="#1104 how to instruct actions through panels">
<arrowlink COLOR="#9e99b7" DESTINATION="ID_1943521361" ENDARROW="Default" ENDINCLINATION="-1423;-376;" ID="Arrow_ID_779469840" STARTARROW="None" STARTINCLINATION="920;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1533608459780" ID="ID_1685349188" MODIFIED="1533608467039" TEXT="k&#xf6;nnen wir nicht sofort l&#xf6;sen"/>
<node CREATED="1533608471274" ID="ID_1700599331" MODIFIED="1534520115340" TEXT="aber m&#xfc;ssen der L&#xf6;sung vorgreifen">
<linktarget COLOR="#c1a9be" DESTINATION="ID_1700599331" ENDARROW="Default" ENDINCLINATION="123;115;" ID="Arrow_ID_399610434" SOURCE="ID_193790781" STARTARROW="None" STARTINCLINATION="282;-120;"/>
<icon BUILTIN="yes"/>
<node CREATED="1533608548408" ID="ID_154643654" MODIFIED="1533608602022" TEXT="man fragt einen Service: gib mir....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es ist schon bekannt, da&#223; dieser Service der <b>ViewLocator</b>&#160;sein wird,
</p>
<p>
und da&#223; man ihn via <b>InteractionDirector</b>&#160;erreicht
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1533608609479" ID="ID_1375309708" MODIFIED="1533608624410" TEXT="Erzeugung">
<node CREATED="1533608626061" ID="ID_401916400" MODIFIED="1533608643287" TEXT="entweder aufgrund so einer Anfrage"/>
<node CREATED="1533608656121" ID="ID_448111831" MODIFIED="1533608669227" TEXT="oder explizit per User/Men&#xfc;-Aktion"/>
<node CREATED="1533608670271" ID="ID_216288706" MODIFIED="1533608678066" TEXT="oder generisch-fest-verdrahtet"/>
</node>
<node CREATED="1533608721200" ID="ID_724576502" MODIFIED="1533608725939" TEXT="Schlu&#xdf;folgerung">
<node CREATED="1533608737142" ID="ID_1087400544" MODIFIED="1533608752167" TEXT="der vollziehende Erzeuger braucht Zugang zum UI-Bus"/>
<node CREATED="1533608822826" ID="ID_1772827095" MODIFIED="1533608834604" TEXT="Schema zur reproduzierbaren ID-Generierung ist notwendig"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534513723209" ID="ID_592805858" MODIFIED="1534526968091" TEXT="PanelManger liefert Panel">
<arrowlink COLOR="#99a7bd" DESTINATION="ID_1360472787" ENDARROW="Default" ENDINCLINATION="772;-6907;" ID="Arrow_ID_1137118362" STARTARROW="None" STARTINCLINATION="698;1616;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534513739655" ID="ID_1688346556" MODIFIED="1534516101304" TEXT="Suche per Typ-ID">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534516106942" ID="ID_1930444963" MODIFIED="1534516117582" TEXT="Referenz auf Panel zur&#xfc;ckliefern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1534513747542" ID="ID_313486234" MODIFIED="1534513755681" TEXT="im Moment eine int-ID">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534513723209" ID="ID_1131466377" MODIFIED="1534526965635" TEXT="Zugang durch WindowLocator / PanelLocator">
<arrowlink COLOR="#aab7cb" DESTINATION="ID_1614049284" ENDARROW="Default" ENDINCLINATION="772;-6907;" ID="Arrow_ID_139428133" STARTARROW="None" STARTINCLINATION="676;1738;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1534520043319" ID="ID_1510680356" MODIFIED="1534520065894" TEXT="vorl&#xe4;ufige Implementierung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1534520050783" ID="ID_193790781" MODIFIED="1534520115340" TEXT="greift vor auf ViewLocator">
<arrowlink COLOR="#c1a9be" DESTINATION="ID_1700599331" ENDARROW="Default" ENDINCLINATION="123;115;" ID="Arrow_ID_399610434" STARTARROW="None" STARTINCLINATION="282;-120;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node CREATED="1504203667130" FOLDED="true" HGAP="50" ID="ID_1745777873" MODIFIED="1538778298136" TEXT="vorl&#xe4;ufig Empf&#xe4;nger f&#xfc;r Fehler-Log" VSHIFT="2">
<arrowlink COLOR="#98a2c5" DESTINATION="ID_217810080" ENDARROW="Default" ENDINCLINATION="1891;-1228;" ID="Arrow_ID_1688804340" STARTARROW="None" STARTINCLINATION="-1261;74;"/>
<linktarget COLOR="#7893b2" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="-499;-464;" ID="Arrow_ID_1590510093" SOURCE="ID_812129962" STARTARROW="None" STARTINCLINATION="808;0;"/>
<linktarget COLOR="#628195" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="245;349;" ID="Arrow_ID_1743659141" SOURCE="ID_1981930639" STARTARROW="None" STARTINCLINATION="397;197;"/>
<icon BUILTIN="forward"/>
<node CREATED="1504203746239" ID="ID_697660682" MODIFIED="1538263469667" TEXT="Scroll-Pane">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1504203749815" ID="ID_1057483680" MODIFIED="1538263469667" STYLE="fork" TEXT="Textanzeige-Box">
<icon BUILTIN="button_ok"/>
<node CREATED="1504215911647" ID="ID_1066629131" MODIFIED="1538263469667" TEXT="GtkTextView"/>
<node CREATED="1504215958961" ID="ID_55797578" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-buffer.html.en#textview-formatting" MODIFIED="1538263469667" TEXT="Formattierung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1504219859389" FOLDED="true" ID="ID_653669269" MODIFIED="1538263469667" TEXT="Scrollen zum zuletzt eingef&#xfc;gten Text">
<arrowlink COLOR="#9bbabd" DESTINATION="ID_429138159" ENDARROW="Default" ENDINCLINATION="-1413;0;" ID="Arrow_ID_1025095859" STARTARROW="None" STARTINCLINATION="-1151;202;"/>
<icon BUILTIN="idea"/>
<node CREATED="1504220139416" ID="ID_1997485219" MODIFIED="1518487921054" TEXT="scroll_to(iterator) funktioniert nicht">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1504220198880" ID="ID_1877499848" MODIFIED="1518487921054" TEXT="mu&#xdf; Marke verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1504216221389" ID="ID_355253225" MODIFIED="1538263469667" TEXT="Marks">
<node CREATED="1504216224349" ID="ID_1372118244" MODIFIED="1538263469667" TEXT="was ist die &quot;insert&quot;-Mark?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1504219835536" ID="ID_1720205947" MODIFIED="1538263469667" TEXT="der Text-Cursor">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1504203763606" ID="ID_877984616" MODIFIED="1538263469667" TEXT="in ein Widget verpacken">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1504203754175" ID="ID_580465154" MODIFIED="1538263469667" TEXT="Fehler-Level erkennen">
<arrowlink DESTINATION="ID_1459967459" ENDARROW="Default" ENDINCLINATION="-73;-253;" ID="Arrow_ID_424075973" STARTARROW="None" STARTINCLINATION="225;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537754684692" HGAP="65" ID="ID_494305022" MODIFIED="1538266179499" TEXT="Rolle im API kl&#xe4;ren" VSHIFT="-12">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
brauchen wir diese zwischengeschaltete Methode <b>showMsg()</b>?
</p>
<p>
w&#228;re es nicht sinnvoller, sie direkt auf das API zu heben?
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1538266114512" ID="ID_1994199296" MODIFIED="1538266139416" TEXT="Enum nur noch im NotificationService"/>
<node CREATED="1538266140789" ID="ID_965920969" MODIFIED="1538266163157" TEXT="Widget: drei einzelne API-Methoden"/>
<node CREATED="1538266165305" ID="ID_318361090" MODIFIED="1538266174884" TEXT="Controller: in Protokoll integriert"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534725200588" ID="ID_871562482" MODIFIED="1538756139238" TEXT="Operationen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534725109137" FOLDED="true" ID="ID_694776463" MODIFIED="1538756305396" TEXT="expand">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534725397553" ID="ID_1072347956" MODIFIED="1538263469667" TEXT="collapsed-Repr&#xe4;sentation schaffen">
<icon BUILTIN="button_ok"/>
<node CREATED="1535554610295" ID="ID_1050608842" MODIFIED="1538263469668" TEXT="nur vorl&#xe4;ufige L&#xf6;sung">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#435e98" CREATED="1535629564615" ID="ID_1047933726" MODIFIED="1538263469668" TEXT="Gtk::Expander">
<arrowlink COLOR="#4561ae" DESTINATION="ID_1889724128" ENDARROW="Default" ENDINCLINATION="-1778;-100;" ID="Arrow_ID_219393455" STARTARROW="None" STARTINCLINATION="-6486;0;"/>
<icon BUILTIN="idea"/>
<node CREATED="1535557111546" ID="ID_649935976" MODIFIED="1538263469668" TEXT="Label-Text als ctor param"/>
<node CREATED="1535557122205" ID="ID_1034248466" MODIFIED="1538263469668" TEXT="resize_toplevel (=true by default)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ob beim Expand/Collapse das umschlie&#223;ende Widget resized werden soll
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#990000" CREATED="1535563193014" FOLDED="true" ID="ID_1551506828" MODIFIED="1538277321257" TEXT="Problem: dehnt sich nicht aus">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1535563256725" ID="ID_327777357" MODIFIED="1535563288805" TEXT="scrolled pane belegt nur minimal notwendigen Platz"/>
<node CREATED="1535563300695" ID="ID_862867674" MODIFIED="1535563311905" TEXT="egal ob initial zugeklappt (=default) oder aufgeklappt"/>
<node CREATED="1535563317214" ID="ID_201611533" MODIFIED="1535563330839" TEXT="egal in welcher Reihenfolge man es hinzuf&#xfc;gt"/>
<node CREATED="1535563334050" ID="ID_718726647" MODIFIED="1535563366331" TEXT="dagegen direkt im Frame dehnt sie sich aus"/>
</node>
<node COLOR="#338800" CREATED="1535629564615" ID="ID_228360739" MODIFIED="1538263469668" TEXT="L&#xf6;sung: Widget::property_expand()">
<arrowlink COLOR="#6277b2" DESTINATION="ID_860094095" ENDARROW="Default" ENDINCLINATION="-1778;-100;" ID="Arrow_ID_761942436" STARTARROW="None" STARTINCLINATION="-6486;0;"/>
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1535554640586" ID="ID_1376241476" MODIFIED="1538263469668" TEXT="essentiell: passiert im Parent-Widget">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>...wesentliches Struktur-Element:</p>
<p>der Parent-Container ist f&#252;r das expand/collapse zust&#228;ndig</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535634032601" ID="ID_964641889" MODIFIED="1538263469668" TEXT="Design-Problem: sich expandieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1535634116925" ID="ID_1129948550" MODIFIED="1538263469668" TEXT="Voraussetzung: unser Widget-Protokoll">
<node CREATED="1535634127852" ID="ID_317106359" MODIFIED="1538263469668" TEXT="enth&#xe4;lt eine expand()-Methode"/>
<node CREATED="1535636097808" ID="ID_1540209936" MODIFIED="1538263469668" TEXT="Unterschied Widget / Controller ?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1535636169439" FOLDED="true" ID="ID_631287309" MODIFIED="1538263469668" TEXT="zwei Modelle denkbar">
<icon BUILTIN="yes"/>
<node CREATED="1535636219312" ID="ID_1940674226" MODIFIED="1535636242077" TEXT="Widget ist Expander">
<icon BUILTIN="full-1"/>
<node CREATED="1535636281176" ID="ID_232056866" MODIFIED="1535636470569" TEXT="w&#xe4;hle &quot;das Widget&quot; geeignet">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535636297102" ID="ID_1966837488" MODIFIED="1535636338854">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
als <i>denjenigen</i>&#160;Container...
</p>
<p>
...der das <i>eigentliche</i>&#160;Widget expandieren kann
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535636621140" ID="ID_1785708787" MODIFIED="1535636640069" TEXT="pro">
<node CREATED="1535636644385" ID="ID_976356089" MODIFIED="1535636649884" TEXT="elegantes Design"/>
<node CREATED="1535636650664" ID="ID_457403473" MODIFIED="1535636661234" TEXT="minimalistisch"/>
</node>
<node CREATED="1535636640849" ID="ID_1629039815" MODIFIED="1535636642157" TEXT="con">
<node CREATED="1535636663334" ID="ID_1826518668" MODIFIED="1535636693159" TEXT="ordnet alle anderen Belange diesem Belang unter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ggfs m&#252;ssen alle anderen Funktionen nach unten delegieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535636755202" ID="ID_507299995" MODIFIED="1535636897708" TEXT="kann grunds&#xe4;tzlich nicht alle F&#xe4;lle abdecken">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn n&#228;mlich das &quot;Expandieren&quot; in einen weiter reichenden Zusammenhang integriert ist,
</p>
<p>
wie z.B. Darstellung in verschiedenen Detailierungs-Graden, oder ein generelles
</p>
<p>
Fokus-/Layout- Management <i>mehrerer</i>&#160;Komponenten zusammen
</p>
<p>
</p>
<p>
Standard-Beispiel: Property-Panel
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1535636904118" ID="ID_489559609" MODIFIED="1535636933948" TEXT="Fazit">
<icon BUILTIN="button_cancel"/>
<node CREATED="1535636909262" ID="ID_1644409361" MODIFIED="1535636911657" TEXT="abgelehnt"/>
<node CREATED="1535636912365" ID="ID_298319841" MODIFIED="1535636929783" TEXT="da einfacher als die Essenz"/>
</node>
</node>
<node CREATED="1535636231135" ID="ID_913979725" MODIFIED="1535636244698" TEXT="Widget kennt Expander">
<icon BUILTIN="full-2"/>
<node CREATED="1535636486110" ID="ID_285628512" MODIFIED="1535636495891" TEXT="in Form eines Adapters">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535636600599" ID="ID_103556348" MODIFIED="1535636618368" TEXT="der die &quot;expand/collapse&quot;-Funktionalit&#xe4;t abstrahiert"/>
<node CREATED="1535637406019" ID="ID_1125726861" MODIFIED="1535637415126" TEXT="erm&#xf6;glicht generische Impl">
<node CREATED="1535637416210" ID="ID_1038164215" MODIFIED="1535637424461" TEXT="Gegenwart des Adapters schaltet Feature ein"/>
<node CREATED="1535637441351" ID="ID_181377485" MODIFIED="1535637498835" TEXT="Standard-Adapter f&#xfc;r Gtk::Expander"/>
<node CREATED="1535637512597" ID="ID_1713615715" MODIFIED="1535637520896" TEXT="Parent-Container kann Adapter selber implementieren"/>
<node CREATED="1535637534163" ID="ID_1194572504" MODIFIED="1535637548308" TEXT="kann mit &quot;Reveal&quot;-Funktion kombiniert werden"/>
<node CREATED="1535638307459" ID="ID_1697210606" MODIFIED="1535638391524" TEXT="possibly to discover dynamically">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn wir eine Mix-in -Implementierung w&#228;hlen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1535638228558" ID="ID_1027845785" MODIFIED="1535638283984" TEXT="Fazit">
<icon BUILTIN="button_ok"/>
<node CREATED="1535638234405" ID="ID_1845070371" MODIFIED="1535638250610" TEXT="komplex mit der Gefahr des Over-Engineering">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1535638255138" ID="ID_591635299" MODIFIED="1535638276217" TEXT="erscheint trotzdem als die angemessene L&#xf6;sung">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1535731363267" ID="ID_603236457" MODIFIED="1538263469668" TEXT="L&#xf6;sung">
<arrowlink COLOR="#5f8cc1" DESTINATION="ID_447101734" ENDARROW="Default" ENDINCLINATION="22;-23;" ID="Arrow_ID_272345450" STARTARROW="None" STARTINCLINATION="-97;-5;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1535731373978" ID="ID_182280315" MODIFIED="1538263469668" TEXT="Widget h&#xe4;lt einen Expander-Funktor"/>
<node CREATED="1535731402126" ID="ID_1177558244" MODIFIED="1538263469668" TEXT="damit ist eine Standard-Impl von Tangible::doExpand() m&#xf6;glich">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1535638412517" ID="ID_447101734" MODIFIED="1538263469668" TEXT="Adapter-Interfaces entwerfen">
<arrowlink COLOR="#709eaf" DESTINATION="ID_316446199" ENDARROW="Default" ENDINCLINATION="-354;-490;" ID="Arrow_ID_1105268233" STARTARROW="None" STARTINCLINATION="-3385;0;"/>
<linktarget COLOR="#5f8cc1" DESTINATION="ID_447101734" ENDARROW="Default" ENDINCLINATION="22;-23;" ID="Arrow_ID_272345450" SOURCE="ID_603236457" STARTARROW="None" STARTINCLINATION="-97;-5;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535725900392" ID="ID_489679545" MODIFIED="1538263469668" TEXT="Expander">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535725906647" ID="ID_1380126396" MODIFIED="1538263469668" TEXT="Revealer">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535726065753" ID="ID_578786610" MODIFIED="1538263469668" TEXT="default-Impl doExpand()">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535726077504" ID="ID_1806068721" MODIFIED="1538263469668" TEXT="pr&#xfc;fen: canExpand">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535726086631" ID="ID_1753268128" MODIFIED="1538263469668" TEXT="Expander aufrufen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535743810027" ID="ID_778321095" MODIFIED="1538263469668" TEXT="bestehende default-Impl aus Widget/Controller entfernen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535725923421" ID="ID_298871659" MODIFIED="1538263469668" TEXT="Expander geeignet verdrahten">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1535725940226" ID="ID_162482468" MODIFIED="1538263469668" TEXT="validiert das Design">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1535743705113" ID="ID_54369760" MODIFIED="1538263469668" TEXT="auch MockElm anpassen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535737902126" ID="ID_1001984094" MODIFIED="1538263469668" TEXT="Unit-Test">
<icon BUILTIN="button_ok"/>
<node CREATED="1535750033829" ID="ID_1808097547" MODIFIED="1538263469668" TEXT="AbstractTangible_test::markState()">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1535750110787" ID="ID_1169665466" MODIFIED="1538263469668" TEXT="tested implizit die neue default-Implementierung mit">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534725101578" ID="ID_974315967" MODIFIED="1538277245929" TEXT="clearAll">
<icon BUILTIN="button_ok"/>
<node CREATED="1538277182898" ID="ID_1432000446" MODIFIED="1538277242242" TEXT="Marker-Tabelle leeren"/>
<node CREATED="1538277192232" ID="ID_94588950" MODIFIED="1538277241203" TEXT="Platzhalter-Zeile">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um den Umstand zu dokumentieren,
</p>
<p>
da&#223; hier ## Zeilen gel&#246;scht wurden
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1534725131214" ID="ID_1479834475" MODIFIED="1538263469668" TEXT="addMsg">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534725152139" FOLDED="true" ID="ID_887758432" MODIFIED="1538756202003" TEXT="addError">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534725422454" ID="ID_1459967459" MODIFIED="1538587727278" TEXT="spezieller Markup">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1459967459" ENDARROW="Default" ENDINCLINATION="-73;-253;" ID="Arrow_ID_424075973" SOURCE="ID_580465154" STARTARROW="None" STARTINCLINATION="225;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537571906634" ID="ID_1839759637" MODIFIED="1538263469668" TEXT="Tags anlegen">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1537571917625" ID="ID_1900926418" MODIFIED="1538707219751" TEXT="k&#xe4;ren: CSS?">
<icon BUILTIN="help"/>
<node COLOR="#435e98" CREATED="1535629564615" HGAP="43" ID="ID_1432671260" MODIFIED="1538263469668" TEXT="GTK-Styling, CSS f&#xfc;r Custom-Widgets" VSHIFT="-35">
<arrowlink COLOR="#6277b2" DESTINATION="ID_1174884362" ENDARROW="Default" ENDINCLINATION="-2315;-45;" ID="Arrow_ID_380937946" STARTARROW="None" STARTINCLINATION="-7413;0;"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1537661752104" ID="ID_373027917" MODIFIED="1538263469668" TEXT="wohl nicht so einfach"/>
<node COLOR="#338800" CREATED="1537661764454" ID="ID_1004400727" MODIFIED="1538707271502" TEXT="Untersuchen per Inspector">
<icon BUILTIN="info"/>
<node CREATED="1538707192879" ID="ID_253847354" MODIFIED="1538707208726" TEXT="jedes Tag ist einzeln in der Objekt-Hierarchie vorhanden"/>
<node CREATED="1538707176081" ID="ID_1239285032" MODIFIED="1538707284654">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
erscheint <b>definitiv nicht</b>&#160;als CSS-Node
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1537661787387" ID="ID_20967740" MODIFIED="1538263469668" TEXT="vorl&#xe4;ufig hart verdrahten">
<icon BUILTIN="button_ok"/>
<node CREATED="1537752420235" ID="ID_922959985" MODIFIED="1538263469668" TEXT="Funktion zum Populieren der Tag-Table"/>
<node CREATED="1537752434280" ID="ID_1053927695" MODIFIED="1538263469669" TEXT="k&#xf6;nnte in den StyleManager wandern">
<arrowlink COLOR="#b3a9c1" DESTINATION="ID_758790930" ENDARROW="Default" ENDINCLINATION="96;-5;" ID="Arrow_ID_1283375190" STARTARROW="None" STARTINCLINATION="-17;39;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537571928143" ID="ID_221069673" MODIFIED="1538263469669" TEXT="Tag f&#xfc;r Warnung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537571934143" ID="ID_447258227" MODIFIED="1538263469669" TEXT="Tag f&#xfc;r Fehler">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537571949893" ID="ID_328949056" MODIFIED="1538263469669" TEXT="Tags zuweisen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537571956436" ID="ID_1806243350" MODIFIED="1538587722314" TEXT="Tags entfernen">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1806243350" ENDARROW="Default" ENDINCLINATION="294;-15;" ID="Arrow_ID_52974407" SOURCE="ID_383201596" STARTARROW="None" STARTINCLINATION="294;-15;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534725501467" FOLDED="true" ID="ID_1420459325" MODIFIED="1538587929492" TEXT="Bookmark speichern">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1537535919147" ID="ID_1338221225" MODIFIED="1538263469669" TEXT="Technologie">
<icon BUILTIN="info"/>
<node CREATED="1537535925874" ID="ID_196796680" MODIFIED="1538263469669" TEXT="Tag / TagTable">
<icon BUILTIN="button_cancel"/>
<node CREATED="1537535939265" ID="ID_1176049085" MODIFIED="1538263469669" TEXT="geht nicht"/>
<node CREATED="1537535943840" ID="ID_694044876" MODIFIED="1538263469669" TEXT="man kann nicht nach Tags suchen"/>
<node CREATED="1537536772568" ID="ID_332685872" MODIFIED="1538263469669" TEXT="(Suchen kann man auf dem Iterator)"/>
</node>
<node CREATED="1537536783583" ID="ID_883754303" MODIFIED="1538263469669" TEXT="Mark verwenden">
<icon BUILTIN="forward"/>
<node CREATED="1537536791477" ID="ID_1332288045" MODIFIED="1538263469669" TEXT="mu&#xdf; Index daf&#xfc;r selber pflegen"/>
<node CREATED="1537536808627" ID="ID_609351839" MODIFIED="1538263469669" TEXT="kann dann direkt zur Mark springen"/>
<node CREATED="1537536819657" ID="ID_1987418184" MODIFIED="1538263469669" TEXT="wird durch Edits/Insterts nicht gest&#xf6;rt">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537571771685" ID="ID_1198199438" MODIFIED="1538263469669" TEXT="ErrorIndex">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537571794801" ID="ID_1255966338" MODIFIED="1538263469669" TEXT="einf&#xfc;gen">
<icon BUILTIN="button_ok"/>
<node CREATED="1538581675841" ID="ID_914012802" MODIFIED="1538581695036" TEXT="Problem: brauche Anfangs und Endpunkt">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1538581696238" ID="ID_579972167" MODIFIED="1538581705246" TEXT="speichere ein Paar von Marken">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1538581570783" ID="ID_1599117331" MODIFIED="1538586033692" TEXT="Problem: Ende wandert mit...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das liegt vermutlich daran, da&#223; ich die zweite Marke mit &quot;right gravity&quot; einf&#252;ge,
</p>
<p>
aber eben am absoluten Ende des Buffers. Damit wird sie hinter jeder Einf&#252;gung bleiben
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1538585387424" ID="ID_151756918" MODIFIED="1538585442447" TEXT="Trick: erst abschlie&#xdf;enden Zeilenumbruch">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538585409653" ID="ID_584738161" MODIFIED="1538585447421">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...dann Einf&#252;gestelle <i>davor</i>&#160;platzieren
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1537571882918" ID="ID_620353485" MODIFIED="1538586057629" TEXT="reorganisieren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1538586059134" ID="ID_5616537" MODIFIED="1538586065889" TEXT="besser wegwerfen und neu bauen"/>
</node>
</node>
</node>
<node CREATED="1537537333987" ID="ID_667263409" MODIFIED="1538756166525" TEXT="&#xdc;bersicht">
<icon BUILTIN="button_ok"/>
<node CREATED="1537537339011" ID="ID_1759202815" MODIFIED="1538263469669" TEXT="L&#xf6;sung">
<icon BUILTIN="help"/>
<node CREATED="1537537345410" ID="ID_1560200040" MODIFIED="1538263469669" TEXT="Toolbar verwenden?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1537537353105" ID="ID_409330854" MODIFIED="1538263469669" TEXT="ButtonBox verwenden?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1537571223088" ID="ID_1186576760" MODIFIED="1538263469669" TEXT="erst mal gar nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
YAGNI
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1537571240500" FOLDED="true" ID="ID_1601115005" MODIFIED="1538756163375" TEXT="nur &gt;&gt; (n&#xe4;chster Fehler)">
<icon BUILTIN="hourglass"/>
<node CREATED="1537571669683" ID="ID_196982892" MODIFIED="1538263469669" TEXT="wenn es Fehler gibt"/>
<node CREATED="1537571681249" ID="ID_1273769655" MODIFIED="1538263469669" TEXT="wenn es mehr Zeilen gibt"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538756156811" ID="ID_27239439" MODIFIED="1538756161793" TEXT="YAGNI">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537572133580" ID="ID_671753441" MODIFIED="1538756131546" TEXT="Button: clear Errors">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537572142139" ID="ID_1644572130" MODIFIED="1538756133431" TEXT="Button: clear all">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537531676045" ID="ID_548104404" MODIFIED="1538756214741" TEXT="addWarning">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537531682564" ID="ID_1510582702" MODIFIED="1538263469669" TEXT="nur speziell ausgezeichnete Meldung">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534725142756" FOLDED="true" ID="ID_343395831" MODIFIED="1538756206590" TEXT="clearInfoMsg">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1538581145248" ID="ID_643768128" MODIFIED="1538581206025" TEXT="neuen TextBuffer anlegen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538581157502" ID="ID_1715975641" MODIFIED="1538581204913" TEXT="nur die Fehler-Eintr&#xe4;ge &#xfc;bertragen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538581168092" ID="ID_404563793" MODIFIED="1538581204032" TEXT="dabei auch einen neuen Mark-Index populieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538581183986" ID="ID_147260284" MODIFIED="1538581203099" TEXT="Alten gegen Neuen austauschen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534725160618" FOLDED="true" ID="ID_1981616896" MODIFIED="1538756208941" TEXT="turnError_into_InfoMsg">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534725575098" ID="ID_383201596" MODIFIED="1538587760128" TEXT="Markup reduzieren">
<arrowlink DESTINATION="ID_1806243350" ENDARROW="Default" ENDINCLINATION="294;-15;" ID="Arrow_ID_52974407" STARTARROW="None" STARTINCLINATION="294;-15;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534725587112" ID="ID_31905080" MODIFIED="1538587763137" TEXT="Bookmarks entfernen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534725180543" FOLDED="true" ID="ID_1442607312" MODIFIED="1538756210290" TEXT="triggerFlash">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534725283337" ID="ID_1256364821" MODIFIED="1538707390908" TEXT="farbigen Rahmen">
<icon BUILTIN="button_ok"/>
<node CREATED="1534725366734" ID="ID_951505172" MODIFIED="1538618155829" TEXT="verwende zus&#xe4;tzliche Klasse">
<arrowlink COLOR="#877796" DESTINATION="ID_758790930" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_564282272" STARTARROW="None" STARTINCLINATION="649;0;"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1538707399447" ID="ID_1845737933" MODIFIED="1538707478472" TEXT="Rahmen auch auf Kind-Objekte setzen">
<icon BUILTIN="button_ok"/>
<node CREATED="1538707420444" ID="ID_334911121" MODIFIED="1538707474258" TEXT="denn nur so erscheint er z.B. bei einem TextView">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das Widget hat offensichtlich keine eigene graphische Repr&#228;sentation.
</p>
<p>
dieser Fall d&#252;rfte h&#228;ufiger auftreten
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1538618157537" ID="ID_1728464265" MODIFIED="1538707385953" TEXT="Problem: kaputtes Stylesheet">
<icon BUILTIN="button_ok"/>
<node CREATED="1538618179734" ID="ID_1693288014" MODIFIED="1538618198551" TEXT="das Lumiera-eigene Stylesheet funktioniert praktisch gar nicht mehr"/>
<node CREATED="1538618201035" ID="ID_1034140537" MODIFIED="1538618349191" TEXT="...seitdem die Engine &apos;Adwaitha&apos; nicht mehr gefunden wird">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ca 2014 finde ich einige Blog-Eintr&#228;ge, da&#223; jetzt keine Theming-Engine mehr notwendig ist,
</p>
<p>
weil man alles per CSS machen kann. Seit Jessie findet GTK die Engine nicht mehr,
</p>
<p>
obwohl das Standard-Theme-Paket installiert ist.
</p>
<p>
</p>
<p>
Dummerweise funktioniert nun aber auch das &#220;bersteuern mit unseren Farben nicht mehr
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1538707301511" ID="ID_265456880" MODIFIED="1538707377967" TEXT="vorl&#xe4;ufig gel&#xf6;st">
<icon BUILTIN="button_ok"/>
<node CREATED="1538707313237" ID="ID_1871755466" MODIFIED="1538707323542" TEXT="Theming-Engine nicht mehr notwendig"/>
<node CREATED="1538707324276" ID="ID_876477218" MODIFIED="1538707360310" TEXT="alternatives Erg&#xe4;nzungs-Stylesheet angelegt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...welches ich zusammen mit meinem
</p>
<p>
normalen 'light' destkop-theme verwenden kann
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534725292080" ID="ID_1462887421" MODIFIED="1538707482309" TEXT="timeout setzen">
<icon BUILTIN="button_ok"/>
<node CREATED="1538590120545" ID="ID_1847571040" MODIFIED="1538590128908" TEXT="Glib::timeout nutzen"/>
<node CREATED="1538590129616" ID="ID_9828219" MODIFIED="1538590145185" TEXT="analog zum Ctor InteractionDirector">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1538590112698" ID="ID_360284784" MODIFIED="1538707536079" TEXT="generisch anlegen">
<icon BUILTIN="button_ok"/>
<node CREATED="1538591568439" ID="ID_1863162820" MODIFIED="1538591578447" TEXT="Idee: Flasher">
<icon BUILTIN="idea"/>
<node CREATED="1538591875574" ID="ID_701299048" MODIFIED="1538592020697" TEXT="mu&#xdf; von Gtk::Widget erben">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1538591734386" ID="ID_1790046084" MODIFIED="1538591749203" TEXT="void flash()">
<node CREATED="1538591895692" ID="ID_954326123" MODIFIED="1538591904679" TEXT="installiert Glib::timeout"/>
<node CREATED="1538591905458" ID="ID_817752728" MODIFIED="1538591950857" TEXT="f&#xfc;gt CSS-Klasse hinzu"/>
</node>
<node CREATED="1538591750359" ID="ID_1546318660" MODIFIED="1538591768721" TEXT="void flashback()">
<node CREATED="1538591954100" ID="ID_248197618" MODIFIED="1538591969766" TEXT="vom Timeout aufgerufen"/>
<node CREATED="1538591970498" ID="ID_1898943385" MODIFIED="1538591977037" TEXT="entfernt CSS-Klasse"/>
</node>
</node>
<node CREATED="1538592070125" ID="ID_30810203" MODIFIED="1538592411749" TEXT="Varianten">
<icon BUILTIN="button_cancel"/>
<node CREATED="1538592125238" ID="ID_1673239146" MODIFIED="1538592131969" TEXT="hat WLink auf target-widget">
<node CREATED="1538592323691" ID="ID_567150569" MODIFIED="1538592333222" TEXT="lebt irgendwo als Member"/>
<node CREATED="1538592438724" ID="ID_1623451463" MODIFIED="1538592446455" TEXT="mu&#xdf; explizit mit dem Target verbunden werden"/>
</node>
<node CREATED="1538592135452" ID="ID_526442862" MODIFIED="1538592170019" TEXT="freischwebende selbsterhaltende Heap-Allokation">
<node CREATED="1538592277209" ID="ID_1333427334" MODIFIED="1538592290619" TEXT="flashback() endet mit Suizid"/>
<node CREATED="1538592450338" ID="ID_1611670382" MODIFIED="1538592470811" TEXT="Memory-Leak wenn flashback() ausbleibt"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538592473055" ID="ID_1323523600" MODIFIED="1538592481210" TEXT="Beschlu&#xdf;: Mixin-Design">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1538606819103" ID="ID_404941112" MODIFIED="1538607019739" TEXT="Balance">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn dieses Design gibt die beste Balance zwischen den Belangen
</p>
<ul>
<li>
kein zus&#228;tzlicher Speicherbedarf
</li>
<li>
Callback ist automatisch abgesichert (sigc::mem_fun auf Trackable)
</li>
<li>
kann direkt auf das Styling des Parent zugreifen
</li>
</ul>
<p>
Einziger Nachteil ist die etwas verwirrende Schreibweise des dekorierten Typs
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1538607106686" ID="ID_1879979063" MODIFIED="1538607368158" TEXT="z.B: FlashDeco&lt;Gtk::TextView&gt;"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534722011622" FOLDED="true" ID="ID_232472679" MODIFIED="1538756217350" TEXT="revealYourself">
<linktarget COLOR="#76a4ad" DESTINATION="ID_232472679" ENDARROW="Default" ENDINCLINATION="94;307;" ID="Arrow_ID_634173548" SOURCE="ID_898428560" STARTARROW="None" STARTINCLINATION="859;27;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535726017256" ID="ID_899234988" MODIFIED="1538263469670" TEXT="default-Impl doReveal()">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535726035309" ID="ID_1034773573" MODIFIED="1538263469670" TEXT="pr&#xfc;fen canReveal">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535726053483" ID="ID_628118697" MODIFIED="1538263469670" TEXT="Revealer aufrufen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535743810027" ID="ID_1786165843" MODIFIED="1538263469670" TEXT="bestehende default-Impl aus Widget/Controller entfernen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1534722062911" ID="ID_1134044414" MODIFIED="1538263469670" TEXT="braucht Parent-Link">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1534722073526" ID="ID_1428186731" MODIFIED="1538263469670" TEXT="parent.reveal(this)">
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#338800" CREATED="1535725982021" ID="ID_858097581" MODIFIED="1538263469670" TEXT="Revealer geeignet verdrahten">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535743705113" ID="ID_267884906" MODIFIED="1538263469670" TEXT="auch MockElm anpassen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535743754227" ID="ID_1964115972" MODIFIED="1538263469670" TEXT="doReveal(ID) API entfernen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535737911365" ID="ID_79619425" MODIFIED="1538263469670" TEXT="Unit-Test: AbtractTangible_test erweitern">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535815055702" ID="ID_493114230" MODIFIED="1538263469670" TEXT="EventLog: Problem mit Backtracking">
<arrowlink COLOR="#80b3ba" DESTINATION="ID_1041148737" ENDARROW="Default" ENDINCLINATION="-1705;-7489;" ID="Arrow_ID_1257144480" STARTARROW="None" STARTINCLINATION="838;114;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537320168170" ID="ID_1213843922" MODIFIED="1538263469670" TEXT="danach l&#xe4;&#xdf;t sich die gew&#xfc;nschte Log-Bedingung formulieren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535756076321" ID="ID_1044092797" MODIFIED="1538574525101" TEXT="konkret was machen, damit man die Funktion sehen kann">
<linktarget COLOR="#58c39d" DESTINATION="ID_1044092797" ENDARROW="Default" ENDINCLINATION="169;308;" ID="Arrow_ID_1805058492" SOURCE="ID_1726008784" STARTARROW="None" STARTINCLINATION="890;-197;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1537461362558" ID="ID_1738911844" MODIFIED="1538263469670" TEXT="Idee: ggfs minimiertes DockItem wiederherstellen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1537499243954" ID="ID_971802810" MODIFIED="1538263469670" TEXT="versuche mal Panel::show(true)">
<icon BUILTIN="help"/>
<node COLOR="#338800" CREATED="1537499275630" ID="ID_1288942046" MODIFIED="1538263469670" TEXT="verdrahtet in den Revealer">
<icon BUILTIN="button_ok"/>
<node CREATED="1537499313305" ID="ID_1086105877" MODIFIED="1538263469670" TEXT="von ErrorLogDisplay"/>
<node CREATED="1537499333798" ID="ID_57237574" MODIFIED="1538263469670" TEXT="verdrahtet in InfoboxPanel::getLog()"/>
</node>
<node CREATED="1537499267335" ID="ID_608745909" MODIFIED="1538574682605" TEXT="keine Ahnung ob das was bewirkt...">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1538574348519" FOLDED="true" ID="ID_1605278639" MODIFIED="1538574397921" TEXT="funktioniert">
<icon BUILTIN="button_ok"/>
<node CREATED="1538574378707" ID="ID_1292635888" MODIFIED="1538574394169" TEXT="es erzeugt ein neues freischwebendes Panel">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538574380386" ID="ID_1693045801" MODIFIED="1538574388709" TEXT="sofern das Panel vorher geschlossen wurde"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537661799354" ID="ID_758790930" MODIFIED="1538756230053" TEXT="Style-Manager vorsehen">
<arrowlink COLOR="#8f81b2" DESTINATION="ID_407535546" ENDARROW="Default" ENDINCLINATION="3769;-2728;" ID="Arrow_ID_1203118148" STARTARROW="None" STARTINCLINATION="-1594;0;"/>
<linktarget COLOR="#b3a9c1" DESTINATION="ID_758790930" ENDARROW="Default" ENDINCLINATION="96;-5;" ID="Arrow_ID_1283375190" SOURCE="ID_1053927695" STARTARROW="None" STARTINCLINATION="-17;39;"/>
<linktarget COLOR="#877796" DESTINATION="ID_758790930" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_564282272" SOURCE="ID_951505172" STARTARROW="None" STARTINCLINATION="649;0;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538588393995" HGAP="214" ID="ID_828368967" MODIFIED="1538589740205" TEXT="#1168 : find a way to manage style of custom extended UI elements" VSHIFT="19">
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#435e98" CREATED="1538588393995" FOLDED="true" HGAP="212" ID="ID_47427991" MODIFIED="1538589740205" TEXT="geeignetes Aufrufmuster schon mal angelegt" VSHIFT="-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1538588510003" ID="ID_217668977" MODIFIED="1538588519598" TEXT="anscheinend geht hier nix per CSS"/>
<node CREATED="1538588520377" ID="ID_178600292" MODIFIED="1538588531044" TEXT="daher: Tags per Name einf&#xfc;gen"/>
<node CREATED="1538588531824" ID="ID_1287551637" MODIFIED="1538588544522" TEXT="Tags zentral populieren"/>
</node>
</node>
<node COLOR="#338800" CREATED="1538746635373" FOLDED="true" ID="ID_1501747643" MODIFIED="1538756241503" TEXT="Error-Flag (Zustand)">
<linktarget COLOR="#87a5af" DESTINATION="ID_1501747643" ENDARROW="Default" ENDINCLINATION="54;212;" ID="Arrow_ID_512060720" SOURCE="ID_1074988560" STARTARROW="None" STARTINCLINATION="788;93;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1538746644284" ID="ID_1672227402" MODIFIED="1538746653979" TEXT="wenn ein Error-Eintrag im Index steht">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1538746666721" ID="ID_9727272" MODIFIED="1538747828042" TEXT="Pr&#xe4;dikat zur Erkennung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538746673144" ID="ID_1324190008" MODIFIED="1538747829912" TEXT="Signal welcehs bei Status-&#xc4;nderung triggert">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538746726849" ID="ID_1790025982" MODIFIED="1538756124245" TEXT="Buttons im InfoboxPanel steuern (Proof-of-Concept)">
<icon BUILTIN="button_ok"/>
<node CREATED="1538751082832" ID="ID_783222361" MODIFIED="1538756010539" TEXT="mu&#xdf; initialen Zustand schedulen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538756013358" ID="ID_1905873400" MODIFIED="1538756056312" TEXT="denn show_all() stellt Aktionen in die Event-Queue">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533689031860" HGAP="97" ID="ID_657232437" MODIFIED="1538778282275" TEXT="Implementierung" VSHIFT="9">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1533689046050" ID="ID_32330448" MODIFIED="1538263469670" TEXT="ErrorLog-Widget">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1533689055601" ID="ID_335901895" MODIFIED="1538263469670" TEXT="InfoboxPanel anlegen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523190695" FOLDED="true" ID="ID_1941760302" MODIFIED="1538708596522" TEXT="ErrorLog bei Bedarf belegen">
<arrowlink COLOR="#88a8b3" DESTINATION="ID_1806645586" ENDARROW="Default" ENDINCLINATION="-186;-20;" ID="Arrow_ID_948128706" STARTARROW="None" STARTINCLINATION="4;109;"/>
<linktarget COLOR="#7ca8bc" DESTINATION="ID_1941760302" ENDARROW="Default" ENDINCLINATION="-1967;5936;" ID="Arrow_ID_192358692" SOURCE="ID_329149746" STARTARROW="None" STARTINCLINATION="670;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523686836" ID="ID_1130300208" MODIFIED="1534524660559" TEXT="per smart-ptr halten">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534523712521" ID="ID_1958771642" MODIFIED="1534524648697" TEXT="access-API">
<icon BUILTIN="button_ok"/>
<node CREATED="1534523785342" ID="ID_1532375846" MODIFIED="1534524656476" TEXT="L&#xf6;schen nicht vorgesehen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1534523790798" ID="ID_497989103" MODIFIED="1534523799758" TEXT="man kann ja das Panel schlie&#xdf;en">
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534523721263" ID="ID_830255345" MODIFIED="1534523747373" TEXT="zuklappbar">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1533689065976" FOLDED="true" ID="ID_1456563113" MODIFIED="1538708587864" TEXT="NotificationController im Wizzard ansiedeln">
<icon BUILTIN="full-1"/>
<node CREATED="1533768795377" ID="ID_377710833" MODIFIED="1538263469670" TEXT="wirklich ein eigenst&#xe4;ndiger Controller??">
<icon BUILTIN="help"/>
<node CREATED="1533768892227" ID="ID_1131924142" MODIFIED="1538263469670" TEXT="ja, macht Sinn">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil so sichergestellt ist, da&#223; er stets existiert,
</p>
<p>
und er trotzdem vom konkreten Widget entkoppelt bleibt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1533768930822" ID="ID_1792377980" MODIFIED="1538263469670">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
besserer Name: <b>NotificationHub</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1533769126436" ID="ID_1000961938" MODIFIED="1538263469671" TEXT="wohin?">
<icon BUILTIN="button_ok"/>
<node CREATED="1533769130987" ID="ID_220812854" MODIFIED="1538263469671" TEXT="ctrl">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1533769133802" ID="ID_643904873" MODIFIED="1538263469671" TEXT="interact">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1533769137338" ID="ID_918339492" MODIFIED="1538263469671" TEXT="workspace">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1533689076590" ID="ID_321096443" MODIFIED="1538263469671" TEXT="mit Bus verdrahten und ID global konstant definieren">
<icon BUILTIN="full-2"/>
</node>
<node COLOR="#435e98" CREATED="1533689098787" FOLDED="true" ID="ID_191346591" MODIFIED="1538778263755" TEXT="Empfangs-Logik im NotificationHub (Controller)">
<icon BUILTIN="full-3"/>
<node COLOR="#338800" CREATED="1534119968325" ID="ID_1630503080" MODIFIED="1538746815645" TEXT="Einrichtung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534336479160" ID="ID_203145360" MODIFIED="1538263469671" TEXT="Link zum Widget herstellen">
<arrowlink COLOR="#a66b86" DESTINATION="ID_1326202399" ENDARROW="Default" ENDINCLINATION="279;-1333;" ID="Arrow_ID_664593340" STARTARROW="None" STARTINCLINATION="-1296;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534334830126" ID="ID_932140820" MODIFIED="1538263469671" TEXT="als Funktor konfiguriert">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534334822288" ID="ID_1305015272" MODIFIED="1538263469671" TEXT="Allozieren">
<arrowlink COLOR="#726b86" DESTINATION="ID_1806645586" ENDARROW="Default" ENDINCLINATION="232;27;" ID="Arrow_ID_246715972" STARTARROW="None" STARTINCLINATION="180;-21;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1533689120536" ID="ID_1806645586" MODIFIED="1538708596522" TEXT="View belegen">
<linktarget COLOR="#88a8b3" DESTINATION="ID_1806645586" ENDARROW="Default" ENDINCLINATION="-186;-20;" ID="Arrow_ID_948128706" SOURCE="ID_1941760302" STARTARROW="None" STARTINCLINATION="4;109;"/>
<linktarget COLOR="#726b86" DESTINATION="ID_1806645586" ENDARROW="Default" ENDINCLINATION="232;27;" ID="Arrow_ID_246715972" SOURCE="ID_1305015272" STARTARROW="None" STARTINCLINATION="180;-21;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#990000" CREATED="1533689125583" FOLDED="true" ID="ID_1077285383" MODIFIED="1538574300844" TEXT="mit close-signal verdrahten">
<icon BUILTIN="stop-sign"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1534629989468" ID="ID_1497889519" MODIFIED="1534630008024" TEXT="close-Signal gibtsned">
<icon BUILTIN="broken-line"/>
<node CREATED="1534630165971" ID="ID_783988097" MODIFIED="1534630171687" TEXT="nur Fenster haben signal_delete_event"/>
<node CREATED="1534630176586" ID="ID_712401559" MODIFIED="1534630190996" TEXT="wird aber per Default auf hide() gemappt"/>
<node COLOR="#435e98" CREATED="1534634189347" ID="ID_146943890" MODIFIED="1534635809110">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
GTK-Konzepte: &quot;<b>Schlie&#223;en</b>&quot;
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#6f7ab9" DESTINATION="ID_1900017952" ENDARROW="Default" ENDINCLINATION="-2264;0;" ID="Arrow_ID_1220603071" STARTARROW="None" STARTINCLINATION="-6278;0;"/>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1534630195728" ID="ID_1711320497" MODIFIED="1534630202867" TEXT="was brauche ich?">
<node CREATED="1534630216909" ID="ID_1211516480" MODIFIED="1534630237569">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn Log-Anzeige <i>verworfen</i>&#160;wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
<node CREATED="1534630507190" ID="ID_1710219381" MODIFIED="1534630516168" TEXT="aus dem umschlie&#xdf;enden Container entfernt"/>
<node CREATED="1534630517045" ID="ID_435686246" MODIFIED="1534630526167" TEXT="und dann wirklich zerst&#xf6;rt, nicht nur verborgen"/>
<node CREATED="1534630526995" ID="ID_626097783" MODIFIED="1534630535742" TEXT="zugeh&#xf6;riges Model wird ebenfalls zerst&#xf6;rt"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534630538178" FOLDED="true" ID="ID_706923205" MODIFIED="1534726744532" TEXT="wenn Docking-Panel geschlossen wird">
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1534630581532" ID="ID_333724082" MODIFIED="1534721330781" TEXT="herausfinden ob und was passiert">
<icon BUILTIN="button_ok"/>
<node CREATED="1534636016460" ID="ID_16558042" MODIFIED="1534636022815" TEXT="vom Code her nicht klar"/>
<node CREATED="1534636023499" ID="ID_1133271303" MODIFIED="1534636030757" TEXT="k&#xf6;nnte kaputt sein"/>
<node CREATED="1534636033826" ID="ID_1327331647" MODIFIED="1534636037572" TEXT="theoretisch....">
<node CREATED="1534636038545" ID="ID_20267823" MODIFIED="1534636076288" TEXT="sollte das Panel aus seinem Container genommen werden"/>
<node CREATED="1534636077660" ID="ID_1153072337" MODIFIED="1534636097661" TEXT="und der Container (=DockItem) sollte daraufhin dieses Kind (=Panel) verbergen"/>
<node CREATED="1534636098937" ID="ID_684477198" MODIFIED="1534636108035" TEXT="jedenfalls w&#xe4;re das die normale GTK-Logik"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534636118486" ID="ID_1396783317" MODIFIED="1534636136704" TEXT="TODO: empirisch herausfinden">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1534630593946" ID="ID_332877746" MODIFIED="1534630600819" TEXT="Einstiegspunkt: PanelManager">
<icon BUILTIN="idea"/>
<node CREATED="1534630686134" ID="ID_1763470642" MODIFIED="1534630687561" TEXT="PanelManager::removePanel"/>
<node CREATED="1534630698524" ID="ID_170868004" MODIFIED="1534630699432" TEXT="delete panel;"/>
<node CREATED="1534630922134" ID="ID_1602014175" MODIFIED="1534630925289" TEXT="komisch...">
<node CREATED="1534630926326" ID="ID_1520511750" MODIFIED="1534630932161" TEXT="Panel erbt von VBox"/>
<node CREATED="1534630932821" ID="ID_669390115" MODIFIED="1534630940399" TEXT="h&#xe4;lt nur eine Referenz auf das DockItem"/>
<node CREATED="1534631014841" ID="ID_997149684" MODIFIED="1534631085070" TEXT="dieser Code ist gegenw&#xe4;rtig auskommentiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
er ist n&#228;mlich auch aufgerufen worden, nachdem die GTK-Loop bereits beendet war.
</p>
<p>
Dieser Code hat fr&#252;her C-m&#228;&#223;ig direkt die GObjects manipuliert (Anfangs hatten wir nur GDL, nicht GDLmm)
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1534630941563" ID="ID_701586360" MODIFIED="1534631013681" TEXT="Code im dtor entfernt das Panel aus dem DockItem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Erl&#228;uterung: DockItem ist ein 1-elementiger GTK-Container,
</p>
<p>
der sichtbare Inhalt liegt in diesem Container. Bei uns ist das das Panel.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1534632167588" ID="ID_482488418" MODIFIED="1534632171240" TEXT="gtk_container_remove">
<node CREATED="1534632172396" ID="ID_1415075917" MODIFIED="1534632183158" TEXT="&#xe4;ndert nichts am Sichtbarkeits-Status"/>
<node CREATED="1534632183818" ID="ID_1537037393" MODIFIED="1534632194005" TEXT="aber erniedrigt den Refcount"/>
<node CREATED="1534632290500" ID="ID_1165360257" MODIFIED="1534632304077" TEXT="emittiert das signal_remove auf dem Container"/>
<node CREATED="1534632195136" ID="ID_1692600031" MODIFIED="1534632241155" TEXT="Intersssanter Kommentar: man sollte direkt zerst&#xf6;ren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Removes @widget from @container. @widget must be inside @container.
</p>
<p>
Note that @container will own a reference to @widget, and that this
</p>
<p>
may be the last reference held; so removing a widget from its&#160;&#160;&#160;&#160;&#160;
</p>
<p>
container can destroy that widget. If you want to use @widget&#160;&#160;&#160;&#160;&#160;
</p>
<p>
again, you need to add a reference to it before removing it from&#160;&#160;
</p>
<p>
a container, using g_object_ref(). If you don&#8217;t want to use @widget
</p>
<p>
again it&#8217;s usually more efficient to simply destroy it directly&#160;&#160;&#160;
</p>
<p>
using gtk_widget_destroy() since this will remove it from the&#160;&#160;&#160;&#160;&#160;
</p>
<p>
container and help break any circular reference count cycles.&#160;&#160;&#160;&#160;&#160;
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1534632585779" ID="ID_1472646683" MODIFIED="1534632587041" TEXT="gtk_widget_destroy">
<node CREATED="1534632595042" ID="ID_818220639" MODIFIED="1534632609779" TEXT="macht praktisch nix"/>
<node CREATED="1534632593098" ID="ID_1924038071" MODIFIED="1534632594262" TEXT="g_object_run_dispose">
<node CREATED="1534632642379" ID="ID_1189983629" MODIFIED="1534632650014" TEXT="macht nur Memory-Management"/>
</node>
<node CREATED="1534632859518" ID="ID_738187804" MODIFIED="1534632873272" TEXT="aufgerufen von : gtk_container_destroy">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node CREATED="1534636163120" ID="ID_1102539072" MODIFIED="1534721182274" TEXT="explizites Destroy-Signal bauen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1534636203306" ID="ID_1590219615" MODIFIED="1534636301238" TEXT="wird nicht vom Framework bereitgestellt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist das Fazit meiner Untersuchung.
</p>
<p>
&quot;destroy&quot; ist kein relevantes Konzept f&#252;r GTK. Es gibt nur show()/hide().
</p>
<p>
</p>
<p>
Also m&#252;ssen wir <i>explizit</i>
</p>
<ul>
<li>
eine Destroy-Signal bauen
</li>
<li>
daf&#252;r sorgen, da&#223; das Infobox-Panel das auch aufruft
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1534636462287" ID="ID_1581893176" MODIFIED="1534721195248" TEXT="eigenes SigC Signal bereitstellen"/>
<node CREATED="1534636486123" ID="ID_1855036791" MODIFIED="1535814840374" TEXT="w&#xfc;rde vom ErrorLog-dtor aufgerufen"/>
<node CREATED="1534721236063" ID="ID_1398832202" MODIFIED="1534721247336" TEXT="das w&#xe4;re eine private Konvention">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1534721249117" ID="ID_997317939" MODIFIED="1534721572753" TEXT="....dann ist WLink genauso gut">
<arrowlink COLOR="#69b2a9" DESTINATION="ID_1471234946" ENDARROW="Default" ENDINCLINATION="37;-44;" ID="Arrow_ID_1612034198" STARTARROW="None" STARTINCLINATION="-209;0;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534721400696" ID="ID_1935193271" MODIFIED="1538263469671" TEXT="jeder Zugriff pr&#xfc;ft WLink">
<icon BUILTIN="button_ok"/>
<node CREATED="1534721417590" ID="ID_1471234946" MODIFIED="1538263469671" STYLE="fork" TEXT="das er&#xfc;brigt Verwalten eines eigenen Signales">
<linktarget COLOR="#69b2a9" DESTINATION="ID_1471234946" ENDARROW="Default" ENDINCLINATION="37;-44;" ID="Arrow_ID_1612034198" SOURCE="ID_997317939" STARTARROW="None" STARTINCLINATION="-209;0;"/>
</node>
<node COLOR="#338800" CREATED="1534729080597" ID="ID_1547931497" MODIFIED="1538263469671" TEXT="Code durchgesehen: alle Zugriffe sauber">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
entweder sie laufen &#252;ber den Getter,
</p>
<p>
oder sie pr&#252;fen den Zustand und machen nichts, wenn das Widget nicht da ist
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1534721435740" ID="ID_1066281960" MODIFIED="1538263469671" TEXT="Konvention: Fehlerlog-Widget zerst&#xf6;ren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und nicht blo&#223; inaktiv schalten.
</p>
</body>
</html></richcontent>
<node COLOR="#338800" CREATED="1534721528967" ID="ID_1984401497" MODIFIED="1538778232908" TEXT="verifizieren">
<arrowlink DESTINATION="ID_1360416196" ENDARROW="Default" ENDINCLINATION="417;34;" ID="Arrow_ID_1337668046" STARTARROW="None" STARTINCLINATION="-454;-9;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721523435" ID="ID_679085788" MODIFIED="1538263469671" TEXT="dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1534721512505" ID="ID_1260021418" MODIFIED="1538778245658" TEXT="sofern es im Panel lebt, passiert das automatisch">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533689146501" FOLDED="true" ID="ID_1371087868" MODIFIED="1538756258879" TEXT="bei Bedarf anzeigen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534636343111" ID="ID_1922277957" MODIFIED="1538263469671" TEXT="ebenfalls explizit zu bauen">
<icon BUILTIN="button_ok"/>
<node CREATED="1534636352398" ID="ID_435790811" MODIFIED="1538263469671" TEXT="&#xe4;hnliche Lage wie bei Destroy">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
GTK bietet nur Anzeigen von top-down:
</p>
<ul>
<li>
show_all() auf Containern zeigt rekursiv alle Kinder
</li>
<li>
show() zeigt nur ein bestimmtes Widget
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1534636369107" ID="ID_898428560" MODIFIED="1538574657332" TEXT="reveal / revealYourself">
<arrowlink COLOR="#76a4ad" DESTINATION="ID_232472679" ENDARROW="Default" ENDINCLINATION="94;307;" ID="Arrow_ID_634173548" STARTARROW="None" STARTINCLINATION="859;27;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1534636377938" ID="ID_64685935" MODIFIED="1538263469671" TEXT="Lumiera-Framework: Revealer">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1537499427673" ID="ID_671371282" MODIFIED="1538263469671" TEXT="#1162 helper abstractions for generic widgets">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1534721937152" ID="ID_1396835945" MODIFIED="1538263469671" TEXT="macht aber nicht der Controller">
<icon BUILTIN="yes"/>
<node CREATED="1534721946351" ID="ID_1570295012" MODIFIED="1538263469671" TEXT="typisches OO-Design"/>
<node CREATED="1534721955070" ID="ID_1390682663" MODIFIED="1538263469671" TEXT="der Controller ruft nur getWidget().reveal() auf">
<linktarget COLOR="#7691b1" DESTINATION="ID_1390682663" ENDARROW="Default" ENDINCLINATION="-71;33;" ID="Arrow_ID_1469414604" SOURCE="ID_558411855" STARTARROW="None" STARTINCLINATION="109;16;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1533689138950" FOLDED="true" ID="ID_580572298" MODIFIED="1538756271677" TEXT="status-Flag">
<icon BUILTIN="button_cancel"/>
<node CREATED="1534722574441" ID="ID_558411855" MODIFIED="1538263469671" TEXT="delegiert an Widget">
<arrowlink COLOR="#7691b1" DESTINATION="ID_1390682663" ENDARROW="Default" ENDINCLINATION="-71;33;" ID="Arrow_ID_1469414604" STARTARROW="None" STARTINCLINATION="109;16;"/>
<icon BUILTIN="stop-sign"/>
<node COLOR="#338800" CREATED="1534722791268" ID="ID_1074988560" MODIFIED="1538747845155" TEXT="Error-State">
<arrowlink COLOR="#87a5af" DESTINATION="ID_1501747643" ENDARROW="Default" ENDINCLINATION="54;212;" ID="Arrow_ID_512060720" STARTARROW="None" STARTINCLINATION="788;93;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534722566362" HGAP="29" ID="ID_202753412" MODIFIED="1538756262259" TEXT="sichtbar" VSHIFT="-18">
<icon BUILTIN="button_ok"/>
<node CREATED="1538756263572" ID="ID_1046625699" MODIFIED="1538756268712" TEXT="durch Button-Aktivierung"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534119979555" FOLDED="true" ID="ID_1159164748" MODIFIED="1538756279718" TEXT="Controller-Interface">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534120150458" ID="ID_1083026482" MODIFIED="1538263469672" TEXT="Expander">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150459" ID="ID_1182032725" MODIFIED="1538263469672" TEXT="&quot;Allocate Widget if necessary, expand widget&quot;">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1535752333217" ID="ID_332486075" MODIFIED="1538263469672" TEXT="geeignet verdrahten f&#xfc;r Delegation">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535752347574" ID="ID_883461261" MODIFIED="1538263469672" TEXT="Expander im ErrorLog widget verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150459" ID="ID_1466610963" MODIFIED="1538574630062" TEXT="doRevealYourself()">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150460" ID="ID_1726008784" MODIFIED="1538574623534">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b><font color="#3d51ac">L&#246;sung</font></b>: delegiere &#252;ber zwei Stufen...
</p>
<p>
Neue <b>Revealer</b>-Komponente bindet einen Funktor
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#58c39d" DESTINATION="ID_1044092797" ENDARROW="Default" ENDINCLINATION="169;308;" ID="Arrow_ID_1805058492" STARTARROW="None" STARTINCLINATION="890;-197;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150457" ID="ID_1499287865" MODIFIED="1538277265473" TEXT="doReset()">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150458" ID="ID_1390376483" MODIFIED="1538277278304" TEXT="&quot;Clear log contents, collapse widget, clear error state&quot;">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150462" ID="ID_1528884346" MODIFIED="1538263469672" TEXT="doMsg(text)">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150462" ID="ID_1226643824" MODIFIED="1538263469672" TEXT="&quot;Possibly allocate Widget, place text into its buffer. No need to expand&quot;">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150463" ID="ID_183847307" MODIFIED="1538586631566" TEXT="doClearMsg()">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150463" ID="ID_1378278687" MODIFIED="1538263469672" TEXT="&quot;remove all mere information messages&quot;">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150463" ID="ID_1967851591" MODIFIED="1538263469672" TEXT="doErr(text)">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150463" ID="ID_764543121" MODIFIED="1538263469672">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<ul>
<li>
Set error state.
</li>
<li>
Allocate Widget if necessary
</li>
<li>
expand widget
</li>
<li>
place error message into its buffer&quot;
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150464" ID="ID_1675673289" MODIFIED="1538587773087" TEXT="doClearErr()">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150465" ID="ID_1858186015" MODIFIED="1538263469673" TEXT="&quot;clear error state. If widget exists, turn all error entries into mere information entries&quot;">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537531617621" ID="ID_447071799" MODIFIED="1538587782757" TEXT="doMark()">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537531624828" ID="ID_52936917" MODIFIED="1538587791541" TEXT="Spezialbehandlung + Chain, um die Warnungs State-marks abzugreifen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534120150465" ID="ID_1862649971" MODIFIED="1538707824819" TEXT="doFlash()">
<icon BUILTIN="button_ok"/>
<node CREATED="1534120150465" ID="ID_222097969" MODIFIED="1538263469673">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&quot;If widget exists: expand it, trigger its flash function (paint with timeout).
</p>
<p>
<b><font color="#951c1c">TODO</font></b>&#160;also doRevealYourself.&quot;
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534334029619" ID="ID_1981930639" MODIFIED="1538756282446" TEXT="ErrorLogView vorl&#xe4;ufig...">
<arrowlink COLOR="#628195" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="245;349;" ID="Arrow_ID_1743659141" STARTARROW="None" STARTINCLINATION="397;197;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1533689164394" ID="ID_405297881" MODIFIED="1538708568344" TEXT="in NotificationService integrieren">
<icon BUILTIN="full-4"/>
</node>
<node COLOR="#435e98" CREATED="1533689225658" FOLDED="true" ID="ID_662017160" MODIFIED="1538777756201" TEXT="Pling! -Button">
<icon BUILTIN="full-5"/>
<node COLOR="#338800" CREATED="1533689235200" FOLDED="true" ID="ID_1760873318" MODIFIED="1538263469673" TEXT="non-modal TestControl">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537836495530" ID="ID_182389429" MODIFIED="1538263469673" TEXT="per Men&#xfc;eintrag &#xf6;ffnen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537841662854" ID="ID_451055929" MODIFIED="1538263469673" TEXT="Men&#xfc;eintrag im Hilfe-Men&#xfc;">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537841672261" ID="ID_1740266874" MODIFIED="1538263469673" TEXT="wird gemanaged vom Wizard">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537836597844" ID="ID_1217826524" MODIFIED="1538263469673" TEXT="Konstrukt wie im Tutorial">
<icon BUILTIN="button_ok"/>
<node CREATED="1537836612210" ID="ID_225351262" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-about-dialog.html.en#aboutdialog-example" MODIFIED="1538263469673" TEXT="non-modal about dialog">
<icon BUILTIN="info"/>
</node>
<node CREATED="1537838250303" FOLDED="true" ID="ID_1190002074" MODIFIED="1538263469673" TEXT="ist ein sub-window besser">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1537838265916" ID="ID_920100816" MODIFIED="1537841473971" TEXT="wie?">
<icon BUILTIN="help"/>
<node CREATED="1537838337960" ID="ID_1900235846" MODIFIED="1537838337960" TEXT="set_transient_for (Window&amp; parent)"/>
<node CREATED="1537838432423" ID="ID_1065922306" MODIFIED="1537838432423" TEXT="set_type_hint (Gdk::WindowTypeHint hint)">
<node CREATED="1537838435238" ID="ID_1301145489" MODIFIED="1537838439809" TEXT="nicht klar ob relevant"/>
</node>
<node CREATED="1537838544449" ID="ID_1666779438" LINK="https://developer.gnome.org/gtkmm/3.22/classGtk_1_1Window.html#a1f70b3c35e8c477ab3c1f9503a37a6a1" MODIFIED="1537838555867" TEXT="set_modal (bool modal=true)"/>
<node CREATED="1537838781593" MODIFIED="1537838781593" TEXT="property_destroy_with_parent ()"/>
</node>
<node CREATED="1537841505883" ID="ID_1112461783" MODIFIED="1537841514485" TEXT="geht wohl, ist aber etwas umst&#xe4;ndlich"/>
</node>
<node COLOR="#435e98" CREATED="1537841516945" ID="ID_1578548739" MODIFIED="1538263469674" TEXT="Dialog-Basisklasse non-modal">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1537841531352" ID="ID_1190471518" MODIFIED="1538263469674" TEXT="hat eigene Konstruktoren, die den Dialog non-modal machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537841543886" ID="ID_59238198" MODIFIED="1538263469674" TEXT="regelt schon automatisch das Verh&#xe4;ltnis zum Vaterfenster">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1537846114160" ID="ID_1907327221" MODIFIED="1538263469674" TEXT="Vorbild: Joel&apos;s PreferencesDialog">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1537848007082" ID="ID_1014258603" MODIFIED="1538263469674" TEXT="Notebook">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537848010330" ID="ID_1307971717" MODIFIED="1538263469674" TEXT="Seite einf&#xfc;gen f&#xfc;r #1099">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537846129846" ID="ID_984655666" MODIFIED="1538263469674" TEXT="mu&#xdf; nur noch non-modal sein...">
<icon BUILTIN="button_ok"/>
<node CREATED="1537847939155" ID="ID_1465508298" MODIFIED="1538263469674" TEXT="einfach per Gtk::DialogFlags">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1537847979886" ID="ID_1956886110" MODIFIED="1538263469674" TEXT="DIALOG_DESTROY_WITH_PARENT"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537836550411" ID="ID_899229612" MODIFIED="1538263469674" TEXT="h&#xe4;ngt (passiv) am UI-Bus">
<icon BUILTIN="button_ok"/>
<node CREATED="1537848045781" ID="ID_766784189" MODIFIED="1538263469674" TEXT="analog zum NotificationService">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1537848056915" ID="ID_64593877" MODIFIED="1538263469674" TEXT="globals.uiBus_.getAccessPoint()">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537961550200" ID="ID_226231657" MODIFIED="1538263469674" TEXT="setup f&#xfc;r Notebook-Widget">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1537961568746" ID="ID_1553519505" MODIFIED="1538263469674" TEXT="Prototyp f&#xfc;r generischen Helper">
<arrowlink COLOR="#6ea8be" DESTINATION="ID_591860371" ENDARROW="Default" ENDINCLINATION="1162;51;" ID="Arrow_ID_1534615646" STARTARROW="None" STARTINCLINATION="-185;836;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537836522950" ID="ID_87203159" MODIFIED="1538263469674" TEXT="Radiobuttons">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537834955977" ID="ID_556296967" MODIFIED="1538263469674" TEXT="Argument-Textbox">
<arrowlink COLOR="#19f524" DESTINATION="ID_1072038781" ENDARROW="Default" ENDINCLINATION="-7;-200;" ID="Arrow_ID_746117643" STARTARROW="None" STARTINCLINATION="94;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537836579647" ID="ID_951515368" MODIFIED="1538263469674" TEXT="Pling!">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537972817468" FOLDED="true" ID="ID_443954725" MODIFIED="1538263469674" TEXT="direkt den UI-Bus ansprechen">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1537973078631" ID="ID_476903403" MODIFIED="1537973140285" TEXT="*** first tangible action sent via UI-Bus ***">
<font NAME="SansSerif" SIZE="28"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537848127378" ID="ID_1206004" MODIFIED="1538263469674" TEXT="Argument-Werte abgreifen">
<arrowlink COLOR="#47ebbb" DESTINATION="ID_1745090225" ENDARROW="Default" ENDINCLINATION="119;0;" ID="Arrow_ID_372783230" STARTARROW="None" STARTINCLINATION="-10;35;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533689243871" FOLDED="true" ID="ID_1745090225" MODIFIED="1538263469674" TEXT="triggert Dummy-Command">
<linktarget COLOR="#47ebbb" DESTINATION="ID_1745090225" ENDARROW="Default" ENDINCLINATION="119;0;" ID="Arrow_ID_372783230" SOURCE="ID_1206004" STARTARROW="None" STARTINCLINATION="-10;35;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1538220904703" HGAP="46" ID="ID_1997338106" MODIFIED="1538263469674" TEXT="definieren..." VSHIFT="31">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1538220944278" ID="ID_1508594379" MODIFIED="1538263469674" TEXT="test_meta_displayInfo">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538220949651" ID="ID_1282771011" MODIFIED="1538263469674" TEXT="test_meta_markError">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538220955266" ID="ID_1011451863" MODIFIED="1538263469674" TEXT="test_meta_markNote">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538220961641" ID="ID_1936475731" MODIFIED="1538263469674" TEXT="test_meta_markAction">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533689255174" ID="ID_821013695" MODIFIED="1538281518697" TEXT="Aufruf via Notification_Facade">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537835197558" ID="ID_1477928890" MODIFIED="1538263469674" TEXT="displayInfo">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537977715375" ID="ID_26283848" MODIFIED="1538263469675" TEXT="INFO">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537977721054" ID="ID_1182006449" MODIFIED="1538263469675" TEXT="WARN">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537977723454" ID="ID_484673349" MODIFIED="1538263469675" TEXT="ERROR">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537835015601" ID="ID_1684094906" MODIFIED="1538263469675" TEXT="direkte Bus-Aufrufe">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537835220978" ID="ID_1439086949" MODIFIED="1538263469675" TEXT="markError">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835228018" ID="ID_1420898810" MODIFIED="1538263469675" TEXT="markNote">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835741000" ID="ID_1072038781" MODIFIED="1538263469675" TEXT="mark">
<linktarget COLOR="#19f524" DESTINATION="ID_1072038781" ENDARROW="Default" ENDINCLINATION="-7;-200;" ID="Arrow_ID_746117643" SOURCE="ID_556296967" STARTARROW="None" STARTINCLINATION="94;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537835767228" ID="ID_400466516" MODIFIED="1538263469675" TEXT="FLASH">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835848674" ID="ID_1915433481" MODIFIED="1538263469675" TEXT="REVEAL">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538239665856" FOLDED="true" ID="ID_518505874" MODIFIED="1538574272012" TEXT="EXPAND">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1538281532767" ID="ID_1335570495" MODIFIED="1538365732115" TEXT="Fehler: mu&#xdf; eigens separate GenNode bauen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil der Payload-Typ f&#252;r diesen Aufruf bool ist,
</p>
<p>
und nicht string wie f&#252;r alle anderen state marks
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1538281608933" ID="ID_584897977" MODIFIED="1538533889689" TEXT="mu&#xdf; bool parsen...">
<icon BUILTIN="button_ok"/>
<node CREATED="1538281635897" ID="ID_562945035" MODIFIED="1538281651821" TEXT="lexical_cast geht nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
k
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1538281655774" ID="ID_1847834965" MODIFIED="1538281662977" TEXT="kann nur 1 und 0"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1538281664349" FOLDED="true" ID="ID_1454517361" MODIFIED="1538441787807" TEXT="interessanter Folgefehler">
<icon BUILTIN="broken-line"/>
<node CREATED="1538281691097" ID="ID_1911272932" MODIFIED="1538281757024" TEXT="exception killt ProcDispatcher (das ist OK)">
<icon BUILTIN="full-1"/>
<node CREATED="1538316932460" ID="ID_532178252" MODIFIED="1538317666896" TEXT="warum l&#xe4;uft das &#xfc;ber HandlingPattern?">
<icon BUILTIN="button_ok"/>
<node CREATED="1538316947954" ID="ID_299870867" MODIFIED="1538316961132" TEXT="dachte, wir rufen Dummy-Commands direkt auf"/>
<node CREATED="1538317636429" ID="ID_555373711" MODIFIED="1538317640326" TEXT="tun wir auch">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1538317641621" ID="ID_1808679252" MODIFIED="1538317662923" TEXT="aber proc::Command verwendet Default-Pattern">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1538316971295" ID="ID_1865988337" MODIFIED="1538316977546" TEXT="Abgreifen der Fehler-Info">
<node CREATED="1538316982046" ID="ID_252583984" MODIFIED="1538317000205" STYLE="fork" TEXT="im std::exception-Handler">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1538317002019" ID="ID_957898086" MODIFIED="1538317225421" TEXT="lumiera::Error">
<icon BUILTIN="forward"/>
<node CREATED="1538356729852" FOLDED="true" ID="ID_435503551" MODIFIED="1538356803291" TEXT="wird die cause korrekt &#xfc;bernommen?">
<icon BUILTIN="button_ok"/>
<node CREATED="1538356756336" ID="ID_342508440" MODIFIED="1538356782737" TEXT="ja... works as designed">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1538356761143" ID="ID_1729059066" MODIFIED="1538356797681">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konzept ist <i>nicht</i>, sie gleich in die description zu &#252;bernehmen
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1538317075985" FOLDED="true" ID="ID_712272839" MODIFIED="1538365661558" TEXT="Problem: lumiera Error-Flag &#xfc;bernimmt nur lokale description">
<linktarget COLOR="#c4588d" DESTINATION="ID_712272839" ENDARROW="Default" ENDINCLINATION="577;63;" ID="Arrow_ID_428347507" SOURCE="ID_313278942" STARTARROW="None" STARTINCLINATION="341;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1538317102405" ID="ID_1770156379" MODIFIED="1538317106320" TEXT="und die ist hier leer"/>
<node CREATED="1538317107765" ID="ID_1730697631" MODIFIED="1538317122431" TEXT="sollte unsere what()-Methode nutzen"/>
<node CREATED="1538317157966" ID="ID_600719509" MODIFIED="1538317169480" TEXT="Problem: Storage">
<node CREATED="1538317171852" ID="ID_1284960080" MODIFIED="1538317570097" TEXT="verwende Symbol">
<icon BUILTIN="button_cancel"/>
<node CREATED="1538317176347" ID="ID_1919150970" MODIFIED="1538317201070" TEXT="wat soll der jeiz">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das System ist ohnehin schon anget&#246;tet
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1538317544954" ID="ID_1154202054" MODIFIED="1538317573410">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
keines! Impl verwendet <b>strdup</b>()
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1538318187819" FOLDED="true" ID="ID_870746075" MODIFIED="1538365651376" TEXT="Problem: ExecResult nicht ausgewertet">
<icon BUILTIN="button_ok"/>
<node CREATED="1538318216016" ID="ID_1444888451" MODIFIED="1538318226226" TEXT="Exception wird nicht ausgeworfen"/>
<node CREATED="1538318227150" ID="ID_956176289" MODIFIED="1538318230994" TEXT="Loop l&#xe4;uft weiter"/>
<node CREATED="1538318231726" ID="ID_373021764" MODIFIED="1538318237104" TEXT="aber Error-State ist gesetzt">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538319081491" ID="ID_599527376" MODIFIED="1538319687663" TEXT="das ist ein Logik-Fehler">
<linktarget COLOR="#e54f84" DESTINATION="ID_599527376" ENDARROW="Default" ENDINCLINATION="-9;283;" ID="Arrow_ID_1159234155" SOURCE="ID_1536519871" STARTARROW="None" STARTINCLINATION="411;-47;"/>
<icon BUILTIN="yes"/>
<node CREATED="1538319099993" ID="ID_1362819933" MODIFIED="1538319118146" TEXT="da Exception in einem ExecResult gespeicher ist"/>
<node CREATED="1538319119398" ID="ID_1062993543" MODIFIED="1538319129753" TEXT="...gilt sie nicht mehr als &quot;schwebend&quot;"/>
<node CREATED="1538319130725" ID="ID_1118929704" MODIFIED="1538319141433" TEXT="der Aufrufer hat volle Freiheit, sie zu ignorieren">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1538318997502" ID="ID_1664562023" MODIFIED="1538319007145" TEXT="wacht nach max-timeout (f&#xfc;r Builder auf)"/>
<node CREATED="1538319008117" ID="ID_73040538" MODIFIED="1538319025223" TEXT="unser Object-Monitor pr&#xfc;ft beim Aufwachen den Error-state">
<node CREATED="1538319150290" ID="ID_313278942" MODIFIED="1538319185279" TEXT="und wirft hier nur noch die verk&#xfc;rzte Description aus">
<arrowlink COLOR="#c4588d" DESTINATION="ID_712272839" ENDARROW="Default" ENDINCLINATION="577;63;" ID="Arrow_ID_428347507" STARTARROW="None" STARTINCLINATION="341;0;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538319193716" ID="ID_1785359217" MODIFIED="1538319206846" TEXT="...das erkl&#xe4;rt, warum wir die Ursache nicht sehen"/>
</node>
</node>
<node CREATED="1538319456089" FOLDED="true" ID="ID_342927310" MODIFIED="1538365654527" TEXT="Problem: Handler im ProcDispatcher behandelt nur LumieraException speziell">
<icon BUILTIN="button_ok"/>
<node CREATED="1538319495420" ID="ID_39746243" MODIFIED="1538319501623" TEXT="das stellt zwar hier kein Problem dar"/>
<node CREATED="1538319502331" ID="ID_1092806315" MODIFIED="1538319511413" TEXT="und es ist noch der unspezifische Handler da"/>
<node CREATED="1538319512146" ID="ID_672632423" MODIFIED="1538319533231" TEXT="aber: problem.what() geht verloren bei std::exception">
<icon BUILTIN="forward"/>
</node>
<node COLOR="#338800" CREATED="1538319535006" ID="ID_403817336" MODIFIED="1538365635663" TEXT="Fix: Handler kann genausogut auf std::exception abstellen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir verwenden das Lumiera-Exception-API gar nicht
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1538281708919" ID="ID_1611370738" MODIFIED="1538281759509" TEXT="error state ist gesetzt">
<icon BUILTIN="full-2"/>
<node CREATED="1538319670284" ID="ID_1536519871" MODIFIED="1538319694106" TEXT="gekl&#xe4;rt warum">
<arrowlink COLOR="#e54f84" DESTINATION="ID_599527376" ENDARROW="Default" ENDINCLINATION="-9;283;" ID="Arrow_ID_1159234155" STARTARROW="None" STARTINCLINATION="411;-47;"/>
</node>
<node CREATED="1538319701680" ID="ID_1856422179" MODIFIED="1538319729311" TEXT="...und beim Trigger ist er schon nicht mehr gesetzt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Handler im ProcDispatcher sorgt daf&#252;r
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1538281715646" ID="ID_1541383645" MODIFIED="1538281762796" TEXT="emergency shutdown">
<icon BUILTIN="full-3"/>
<node CREATED="1538320876787" ID="ID_1528655784" MODIFIED="1538320883630" TEXT="Subsystem-Shutdown">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538320884769" FOLDED="true" ID="ID_707965628" MODIFIED="1538365685651" TEXT="Problem: re-entrance Bug">
<icon BUILTIN="hourglass"/>
<node CREATED="1538320904127" ID="ID_1958182633" MODIFIED="1538320932319" TEXT="shutdownAll() ruft indirekt/rekursiv sigTerm()">
<node COLOR="#435e98" CREATED="1538321043388" ID="ID_1860084270" MODIFIED="1538348459443" TEXT="fragt sich, warum">
<icon BUILTIN="help"/>
</node>
<node CREATED="1538321059074" ID="ID_1754741024" MODIFIED="1538321069733" TEXT="Vermutung: degeneriertes Subsystem">
<node CREATED="1538321102148" ID="ID_862751524" MODIFIED="1538321102148">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...welches keinen separaten Thread aufruft....?
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1538321104964" ID="ID_990799680" MODIFIED="1538321198833" TEXT="...und daher das Lock auf dem Subsystem-Runner bekommt">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1538348464066" ID="ID_1973011292" MODIFIED="1538348489286" TEXT="genau so isses (...und ich hatte vor Jahren schon ein Ticket aufgemacht)">
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538348427367" ID="ID_1696230148" MODIFIED="1538348438054" TEXT="#814 subsystem-runner: re-entrance in triggerShutdown">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1538320933291" ID="ID_573672353" MODIFIED="1538320975419" TEXT="removeall auf Collection, die grade iteriert wird">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich im shutdownAll() weiter oben im Stack
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1538320996027" ID="ID_1914116148" MODIFIED="1538321019772" TEXT="STL verh&#xe4;lt sich hier anscheinend gutm&#xfc;tig">
<icon BUILTIN="idea"/>
<node CREATED="1538348518843" ID="ID_613222856" MODIFIED="1538348551658" TEXT="zwar wird einer Iteration ggfs das aktuelle Element &quot;unter den F&#xfc;&#xdf;en&quot; weggezogen..."/>
<node CREATED="1538348553006" ID="ID_1259043030" MODIFIED="1538348566936" TEXT="so da&#xdf; dann die n&#xe4;chste Iteration das &#xfc;bern&#xe4;chste Element bearbeitet"/>
<node CREATED="1538348577763" ID="ID_830173416" MODIFIED="1538348597359">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber <i>genau der andere Thread,</i>&#160;der das gemacht hat...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1538348598352" ID="ID_1090786435" MODIFIED="1538348613234" TEXT="iteriert als n&#xe4;chstes ebenfalls &#xfc;ber alle Subsysteme"/>
<node CREATED="1538348625836" ID="ID_507678251" MODIFIED="1538348638230" TEXT="Fazit: Killen bis zur ersch&#xf6;pfung"/>
<node CREATED="1538348639034" ID="ID_1799262325" MODIFIED="1538348644065" TEXT="l&#xe4;uft">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node CREATED="1538322674991" FOLDED="true" ID="ID_371763142" MODIFIED="1538365689019" TEXT="Problem: triggerShutdown nicht wasserdicht">
<icon BUILTIN="button_cancel"/>
<node CREATED="1538322708227" ID="ID_1994833744" MODIFIED="1538322772297" TEXT="kann sterben">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1538322737871" ID="ID_513027050" MODIFIED="1538322769742" TEXT="wenn Exceptions auftreten">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538322751893" ID="ID_812762539" MODIFIED="1538322767299" TEXT="z.B. wenn Gui-Facade schon zu ist">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1538322721289" ID="ID_156783463" MODIFIED="1538322775541" TEXT="dann l&#xe4;uft das aufrufende sigTerm nicht zuende">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1538359359513" ID="ID_874296398" MODIFIED="1538359369128" TEXT="Nein kein Problem">
<icon BUILTIN="forward"/>
<node CREATED="1538359370815" ID="ID_104358783" MODIFIED="1538359518690" TEXT="das Subsystem-Protokoll verlangt noexcept">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538359382397" ID="ID_1054464710" MODIFIED="1538359515533" TEXT="alle bekannten triggerShutdown sind so gekennzeichnet">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1538359397915" ID="ID_446614054" MODIFIED="1538359507892" TEXT="und wenn trotzdem eine Exception fliegt...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...dann sind wir sofort tot und das wird billigend in Kauf genommen.
</p>
<p>
So ist das tats&#228;chlich implementiert im Falle vom OutputDirector.
</p>
<p>
Der startet n&#228;mlich einen Thread erst als Supervisor f&#252;r den Shutdown.
</p>
<p>
Wenn das nun <i>wirklich</i>&#160;fehlschl&#228;gt, bleibt uns sinnvollerweise nur noch die Selbstmord-Option
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node CREATED="1538357436900" ID="ID_1015844071" MODIFIED="1538357455069" TEXT="der ganze Subsystem-Runner sollte &#xfc;berarbeitet werden">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538357457297" ID="ID_1518496949" MODIFIED="1538357462577" TEXT="#1177 Subsytem-Runner design rework">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1538281733340" ID="ID_1326729675" MODIFIED="1538281765434" TEXT="f&#xe4;hrt das GUI runter">
<icon BUILTIN="full-4"/>
</node>
<node CREATED="1538281741419" ID="ID_1964821489" MODIFIED="1538281775756">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ein <b>ZombieCheck</b>&#160;spricht an
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-5"/>
<node COLOR="#435e98" CREATED="1538281782245" ID="ID_888818129" MODIFIED="1538365399555" TEXT="welcher...">
<icon BUILTIN="help"/>
<node CREATED="1538326229581" ID="ID_687910017" MODIFIED="1538326243254" TEXT="mit dem Debugger nicht zu fassen...."/>
<node COLOR="#338800" CREATED="1538326244075" ID="ID_362650638" MODIFIED="1538365389966" TEXT="Aufgabe: Zobmie-ID statisch speichern">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538365422252" ID="ID_1782663880" MODIFIED="1538365532058" TEXT="Offender = ClassLock&lt;gui::interact::LocationQuery&gt;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
0000001180: INFO: subsystem-runner.hpp:208: worker_3: sigTerm: Subsystem 'Lumiera GTK GUI' terminated.
</p>
<p>
0000001181: NOTICE: appstate.cpp:170: thread_1: maybeWait: Shutting down Lumiera...
</p>
<p>
0000001182: ALERT: appstate.cpp:174: thread_1: maybeWait: Triggering emergency exit...
</p>
<p>
0000001243: WARNING: interfaceregistry.c:199: thread_1: lumiera_interfaceregistry_bulkremove_interfaces: ENTRY NOT FOUND in interfaceregistry at clean-up of interface lumieraorg_Gui, instance lumieraorg_GuiStarterPlugin
</p>
<p>
</p>
<p>
(lumiera:9719): Gtk-CRITICAL **: gtk_widget_is_drawable: assertion 'GTK_IS_WIDGET (widget)' failed
</p>
<p>
</p>
<p>
(lumiera:9719): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index &gt;= 0 &amp;&amp; index &lt;= layout-&gt;length' failed
</p>
<p>
0000001293: ERR: error-exception.cpp:185: worker_3: lumiera_unexpectedException: ### Lumiera halted due to an unexpected Error ###
</p>
<p>
</p>
<p>
### Lumiera halted due to an unexpected Error ###
</p>
<p>
</p>
<p>
</p>
<p>
+++ Caught Exception LUMIERA_ERROR_LIFECYCLE:Lifecycle assumptions violated
</p>
<p>
</p>
<p>
0000001298: ERR: error-exception.cpp:196: worker_3: lumiera_unexpectedException: +++ caught error::LumieraError&lt;error::LUMIERA_ERROR_FATAL, error::LumieraError&lt;error::LUMIERA_ERROR_LOGIC, Error&gt; &gt;
</p>
<p>
0000001298! ERR: error-exception.cpp:196: worker_3: lumiera_unexpectedException: +++ messg: Sorry, Lumiera encountered an internal error.
</p>
<p>
0000001298! ERR: error-exception.cpp:196: worker_3: lumiera_unexpectedException: +++ descr: LUMIERA_ERROR_LIFECYCLE:Lifecycle assumptions violated (Already deceased object called out of order during Application shutdown. Lumiera Policy violated: Dependencies must not be used from destructors. Offender = ClassLock&lt;gui::interact::LocationQuery, s).
</p>
<p>
0000001299: ERR: error-exception.cpp:212: worker_3: lumiera_unexpectedException: last registered error was....
</p>
<p>
0000001299! ERR: error-exception.cpp:212: worker_3: lumiera_unexpectedException: LUMIERA_ERROR_LIFECYCLE:Lifecycle assumptions violated
</p>
<p>
Abgebrochen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1538365543884" ID="ID_534885692" MODIFIED="1538365573259" TEXT="man beachte auch die zwei GTK-Assertions nach dem GUI-Shutdown">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1538365584159" ID="ID_998255150" MODIFIED="1538365599464" TEXT="wieso l&#xe4;uft da noch GUI-code??"/>
<node CREATED="1538437336885" ID="ID_1889101831" MODIFIED="1538437644906" TEXT="Beobachtung: worker_3 == GUI-Thread gewesen">
<arrowlink COLOR="#d21052" DESTINATION="ID_1886197899" ENDARROW="Default" ENDINCLINATION="38;-127;" ID="Arrow_ID_274941451" STARTARROW="None" STARTINCLINATION="-156;4;"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1538281788117" ID="ID_1747014683" MODIFIED="1538440313206" TEXT="wie konnte das passieren....">
<icon BUILTIN="help"/>
<icon BUILTIN="yes"/>
<node CREATED="1538436917958" ID="ID_1974415924" MODIFIED="1538436933975" TEXT="sehr wahrscheinlich ein lib::Depend&lt;LocationQuery&gt;"/>
<node CREATED="1538436940187" ID="ID_691937310" MODIFIED="1538436948429" TEXT="in Frage kommen....">
<node CREATED="1538436955585" ID="ID_508170245" MODIFIED="1538436971250" TEXT="ViewLocator::locResolver_"/>
<node CREATED="1538437006170" ID="ID_282885180" MODIFIED="1538437018876" TEXT="UILocationSolver::getLocationQuery"/>
<node CREATED="1538437047572" ID="ID_230833452" MODIFIED="1538437051271" TEXT="LocationQuery::service">
<node CREATED="1538437082776" ID="ID_184252441" MODIFIED="1538437093282" TEXT="lebt in ui-coord-resolver.cpp"/>
</node>
<node CREATED="1538437140312" ID="ID_1998433336" MODIFIED="1538437150122" TEXT="InteractionDirector::navigator_">
<node CREATED="1538437158909" ID="ID_1706438738" MODIFIED="1538437159929" TEXT="= lib::DependInject&lt;LocationQuery&gt;::ServiceInstance&lt;Navigator&gt;"/>
</node>
</node>
<node CREATED="1538437605225" ID="ID_1886197899" MODIFIED="1538440323658" TEXT="Verdacht: dtor-Race">
<arrowlink COLOR="#e24165" DESTINATION="ID_1236741743" ENDARROW="Default" ENDINCLINATION="-145;6;" ID="Arrow_ID_1521104972" STARTARROW="None" STARTINCLINATION="-19;77;"/>
<linktarget COLOR="#d21052" DESTINATION="ID_1886197899" ENDARROW="Default" ENDINCLINATION="38;-127;" ID="Arrow_ID_274941451" SOURCE="ID_1889101831" STARTARROW="None" STARTINCLINATION="-156;4;"/>
<icon BUILTIN="idea"/>
<node CREATED="1538437664345" ID="ID_1713946380" MODIFIED="1538437671196" TEXT="Szenario">
<node CREATED="1538437672401" ID="ID_1788050505" MODIFIED="1538437844014" TEXT="Gui: sigTerm aufgerufen">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1538437682015" ID="ID_1413705214" MODIFIED="1538437846332" TEXT="letztes Subsys -&gt; r&#xe4;umt alle Subsysteme weg">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1538437706876" ID="ID_1187411887" MODIFIED="1538437848750" TEXT="main-Thread wacht auf">
<icon BUILTIN="full-3"/>
</node>
<node CREATED="1538437715874" ID="ID_691753107" MODIFIED="1538437851846" TEXT="verl&#xe4;&#xdf;t main() und entl&#xe4;d das Plug-In">
<icon BUILTIN="full-4"/>
</node>
<node CREATED="1538437741751" ID="ID_510852039" MODIFIED="1538437854073" TEXT="das zerst&#xf6;rt die statische Factory">
<icon BUILTIN="full-5"/>
</node>
<node CREATED="1538437749950" ID="ID_1236741743" MODIFIED="1538440181061" TEXT="Gui-Thread kehr aus sigTerm zur&#xfc;ck und ruft ~UiManager()">
<linktarget COLOR="#e24165" DESTINATION="ID_1236741743" ENDARROW="Default" ENDINCLINATION="-145;6;" ID="Arrow_ID_1521104972" SOURCE="ID_1886197899" STARTARROW="None" STARTINCLINATION="-19;77;"/>
<icon BUILTIN="full-6"/>
</node>
<node CREATED="1538437785489" ID="ID_1853884803" MODIFIED="1538437858984" TEXT="indirekt deregistriert InteractionDirector den Service">
<icon BUILTIN="full-7"/>
</node>
<node CREATED="1538437812598" ID="ID_407685604" MODIFIED="1538437861596" TEXT="DependInject::Service::shutdown() greift sich das Lock">
<icon BUILTIN="full-8"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1538437831603" ID="ID_822519118" MODIFIED="1538437839823" TEXT="BOOM">
<icon BUILTIN="clanbomber"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1538440214523" HGAP="1" ID="ID_390044012" MODIFIED="1538440299089" TEXT="Umbau daraufhin" VSHIFT="21">
<icon BUILTIN="button_ok"/>
<node CREATED="1538440224730" ID="ID_973914173" MODIFIED="1538440241131" TEXT="sigTerm-Aufruf aus der run()-Methode herausziehen"/>
<node CREATED="1538440242999" ID="ID_815144668" MODIFIED="1538440276578">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
..damit ~GtkLumiera() garantiert <i>vorher</i>&#160;aufgerufen wird
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538440332187" HGAP="-48" ID="ID_393079011" MODIFIED="1538440532784" TEXT="Treffer, versenkt" VSHIFT="27">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1538440346730" ID="ID_1456330609" MODIFIED="1538440482615" TEXT="Fehler ist verschwunden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
0000001028: INFO: proc-dispatcher.cpp:301: worker_2: processCommands: +++ dispatch Command(&quot;test_meta_markAction&quot;) {exec}
</p>
<p>
0000001029: INFO: proc-dispatcher.cpp:306: worker_2: processCommands: +++ --------&gt;&gt;&gt; bang!
</p>
<p>
0000001031: WARNING: handling-pattern.cpp:90: worker_2: invoke: Invocation of Command(&quot;test_meta_markAction&quot;) {exec} failed: bad lexical cast: source type value could not be interpreted as target
</p>
<p>
0000001052: INFO: proc-dispatcher.cpp:159: worker_2: ~DispatcherLoop: Proc-Dispatcher stopped.
</p>
<p>
0000001053: INFO: subsystem-runner.hpp:208: worker_2: sigTerm: Subsystem 'Session' terminated.
</p>
<p>
0000001054: WARNING: subsystem-runner.hpp:209: worker_2: sigTerm: Irregular shutdown caused by: LUMIERA_ERROR_LOGIC:internal logic broken (Command execution failed: LUMIERA_ERROR_EXTERNAL:failure in external service -- caused by: bad lexical cast: source type value could not be interpreted as target).
</p>
<p>
0000001090: TODO: output-director.cpp:136: worker_4: bringDown: actually bring down the output generation
</p>
<p>
0000001091: INFO: subsystem-runner.hpp:208: worker_2: sigTerm: Subsystem 'Dummy-Player' terminated.
</p>
<p>
0000001092: NOTICE: notification-service.cpp:158: worker_2: triggerGuiShutdown: @GUI: shutdown triggered with explanation 'Application shutdown'....
</p>
<p>
0000001111: NOTICE: notification-service.cpp:158: worker_2: triggerGuiShutdown: @GUI: shutdown triggered with explanation 'Application shutdown'....
</p>
<p>
0000001119: INFO: subsystem-runner.hpp:208: worker_4: sigTerm: Subsystem 'PlayOut' terminated.
</p>
<p>
0000001120: NOTICE: notification-service.cpp:158: worker_4: triggerGuiShutdown: @GUI: shutdown triggered with explanation 'Application shutdown'....
</p>
<p>
0000001128: INFO: display-service.hpp:147: worker_3: ~DisplayService: Display service dying...
</p>
<p>
</p>
<p>
(lumiera:12160): Gtk-CRITICAL **: gtk_widget_is_drawable: assertion 'GTK_IS_WIDGET (widget)' failed
</p>
<p>
</p>
<p>
(lumiera:12160): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index &gt;= 0 &amp;&amp; index &lt;= layout-&gt;length' failed
</p>
<p>
0000001160: INFO: workspace-window.cpp:53: worker_3: ~WorkspaceWindow: Closing workspace window...
</p>
<p>
</p>
<p>
(lumiera:12160): Gdl-CRITICAL **: gdl_dock_master_get_controller: assertion 'master != NULL' failed
</p>
<p>
</p>
<p>
(lumiera:12160): Gdl-CRITICAL **: gdl_dock_master_get_controller: assertion 'master != NULL' failed
</p>
<p>
</p>
<p>
(lumiera:12160): Gdl-CRITICAL **: gdl_dock_master_get_controller: assertion 'master != NULL' failed
</p>
<p>
</p>
<p>
(lumiera:12160): Gdl-CRITICAL **: gdl_dock_master_get_controller: assertion 'master != NULL' failed
</p>
<p>
0000001167: INFO: subsystem-runner.hpp:208: worker_3: sigTerm: Subsystem 'Lumiera GTK GUI' terminated.
</p>
<p>
0000001175: NOTICE: appstate.cpp:170: thread_1: maybeWait: Shutting down Lumiera...
</p>
<p>
0000001176: ALERT: appstate.cpp:174: thread_1: maybeWait: Triggering emergency exit...
</p>
<p>
0000001237: WARNING: interfaceregistry.c:199: thread_1: lumiera_interfaceregistry_bulkremove_interfaces: ENTRY NOT FOUND in interfaceregistry at clean-up of interface lumieraorg_Gui, instance lumieraorg_GuiStarterPlugin
</p>
<p>
(hiv)~/devel/lumi-$
</p>
<p>
(hiv)~/devel/lumi-$
</p>
<p>
(hiv)~/devel/lumi-$ echo $?
</p>
<p>
2
</p>
<p>
(hiv)~/devel/lumi-$
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1538440505597" ID="ID_1015433202" MODIFIED="1538440524651" TEXT="#1178 Zombie race in GUI Subsystem shutdown">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1538441813086" ID="ID_431066008" MODIFIED="1538533883011" TEXT="neue Hilfsfunktion in util.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538533891029" ID="ID_1886289594" MODIFIED="1538533896858" TEXT="Test hierf&#xfc;r">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537835859576" ID="ID_968868056" MODIFIED="1538263469675" TEXT="CLEAR_ERR">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835874382" ID="ID_252957072" MODIFIED="1538263469675" TEXT="CLEAR_MSG">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835880405" ID="ID_992909467" MODIFIED="1538263469675" TEXT="RESET">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537835889996" ID="ID_5762574" MODIFIED="1538263469675" TEXT="GenNode">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1538230509179" FOLDED="true" HGAP="22" ID="ID_657255465" MODIFIED="1538263469675" TEXT="Problem ID-&#xdc;bergabe" VSHIFT="14">
<icon BUILTIN="button_cancel"/>
<node CREATED="1538230525641" ID="ID_1999133642" MODIFIED="1538230536846" TEXT="wieder mal das Schei&#xdf; Interface-System">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1538230675997" ID="ID_1672501842" MODIFIED="1538232718759" TEXT="br&#xe4;uchte eine C-Repr&#xe4;sentation f&#xfc;r BareEntryID"/>
<node CREATED="1538232816534" ID="ID_712541347" MODIFIED="1538232905703" TEXT="habe den Anspruch aber bereits aufgegeben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar an dem Punkt, an dem ich eine DiffMessage in das GUI schicke.
</p>
<p>
DiffMessage repr&#228;sentiert einen f&#252;r den User verdeckten Callback
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538234760471" ID="ID_1256781554" MODIFIED="1538234766447" TEXT="#1175 consider EntryID as external entity ID">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534721737507" FOLDED="true" ID="ID_1467431829" MODIFIED="1538778273497" TEXT="verifizieren">
<icon BUILTIN="full-6"/>
<node COLOR="#338800" CREATED="1538234826126" ID="ID_1989018475" MODIFIED="1538263469675" TEXT="Round-Trip &#xfc;ber Thrad-Grenzen hinweg">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538234843916" ID="ID_1672079020" MODIFIED="1538263469675" TEXT="Argument-&#xdc;bergabe per Kopie">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721764680" ID="ID_237796687" MODIFIED="1538777025274" TEXT="Belegen der View">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538747863296" ID="ID_1171544173" MODIFIED="1538777026741" TEXT="Reaktion auf Error-state">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721772238" ID="ID_130695962" MODIFIED="1538777041184" TEXT="Verbinden mit bestehendem InfoboxPanel">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721811969" ID="ID_1320259895" MODIFIED="1538777615902" TEXT="auch in einerm anderen Fenster">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721785596" ID="ID_1517054985" MODIFIED="1538777054390" TEXT="Erzeugen eines neuen InfoboxPanels">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721819264" ID="ID_1360416196" MODIFIED="1538778252025" TEXT="Panel durch Ersetzung zerst&#xf6;ren">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1360416196" ENDARROW="Default" ENDINCLINATION="417;34;" ID="Arrow_ID_1337668046" SOURCE="ID_1984401497" STARTARROW="None" STARTINCLINATION="-454;-9;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531073966" ID="ID_973305985" MODIFIED="1538708635973" TEXT="Funktionen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537531078757" ID="ID_605735534" MODIFIED="1538708629270" TEXT="Reset">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531084396" ID="ID_648584085" MODIFIED="1538708616965" TEXT="Meldung ausgeben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531543495" ID="ID_1813117782" MODIFIED="1538708618921" TEXT="Warnung anzeigen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531109361" ID="ID_1483169066" MODIFIED="1538708620397" TEXT="Fehler ausgeben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531089012" ID="ID_1427238207" MODIFIED="1538708630612" TEXT="alle Meldungen entfernen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531153739" ID="ID_538123549" MODIFIED="1538708632010" TEXT="Fehler in Meldungen verwandeln">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531160298" ID="ID_1717013245" MODIFIED="1538708633930" TEXT="Flash">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537532006073" HGAP="-92" ID="ID_135756255" MODIFIED="1538839483837" TEXT="Neben-Nutzen" VSHIFT="15">
<icon BUILTIN="button_ok"/>
<node CREATED="1537532035141" ID="ID_188521578" MODIFIED="1538263469676" TEXT="NotificationService">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1537532041420" ID="ID_1545300987" MODIFIED="1538263469676" TEXT="Implementierung komplettieren">
<arrowlink COLOR="#22ed6f" DESTINATION="ID_1901801971" ENDARROW="Default" ENDINCLINATION="287;0;" ID="Arrow_ID_1609281182" STARTARROW="None" STARTINCLINATION="83;-25;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537532447549" ID="ID_821848615" MODIFIED="1538263469676" TEXT="Fehleranzeige-Funktion">
<arrowlink COLOR="#c19dc4" DESTINATION="ID_149796171" ENDARROW="Default" ENDINCLINATION="1300;76;" ID="Arrow_ID_451002492" STARTARROW="None" STARTINCLINATION="1509;156;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537532456004" ID="ID_1700828304" MODIFIED="1538839492410" TEXT="dokumentieren und Ticket #1047 schlie&#xdf;en">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538836931857" ID="ID_438461567" MODIFIED="1538839523006" TEXT="#1174 kann auch geschlossen werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
#1174 UI self diagnostics window
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1484797684438" FOLDED="true" HGAP="21" ID="ID_932852399" MODIFIED="1557498707217" TEXT="GUI-Shutdown implementieren" VSHIFT="13">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
bisher k&#246;nnen wir das GUI nur <i>aktiv intern</i>&#160;schlie&#223;en,
</p>
<p>
indem wir ein GTK-Signal erzeugen, das das Hauptfenster schlie&#223;t
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1485116867963" ID="ID_1146024699" MODIFIED="1518487921054" TEXT="bisher kann man nur das Fenster schlie&#xdf;en">
<icon BUILTIN="info"/>
<node CREATED="1485116884925" ID="ID_296160451" MODIFIED="1518487921055" TEXT="wie funktioniert das?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1485116901507" ID="ID_1272809751" MODIFIED="1518487921055" TEXT="WindowManager">
<node COLOR="#338800" CREATED="1485126609878" ID="ID_649614174" MODIFIED="1518487921055" TEXT="#1064 investigate WindowManager lifecycle">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1485116921072" ID="ID_1191743111" MODIFIED="1518487921055" TEXT="close Action"/>
</node>
<node CREATED="1484797749237" ID="ID_1654016697" MODIFIED="1518487921055" TEXT="wie kann man GTK-UI explizit schlie&#xdf;en?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1501777017858" ID="ID_842367237" MODIFIED="1518487921055" TEXT="wer macht das in unserem GUI?">
<arrowlink DESTINATION="ID_599315721" ENDARROW="Default" ENDINCLINATION="-137;-12;" ID="Arrow_ID_1743989671" STARTARROW="None" STARTINCLINATION="-18;215;"/>
<icon BUILTIN="help"/>
</node>
<node COLOR="#763434" CREATED="1484797766035" FOLDED="true" ID="ID_1740926324" MODIFIED="1538840144165" TEXT="wie signalisieren wir das">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1501781461059" ID="ID_1041497316" MODIFIED="1518487921055" TEXT="wie den UiManager erreichen?">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501781776041" ID="ID_1345710498" MODIFIED="1518487921055" TEXT="magische Nachricht?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1501782361331" ID="ID_1281813611" MODIFIED="1518487921055" TEXT="an wen addressieren?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1501782381185" ID="ID_427836826" MODIFIED="1518487921055" TEXT="mu&#xdf; sinnvoll sein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1501782399454" ID="ID_1238852873" MODIFIED="1518487921055" TEXT="InteractionDirector"/>
<node CREATED="1501784310336" ID="ID_455705917" MODIFIED="1533608413540" TEXT="was f&#xfc;r eine Nachricht?">
<icon BUILTIN="help"/>
<node CREATED="1501784324670" ID="ID_202531654" MODIFIED="1518487921055" TEXT="mu&#xdf; in das Protokoll passen"/>
<node CREATED="1501784333946" ID="ID_238263434" MODIFIED="1518487921055" TEXT="sollte nicht willk&#xfc;rlich sein"/>
<node CREATED="1501804506790" ID="ID_985808643" MODIFIED="1518487921055" TEXT="gibts nicht">
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
<node CREATED="1501781769834" ID="ID_1836544616" MODIFIED="1518487921055" TEXT="direktes Wiring?">
<icon BUILTIN="button_ok"/>
<node CREATED="1501866473852" ID="ID_1346430403" MODIFIED="1518487921055" TEXT="direkt den UiManager aufrufen"/>
<node CREATED="1501866480963" ID="ID_361033579" MODIFIED="1518487921055" TEXT="dazu die NotificationFacade verschoben"/>
<node CREATED="1501866494441" ID="ID_540781053" MODIFIED="1518487921055" TEXT="wird jetzt vom UiManager gemanaged"/>
</node>
</node>
<node CREATED="1501792024717" ID="ID_1914400893" MODIFIED="1518487921055" TEXT="wer ist &quot;wir&quot;?">
<node CREATED="1501792033763" ID="ID_1293774586" MODIFIED="1518487921055" TEXT="der Subsystem-Lebenszyklus"/>
<node CREATED="1501792041586" ID="ID_1326580750" MODIFIED="1518487921055" TEXT="sonst geht das Niemanden was an!">
<icon BUILTIN="yes"/>
<node CREATED="1501792062904" ID="ID_181717876" MODIFIED="1518487921055" TEXT="Subsysteme sind autark"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501792086244" ID="ID_233471026" MODIFIED="1518487921055" TEXT="wir wollen keine globale Ebene">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das war genau der Kern der &quot;Plugin-Debatte&quot;.
</p>
<p>
Eine solche globale, flache, dynamisch gebundene Ebene
</p>
<p>
klingt nach <i>wahnsinnigen M&#246;glichkeiten</i>, aber nur solange, bis man sich
</p>
<p>
eine einzige Funktion konkret durchdenkt: es l&#228;uft auf Spaghetti-Code hinaus
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1501804804734" FOLDED="true" HGAP="33" ID="ID_1925973923" MODIFIED="1544238428872" TEXT="Mechanismus zum Schlie&#xdf;en" VSHIFT="6">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1484797911392" ID="ID_286857196" MODIFIED="1531585120208" TEXT="geeigneten Mechanisums definieren">
<linktarget COLOR="#872666" DESTINATION="ID_286857196" ENDARROW="Default" ENDINCLINATION="-684;0;" ID="Arrow_ID_1606936924" SOURCE="ID_405470138" STARTARROW="Default" STARTINCLINATION="1461;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1502410904331" ID="ID_995145542" MODIFIED="1531584054722" TEXT="brauche Dispatch in UI event-Thread">
<arrowlink COLOR="#84c6b8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="21;233;" ID="Arrow_ID_1372135725" STARTARROW="None" STARTINCLINATION="237;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1501804850624" ID="ID_1451522246" MODIFIED="1518487921055" TEXT="Zugang zum UiManager">
<icon BUILTIN="button_ok"/>
<node CREATED="1502375214162" ID="ID_267170664" MODIFIED="1518487921055" TEXT="durch direkte Verdrahtung">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1502375221129" ID="ID_368784036" MODIFIED="1518487921055" TEXT="dies m&#xf6;glich machen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...indem der NotificatonService nun vom UI-Manager gemanaged wird :)
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1488419591265" HGAP="77" ID="ID_471609909" MODIFIED="1538840175237" VSHIFT="53">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
zieht komplett-Umbau
</p>
<p>
des Gui-top-Level nach sich
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#851358" DESTINATION="ID_548720270" ENDARROW="Default" ENDINCLINATION="-663;-614;" ID="Arrow_ID_325703166" STARTARROW="None" STARTINCLINATION="1110;608;"/>
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1485118623744" FOLDED="true" HGAP="23" ID="ID_392996871" MODIFIED="1538840161485" TEXT="#1032 use gtk::Application instead of gtk::Main" VSHIFT="11">
<arrowlink COLOR="#ae1856" DESTINATION="ID_206480879" ENDARROW="Default" ENDINCLINATION="715;0;" ID="Arrow_ID_926482654" STARTARROW="Default" STARTINCLINATION="134;383;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1485118668802" ID="ID_575152579" MODIFIED="1518487921055" TEXT="WindowManager verwendet gtk::Main"/>
<node CREATED="1485118677425" ID="ID_1952311126" MODIFIED="1518487921055" TEXT="genau, um die Applikation runterzufahren"/>
<node CREATED="1485124031945" ID="ID_329247026" MODIFIED="1518487921055" TEXT="Gtk::Application">
<node CREATED="1485124038768" ID="ID_764043255" MODIFIED="1518487921055" TEXT="ist kein Singleton"/>
<node CREATED="1485124046775" ID="ID_505212945" MODIFIED="1518487921055" TEXT="hat keinen public ctor"/>
<node CREATED="1485124052149" ID="ID_799710500" MODIFIED="1518487921055" TEXT="mit create erstellt -&gt; smart ptr"/>
<node CREATED="1485124063732" ID="ID_1584553859" MODIFIED="1532795708774" TEXT="erbt von Gio::Application">
<node CREATED="1485124070131" ID="ID_1720443251" MODIFIED="1518487921055" TEXT="wrappt g_application"/>
</node>
</node>
<node CREATED="1485124084465" ID="ID_660066920" MODIFIED="1518487921055" TEXT="how-to">
<icon BUILTIN="help"/>
<node CREATED="1485124094936" ID="ID_1446212765" MODIFIED="1533608413545" TEXT="offiziell">
<node CREATED="1485124098920" ID="ID_1783958965" MODIFIED="1518487921055" TEXT="auto app = Application::create"/>
<node CREATED="1485124111806" ID="ID_231977368" MODIFIED="1518487921055" TEXT="app-&gt;run"/>
</node>
<node CREATED="1485124120220" ID="ID_1639025787" MODIFIED="1533608413546" TEXT="von Application erben">
<icon BUILTIN="help"/>
<node CREATED="1485124129436" ID="ID_1540860407" MODIFIED="1518487921055" TEXT="laut Quellcode spricht nichts dagegen"/>
<node CREATED="1485124142178" ID="ID_1048261084" MODIFIED="1518487921055" TEXT="man sollte aber keine Methoden &#xfc;berschreiben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nur eine <i>heuristische </i>Vermutung von mir
</p>
<p>
st&#252;tzt sich auf folgenden Quellcode
</p>
<p>
</p>
<p>
Application::Application(const Glib::ustring&amp; application_id, Gio::ApplicationFlags flags)
</p>
<p>
:
</p>
<p>
&#160;&#160;// Mark this class as non-derived to allow C++ vfuncs to be skipped.
</p>
<p>
&#160;&#160;//Note that GApplication complains about &quot;&quot; but allows NULL (0), so we avoid passing &quot;&quot;.
</p>
<p>
&#160;&#160;Glib::ObjectBase(0),
</p>
<p>
&#160;&#160;Gio::Application(Glib::ConstructParams(custom_class_init(), &quot;application_id&quot;, (application_id.empty() ? 0 : application_id.c_str()), &quot;flags&quot;, GApplicationFlags(flags), static_cast&lt;char*&gt;(0))),
</p>
<p>
&#160;&#160;m_argc(0),
</p>
<p>
&#160;&#160;m_argv(0)
</p>
<p>
{
</p>
<p>
&#160;&#160;gtk_init(0, 0);
</p>
<p>
}
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1485124284856" ID="ID_473768869" MODIFIED="1518487921055" TEXT="Windows selber managen">
<icon BUILTIN="help"/>
<node CREATED="1485124296582" ID="ID_628648705" MODIFIED="1518487921055" TEXT="gtk::Application verwaltet Fensterliste"/>
<node CREATED="1485124305157" ID="ID_1632068669" MODIFIED="1518487921055" TEXT="schlie&#xdf;t sich automatisch, wenn das letzte Fenster zu ist"/>
<node CREATED="1485124315795" ID="ID_178656069" MODIFIED="1518487921055" TEXT="unser WindowManager macht das Gleiche"/>
</node>
<node COLOR="#435e98" CREATED="1533303793015" ID="ID_1636078216" MODIFIED="1533306062548" TEXT="Infos zu Gtk::Main, Gtk::Application und Gio::Application">
<arrowlink COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-981;-106;" ID="Arrow_ID_1912776282" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1493754789137" FOLDED="true" ID="ID_1903744710" MODIFIED="1538778578031" TEXT="kommt mir komisch vor">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1493754799439" ID="ID_288205807" MODIFIED="1518487921055" TEXT="das &quot;riecht&quot; nach Framework"/>
<node CREATED="1493754808373" ID="ID_998804989" MODIFIED="1533608413546" TEXT="&quot;wir machen bequem alles f&#xfc;r Sie&quot;">
<node CREATED="1493759500422" ID="ID_378870766" MODIFIED="1518487921055" TEXT="macht mir Angst">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1493759504742" FOLDED="true" ID="ID_1800184805" MODIFIED="1533608416118" TEXT="Kontrollverlust">
<node CREATED="1493759564302" ID="ID_409429771" MODIFIED="1518487921055" TEXT="undurchsichtig"/>
<node CREATED="1493759572261" ID="ID_1741586689" MODIFIED="1518487921055" TEXT="mehrere Ebenen von Frameworks &#xfc;bereinander"/>
<node CREATED="1493759581123" ID="ID_1296466414" MODIFIED="1518487921055" TEXT="ich traue den Gnome-Leuten nicht &#xfc;ber den Weg"/>
</node>
</node>
<node CREATED="1493754820476" ID="ID_608560419" MODIFIED="1533608413548" TEXT="brauche ich &#xfc;berhaupt eine Gtk::Application">
<icon BUILTIN="help"/>
<node CREATED="1493756483852" ID="ID_1428028027" MODIFIED="1518487921055" TEXT="naja, man kann GTK zu Fu&#xdf; verwenden"/>
<node CREATED="1493756499745" ID="ID_633405815" MODIFIED="1518487921055" TEXT="aber gtk::Application zeigt, wie"/>
<node CREATED="1493759629357" FOLDED="true" ID="ID_1297670007" MODIFIED="1533608416120" TEXT="gtk::Application">
<node CREATED="1493759644755" ID="ID_224674022" MODIFIED="1518487921056" TEXT="ist eine Window-Liste"/>
<node CREATED="1493759717704" ID="ID_697856504" MODIFIED="1518487921056" TEXT="initialisiert GTK, GLib, GIO"/>
<node CREATED="1493759649754" ID="ID_898599245" MODIFIED="1518487921056" TEXT="schlie&#xdf;t, wenn letztes Fenster zu"/>
<node CREATED="1493759699387" ID="ID_1249589577" MODIFIED="1518487921056" TEXT="single application Instance"/>
<node CREATED="1493759656913" ID="ID_658938675" MODIFIED="1518487921056" TEXT="Desktop-Integration"/>
</node>
<node CREATED="1493759747148" ID="ID_1721295375" MODIFIED="1518487921056" TEXT="das kann ich doch zu Fu&#xdf; auch machen">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1495215099003" ID="ID_1971256545" MODIFIED="1533608413550" TEXT="brauche ich &#xfc;berhaupt eine Gio::Application">
<icon BUILTIN="help"/>
<node CREATED="1495215111775" ID="ID_1003964020" MODIFIED="1518487921056" TEXT="initialisiert das Framework"/>
<node CREATED="1495215119685" ID="ID_1761204495" MODIFIED="1518487921056" TEXT="stellt eine dBus-Verbindung her"/>
<node CREATED="1495215129564" FOLDED="true" ID="ID_973272722" MODIFIED="1533608416122" TEXT="ist eine gio::ActionGroup">
<node CREATED="1495215149281" ID="ID_1774523135" MODIFIED="1518487921056" TEXT="man kann Aktionen hinzuf&#xfc;gen"/>
<node CREATED="1495215164279" ID="ID_1315941470" MODIFIED="1518487921056" TEXT="diese Arbeitet mit einem ApplicationWindow zusammen"/>
<node CREATED="1495215177478" ID="ID_250116811" MODIFIED="1518487921056" TEXT="beachte: nicht GtkWindow, sondern ApplicationWindow (Subclass)"/>
</node>
<node CREATED="1495215193500" FOLDED="true" ID="ID_503299515" MODIFIED="1533608416124" TEXT="Zweck (Vermutung)">
<node CREATED="1495215209066" ID="ID_1153171656" MODIFIED="1518487921056" TEXT="Desktop-Integration"/>
<node CREATED="1495215214824" ID="ID_1385031644" MODIFIED="1518487921056" TEXT="Grenzen der Applikation aufweichen"/>
<node CREATED="1495215221624" ID="ID_297065945" MODIFIED="1518487921056" TEXT="Aktionen direkt in den Desktiop integrieren"/>
</node>
<node CREATED="1495215237213" ID="ID_745229887" MODIFIED="1518487921056" TEXT="nichts von dem ist f&#xfc;r uns relevant, manches davon st&#xf6;rt">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1495218672747" HGAP="-13" ID="ID_1786316132" MODIFIED="1518487921056" TEXT="Beschlu&#xdf;" VSHIFT="15">
<icon BUILTIN="yes"/>
<node COLOR="#2f1d56" CREATED="1495218684994" ID="ID_101574501" MODIFIED="1518487921056" TEXT="vorerst defensiv vorgehen">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node COLOR="#338800" CREATED="1533325503372" ID="ID_1815764983" MODIFIED="1533325787563" TEXT="nochmal gr&#xfc;ndlich &#xfc;berpr&#xfc;ft und dokumentiert">
<arrowlink COLOR="#70dcb9" DESTINATION="ID_889790361" ENDARROW="Default" ENDINCLINATION="1308;0;" ID="Arrow_ID_1988524020" STARTARROW="Default" STARTINCLINATION="-2084;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1495218699712" ID="ID_1332523704" MODIFIED="1533325519569" TEXT="den Code aus Gtk::Main in unsere Codebasis &#xfc;bernehmen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1495218714230" ID="ID_1371091843" MODIFIED="1533608413552" TEXT="Vorsicht mit Action / ActionGroup">
<node CREATED="1495218731435" ID="ID_1744881610" MODIFIED="1518487921056" TEXT="noch nicht deprecated"/>
<node CREATED="1495218744961" ID="ID_97034293" MODIFIED="1518487921056" TEXT="aber Abl&#xf6;sung durch Gio::SimpleAction geplant"/>
<node CREATED="1495218770694" ID="ID_644528853" MODIFIED="1518487921056" TEXT="Warnung: mit dem neuen Gtk::ApplicationWindow verkoppelt">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1485130302095" FOLDED="true" HGAP="28" ID="ID_506541774" MODIFIED="1538840166338" TEXT="neuer UiManager" VSHIFT="14">
<icon BUILTIN="button_ok"/>
<node CREATED="1485452508180" ID="ID_549617075" MODIFIED="1518487921056" TEXT="ist front-end daf&#xfc;r">
<icon BUILTIN="button_cancel"/>
<node CREATED="1485130321924" ID="ID_46787934" MODIFIED="1518487921056" TEXT="Funktion umziehen"/>
<node CREATED="1485130328324" ID="ID_874057448" MODIFIED="1518487921056" TEXT="umschreiben auf gtk::Application"/>
<node CREATED="1485130336235" ID="ID_125642886" MODIFIED="1518487921056" TEXT="Application-Objekt durchgeben"/>
<node CREATED="1485130355377" ID="ID_175334188" MODIFIED="1518487921056" TEXT="Zugriff f&#xfc;r NotificationFacade erm&#xf6;glichen"/>
</node>
<node CREATED="1485452536138" ID="ID_599315721" MODIFIED="1518487921056" TEXT="wird daf&#xfc;r zust&#xe4;ndig">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_599315721" ENDARROW="Default" ENDINCLINATION="-137;-12;" ID="Arrow_ID_1743989671" SOURCE="ID_842367237" STARTARROW="None" STARTINCLINATION="-18;215;"/>
<linktarget COLOR="#667e90" DESTINATION="ID_599315721" ENDARROW="None" ENDINCLINATION="41;328;" ID="Arrow_ID_1963473410" SOURCE="ID_1478388503" STARTARROW="Default" STARTINCLINATION="943;-58;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1493762472175" ID="ID_964179569" MODIFIED="1518487921056" TEXT="verwendet Fenster-Liste"/>
<node COLOR="#435e98" CREATED="1493762490205" ID="ID_869056268" MODIFIED="1538778695808" TEXT="alle noch offenen Fenster verbergen">
<arrowlink COLOR="#543c6f" DESTINATION="ID_159568066" ENDARROW="Default" ENDINCLINATION="489;-554;" ID="Arrow_ID_373486067" STARTARROW="None" STARTINCLINATION="-762;-46;"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1493762498476" ID="ID_1290148687" MODIFIED="1518487921056" TEXT="direkt gtk_main_quit aufrufen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1493762556755" HGAP="34" ID="ID_651403872" MODIFIED="1533608413552" TEXT="siehe" VSHIFT="16">
<node CREATED="1493762559339" ID="ID_742529116" MODIFIED="1518487921056" TEXT="altes Gtk::Main::quit"/>
<node CREATED="1493762568266" ID="ID_902609710" MODIFIED="1518487921056" TEXT="Gio::Application::quit"/>
</node>
</node>
<node CREATED="1493762951293" HGAP="69" ID="ID_1772990353" MODIFIED="1518487921056" TEXT="Entscheidung">
<node CREATED="1493762968018" ID="ID_1056007574" MODIFIED="1518487921056" TEXT="brauchen wir ein Application GObject?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1493762987751" ID="ID_236361713" MODIFIED="1533304173000" TEXT="Gtk::Main funktioniert ohne">
<arrowlink COLOR="#469fa6" DESTINATION="ID_1120787097" ENDARROW="Default" ENDINCLINATION="1826;-6782;" ID="Arrow_ID_433910583" STARTARROW="None" STARTINCLINATION="821;0;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1493763356907" ID="ID_981398529" MODIFIED="1533608413553" TEXT="aber">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1493763398798" ID="ID_760049978" MODIFIED="1518487921056" TEXT="Gtk::Main ist deprecated"/>
<node CREATED="1493763393720" ID="ID_112295077" MODIFIED="1518487921056" TEXT="wohin entwickelt sich GTK?"/>
</node>
<node CREATED="1493768460811" ID="ID_1862271811" MODIFIED="1533608413553" TEXT="Alternativen">
<node CREATED="1493768465482" ID="ID_1159523698" MODIFIED="1518487921056" TEXT="gtk_main aufrufen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1493768484007" ID="ID_384827553" MODIFIED="1534511297619" TEXT="von einem Gio::Application ableiten">
<arrowlink COLOR="#6d7495" DESTINATION="ID_1476863246" ENDARROW="Default" ENDINCLINATION="1126;-247;" ID="Arrow_ID_1941890495" STARTARROW="None" STARTINCLINATION="-231;14;"/>
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493770418552" HGAP="68" ID="ID_346412093" MODIFIED="1518487921056" TEXT="Schritte" VSHIFT="37">
<linktarget COLOR="#8091a3" DESTINATION="ID_346412093" ENDARROW="Default" ENDINCLINATION="-205;193;" ID="Arrow_ID_824195065" SOURCE="ID_1810145809" STARTARROW="None" STARTINCLINATION="430;0;"/>
<icon BUILTIN="idea"/>
<node CREATED="1493770423008" ID="ID_124348052" MODIFIED="1518487921056" TEXT="erst mal Gtk::Main hierher schieben">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1495215269657" ID="ID_850682198" MODIFIED="1518487921056" TEXT="Implementierung aus Gtk::Main &#xfc;bernemen">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1493770431607" ID="ID_117937910" MODIFIED="1518487921056" TEXT="(bei Bedarf) sp&#xe4;ter dann durch Gio::Application ersetzen">
<icon BUILTIN="full-3"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1481320772830" FOLDED="true" HGAP="21" ID="ID_1607125695" MODIFIED="1557498707217" VSHIFT="11">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Proc: <b>SessionCommand</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1481320843596" ID="ID_7225903" MODIFIED="1518487921056" TEXT="definieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481767553542" ID="ID_1936508244" MODIFIED="1518487921056" TEXT="Eigenschaften">
<icon BUILTIN="info"/>
<node CREATED="1481768183970" ID="ID_1887870402" MODIFIED="1518487921056" TEXT="ist offizielle Session-Schnittstelle"/>
<node CREATED="1481768211951" ID="ID_287828489" MODIFIED="1518487921056">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
setzt <i>aktivierten</i>&#160;Dispatcher <font color="#6e080d">zwingend</font>&#160;voraus
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es gen&#252;gt definitiv nicht, nur die Dispatcher-Komponente(Schnittstelle) erreichen zu k&#246;nnen.
</p>
<p>
Jede Operation, die &#252;ber dieses externe Interface bereitsteht, ben&#246;tigt zur Implementierung
</p>
<p>
eine aktiv laufende Dispatcher-Queue.
</p>
<p>
</p>
<p>
Daher macht es Sinn, den Interface-Lebenszyklus ganz starr an den Disspatcher zu binden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481768341149" ID="ID_1200042703" MODIFIED="1518487921056" TEXT="implizite Bindung an eine Session-Instanz">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar wirklich sehr implizit,
</p>
<p>
n&#228;mlich &#252;ber die Identit&#228;t (IDs) der Command-Parameter.
</p>
<p>
Das hei&#223;t, ein eingehendes Command pa&#223;t nur zu einer bestimmten Session-Instanz,
</p>
<p>
was zwar jederzeit (via statisches/internes Session-API) verifizierbar ist, jedoch nicht offensichtlich
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481768566167" ID="ID_702026185" MODIFIED="1518487921056" TEXT="kann jederzeit asynchron geschlossen werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das folgt einfach aus den logischen Eigenschaften der beteiligten Komponenten,
</p>
<p>
welche eben autonom sind.
</p>
<p>
</p>
<p>
Das hei&#223;t im Klartext, alle Clients m&#252;ssen darauf vorbereitet sein, da&#223; diese Schnittstelle
</p>
<p>
<i>jederzeit</i>&#160;wegbrechen kann, was dann hei&#223;t, da&#223; irgend ein Aufruf eine Exception wirft
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1481320847724" FOLDED="true" HGAP="42" ID="ID_545146501" MODIFIED="1538840221525" TEXT="wo ansiedeln" VSHIFT="-6">
<icon BUILTIN="help"/>
<node CREATED="1481509901926" ID="ID_1612540786" MODIFIED="1518487921056" TEXT="in proc::control"/>
<node CREATED="1481767522123" ID="ID_789146708" MODIFIED="1518487921056">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wer besitzt die
</p>
<p>
Implementierung
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1481767563781" ID="ID_1894117297" MODIFIED="1518487921056" TEXT="Subsystem">
<icon BUILTIN="button_cancel"/>
<node CREATED="1481767649426" ID="ID_1806364059" MODIFIED="1518487921056" TEXT="pro">
<node CREATED="1481767653785" ID="ID_65381960" MODIFIED="1518487921056" TEXT="offensichtlich"/>
<node CREATED="1481767700299" ID="ID_1163247183" MODIFIED="1518487921056" TEXT="logisch"/>
</node>
<node CREATED="1481767665231" ID="ID_141423591" MODIFIED="1518487921056" TEXT="con">
<node CREATED="1481767681797" ID="ID_1133339398" MODIFIED="1518487921057" TEXT="fragiler Lebenszyklus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
meint: zwei gekoppelte Statusvariable
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481767706906" ID="ID_815807707" MODIFIED="1518487921057" TEXT="bekomme dort Zustand"/>
<node CREATED="1481767720576" ID="ID_714877064" MODIFIED="1518487921057" TEXT="mu&#xdf; dort Locking verwenden"/>
<node CREATED="1481767711033" ID="ID_232055384" MODIFIED="1518487921057" TEXT="bekomme dort Fehlerbehandlung"/>
</node>
</node>
<node CREATED="1481767579130" ID="ID_191292506" MODIFIED="1518487921057" TEXT="Dispatcher">
<icon BUILTIN="help"/>
<node CREATED="1481767748180" ID="ID_549036367" MODIFIED="1518487921057" TEXT="pro">
<node CREATED="1481767761027" ID="ID_949448369" MODIFIED="1518487921057" TEXT="ist die offizielle Schnittstelle"/>
<node CREATED="1481767864069" ID="ID_47595319" MODIFIED="1518487921057" TEXT="kann Service-Impl direkt verdrahten"/>
</node>
<node CREATED="1481767758347" ID="ID_1773256683" MODIFIED="1518487921057" TEXT="con">
<node CREATED="1481767797062" ID="ID_1542908203" MODIFIED="1518487921057">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mu&#223; alle Operationen durchschleifen
</p>
<p>
oder mu&#223; PImpl als Interface exponieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481767831105" ID="ID_1351930491" MODIFIED="1518487921057" TEXT="fragiler Lebenszyklus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
meint: zwei gekoppelte Statusvariable
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1481767581619" ID="ID_1364443356" MODIFIED="1518487921057" TEXT="DispatcherLoop">
<linktarget COLOR="#4aff51" DESTINATION="ID_1364443356" ENDARROW="Default" ENDINCLINATION="10;30;" ID="Arrow_ID_870320696" SOURCE="ID_1152351588" STARTARROW="Default" STARTINCLINATION="-221;-88;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1481767877379" ID="ID_1139131626" MODIFIED="1518487921057" TEXT="pro">
<node CREATED="1481767893969" ID="ID_1688865092" MODIFIED="1518487921057" TEXT="kann dort dediziertes Interface nutzen"/>
<node CREATED="1481767924909" ID="ID_438801896" MODIFIED="1518487921057" TEXT="alle Operationen passieren dort"/>
<node CREATED="1481767961616" ID="ID_1097715033" MODIFIED="1518487921057" TEXT="Lebenszyklus == RAII">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1481769041800" ID="ID_1026761428" MODIFIED="1518487921057" TEXT="ausschlaggebend">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1481769052246" ID="ID_628010771" MODIFIED="1518487921057" TEXT="gutes Design"/>
</node>
<node CREATED="1481768131609" ID="ID_600248646" MODIFIED="1518487921057" TEXT="Locking schon da"/>
</node>
<node CREATED="1481768014089" ID="ID_1260583976" MODIFIED="1518487921057" TEXT="con">
<node CREATED="1481768019848" ID="ID_1155187340" MODIFIED="1518487921057">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Shutdown <i>tricky</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481768075481" ID="ID_795971368" MODIFIED="1518487921057" TEXT="in der Implementierung versteckt"/>
</node>
</node>
</node>
</node>
<node CREATED="1481320850779" HGAP="45" ID="ID_1632600003" MODIFIED="1518487921057" TEXT="hochfahren" VSHIFT="-3">
<icon BUILTIN="button_ok"/>
<node CREATED="1481509921211" FOLDED="true" ID="ID_1515469097" MODIFIED="1538840237755">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Session-Subsystem implementieren <font color="#c60814">(#318)</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1481599413419" HGAP="34" ID="ID_673133356" MODIFIED="1512926191669" TEXT="Ticket #318" VSHIFT="-7">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....das ist schon mehr ein Meta-Ticket,
</p>
<p>
und es h&#228;ngt wohl zu viel darunter, um es gleich ganz abschlie&#223;en zu k&#246;nnen.
</p>
<p>
Aber ich <i>akzeptiere</i>&#160;es und verwende es jetzt als Treiber
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1483473104426" ID="ID_1606817357" MODIFIED="1483747983243" TEXT="#701 Session interface Support facility">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1483473212107" ID="ID_600424316" MODIFIED="1512926191669" TEXT="#699 entrance to session subsystem">
<icon BUILTIN="button_ok"/>
<node CREATED="1483748003185" ID="ID_1342405777" MODIFIED="1483748021355" TEXT="sollte das auch tats&#xe4;chlich mal in Betrieb setzen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1483748023934" ID="ID_535793074" MODIFIED="1483753100683" TEXT="Session ab jetzt in main() hochfahren...">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1483473153851" ID="ID_868700871" MODIFIED="1512926191670" TEXT="#1049 draft SessionLoop component">
<icon BUILTIN="button_ok"/>
<node CREATED="1483642220941" ID="ID_517844262" MODIFIED="1483645251383" TEXT="integrate API functions for enqueuing commands">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483642220941" ID="ID_775655275" MODIFIED="1483645257684" TEXT="integrate actual command queue">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483642220941" ID="ID_704571897" MODIFIED="1483648766529" TEXT="care for waking (notification) from sleep state">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483642220940" ID="ID_1519554797" MODIFIED="1483654058917" TEXT="care for syncing the disabled state">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483642220941" ID="ID_377776032" MODIFIED="1483746849507" TEXT="deadlock safeguard">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1482464327133" HGAP="51" ID="ID_996095134" MODIFIED="1512926191671" TEXT="was es ist" VSHIFT="-2">
<icon BUILTIN="help"/>
<node CREATED="1482464377831" ID="ID_1028012453" MODIFIED="1482464390602">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>ist nicht</i>&#160;&quot;die Session
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1482464332981" ID="ID_1523357281" MODIFIED="1482464350688" TEXT="Session Subsystem == Session Dispatcher Loop Thread">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482464414721" ID="ID_490065319" MODIFIED="1482464436563" TEXT="verwaltet Command-Queue"/>
<node CREATED="1482464436919" ID="ID_64274402" MODIFIED="1482464442042" TEXT="f&#xfc;hrt Commands aus"/>
<node CREATED="1482464442438" ID="ID_1339868449" MODIFIED="1482464449049" TEXT="startet den Builder"/>
</node>
<node CREATED="1481599421021" FOLDED="true" ID="ID_461768132" MODIFIED="1538840232706" TEXT="Locking kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
<node CREATED="1481684383530" ID="ID_236117" MODIFIED="1512926191672" TEXT="zwei unabh&#xe4;ngige Locks">
<icon BUILTIN="yes"/>
<node CREATED="1481684391921" ID="ID_138369898" MODIFIED="1481684442846" TEXT="Front-End">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das Lock sorgt hier f&#252;r konsistenten Zustand und Sichtbarkeit (memory barrier)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481684394544" ID="ID_1314197501" MODIFIED="1481684422640" TEXT="Back-End">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Lock ist hier das Dispatcher-Lock
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1481599468712" ID="ID_1273965744" MODIFIED="1512926191672" TEXT="Vorsicht beim Anhalten (Deadlock-Gefahr)">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1483477519974" ID="ID_1731425552" MODIFIED="1483477535864" TEXT="Term-Signal k&#xf6;nnte blocken">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1483484052785" ID="ID_667055412" MODIFIED="1483581561638" TEXT="Race beim runningLoop_.reset()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1483490459499" ID="ID_1006586365" MODIFIED="1483581568462" TEXT="Thread will sich selbst reapen ==&gt; Deadlock">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483581573147" ID="ID_989149672" MODIFIED="1512926191673" TEXT="durch Umbau gel&#xf6;st">
<icon BUILTIN="info"/>
<node CREATED="1483490316758" ID="ID_1734989824" MODIFIED="1483581603244" TEXT="nur das Term-Signal kann DispatcherLoop deleten">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1483581605968" ID="ID_227347532" MODIFIED="1483581655738" TEXT="mu&#xdf; das &#xe4;u&#xdf;ere Lock auf ProcDispatcher verwenden"/>
<node CREATED="1483581657849" ID="ID_1078225675" MODIFIED="1483581670643" TEXT="damit sind konkurrierende Zugriffe auf die Loop geblockt"/>
<node CREATED="1483581671183" ID="ID_186079754" MODIFIED="1483581680474" TEXT="und danach ist der PImpl bereits auf NULL gesetzt"/>
<node CREATED="1483581583411" ID="ID_650761020" MODIFIED="1483581594997" TEXT="thread join ist &#xfc;berfl&#xfc;ssig"/>
<node CREATED="1483581640739" ID="ID_560356092" MODIFIED="1483581652445" TEXT="das Objekt wird in einem tail-call gel&#xf6;scht"/>
<node CREATED="1483581682701" ID="ID_747399934" MODIFIED="1483581695879" TEXT="dieser callback selber vewrwendet nur Werte vom Stack"/>
<node CREATED="1483581696443" ID="ID_373783285" MODIFIED="1483581733454" TEXT="daher kann das Objekt gefahrlos &quot;sich selber l&#xf6;schen&quot;">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1482464502542" ID="ID_284397306" MODIFIED="1531584182082" TEXT="Vorsicht beim Schlie&#xdf;en der Session">
<arrowlink COLOR="#5a97df" DESTINATION="ID_1378897740" ENDARROW="Default" ENDINCLINATION="2126;95;" ID="Arrow_ID_1446486242" STARTARROW="None" STARTINCLINATION="2592;-81;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1481599430804" HGAP="19" ID="ID_1105415989" MODIFIED="1512926191673" TEXT="Forwarding-Operationen implementieren" VSHIFT="10">
<icon BUILTIN="button_ok"/>
<node CREATED="1481686902156" ID="ID_1526215617" MODIFIED="1481686910633" TEXT="aktivieren /deaktivieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481686911938" ID="ID_17287395" MODIFIED="1483581788279" TEXT="stoppen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1481599594399" ID="ID_1017459823" MODIFIED="1512926191674" TEXT="entscheiden, wer die Session &#xf6;ffnet">
<icon BUILTIN="button_ok"/>
<node CREATED="1481686982097" ID="ID_1925999031" MODIFIED="1481687002238" TEXT="passiert on demand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn jemand zugreift
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481599603757" ID="ID_812618450" MODIFIED="1481599612320" TEXT="Operation auf dem SessionManager"/>
<node CREATED="1481599612812" ID="ID_1970476027" MODIFIED="1481599618598" TEXT="der ist Singleton"/>
<node CREATED="1481599626194" ID="ID_1815350592" MODIFIED="1481599638105" TEXT="wenn Session &#xf6;ffnet, wird der Dispatcher aktiviert">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1481687005813" ID="ID_1108477992" MODIFIED="1481687081246" TEXT="Entscheidung: Sesion-lifecycle und Dispatcher sind unabh&#xe4;ngig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
grundlegende Design-Enscheidung
</p>
<ul>
<li>
wir haben Komponenten mit Dependency-Injection
</li>
<li>
da beide Komponenten nur nach ihren eigenen Hinsichten funktionieren,<br />wird das System insgesamt einfacher
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1483581821347" HGAP="13" ID="ID_1893571865" MODIFIED="1512926191674" TEXT="Review Lebenszyklus" VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node CREATED="1483581829682" ID="ID_1563520696" MODIFIED="1483581904481" TEXT="alle Subsys-Operationen auf Semantik durchgepr&#xfc;ft">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483581852071" ID="ID_1139549600" MODIFIED="1483581902223" TEXT="1/2017: Locking und Concurrency erscheint sauber behandelt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1481510231986" FOLDED="true" HGAP="23" ID="ID_45803267" MODIFIED="1538840243056" TEXT="dort SessionCommandService instantiieren" VSHIFT="4">
<icon BUILTIN="button_ok"/>
<node CREATED="1481769089234" ID="ID_1152351588" MODIFIED="1518487921057" TEXT="lebt in der DispatcherLoop">
<arrowlink COLOR="#4aff51" DESTINATION="ID_1364443356" ENDARROW="Default" ENDINCLINATION="10;30;" ID="Arrow_ID_870320696" STARTARROW="Default" STARTINCLINATION="-221;-88;"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1481769144226" ID="ID_1609251574" MODIFIED="1518487921057" TEXT="mu&#xdf; Service-API extrahieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481777039358" ID="ID_395609084" MODIFIED="1518487921057" TEXT="Shutdown sauber regeln">
<icon BUILTIN="button_ok"/>
<node CREATED="1481777054755" ID="ID_1551225439" MODIFIED="1518487921057">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mu&#223; SessionCommandService schlie&#223;en
</p>
<p>
<i>bevor</i>&#160;die Dispatcher-loop angehalten wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1481778397600" ID="ID_1997192349" MODIFIED="1518487921057" TEXT="bereits wenn Anhalten signalisiert wird"/>
<node CREATED="1481778409942" ID="ID_100284739" MODIFIED="1518487921057" TEXT="zur Sicherheit nochmal im dtor"/>
</node>
<node CREATED="1481777114203" ID="ID_1156396729" MODIFIED="1518487921057" TEXT="Lock, um Deadlock zu vermeiden"/>
<node CREATED="1481777122306" ID="ID_1506554988" MODIFIED="1518487921057" TEXT="alles im dtor -&gt; noexcept"/>
<node CREATED="1481777210447" ID="ID_1392452935" MODIFIED="1518487921057" TEXT="sicherstellen da&#xdf; shutdown nicht blockt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
1/2017 Review durchgef&#252;hrt und Logik &#252;berarbeitet.
</p>
<p>
Einziger Risikofaktor ist nun, wenn beim Schlie&#223;en des SessionCommand-Intertfaces
</p>
<p>
oder beim Signalisieren an den Thread eine Exception fliegt; denn dann loggen wir zwar,
</p>
<p>
aber die Shutdown-R&#252;ckmeldung kommt u.U niemals an, und damit bleiben wir
</p>
<p>
am Ende von main() einfach h&#228;ngen.
</p>
<p>
</p>
<p>
<i>Ich halte diese F&#228;lle aber f&#252;r in der Praxis nicht relevant,</i>&#160; und verzichte daher auf eine Spezialbehandlung
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5a97df" DESTINATION="ID_1789585729" ENDARROW="Default" ENDINCLINATION="3225;0;" ID="Arrow_ID_1930701586" STARTARROW="None" STARTINCLINATION="2096;-122;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1481510244184" ID="ID_1521406724" MODIFIED="1518487921057" TEXT="kann dann in CoreService einfach &#xfc;ber die .facade() zugreifen">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1483748175610" HGAP="31" ID="ID_73597248" MODIFIED="1518487921057" VSHIFT="16">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Einfachen Aufruf
</p>
<p>
implementieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1483748214772" ID="ID_1642552563" MODIFIED="1518487921057" TEXT="#1046 Preliminary Definition of SessionCommand facade">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483748231330" ID="ID_1962213649" MODIFIED="1518487921057" TEXT="soll hierzu sehen, da&#xdf; ein einfacher Aufruf wirklich klappt">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1483748323014" FOLDED="true" ID="ID_1031176077" MODIFIED="1538840309345" TEXT="Nachrichten vom UI-Bus entnehmen">
<icon BUILTIN="button_ok"/>
<node COLOR="#520262" CREATED="1483908814960" FOLDED="true" HGAP="34" ID="ID_430949603" MODIFIED="1538840277766" TEXT="Design sinnvoll?" VSHIFT="6">
<linktarget COLOR="#b694bf" DESTINATION="ID_430949603" ENDARROW="Default" ENDINCLINATION="178;425;" ID="Arrow_ID_1062305149" SOURCE="ID_329609486" STARTARROW="Default" STARTINCLINATION="-629;-2354;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1483908894494" ID="ID_1854211202" MODIFIED="1518487921057" TEXT="Proc-Commands...">
<node CREATED="1483908919274" ID="ID_184360294" MODIFIED="1518487921057" TEXT="k&#xf6;nnte man direkt aufrufen"/>
<node CREATED="1483908982889" ID="ID_758147179" MODIFIED="1518487921057" TEXT="sind bereits ein Handle"/>
</node>
<node CREATED="1483909157290" ID="ID_1197073738" MODIFIED="1518487921057" TEXT="via UI-Bus">
<node CREATED="1483909161170" ID="ID_159742986" MODIFIED="1518487921057" TEXT="bleibt ein synchroner Aufruf"/>
<node CREATED="1483909179088" ID="ID_926171934" MODIFIED="1518487921057" TEXT="Command(Handle) auf beiden Seiten"/>
<node CREATED="1483909223058" ID="ID_582886428" MODIFIED="1518487921057" TEXT="Argument-Marshalling">
<node CREATED="1483909253550" ID="ID_824110666" MODIFIED="1518487921057" TEXT="umst&#xe4;ndlich, mehrstufig"/>
<node CREATED="1483909263620" ID="ID_1628441605" MODIFIED="1518487921057" TEXT="erzwingt mehrfache Indirektion"/>
<node CREATED="1483909333227" ID="ID_473681935" MODIFIED="1518487921057" TEXT="Umpacken -&gt; Record -&gt; Tuple -&gt; function"/>
</node>
<node CREATED="1483909386820" ID="ID_311424247" MODIFIED="1518487921057" TEXT="mehrfache Indirektion">
<node CREATED="1483909440437" ID="ID_1792180060" MODIFIED="1518487921057" TEXT="Variant-Record VTable"/>
<node CREATED="1483909459226" ID="ID_1352346417" MODIFIED="1518487921057" TEXT="Bus-Term VTable"/>
<node CREATED="1483909468913" ID="ID_1209442982" MODIFIED="1518487921058" TEXT="Command-Handler double dispatch"/>
<node CREATED="1483909488622" ID="ID_856721427" MODIFIED="1518487921058" TEXT="Argument-Auswertung double dispatch"/>
<node CREATED="1483909496110" ID="ID_1500666281" MODIFIED="1518487921058" TEXT="Command-Functor invocation VTable"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1483909585362" HGAP="1" ID="ID_1047452263" MODIFIED="1538840272769" TEXT="mu&#xdf; sich noch rechtfertigen" VSHIFT="11">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1483909605879" ID="ID_1463483386" MODIFIED="1518487921058" TEXT="war eine Design-Wahl auf Verdacht">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1483909613670" ID="ID_223762457" MODIFIED="1518487921058" TEXT="erzwingt Trennung im Planen und Denken"/>
<node CREATED="1483909679605" ID="ID_1627582396" MODIFIED="1518487921058" TEXT="k&#xf6;nnte Verallgemeinerungen im UI generieren"/>
<node CREATED="1483909714201" ID="ID_1677179961" MODIFIED="1518487921058" TEXT="k&#xf6;nnte UI-Abl&#xe4;ufe abstrakt testbar machen"/>
</node>
</node>
<node CREATED="1483755303243" HGAP="86" ID="ID_1425274731" MODIFIED="1518487921058" TEXT="Brauche Command-Handler" VSHIFT="11">
<icon BUILTIN="button_ok"/>
<node CREATED="1483755317105" ID="ID_775818551" MODIFIED="1518487921058" TEXT="ist ein Visitor"/>
<node CREATED="1483755320136" FOLDED="true" ID="ID_1343109260" MODIFIED="1538840288235" TEXT="Knackpunkt: Command-ID">
<node CREATED="1483755331671" ID="ID_1913103415" MODIFIED="1518487921058" TEXT="wird im Visitor gebraucht">
<node CREATED="1483909964935" ID="ID_991182613" MODIFIED="1518487921058">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
will sagen: <i>in </i>den Visitor-Methoden-Implementierungen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1483909984005" ID="ID_590392737" MODIFIED="1518487921058">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>aber</i>&#160;ist nicht auf dem Visitor-Interface darstellbar
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1483910035326" ID="ID_366990653" MODIFIED="1533608413554" TEXT="latentes Design-Problem">
<icon BUILTIN="idea"/>
<node CREATED="1483910047148" ID="ID_1870862761" MODIFIED="1518487921058" TEXT="Design Rec&lt;GenNode&gt;"/>
<node CREATED="1483910056243" ID="ID_967619584" MODIFIED="1518487921058" TEXT="da Record eine Payload ist"/>
<node CREATED="1483910117819" ID="ID_117939525" MODIFIED="1518487921058" TEXT="man k&#xf6;nnte....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....&#252;ber einen GenNode-Visitor nachdenken
</p>
<p>
<b>aber</b>
</p>
<ul>
<li>
nicht jetzt
</li>
<li>
das Problem m&#252;&#223;te mehrfach auftreten
</li>
<li>
k&#246;nnte zu Switch-On-Type-programming f&#252;hren
</li>
</ul>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node CREATED="1483755341814" ID="ID_254491480" MODIFIED="1518487921058" TEXT="Instanz-Management fraglich">
<node CREATED="1483909934891" ID="ID_1608078388" MODIFIED="1518487921058" TEXT="nicht wirklich relevant"/>
<node CREATED="1483909940506" ID="ID_262925518" MODIFIED="1518487921058" TEXT="effektiv nur Stack-Storage"/>
</node>
<node CREATED="1483755347949" ID="ID_4176562" MODIFIED="1518487921058" TEXT="Performance-&#xdc;berlegungen">
<node CREATED="1483909826690" ID="ID_1903951356" MODIFIED="1518487921058" TEXT="nicht wirklich schlimm">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1483909832385" ID="ID_136936347" MODIFIED="1518487921058" TEXT="Storage ist lokal"/>
<node CREATED="1483909836992" ID="ID_238373170" MODIFIED="1518487921058" TEXT="VTable ist vorbereitet"/>
<node CREATED="1483909866844" ID="ID_83144371" MODIFIED="1518487921058" TEXT="aber: double-dispatch">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1483755360196" ID="ID_514688462" MODIFIED="1518487921058" TEXT="Nachrichten kommen ohne bestimmte Ordnung an"/>
</node>
</node>
<node CREATED="1483910254385" FOLDED="true" HGAP="88" ID="ID_267402281" MODIFIED="1538840283620" TEXT="Command-Instanz-Management" VSHIFT="-8">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1483910266799" ID="ID_86909318" MODIFIED="1518487921058" TEXT="wie funktioniert&apos;s?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1483910289396" ID="ID_1014786685" MODIFIED="1518487921058" TEXT="Prototyp-Pattern"/>
<node CREATED="1483910293827" ID="ID_1957585594" MODIFIED="1518487921058" TEXT="irgendjemand...">
<node CREATED="1483910333137" ID="ID_1304876612" MODIFIED="1518487921058" TEXT="mu&#xdf; Command-Definitionen Klonen"/>
<node CREATED="1483910306458" ID="ID_601011326" MODIFIED="1518487921058" TEXT="und dabei IDs generieren / dekorieren"/>
</node>
<node CREATED="1483911060894" ID="ID_1204552049" MODIFIED="1518487921058" TEXT="wer">
<icon BUILTIN="help"/>
<node CREATED="1483911069277" ID="ID_277421164" MODIFIED="1518487921058" TEXT="InteractionStateManager">
<node CREATED="1483911145898" ID="ID_897832170" MODIFIED="1518487921058" TEXT="eigentlich nur opaque Command-IDs"/>
<node CREATED="1483911161248" ID="ID_283380145" MODIFIED="1518487921058" TEXT="aber: wei&#xdf; wann neue Interaktion beginnt"/>
</node>
<node CREATED="1483911091314" ID="ID_842914123" MODIFIED="1518487921058" TEXT="SessionCommandService">
<node CREATED="1483911181669" ID="ID_1397857321" MODIFIED="1518487921058" TEXT="sitzt schon in Proc"/>
<node CREATED="1483911194940" ID="ID_485403998" MODIFIED="1518487921058" TEXT="&quot;nat&#xfc;rlich&quot; nah am Command-Framework"/>
<node CREATED="1483911208546" ID="ID_380202969" MODIFIED="1518487921058" TEXT="wei&#xdf; aber nichts von Interaktionen"/>
</node>
</node>
<node CREATED="1483921000340" HGAP="-60" ID="ID_1814046433" MODIFIED="1518487921058" VSHIFT="31">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Idee:</i>&#160;Zusammenarbeit
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1483921070115" ID="ID_398046799" MODIFIED="1518487921058" TEXT="Prototyp-Service"/>
<node CREATED="1483921132114" ID="ID_1652398711" MODIFIED="1518487921058" TEXT="liefert dekorierte Command-ID"/>
<node CREATED="1483921149368" ID="ID_1028150245" MODIFIED="1518487921058" TEXT="im GUI nur noch Command-IDs"/>
<node CREATED="1483924872930" ID="ID_242219866" MODIFIED="1538838665321">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...das w&#228;re eine <b>Protokoll-Erweiterung</b>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#e9ba2d" DESTINATION="ID_242219866" ENDARROW="Default" ENDINCLINATION="-944;1604;" ID="Arrow_ID_1617518648" SOURCE="ID_1479669922" STARTARROW="None" STARTINCLINATION="3617;-1097;"/>
</node>
<node CREATED="1483927472385" HGAP="30" ID="ID_774425061" MODIFIED="1518487921058" VSHIFT="13">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
vertagt; Ticket <font color="#c52a05">#1058</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="bell"/>
</node>
</node>
</node>
<node CREATED="1483755390640" HGAP="66" ID="ID_1882657994" MODIFIED="1538840301236" TEXT="Vorlage" VSHIFT="-1">
<icon BUILTIN="info"/>
<node CREATED="1483755399334" ID="ID_582834462" MODIFIED="1518487921058" TEXT="AbstractTangible_test">
<node CREATED="1483755406254" ID="ID_1800773105" MODIFIED="1518487921058" TEXT="hat inline-Visitor"/>
<node CREATED="1483755445984" ID="ID_468077802" MODIFIED="1518487921058" TEXT="aber Command-ID fest gedrahtet">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1483755412605" ID="ID_220502028" MODIFIED="1518487921058" TEXT="BusTerm_test">
<node CREATED="1483755417932" ID="ID_1696122428" MODIFIED="1518487921058" TEXT="verwendet Hanlder vom Test-Nexus"/>
<node CREATED="1483755428354" ID="ID_1619772942" MODIFIED="1518487921058" TEXT="der verwendet bereits komplettes Argument-Binding">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1483924890656" HGAP="-45" ID="ID_815841886" MODIFIED="1518487921058" TEXT="Implementierung" VSHIFT="22">
<icon BUILTIN="button_ok"/>
<node CREATED="1483924900583" ID="ID_12753464" MODIFIED="1518487921058" TEXT="banal">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1483924903190" ID="ID_1436586014" MODIFIED="1518487921058" TEXT="wenn man das Design akzeptiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t,
</p>
<p>
die mehrfachen Indirektionen und das Ein-/Auspacken der Argumente
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1483927552823" HGAP="-160" ID="ID_458362835" MODIFIED="1538840308219" TEXT="Unit-Test" VSHIFT="24">
<icon BUILTIN="button_ok"/>
<node CREATED="1484294389310" ID="ID_100306048" MODIFIED="1518487921058" TEXT="direkter Aufruf der Facade">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484294397597" ID="ID_1461153044" MODIFIED="1518487921058" TEXT="Aufruf &#xfc;ber Nachrichten + Visitor">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484294409827" ID="ID_1014781174" MODIFIED="1518487921058" TEXT="massiv-paralleler Aufruf">
<icon BUILTIN="button_ok"/>
<node CREATED="1484377327032" ID="ID_1461940140" MODIFIED="1518487921058" TEXT="war eine interessante &#xdc;bung...">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1484377336983" ID="ID_823071776" MODIFIED="1518487921058" TEXT="Hilfsmittel f&#xfc;r Thread/Familien-IDs">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1484377358324" ID="ID_1280997474" MODIFIED="1518487921059" TEXT="in der Tat">
<icon BUILTIN="idea"/>
<node CREATED="1484377383249" ID="ID_1422297147" MODIFIED="1518487921059" TEXT="Commands &#xfc;berholen sich"/>
<node CREATED="1484377389056" ID="ID_930164551" MODIFIED="1518487921059" TEXT="Command instanzen d&#xfc;rfen nicht geshared werden">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1483748340524" ID="ID_841368846" MODIFIED="1518487921059" TEXT="API-Funktionen aufrufen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1482464658193" FOLDED="true" HGAP="-14" ID="ID_726798260" MODIFIED="1538840330479" TEXT="Ausgestaltung" VSHIFT="29">
<icon BUILTIN="button_ok"/>
<node CREATED="1482465840843" ID="ID_818984499" MODIFIED="1518487921059" TEXT="Entwurf">
<icon BUILTIN="stop-sign"/>
<node CREATED="1482464676366" ID="ID_1064506750" MODIFIED="1518487921059" TEXT="bekommt Nachrichten vom UI-Bus">
<node CREATED="1482464755404" ID="ID_213932356" MODIFIED="1518487921059" TEXT="entnimmt Argument"/>
<node CREATED="1482464758148" ID="ID_545671857" MODIFIED="1518487921059" TEXT="triggert sofort"/>
<node CREATED="1492205571235" ID="ID_166892291" MODIFIED="1518487921059" TEXT="Zukunft: partiell schlie&#xdf;en">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es w&#228;re denkbar, an dieser Stelle
</p>
<p>
unvollst&#228;ndige Argument-Tupel zu akzeptieren
</p>
<p>
und die Argumente von links her zu schlie&#223;en (currying)
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1482464696668" ID="ID_1191503480" MODIFIED="1518487921059" TEXT="m&#xfc;ssen in Command-Objekte &#xfc;bersetzt werden"/>
<node CREATED="1482464712474" ID="ID_1386285986" MODIFIED="1518487921059" TEXT="Interface sollte noch GenNodes nehmen"/>
<node CREATED="1482464719513" ID="ID_1003624750" MODIFIED="1518487921059" TEXT="aber synchron die Commands beziehen"/>
<node CREATED="1482464730783" ID="ID_1225624791" MODIFIED="1518487921059" TEXT="damit Exceptions sofort fliegen"/>
</node>
<node CREATED="1484377470133" HGAP="35" ID="ID_62981197" MODIFIED="1518487921059" TEXT="Weiterungen" VSHIFT="11">
<icon BUILTIN="hourglass"/>
<node CREATED="1484377485339" ID="ID_414407137" MODIFIED="1518487921059" TEXT="Commands mit verschiedener Priorit&#xe4;t"/>
<node CREATED="1484377503465" ID="ID_72812588" MODIFIED="1518487921059" TEXT="Commands aggregieren"/>
<node CREATED="1484377535829" ID="ID_488242691" MODIFIED="1518487921059" TEXT="Verwerfen von Commands"/>
<node CREATED="1484377546779" ID="ID_1097356179" MODIFIED="1518487921059" TEXT="Command-ID - Typ"/>
</node>
<node COLOR="#435e98" CREATED="1482465854513" HGAP="26" ID="ID_1477532018" MODIFIED="1538840324244" TEXT="Widerspruch zu Tangible " VSHIFT="12">
<icon BUILTIN="broken-line"/>
<node CREATED="1482465965660" ID="ID_1945056449" MODIFIED="1518487921059" TEXT="Tangible::prepareCommand"/>
<node CREATED="1482466012484" ID="ID_283758092" MODIFIED="1518487921059" TEXT="verwendet InvocationTrail">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1482466021562" ID="ID_620393388" MODIFIED="1518487921059" TEXT="dieser wird direkt mit Command erzeugt">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1482466509953" ID="ID_565604124" MODIFIED="1518487921059" TEXT="...dient der Sicherheit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn es erzwingt,
</p>
<p>
da&#223; die betreffenden Commands schon erzeugt und registriert sein m&#252;ssen,
</p>
<p>
wenn in der UI ein InvocationTrail angelegt wird.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1482466104359" ID="ID_235553653" MODIFIED="1518487921059" TEXT="speichert aber eigentlich nur die Cmd-ID">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1492443474996" HGAP="21" ID="ID_440734267" MODIFIED="1518487921059" TEXT="Schlu&#xdf;folgerung: direkter Aufruf mit Cmd-ID gen&#xfc;gt" VSHIFT="10">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1482466197707" ID="ID_832611965" MODIFIED="1518487921059">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Architektur-Entscheidung
</p>
<p>
<i>kann offen bleiben</i>
</p>
</body>
</html></richcontent>
<node CREATED="1482466246933" ID="ID_870716233" MODIFIED="1518487921059" TEXT="h&#xe4;ngt von der Verwendung ab"/>
<node CREATED="1482466260627" ID="ID_1708185529" MODIFIED="1518487921059" TEXT="wie Commands im UI gebunden werden"/>
<node CREATED="1482466271713" ID="ID_1519273419" MODIFIED="1518487921059" TEXT="Nur IDs gehen &#xfc;ber die Leitung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1482466587807" ID="ID_135147405" MODIFIED="1518487921059">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
reine ID-Wirtschaft <i>w&#228;re m&#246;glich</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482466285359" ID="ID_1077952925" MODIFIED="1518487921059" TEXT="Zugriff auf proc::control::Command is OK">
<icon BUILTIN="yes"/>
<node COLOR="#c0425f" CREATED="1482466320947" ID="ID_431246960" MODIFIED="1518487921059" TEXT="Grundsatz-Entscheidung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482466328482" ID="ID_1223809722" MODIFIED="1518487921059" TEXT="GUI darf von unteren Layern abh&#xe4;ngen">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1482466347767" ID="ID_755953852" MODIFIED="1518487921059" TEXT="C++ ist das ma&#xdf;gebliche Ausdrucksmedium">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1482466368068" ID="ID_149410251" MODIFIED="1518487921059" TEXT="und nicht irgend ein abstraktes CLI-Binding">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1481320870369" HGAP="17" ID="ID_454465129" MODIFIED="1557498707217" TEXT="Rolle des &quot;Model&quot; kl&#xe4;ren" VSHIFT="20">
<icon BUILTIN="forward"/>
<node CREATED="1484882430390" HGAP="56" ID="ID_836665320" MODIFIED="1557498707217" TEXT="Diff-Nachrichten" VSHIFT="-23">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484882437421" ID="ID_1948154354" MODIFIED="1557498707217" TEXT="#1066 concept to pass diff messages">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1484882477368" ID="ID_224140586" MODIFIED="1557498707217" TEXT="Probleme">
<node CREATED="1484882480568" ID="ID_1399902588" MODIFIED="1557498707217" TEXT="unbekannter Quelltyp"/>
<node CREATED="1484882487911" ID="ID_651657111" MODIFIED="1557498707217" TEXT="Storage-Management"/>
<node CREATED="1484882493501" ID="ID_935689465" MODIFIED="1557498707217" TEXT="&#xdc;bergabe in den Event-Thread">
<arrowlink COLOR="#b7748e" DESTINATION="ID_31825421" ENDARROW="Default" ENDINCLINATION="560;150;" ID="Arrow_ID_1434676575" STARTARROW="Default" STARTINCLINATION="587;44;"/>
</node>
<node CREATED="1484882506156" ID="ID_1297602514" MODIFIED="1557498707217" TEXT="Callback aus dem Event-Thread"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538840339858" ID="ID_304902509" MODIFIED="1557498707217" TEXT="es gibt kein Model im klassischen Sinn">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1477784829157" ID="ID_1998357180" MODIFIED="1557498707217" TEXT="Icon-Laden modernisieren"/>
<node CREATED="1477784821925" ID="ID_1871474250" MODIFIED="1557498707217" TEXT="Styling aufr&#xe4;umen">
<node CREATED="1477784846162" ID="ID_1164942946" MODIFIED="1557498707217" TEXT="siehe Info zum CssProvider">
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1600;-25;" ID="Arrow_ID_1610122569" STARTARROW="None" STARTINCLINATION="-840;95;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1538938570760" HGAP="57" ID="ID_1165433334" MODIFIED="1557498707218" TEXT="Neubau" VSHIFT="41">
<font NAME="SansSerif" SIZE="16"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538938751743" ID="ID_243888746" MODIFIED="1557498707218">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#187;die <b>Timeline</b>&#171;
</p>
</body>
</html></richcontent>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477784813895" ID="ID_330280074" MODIFIED="1557498707218">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Aufgabe</u>: <i><font size="4" color="#821b58">populate timeline</font></i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#f9b709" DESTINATION="ID_330280074" ENDARROW="Default" ENDINCLINATION="-37;-88;" ID="Arrow_ID_779644313" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538942842294" ID="ID_1752483939" MODIFIED="1557498707218" TEXT="minimalen Diff f&#xfc;r eine Timeline">
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1538942872402" FOLDED="true" ID="ID_932408081" MODIFIED="1557498707218" TEXT="Panel wird erzeugt">
<icon BUILTIN="button_ok"/>
<node CREATED="1553902314962" ID="ID_1100232681" MODIFIED="1553902322907" TEXT="vorl&#xe4;ufige Platzhalter-Implementierung"/>
<node CREATED="1553902329566" ID="ID_149032705" MODIFIED="1553902390422" TEXT="PanelLocator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
8/2018 there is some overlap with the (not yet fully functional)&#160;
</p>
<p>
ViewLocator in the InteractionDirector. Right now, PanelLocator&#160;&#160;
</p>
<p>
fills some gaps here and offers preliminary solutions for some&#160;&#160;&#160;
</p>
<p>
lookup and allocation tasks ultimately to be performed on a more&#160;
</p>
<p>
abstract level through the ViewSpec-DSL. This corresponds to the&#160;
</p>
<p>
observation, that PanelLocator and WindowLocator are somewhat&#160;&#160;&#160;&#160;
</p>
<p>
tangled currently. The goal is to turn them into access services,
</p>
<p>
and shift the allocation logic to the aforementioned higher level.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1553902425206" ID="ID_908225698" MODIFIED="1553902466376" TEXT="verwendet im Hintergrund noch den alten PanelManager">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...der aber irgendwann (demn&#228;chst in diesem Theater) umgebaut/zur&#252;ckgebaut werden soll
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1538942878609" ID="ID_689625343" MODIFIED="1557498707218" TEXT="Timeline-Tab wird belegt">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538942890792" ID="ID_642469734" MODIFIED="1557498707218" TEXT="hat einen Track">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538942901590" ID="ID_758238752" MODIFIED="1557498707218" TEXT="ein Clip erscheint">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538943061633" ID="ID_1972040317" MODIFIED="1557498707218" TEXT="minimale Feedback-Aktionen">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538943095252" ID="ID_1784185766" MODIFIED="1557498707218" TEXT="drag clip">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538943104651" ID="ID_948012732" MODIFIED="1557498707218" TEXT="delete clip">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539525762357" ID="ID_401544840" MODIFIED="1557498707218" TEXT="Infrastruktur">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1539525774683" ID="ID_800878475" MODIFIED="1557498707218" TEXT="neuer Tab im TestControl">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539525811238" ID="ID_257363214" MODIFIED="1557498707218" TEXT="Buttons / Commands">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1539525817565" ID="ID_609053758" MODIFIED="1557498707218" TEXT="Sequence-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1539525949443" ID="ID_1576521954" MODIFIED="1557498707218" STYLE="fork" TEXT="einfacher Standardfall">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1539554145649" ID="ID_1360223401" MODIFIED="1557498707218" TEXT="Diff anlegen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539564584429" ID="ID_1716609826" MODIFIED="1557498707218" TEXT="Root-Track">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539564589548" ID="ID_1561391207" MODIFIED="1557498707218" TEXT="zwei Clips darin">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539525933590" ID="ID_1481796996" MODIFIED="1557498707218" TEXT="Sequence-2">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1539525938045" ID="ID_940685408" MODIFIED="1557498707218" TEXT="komplex geschachtelt">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539525972400" ID="ID_1975832820" MODIFIED="1557498707218" TEXT="Testdaten-Verwaltung">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1539525981879" ID="ID_1137936334" MODIFIED="1557498707218" TEXT="DummySessionConnection etablieren #1042">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1539525998157" ID="ID_1482744929" MODIFIED="1557498707218" TEXT="Diff-tee">
<icon BUILTIN="flag-pink"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539526035136" ID="ID_1859459942" MODIFIED="1557498707218" TEXT="Daten-Dump">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539528791316" ID="ID_130694385" MODIFIED="1557498707218" TEXT="#1014 populate timeline">
<arrowlink COLOR="#4989d4" DESTINATION="ID_1661495339" ENDARROW="Default" ENDINCLINATION="143;-11;" ID="Arrow_ID_184610773" STARTARROW="None" STARTINCLINATION="93;0;"/>
<icon BUILTIN="pencil"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539528779894" ID="ID_1661495339" MODIFIED="1557498707218" TEXT="#1016 GUI timeline layout structure">
<linktarget COLOR="#4989d4" DESTINATION="ID_1661495339" ENDARROW="Default" ENDINCLINATION="143;-11;" ID="Arrow_ID_184610773" SOURCE="ID_130694385" STARTARROW="None" STARTINCLINATION="93;0;"/>
<icon BUILTIN="pencil"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_1231562526" MODIFIED="1557498707218" TEXT="Timeline Panel bauen">
<arrowlink COLOR="#fec680" DESTINATION="ID_712786561" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_433721169" STARTARROW="None" STARTINCLINATION="860;206;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1538940061190" ID="ID_1375216048" MODIFIED="1557498707218" TEXT="verankern im InteractonDirector">
<arrowlink COLOR="#fec680" DESTINATION="ID_810032444" ENDARROW="Default" ENDINCLINATION="-451;-531;" ID="Arrow_ID_1378803021" STARTARROW="None" STARTINCLINATION="335;22;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538941158698" ID="ID_513093052" MODIFIED="1557498707218" TEXT="vorl&#xe4;ufiger Allokator">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538941253181" ID="ID_1144811315" MODIFIED="1557498707218" TEXT="multi-Tab-Anzeige">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_1325225528" MODIFIED="1557498707218" TEXT="Aktion re-Locate">
<arrowlink COLOR="#fec680" DESTINATION="ID_1992201258" ENDARROW="Default" ENDINCLINATION="-784;-81;" ID="Arrow_ID_126634995" STARTARROW="None" STARTINCLINATION="651;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_977311190" MODIFIED="1557498707218" TEXT="Aktion re-Populate">
<arrowlink COLOR="#fec680" DESTINATION="ID_501539344" ENDARROW="Default" ENDINCLINATION="-1280;-81;" ID="Arrow_ID_938812574" STARTARROW="None" STARTINCLINATION="335;22;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538939781588" ID="ID_1327960211" MODIFIED="1557498707218" TEXT="Timeline Widget bauen">
<arrowlink COLOR="#7d91d6" DESTINATION="ID_1613745412" ENDARROW="Default" ENDINCLINATION="-63;-32;" ID="Arrow_ID_1377777978" STARTARROW="None" STARTINCLINATION="-144;16;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538941097739" ID="ID_368023009" MODIFIED="1557498707218" TEXT="Klassen anlegen und verdrahten">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1538941119416" FOLDED="true" ID="ID_1730845721" MODIFIED="1557498707218" TEXT="Panel">
<icon BUILTIN="hourglass"/>
<node CREATED="1553904058976" ID="ID_1691737302" MODIFIED="1553904063506" TEXT="vorl&#xe4;ufig"/>
<node CREATED="1553904064045" ID="ID_243039089" MODIFIED="1553904072649" TEXT="wartet noch auf Umbau PanelManager"/>
</node>
<node COLOR="#338800" CREATED="1538941122447" ID="ID_1577513149" MODIFIED="1557498707218" TEXT="Widget">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538941130390" ID="ID_813480105" MODIFIED="1557498707218" TEXT="Controller">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538941132710" ID="ID_878237612" MODIFIED="1557498707218" TEXT="Presenter">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_693425928" MODIFIED="1557498707218" TEXT="Timeline-Controller bauen">
<arrowlink COLOR="#fec680" DESTINATION="ID_391329400" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_1839172502" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_1570849604" MODIFIED="1557498707218" TEXT="Presenter bauen">
<arrowlink COLOR="#fec680" DESTINATION="ID_1306244096" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_951723874" STARTARROW="None" STARTINCLINATION="407;0;"/>
<arrowlink COLOR="#fec680" DESTINATION="ID_834517953" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_483670351" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538939792267" ID="ID_1104238784" MODIFIED="1557498707218" TEXT="Pr&#xe4;sentation bauen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_758873433" MODIFIED="1557498707218" TEXT="Layout-Control">
<arrowlink COLOR="#fec680" DESTINATION="ID_562532566" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_130009025" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538940061190" ID="ID_1131206858" MODIFIED="1557498707218" TEXT="konkrete Anzeige">
<arrowlink COLOR="#fec680" DESTINATION="ID_1999928728" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_506785204" STARTARROW="None" STARTINCLINATION="407;0;"/>
<arrowlink COLOR="#fec680" DESTINATION="ID_1240926804" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_435369727" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538938796825" ID="ID_1428561726" MODIFIED="1557498707218">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#187;der <b>Viewer</b>&#171;
</p>
</body>
</html></richcontent>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1538938835228" ID="ID_1454224639" MODIFIED="1557498707218" TEXT="&#xbb;Properties&#xab;">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1538938838779" ID="ID_112266805" MODIFIED="1557498707218" TEXT="&#xbb;Assets&#xab;">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1538938942294" ID="ID_59353951" MODIFIED="1557498707218" TEXT="&#xbb;Hilfe&#xab;">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node CREATED="1534336252375" HGAP="216" ID="ID_1755017021" MODIFIED="1557498707218" TEXT="Hilfsmittel" VSHIFT="6">
<node CREATED="1534336320373" ID="ID_708892482" MODIFIED="1557498707218" TEXT="Grundbausteine">
<node CREATED="1537659522174" ID="ID_1583657425" MODIFIED="1557498707218" TEXT="primary widgets">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<b>Definition</b>: komplexe Widget-Strukturen,
</p>
<p>
welche nur einmal in dieser speziellen Konfiguration exisiteren,
</p>
<p>
und dabei eine zentrale Rolle im UI spielen.
</p>
<p>
</p>
<p>
<u>Beispiel</u>:
</p>
<ul>
<li>
Timeline
</li>
<li>
Property-Grid
</li>
</ul>
</body>
</html></richcontent>
<node CREATED="1537659866783" ID="ID_1613745412" MODIFIED="1557498707218" TEXT="Timeline">
<linktarget COLOR="#7d91d6" DESTINATION="ID_1613745412" ENDARROW="Default" ENDINCLINATION="-63;-32;" ID="Arrow_ID_1377777978" SOURCE="ID_1327960211" STARTARROW="None" STARTINCLINATION="-144;16;"/>
</node>
<node CREATED="1537659870415" ID="ID_1181375258" MODIFIED="1557498707218" TEXT="Property-Grid"/>
</node>
<node CREATED="1537659527741" ID="ID_856745741" MODIFIED="1557498707218" TEXT="building blocks">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<b>Definition</b>: speziell konfigurierte und verdrahtete Teil-Komponenten,
</p>
<p>
welche wiederholt an verschiedensten Stellen im UI eingesetzt werden,
</p>
<p>
und sich dort jeweils konsistent und uniform verhalten.
</p>
<p>
<u>Beispiel</u>:
</p>
<ul>
<li>
Timecode-Widget
</li>
<li>
Placement-Widget
</li>
</ul>
</body>
</html></richcontent>
<node CREATED="1538583873795" ID="ID_1515056203" MODIFIED="1557498707218" TEXT="spezifisch">
<node CREATED="1537659880597" ID="ID_1214109906" MODIFIED="1557498707218" TEXT="Timecode"/>
<node CREATED="1537659890292" ID="ID_1230379898" MODIFIED="1557498707218" TEXT="Placement"/>
</node>
<node CREATED="1538583877106" ID="ID_1825646582" MODIFIED="1557498707218" TEXT="generisch">
<node CREATED="1538583886065" ID="ID_217810080" MODIFIED="1557498707218" TEXT="ErrorLogView">
<linktarget COLOR="#98a2c5" DESTINATION="ID_217810080" ENDARROW="Default" ENDINCLINATION="1891;-1228;" ID="Arrow_ID_1688804340" SOURCE="ID_1745777873" STARTARROW="None" STARTINCLINATION="-1261;74;"/>
<node CREATED="1538583894072" ID="ID_1836686899" MODIFIED="1557498707218" TEXT="Gtk::TextView + Mark-Index">
<arrowlink COLOR="#3251a9" DESTINATION="ID_243616989" ENDARROW="Default" ENDINCLINATION="-2060;-1360;" ID="Arrow_ID_794678010" STARTARROW="None" STARTINCLINATION="-3506;-148;"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
</node>
<node CREATED="1537961656982" ID="ID_1251358269" MODIFIED="1557498707218" TEXT="frameworks">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
vorbereitete Grundstrukturen f&#252;r immer wiederkehrende Setups
</p>
</body>
</html></richcontent>
<node CREATED="1537961734956" FOLDED="true" ID="ID_345535043" MODIFIED="1557498707218" TEXT="Notebook-Widget">
<node CREATED="1537961776184" ID="ID_167848646" MODIFIED="1537961791126" TEXT="Problematik">
<icon BUILTIN="forward"/>
<node CREATED="1537961797061" ID="ID_104206298" MODIFIED="1537961806159" TEXT="extrem viele Komponenten-Widgets"/>
<node CREATED="1537961807436" ID="ID_1420879044" MODIFIED="1537961819742" TEXT="Namenskollisionen zwischen Pages"/>
<node CREATED="1537961832009" ID="ID_380956030" MODIFIED="1537961842907" TEXT="Boilerplate-Code goes Spaghetti"/>
</node>
<node CREATED="1537961848735" ID="ID_1187685583" MODIFIED="1537961889952" TEXT="L&#xf6;sungs-Ideen">
<icon BUILTIN="idea"/>
<node CREATED="1537961860374" ID="ID_933681325" MODIFIED="1537961871080" TEXT="managing container"/>
<node CREATED="1537961872836" ID="ID_1674501396" MODIFIED="1537961884942" TEXT="builder lambda"/>
</node>
<node COLOR="#338800" CREATED="1537961894394" ID="ID_1253130867" MODIFIED="1537969684728" TEXT="Prototyp">
<icon BUILTIN="button_ok"/>
<node CREATED="1537961917592" ID="ID_591860371" MODIFIED="1537962293792" TEXT="im TestControl">
<linktarget COLOR="#6ea8be" DESTINATION="ID_591860371" ENDARROW="Default" ENDINCLINATION="1162;51;" ID="Arrow_ID_1534615646" SOURCE="ID_1553519505" STARTARROW="None" STARTINCLINATION="-185;836;"/>
</node>
<node CREATED="1537961950003" ID="ID_1083792924" MODIFIED="1537962085365" TEXT="Schema &quot;managing container&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn das erscheint mir bodenst&#228;ndiger.
</p>
<p>
GUI-Programmierung mu&#223; bodenst&#228;ding bleiben,
</p>
<p>
man gewinnt hier nichts durch blendende Abstraktionen.
</p>
<p>
</p>
<p>
Ich hoffe, da&#223; der Hilfscontainer <i>nahezu transparent </i>gemacht werden kann.
</p>
<p>
Und der Rest sollte so <i>vertraut</i>&#160;aussehen, da&#223; es selbsterkl&#228;rend wird.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1534336325916" ID="ID_762624766" MODIFIED="1557498707218" TEXT="Bindeglieder"/>
<node CREATED="1534336335963" ID="ID_1176525116" MODIFIED="1557498707218" TEXT="Werkzeug">
<node COLOR="#338800" CREATED="1534334810537" FOLDED="true" ID="ID_1326202399" MODIFIED="1557498707218" TEXT="Link zum Widget">
<linktarget COLOR="#a66b86" DESTINATION="ID_1326202399" ENDARROW="Default" ENDINCLINATION="279;-1333;" ID="Arrow_ID_664593340" SOURCE="ID_203145360" STARTARROW="None" STARTINCLINATION="-1296;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534334914667" ID="ID_511749457" MODIFIED="1534436573129" TEXT="smart-Ref">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534334939159" ID="ID_1853703071" MODIFIED="1534436570387" TEXT="leer konstruierbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534334944207" ID="ID_1989000221" MODIFIED="1534342998767" TEXT="bool testbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534334964700" ID="ID_1509791330" MODIFIED="1534343003956" TEXT="dereferenzierbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534335220066" ID="ID_132223755" MODIFIED="1534388600416" TEXT="target anbinden">
<icon BUILTIN="button_ok"/>
<node CREATED="1534335240246" ID="ID_1480460700" MODIFIED="1534336108969" TEXT="sigc::trackable">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1534336110858" ID="ID_280796006" MODIFIED="1534388602201" TEXT="connect()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534336116617" ID="ID_1274372728" MODIFIED="1534388603779" TEXT="clear()">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534335253941" ID="ID_269300171" MODIFIED="1534388596484" TEXT="magisch kopierbar">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1534336069415" ID="ID_1775411301" MODIFIED="1534337958030">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Name: <b>WLink</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1534336127895" HGAP="21" ID="ID_352867763" MODIFIED="1534436566889" TEXT="WLink_test" VSHIFT="9">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534340031277" ID="ID_506504727" MODIFIED="1534341378412" TEXT="test-dummy-trackable">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534340016027" ID="ID_109515645" MODIFIED="1534388606258" TEXT="verify_standardUsage">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534340023288" ID="ID_1266509201" MODIFIED="1534388607832" TEXT="verify_reconnect">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534340028094" ID="ID_1406183687" MODIFIED="1534388609833" TEXT="verify_copy">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534436582390" ID="ID_880451727" MODIFIED="1534436621371" TEXT="nur EX_SANE">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1534436589806" ID="ID_1530771493" MODIFIED="1534436645751" TEXT="unter der Annahme, da&#xdf; sigc::trackable EX_SANE ist">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534436609323" ID="ID_1966799512" MODIFIED="1534436641103" TEXT="nicht wirklich gepr&#xfc;ft">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1537659082073" ID="ID_986070389" MODIFIED="1557498707218" TEXT="Schema">
<node CREATED="1537659311850" ID="ID_741254991" MODIFIED="1557498707218" TEXT="Struktur"/>
<node CREATED="1537659316321" ID="ID_1046162234" MODIFIED="1557498707218" TEXT="Style">
<node CREATED="1537660235757" ID="ID_1679504678" MODIFIED="1557498707218" TEXT="Leitlinie">
<node CREATED="1537660241420" ID="ID_1559839657" MODIFIED="1557498707218" TEXT="m&#xf6;glichst generisch belassen"/>
<node CREATED="1537660355669" ID="ID_407535546" MODIFIED="1557498707218" TEXT="zentrale Palette f&#xfc;r Extra-Auszeichnungen">
<linktarget COLOR="#8f81b2" DESTINATION="ID_407535546" ENDARROW="Default" ENDINCLINATION="3769;-2728;" ID="Arrow_ID_1203118148" SOURCE="ID_758790930" STARTARROW="None" STARTINCLINATION="-1594;0;"/>
<node CREATED="1537661251763" ID="ID_896084387" MODIFIED="1557498707218" TEXT="virtuelle Widget-Struktur"/>
<node CREATED="1537661267561" ID="ID_1282505273" MODIFIED="1557498707218" TEXT="systematisch organisiert"/>
<node CREATED="1537661279344" ID="ID_635630811" MODIFIED="1557498707219" TEXT="wird bei Bedarf abgefragt"/>
<node CREATED="1537661322914" ID="ID_165076190" MODIFIED="1557498707219" TEXT="per synthetisiertem Widget-Path"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538588393995" ID="ID_1149076483" MODIFIED="1557498707219" TEXT="#1168 : find a way to manage style of custom extended UI elements">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538695838262" ID="ID_407627538" MODIFIED="1557498707219" TEXT="lumiera-(light|dark)-theme-complement.css">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1538695878400" ID="ID_1937289801" MODIFIED="1557498707219" TEXT="wir liefern Stylesheets zur Erg&#xe4;nzung des System-Themas">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538695897046" ID="ID_382934959" MODIFIED="1557498707219" TEXT="als w&#xe4;hlbare Alternative zu unserem Applikations-Stylesheet"/>
<node CREATED="1538695912900" ID="ID_161292075" MODIFIED="1557498707219" TEXT="diese enthalten nur die minimal notwendigen Erg&#xe4;nzungen">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538702238122" ID="ID_1439139961" MODIFIED="1557498707219" TEXT="#1170 care for interplay with light, dark and high contrast themes">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538696008591" ID="ID_441937774" MODIFIED="1557498707219" TEXT="Lumiera Stylesheet">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1538696023165" ID="ID_698985788" MODIFIED="1557498707219" TEXT="lumiera.css"/>
<node CREATED="1538696026884" ID="ID_1880901613" MODIFIED="1557498707219" TEXT="wir liefern unser eigenes Applikations-Stylesheet">
<icon BUILTIN="idea"/>
<node CREATED="1538696052161" ID="ID_1715392243" MODIFIED="1557498707219" TEXT="abgeleitet vom Ardour-Stylesheet">
<arrowlink DESTINATION="ID_1918479292" ENDARROW="Default" ENDINCLINATION="132;0;" ID="Arrow_ID_146898233" STARTARROW="None" STARTINCLINATION="74;-5;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538696060808" ID="ID_82400982" MODIFIED="1557498707219" TEXT="seinerzeit von Joel Holdsworth">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538696069551" ID="ID_1095339421" MODIFIED="1557498707219" TEXT="dezenter Meda-Application look">
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1538696238952" ID="ID_1693017073" MODIFIED="1557498707219" TEXT="Portierung GTK2 -&gt; CSS (GTK3)">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538696262533" ID="ID_472703036" MODIFIED="1557498707219" TEXT="2014 rudiment&#xe4;r, dann steckengeblieben">
<icon BUILTIN="bell"/>
</node>
<node CREATED="1538696307615" ID="ID_1918479292" MODIFIED="1557498707219" TEXT="was macht eigentlich Ardour heute?">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1918479292" ENDARROW="Default" ENDINCLINATION="132;0;" ID="Arrow_ID_146898233" SOURCE="ID_1715392243" STARTARROW="None" STARTINCLINATION="74;-5;"/>
<icon BUILTIN="help"/>
<node CREATED="1538699094129" HGAP="61" ID="ID_1901117568" MODIFIED="1557498707219" TEXT="B&#xe4;&#xe4;&#xe4;h! GTK-2 verwenden" VSHIFT="3">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538702167475" ID="ID_1067979840" MODIFIED="1557498707219" TEXT="#1023 Lumiera GTK stylesheet">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538710332658" ID="ID_584658644" MODIFIED="1557498707219" TEXT="Bugfixes...">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538710354271" ID="ID_79614027" MODIFIED="1557498707219" TEXT="inherit verwenden">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538710363741" ID="ID_1130951877" MODIFIED="1557498707219" TEXT="Widget-Namen korrekt schreiben">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1538710376229" ID="ID_806378376" MODIFIED="1557498707219" TEXT="in GTK-2 war das z.B. GtkWindow">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538710388956" ID="ID_17203500" MODIFIED="1557498707219" TEXT="in GTK-3 entspricht das window">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1538710407602" ID="ID_1860886507" MODIFIED="1557498707219" TEXT="Regel...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
den Klassennamen ohne das Namespace-Pr&#228;fix &quot;GTK&quot;, und alles lower case.
</p>
<p>
Im Zweifelsfall den GTK+ Inspector verwenden!
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1538696355832" ID="ID_1442093424" MODIFIED="1557498707219" TEXT="Probleme">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1538696365447" ID="ID_721732470" MODIFIED="1557498707219" TEXT="Theming-Engine">
<icon BUILTIN="stop-sign"/>
<node CREATED="1538696371086" ID="ID_1893037783" MODIFIED="1557498707219" TEXT="wir hatten Clearlooks. Gibts nicht mehr">
<icon BUILTIN="info"/>
</node>
<node CREATED="1538696393835" ID="ID_1157806021" MODIFIED="1557498707219" TEXT="ersatzweise Adwaita, Gibts auch nicht mehr">
<icon BUILTIN="button_cancel"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538696429774" ID="ID_1862679821" LINK="https://web.archive.org/web/20180829072234/https://blogs.gnome.org/mclasen/2014/06/13/a-new-default-theme-for-gtk/" MODIFIED="1557498707219" TEXT="das ganze Konzept ist obsolet">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="stop-sign"/>
</node>
<node COLOR="#338800" CREATED="1538696720743" ID="ID_50558236" MODIFIED="1557498707219" TEXT="ersatzlos entfernt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
CSS gen&#252;gt
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538696756026" ID="ID_67620335" MODIFIED="1557498707219" TEXT="Interferenz mit dem System-Thema">
<icon BUILTIN="pencil"/>
<node CREATED="1538696777327" ID="ID_1226163317" MODIFIED="1557498707219" TEXT="Problem: repetitive Definitionen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538696788838" ID="ID_12898010" LINK="https://stackoverflow.com/q/52655725/444796" MODIFIED="1557498707219" TEXT="auf Stackoverflow gefragt">
<icon BUILTIN="help"/>
</node>
<node CREATED="1538696930403" HGAP="38" ID="ID_280002018" MODIFIED="1557498707219" TEXT="Idee: &quot;inherit&quot; auf h&#xf6;chster Ebene" VSHIFT="3">
<icon BUILTIN="idea"/>
<node CREATED="1538696962271" ID="ID_46020871" MODIFIED="1557498707219" TEXT="unser Stylesheet hat GTK_STYLE_PROVIDER_PRIORITY_APPLICATION"/>
<node CREATED="1538696988803" ID="ID_1662822982" MODIFIED="1557498707219">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
f&#252;ge <i>m&#246;glichst hoch</i>&#160;in der Hierarchie Regeln ein,
</p>
<p>
die ein property auf den Wert '<font face="Monospaced"><b>inherit</b></font>' setzten
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
z.B. in den Block mit den &quot;default-Regeln&quot;
</p>
<p>
&#160;&#160;* {
</p>
<p>
&#160;&#160;&#160;&#160;color:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;inherit; /* by default inherit content colour from parent widget */
</p>
<p>
&#160;&#160;&#160;&#160;background-color: inherit;
</p>
<p>
}
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538697207110" ID="ID_415528083" MODIFIED="1557498707219" TEXT="border korrekt/geschickt setzen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1485126385235" HGAP="38" ID="ID_548720270" MODIFIED="1557498707219" TEXT="top-Level" VSHIFT="11">
<linktarget COLOR="#851358" DESTINATION="ID_548720270" ENDARROW="Default" ENDINCLINATION="-663;-614;" ID="Arrow_ID_325703166" SOURCE="ID_471609909" STARTARROW="None" STARTINCLINATION="1110;608;"/>
<icon BUILTIN="bell"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485126400233" ID="ID_885004423" MODIFIED="1557498707219" TEXT="unsauberes Design">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1485126410424" ID="ID_1158773288" MODIFIED="1557498707219" TEXT="wir haben mehrere Fenster">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485126418431" ID="ID_1145950660" MODIFIED="1557498707219" TEXT="GtkLumiera sollte kein Singleton sein">
<arrowlink COLOR="#80b3ef" DESTINATION="ID_164246989" ENDARROW="Default" ENDINCLINATION="-42;-74;" ID="Arrow_ID_401425747" STARTARROW="None" STARTINCLINATION="387;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1485549610040" ID="ID_699947133" MODIFIED="1557498707219" TEXT="Aktionen f&#xfc;r jedes top-level Window repliziert">
<icon BUILTIN="pencil"/>
<node CREATED="1485549646739" ID="ID_1714638860" MODIFIED="1557498707219" TEXT="Abh&#xe4;ngigkeit vom Fenster identifizieren"/>
<node CREATED="1485549666424" ID="ID_1909892697" MODIFIED="1557498707219" TEXT="generisch machen"/>
<node CREATED="1485549672943" ID="ID_1716269299" MODIFIED="1557498707219" TEXT="Aktionen in UiManager verschieben"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485126429445" ID="ID_832156304" MODIFIED="1557498707219" TEXT="aufr&#xe4;umen">
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485126506699" ID="ID_1776936645" MODIFIED="1557498707219" TEXT="#1067 rearrange GUI Application top-level">
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#338800" CREATED="1485126573818" ID="ID_206480879" MODIFIED="1557498707219" TEXT="#1032 use gtk::Application instead of gtk::Main">
<arrowlink COLOR="#ae182e" DESTINATION="ID_1476863246" ENDARROW="Default" ENDINCLINATION="283;-164;" ID="Arrow_ID_1851148216" STARTARROW="Default" STARTINCLINATION="481;0;"/>
<linktarget COLOR="#ae1856" DESTINATION="ID_206480879" ENDARROW="Default" ENDINCLINATION="715;0;" ID="Arrow_ID_926482654" SOURCE="ID_392996871" STARTARROW="Default" STARTINCLINATION="134;383;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1485126609878" ID="ID_815018040" MODIFIED="1557498707219" TEXT="#1064 investigate WindowManager lifecycle">
<icon BUILTIN="button_ok"/>
<node CREATED="1493752896125" ID="ID_1471478347" MODIFIED="1557498707219" TEXT="erledigt"/>
<node CREATED="1493752899224" ID="ID_83018735" MODIFIED="1557498707219" TEXT="WindowManager war gar nicht so wichtig"/>
<node CREATED="1493752906736" ID="ID_1191055389" MODIFIED="1557498707219" TEXT="er ist jetzt nur noch eine Fenster-Liste"/>
<node CREATED="1504368788471" ID="ID_1811705494" MODIFIED="1557498707219" TEXT="und die hei&#xdf;t jetzt WindowLocator"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485550950793" ID="ID_50100583" MODIFIED="1557498707219" TEXT="#1048 rectify UI Lifecycle">
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1485550968230" ID="ID_164246989" MODIFIED="1557498707219" TEXT="GtkLumiera darf kein Singleton mehr sein">
<linktarget COLOR="#80b3ef" DESTINATION="ID_164246989" ENDARROW="Default" ENDINCLINATION="-42;-74;" ID="Arrow_ID_401425747" SOURCE="ID_1145950660" STARTARROW="None" STARTINCLINATION="387;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1485561982971" ID="ID_287757293" MODIFIED="1557498707219" TEXT="Blocker entfernen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1485562029644" ID="ID_1022779645" MODIFIED="1557498707219" TEXT="wieder das Problem mit dem BInden der Actions">
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_530209145" ENDARROW="Default" ENDINCLINATION="-17;-195;" ID="Arrow_ID_626063593" STARTARROW="None" STARTINCLINATION="9;270;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1493846161963" ID="ID_358400969" MODIFIED="1557498707219" TEXT="durch fortgesetztes Refactoring gel&#xf6;st">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1485550992299" ID="ID_1685125156" MODIFIED="1557498707219" TEXT="es blocken">
<icon BUILTIN="button_ok"/>
<node CREATED="1485550999762" ID="ID_249139218" MODIFIED="1557498707219" TEXT="WindowManager">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1485551007297" ID="ID_1398242341" MODIFIED="1557498707219" TEXT="Project &amp; Controller">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493853541747" ID="ID_689819683" MODIFIED="1557498707219" TEXT="TODO">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1493853548739" ID="ID_949985796" MODIFIED="1557498707220" TEXT="Project &amp; Controller restlos entfernen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wartet noch darauf,
</p>
<p>
da&#223; die alte, obsolete Timeline zur&#252;ckgebaut ist
</p>
</body>
</html></richcontent>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1493853590149" ID="ID_1075149702" MODIFIED="1557498707220" TEXT="Race beim triggerShutdown">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
siehe guifacade.cpp
</p>
<p>
Problem ist: wenn das triggerShutdown kommt,
</p>
<p>
bevor die Notification-Facade ge&#246;ffnet werden konnte
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504191345606" ID="ID_1249897876" MODIFIED="1557498707220" TEXT="#1026 cleanup PanelManager">
<linktarget COLOR="#ce6b5f" DESTINATION="ID_1249897876" ENDARROW="Default" ENDINCLINATION="1299;0;" ID="Arrow_ID_1635700276" SOURCE="ID_1335931102" STARTARROW="Default" STARTINCLINATION="-1412;-1014;"/>
<linktarget COLOR="#e1a169" DESTINATION="ID_1249897876" ENDARROW="Default" ENDINCLINATION="-636;0;" ID="Arrow_ID_446871395" SOURCE="ID_125942292" STARTARROW="None" STARTINCLINATION="-311;562;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193029907" ID="ID_1020871440" MODIFIED="1557498707220" TEXT="#1104 how to instruct actions through panels">
<linktarget COLOR="#806893" DESTINATION="ID_1020871440" ENDARROW="Default" ENDINCLINATION="-3;460;" ID="Arrow_ID_412107208" SOURCE="ID_1943521361" STARTARROW="Default" STARTINCLINATION="-618;-18;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529235342511" ID="ID_1922506931" MODIFIED="1557498707220">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Aufgabe</b>: docking panels global
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b0466a" DESTINATION="ID_629544763" ENDARROW="Default" ENDINCLINATION="-849;-1967;" ID="Arrow_ID_1826422316" STARTARROW="None" STARTINCLINATION="690;23;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1485551018975" ID="ID_1865473127" MODIFIED="1557498707220" TEXT="obsoletes Project &amp; Controller">
<node CREATED="1485551030086" ID="ID_1052165402" MODIFIED="1557498707220" TEXT="in GtkLumiera definiert"/>
<node CREATED="1485551035413" ID="ID_1861899005" MODIFIED="1557498707220" TEXT="tats&#xe4;chlich im Panel (Basisklasse) gespeichert"/>
<node CREATED="1485551056834" ID="ID_538186909" MODIFIED="1557498707220" TEXT="tats&#xe4;chlich nur im alten TimelinePannel gebraucht"/>
<node COLOR="#338800" CREATED="1485551067353" ID="ID_1684200224" MODIFIED="1557498707220" TEXT="&#xdc;bergangsl&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node CREATED="1485551080687" ID="ID_405147511" MODIFIED="1557498707220" TEXT="als Felder dort">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1485551085454" ID="ID_472031977" MODIFIED="1557498707220" TEXT="ist ohnehin defunkt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485551096445" ID="ID_258972556" MODIFIED="1557498707220" TEXT="dann Parameter entfernen"/>
</node>
</node>
<node COLOR="#ae1856" CREATED="1485126686643" ID="ID_405470138" MODIFIED="1557498707220" TEXT="sauberer Shutdown">
<arrowlink COLOR="#872666" DESTINATION="ID_286857196" ENDARROW="Default" ENDINCLINATION="-684;0;" ID="Arrow_ID_1606936924" STARTARROW="Default" STARTINCLINATION="1461;0;"/>
<node CREATED="1502411273154" HGAP="57" ID="ID_1087419686" MODIFIED="1557498707220" TEXT="komplett?" VSHIFT="39">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_159568066" MODIFIED="1557498707220" TEXT="alle noch offenen Fenster verbergen">
<linktarget COLOR="#543c6f" DESTINATION="ID_159568066" ENDARROW="Default" ENDINCLINATION="489;-554;" ID="Arrow_ID_373486067" SOURCE="ID_869056268" STARTARROW="None" STARTINCLINATION="-762;-46;"/>
<icon BUILTIN="bell"/>
<node CREATED="1495234856782" ID="ID_1605922951" MODIFIED="1557498707220" TEXT="machen wir bisher nicht"/>
<node CREATED="1495234865717" ID="ID_1261122199" MODIFIED="1557498707220" TEXT="ist das notwendig?"/>
<node CREATED="1538588192126" ID="ID_1032145387" MODIFIED="1557498707220" TEXT="wohl nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn die GTK-Loop angehalten wird,
</p>
<p>
dann koppelt sich GTK anscheinend auch
</p>
<p>
automatisch vom Window-Manager ab.
</p>
<p>
</p>
<p>
Jedenfalls habe ich nun schon mehrfach den Shutdown &quot;von unten&quot; getriggert,
</p>
<p>
und es wurden alle Fenster geschlossen.
</p>
<p>
</p>
<p>
Allerdings habe ich an der Stelle immer noch GTK-Assertions
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1485463620403" ID="ID_40172420" MODIFIED="1557498707220" TEXT="zentralen UiManager einf&#xfc;hren">
<arrowlink COLOR="#667b93" DESTINATION="ID_1698853761" ENDARROW="Default" ENDINCLINATION="19;-86;" ID="Arrow_ID_1952755524" STARTARROW="None" STARTINCLINATION="-290;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1485126441508" HGAP="32" ID="ID_1227132808" MODIFIED="1557498707220" TEXT="GtkLumiera" VSHIFT="-26">
<icon BUILTIN="button_ok"/>
<node CREATED="1485454326827" ID="ID_1493501410" MODIFIED="1557498707220" TEXT="Applikation == Lebenszyklus">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1485463515929" ID="ID_785456397" MODIFIED="1557498707220" TEXT="f&#xfc;r die Verdrahtung zust&#xe4;ndig"/>
<node CREATED="1485463525736" ID="ID_1608786246" MODIFIED="1557498707220" TEXT="h&#xe4;lt alle zentralen Komponenten"/>
<node CREATED="1493846135327" ID="ID_832439809" MODIFIED="1557498707220" TEXT="initialisiert und startet Backbone"/>
<node CREATED="1485463537111" ID="ID_929585985" MODIFIED="1557498707220" TEXT="wird nie selber direkt angesprochen"/>
</node>
<node COLOR="#435e98" CREATED="1485126457025" ID="ID_1698853761" MODIFIED="1557498707220" TEXT="ctrl::UiManager">
<linktarget COLOR="#667b93" DESTINATION="ID_1698853761" ENDARROW="Default" ENDINCLINATION="19;-86;" ID="Arrow_ID_1952755524" SOURCE="ID_40172420" STARTARROW="None" STARTINCLINATION="-290;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1485454242368" ID="ID_482639947" MODIFIED="1557498707220" TEXT="Hub f&#xfc;r Framework">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1485454284961" ID="ID_940728768" MODIFIED="1557498707220" TEXT="es gibt nur einen">
<icon BUILTIN="yes"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485454375917" ID="ID_1935695209" MODIFIED="1557498707220" TEXT="erbt von Gtk::UiManager">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#435e98" CREATED="1533303793015" ID="ID_433225506" MODIFIED="1557498707220" TEXT="Infos zu Gtk::Main, Gtk::Application und Gio::Application">
<arrowlink COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-1088;-39;" ID="Arrow_ID_234165792" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485457021805" ID="ID_1476863246" MODIFIED="1557498707220" TEXT="Gtk::UiManager ist deprecated">
<linktarget COLOR="#6d7495" DESTINATION="ID_1476863246" ENDARROW="Default" ENDINCLINATION="1126;-247;" ID="Arrow_ID_1941890495" SOURCE="ID_384827553" STARTARROW="None" STARTINCLINATION="-231;14;"/>
<linktarget COLOR="#ae182e" DESTINATION="ID_1476863246" ENDARROW="Default" ENDINCLINATION="283;-164;" ID="Arrow_ID_1851148216" SOURCE="ID_206480879" STARTARROW="Default" STARTINCLINATION="481;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1493768617653" ID="ID_292624709" MODIFIED="1557498707220" TEXT="f&#xe4;llt anscheinend ersatzlos weg"/>
<node CREATED="1493768625564" ID="ID_1620270152" MODIFIED="1557498707220" TEXT="Verdacht: stattdessen Gtk::Application"/>
<node CREATED="1495218227391" ID="ID_1156276489" MODIFIED="1557498707220" TEXT="Beschlu&#xdf;: vorerst Gtk::Action / ActionGroup weiter verwenden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<u>Begr&#252;ndung</u>:
</p>
<p>
Das neue System ist anscheinend fest integriert in Gio::Application.
</p>
<p>
Mir ist nicht klar, wieso ein Fenster/Widget das Interface Gio::Actionable implementieren mu&#223;.
</p>
<p>
Ich werde den Verdacht nicht los, da&#223; hier das Ziel verfolgt wird, eine &quot;Action&quot; von den
</p>
<p>
Grenzen der Applikation zu befreien und direkt in den Desktop zu integrieren.
</p>
<p>
Mit Desktop ist nat&#252;rlich der Gnome-Desktop gemeint. Was diesen Verdacht best&#228;rkt,
</p>
<p>
ist, da&#223; Gio::Application sofort auch gleich eine dBus-Verbindung hochf&#228;hrt.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1485457105010" HGAP="49" ID="ID_202831328" MODIFIED="1557498707220" TEXT="neuer Weg" VSHIFT="21">
<icon BUILTIN="info"/>
<node CREATED="1485457108425" ID="ID_152284167" MODIFIED="1557498707220" TEXT="man erzeugt Gio::SimpleActionGroup"/>
<node CREATED="1485457141853" ID="ID_1841602685" MODIFIED="1557498707220" TEXT="man f&#xfc;gt diese dem Fenster hinzu"/>
</node>
</node>
<node CREATED="1485454243767" HGAP="43" ID="ID_3699127" MODIFIED="1557498707220" TEXT="Aufgabe: konsistentes UI" VSHIFT="-4">
<node CREATED="1485454248335" ID="ID_623536019" MODIFIED="1557498707220" TEXT="globales Men&#xfc;"/>
<node CREATED="1485454259637" ID="ID_432211008" MODIFIED="1557498707220" TEXT="globale Toolbar"/>
<node CREATED="1485454252789" ID="ID_310049457" MODIFIED="1557498707220" TEXT="globale Aktionen"/>
<node CREATED="1485454263876" ID="ID_543704434" MODIFIED="1557498707220" TEXT="globale Keybindings"/>
</node>
<node CREATED="1493768943479" ID="ID_374108201" MODIFIED="1557498707220" TEXT="Plan">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493768946415" ID="ID_880915214" MODIFIED="1557498707220" TEXT="das ist die UI-Main-Klasse">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1493768959324" ID="ID_873679558" MODIFIED="1557498707220" TEXT="sollte dann...">
<node CREATED="1493768965036" ID="ID_1457175098" MODIFIED="1557498707220" TEXT="das erste Fenster &#xf6;ffnen"/>
<node CREATED="1493768972691" ID="ID_1810145809" MODIFIED="1557498707220" TEXT="die GTK-Loop starten">
<arrowlink COLOR="#8091a3" DESTINATION="ID_346412093" ENDARROW="Default" ENDINCLINATION="-205;193;" ID="Arrow_ID_824195065" STARTARROW="None" STARTINCLINATION="430;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1493768980361" ID="ID_1478388503" MODIFIED="1557498707220" TEXT="das UI herunnterfahren">
<arrowlink COLOR="#667e90" DESTINATION="ID_599315721" ENDARROW="None" ENDINCLINATION="41;328;" ID="Arrow_ID_1963473410" STARTARROW="Default" STARTINCLINATION="943;-58;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1489460861250" HGAP="91" ID="ID_771159819" MODIFIED="1557498707220" TEXT="globaler Kontext" VSHIFT="-26">
<font NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="idea"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549049388" FOLDED="true" ID="ID_530209145" MODIFIED="1557498707220" TEXT="Problem: Aktionen binden">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_530209145" ENDARROW="Default" ENDINCLINATION="-17;-195;" ID="Arrow_ID_626063593" SOURCE="ID_1022779645" STARTARROW="None" STARTINCLINATION="9;270;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1485549075929" ID="ID_1887127861" MODIFIED="1518487921060" TEXT="spezifische Aktionen">
<node CREATED="1485549803366" ID="ID_1969698948" MODIFIED="1518487921060" TEXT="Fenster-Bindung">
<node CREATED="1485549810780" ID="ID_71301392" MODIFIED="1518487921060" TEXT="Pop-Ups brauchen ein Vater-Fenster"/>
<node CREATED="1485549828450" ID="ID_1089795419" MODIFIED="1518487921060">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
eigentlich wollen wir <i>&quot;das aktuelle&quot;</i>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#375a84" DESTINATION="ID_1041890737" ENDARROW="Default" ENDINCLINATION="177;-181;" ID="Arrow_ID_373431525" STARTARROW="None" STARTINCLINATION="245;-68;"/>
</node>
</node>
</node>
<node CREATED="1485902627783" FOLDED="true" HGAP="42" ID="ID_88029282" MODIFIED="1538872026506" VSHIFT="-13">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sung: <i><font color="#27754d">schwebende Bindung</font></i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1485902684454" ID="ID_1435239012" MODIFIED="1518487921060" TEXT="Eventgetriebene Oberfl&#xe4;che"/>
<node CREATED="1485902692556" ID="ID_1729615218" MODIFIED="1518487921060" TEXT="wird einmal verdrahtet"/>
<node CREATED="1485902722360" ID="ID_1003456982" MODIFIED="1518487921060">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
arbeitet dann <i>freischwebend</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1485902750053" ID="ID_34756513" MODIFIED="1518487921060" TEXT="zentrales Bindeglied">
<node CREATED="1485902762284" ID="ID_1542199290" MODIFIED="1518487921060" TEXT="kennt die Applikation"/>
<node CREATED="1485902774201" ID="ID_354078562" MODIFIED="1518487921060" TEXT="kennt den Windowmanager"/>
<node CREATED="1485902783201" ID="ID_609776597" MODIFIED="1518487921060" TEXT="kennt einen Operations-Controller"/>
<node CREATED="1485902809813" ID="ID_648457506" MODIFIED="1518487921060" TEXT="kennt den UI-Bus"/>
<node CREATED="1485902794479" ID="ID_1389010579" MODIFIED="1518487921060" TEXT="und ggffs weitere"/>
</node>
<node CREATED="1485902832698" HGAP="48" ID="ID_1440190469" MODIFIED="1518487921060" TEXT="genau dies ist der InteractionDirector" VSHIFT="14">
<arrowlink COLOR="#798eba" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-218;-590;" ID="Arrow_ID_757867749" STARTARROW="None" STARTINCLINATION="15;121;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485902945474" HGAP="-2" ID="ID_269152626" MODIFIED="1518487921060" TEXT="L&#xf6;sungs-Detail: dynamisch koppeln" VSHIFT="19">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...meint:
</p>
<p>
wir m&#252;ssen zur Aufrufzeit einer Aktion
</p>
<p>
an den aktuellen Kontext ankoppeln k&#246;nnen.
</p>
<p>
</p>
<p>
Das hei&#223;t, der UiManager mu&#223; im Stande sein,
</p>
<p>
diesen &quot;aktuellen Kontext&quot; irgendwo <i>aufzufischen</i>
</p>
</body>
</html></richcontent>
<node CREATED="1485903041262" ID="ID_997327941" MODIFIED="1518487921060" TEXT="Fokus"/>
<node COLOR="#338800" CREATED="1485903046613" ID="ID_1041890737" MODIFIED="1518487921060" TEXT="aktuelles Fenster">
<linktarget COLOR="#375a84" DESTINATION="ID_1041890737" ENDARROW="Default" ENDINCLINATION="177;-181;" ID="Arrow_ID_373431525" SOURCE="ID_1089795419" STARTARROW="None" STARTINCLINATION="245;-68;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1485903652236" ID="ID_1692258488" MODIFIED="1518487921060" TEXT="WindowLocator">
<icon BUILTIN="idea"/>
<node CREATED="1504368706988" ID="ID_362723210" MODIFIED="1518487921060" TEXT="h&#xe4;lt Liste der Fenster"/>
<node CREATED="1485903658300" ID="ID_1048329186" MODIFIED="1518487921060" TEXT="durchsuchen..."/>
</node>
<node CREATED="1485904084947" ID="ID_64462533" MODIFIED="1518487921060" TEXT="Gtk::Window"/>
<node CREATED="1485904064949" ID="ID_313273027" MODIFIED="1518487921060" TEXT="property_has_focus">
<icon BUILTIN="help"/>
</node>
<node CREATED="1485904072812" ID="ID_829657223" MODIFIED="1518487921060" TEXT="property_is_active">
<icon BUILTIN="help"/>
</node>
<node CREATED="1487039156100" ID="ID_1966427611" MODIFIED="1518487921060" TEXT="implementiert durch den WindowLocator">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487039170930" ID="ID_1408455006" MODIFIED="1518487921060" TEXT="Actions wei&#xdf;, da&#xdf; es dort implemieriert ist">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#6979a7" CREATED="1489460657437" HGAP="101" ID="ID_674641985" MODIFIED="1518487921060" TEXT="Einsicht: Problem verschiebt sich" VSHIFT="-20">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1489460707774" ID="ID_1580714352" MODIFIED="1518487921060" TEXT="Actions wird ein reiner Binde-Kontext"/>
<node CREATED="1489460736370" ID="ID_794231700" MODIFIED="1518487921060" TEXT="delegiert wird an einen globalen controller"/>
<node CREATED="1489460756271" ID="ID_392157120" MODIFIED="1518487921060">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>dort </i>wird der Kontext aufgegriffen
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1485917582383" HGAP="163" ID="ID_394170572" MODIFIED="1518487921061" TEXT="Struktur" VSHIFT="-30">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485917587927" ID="ID_891876702" MODIFIED="1518487921061" TEXT="wohin kommen jetzt die Funktionen, die gebunden werden">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485917597429" ID="ID_713875638" MODIFIED="1518487921061" TEXT="auf welche Sub-Komponenten wird referenziert">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486063810921" ID="ID_719539281" MODIFIED="1518487921061" TEXT="Zweck">
<icon BUILTIN="info"/>
<node CREATED="1486063816320" ID="ID_151179000" MODIFIED="1518487921061" TEXT="ist ein Builder"/>
<node CREATED="1486063819992" ID="ID_445639565" MODIFIED="1518487921061" TEXT="ist eine Closure"/>
<node CREATED="1486063831790" ID="ID_328966967" MODIFIED="1518487921061" TEXT="mu&#xdf; blo&#xdf; am Leben bleiben"/>
<node CREATED="1486063841293" ID="ID_1675242982" MODIFIED="1518487921061" TEXT="hat nach Init nichts mehr zu tun"/>
</node>
<node COLOR="#435e98" CREATED="1486063858283" FOLDED="true" HGAP="42" ID="ID_130675776" MODIFIED="1538871975944" TEXT="ist Impl-Detail" VSHIFT="5">
<icon BUILTIN="yes"/>
<node CREATED="1486063886407" ID="ID_1294385692" MODIFIED="1518487921061" TEXT="sollte aus den weitverbreiteten Header-Includes raus"/>
<node CREATED="1486063911188" ID="ID_1391435276" MODIFIED="1518487921061" TEXT="gegenw&#xe4;rtig Member im UiManager">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und der wird in der Tat an vielen Stellen includiert
</p>
<p>
und verwendet, und das ist auch gut so
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#435e98" CREATED="1486063950103" ID="ID_57649689" MODIFIED="1538871966591" TEXT="zwei Modelle">
<icon BUILTIN="info"/>
<node CREATED="1486063954062" FOLDED="true" ID="ID_1174765379" MODIFIED="1538871960993" TEXT="Actions wird insgesamt ein PImpl">
<icon BUILTIN="button_ok"/>
<node CREATED="1486064137014" ID="ID_926465478" MODIFIED="1518487921061" TEXT="ist einfach umzusetzen"/>
<node CREATED="1486064142037" ID="ID_836065841" MODIFIED="1518487921061" TEXT="f&#xfc;hrt zu einer doppelten Indirektion"/>
<node CREATED="1486064289857" ID="ID_806073517" MODIFIED="1518487921061" TEXT="macht Registrierung der Aktionen einfach"/>
<node CREATED="1486064322909" ID="ID_89838152" MODIFIED="1518487921061" TEXT="vermischt die Themen">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1486064333076" ID="ID_622214749" MODIFIED="1518487921061" TEXT="Aufbauen des Men&#xfc;s"/>
<node CREATED="1486064337363" ID="ID_551504727" MODIFIED="1518487921061" TEXT="Closure f&#xfc;r die Einzel-Aktionen"/>
</node>
<node CREATED="1486064454451" ID="ID_744832983" MODIFIED="1518487921061" TEXT="Aber genau diese Vermischun macht das Registrieren einfach"/>
</node>
<node CREATED="1486063968868" FOLDED="true" ID="ID_830826934" MODIFIED="1538871959650" TEXT="Actions hat einen ActionGroup-PImpl">
<icon BUILTIN="button_cancel"/>
<node CREATED="1486063991065" ID="ID_1575759747" MODIFIED="1518487921061" TEXT="man kann von ActionGroup erben">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1486064395051" ID="ID_1668165644" MODIFIED="1518487921061" TEXT="Risiko: Umstellung auf Gio::Action">
<node CREATED="1486064404410" ID="ID_1844104863" MODIFIED="1518487921061" TEXT="zwingend erforderlich"/>
<node CREATED="1486064408841" ID="ID_630946690" MODIFIED="1518487921061" TEXT="in GTK-4 gibt es keine Gtk::Action mehr">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1486063996776" ID="ID_784656430" MODIFIED="1518487921061" TEXT="ist zwar nicht vorgesehen...">
<node CREATED="1486064082093" ID="ID_1957105401" MODIFIED="1518487921061" TEXT="das ist eindeutig"/>
<node CREATED="1486064085605" ID="ID_614915424" MODIFIED="1518487921061" TEXT="es gibt eine statische create-Funktion"/>
<node CREATED="1486064099915" ID="ID_247043577" MODIFIED="1518487921061" TEXT="und die macht einen Gtk::ref_ptr"/>
<node CREATED="1486064111241" ID="ID_1562595756" MODIFIED="1518487921061" TEXT="AUTSCH: ich will einen unique_ptr"/>
</node>
<node CREATED="1486064004143" ID="ID_1825804537" MODIFIED="1518487921061" TEXT="....aber geht">
<icon BUILTIN="help"/>
<node CREATED="1486064188334" ID="ID_1128646481" MODIFIED="1518487921061" TEXT="theoretisch ja"/>
<node CREATED="1486064209092" ID="ID_340165076" MODIFIED="1518487921061" TEXT="aber am Ende will der UiManager einen ref_ptr ActionGroup"/>
<node CREATED="1486064221954" ID="ID_429209345" MODIFIED="1518487921061" TEXT="da sollte man sich besser raushalten">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1486064237832" ID="ID_529050138" MODIFIED="1518487921061" TEXT="w&#xe4;re sch&#xf6;n aber nicht ratsam">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1486064478968" ID="ID_1610028838" MODIFIED="1518487921061" TEXT="Umbau">
<icon BUILTIN="button_ok"/>
<node CREATED="1486064487215" ID="ID_195778340" MODIFIED="1518487921061" TEXT="Actions wird PImpl">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1486064493614" ID="ID_566562539" MODIFIED="1518487921061" TEXT="Actions wird Header-only">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1486064503229" ID="ID_1200627448" MODIFIED="1518487921061" TEXT="alle wildcard-Includes weg">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1487039062273" ID="ID_956599122" MODIFIED="1518487921061" TEXT="Zust&#xe4;ndigkeit">
<icon BUILTIN="yes"/>
<node CREATED="1487039071039" ID="ID_1884426258" MODIFIED="1518487921061" TEXT="Herstellen des Hauptmen&#xfc;s"/>
<node CREATED="1487039079759" ID="ID_471335369" MODIFIED="1518487921061" TEXT="Binden der Aktionen"/>
<node CREATED="1487039084285" ID="ID_555104373" MODIFIED="1518487921061" TEXT="Closure f&#xfc;r die Aktionen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487039098836" ID="ID_199078620" MODIFIED="1518487921061" TEXT="ggfs: Exceptions fangen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1487039113306" ID="ID_1405514231" MODIFIED="1518487921061" TEXT="Einbindung">
<icon BUILTIN="button_ok"/>
<node CREATED="1487039118001" ID="ID_244074852" MODIFIED="1518487921061" TEXT="globaler Kontext"/>
<node CREATED="1487039125984" ID="ID_622974182" MODIFIED="1518487921061" TEXT="wei&#xdf;, welche Aktion wohin zu delegieren ist"/>
</node>
</node>
<node COLOR="#338800" CREATED="1488422770096" FOLDED="true" HGAP="56" ID="ID_53463593" MODIFIED="1538872005021" TEXT="#1085 solve setup of top-level menu actions" VSHIFT="-17">
<icon BUILTIN="button_ok"/>
<node CREATED="1488423688763" ID="ID_1950800234" MODIFIED="1518487921061" TEXT="UI-Komponenten">
<node CREATED="1488423702977" ID="ID_292894978" MODIFIED="1518487921061" TEXT="TimelinePane">
<arrowlink COLOR="#a1543e" DESTINATION="ID_1753722831" ENDARROW="Default" ENDINCLINATION="1150;-267;" ID="Arrow_ID_912757548" STARTARROW="None" STARTINCLINATION="496;-77;"/>
</node>
<node CREATED="1488423705729" ID="ID_610872163" MODIFIED="1518487921061" TEXT="AssetPane"/>
<node CREATED="1488423709704" ID="ID_14713871" MODIFIED="1518487921061" TEXT="ViewerPane"/>
</node>
<node CREATED="1488423740012" ID="ID_874330545" MODIFIED="1518487921061" TEXT="Lifecycle-Aktionen">
<node CREATED="1488423747187" ID="ID_1351717245" MODIFIED="1518487921061" TEXT="UI schlie&#xdf;en">
<node CREATED="1492965765319" ID="ID_581436031" MODIFIED="1518487921061" TEXT="wird schon geforwarded"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492965770197" ID="ID_1619347643" MODIFIED="1518487921061" TEXT="noch zu implementieren">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1488423714584" ID="ID_1439137871" MODIFIED="1518487921061" TEXT="Session-Aktionen">
<icon BUILTIN="button_ok"/>
<node CREATED="1488423760105" ID="ID_1527724040" MODIFIED="1518487921061" TEXT="Speichern">
<node CREATED="1488492373919" ID="ID_1898515568" MODIFIED="1518487921061" TEXT="snapshot-Kommando an Session senden"/>
<node CREATED="1488494870418" ID="ID_1929432332" MODIFIED="1518487921061" TEXT="TODO: InvocationTrail">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Njet
</p>
<p>
InvocationTrail ist tot
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#338800" CREATED="1488566247742" ID="ID_254774965" MODIFIED="1518487921061" TEXT="mu&#xdf; doch die Architktur kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1488423763585" ID="ID_968726788" MODIFIED="1518487921061" TEXT="Schlie&#xdf;en"/>
<node CREATED="1488494907118" ID="ID_1932633471" MODIFIED="1518487921061" TEXT="Speichern-Als">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488494891600" ID="ID_1996245412" MODIFIED="1518487921061" TEXT="Session-Setup-UI schaffen">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1492965880399" ID="ID_1722391032" MODIFIED="1518487921061" TEXT="editSetup">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492965890037" ID="ID_1388211591" MODIFIED="1518487921061" TEXT="Konfigurations-UI schaffen">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1488492153109" ID="ID_1243726860" MODIFIED="1518487921061">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
generisches <i>&#214;ffnen</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488423720319" FOLDED="true" ID="ID_1455353650" MODIFIED="1538871941926" TEXT="Sequence-Aktionen">
<icon BUILTIN="hourglass"/>
<node CREATED="1489461756655" ID="ID_1625364312" MODIFIED="1518487921061" TEXT="neue Sequenz">
<icon BUILTIN="button_ok"/>
<node CREATED="1489461773213" ID="ID_344390825" MODIFIED="1518487921061" TEXT="als Treiber verwenden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um die Entwicklung des Designs zu erzwingen
</p>
<p>
und den Teufelskreis zu durchbrechen!
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1489461838228" ID="ID_283502486" MODIFIED="1518487921061" TEXT="im InteractionDirector">
<icon BUILTIN="info"/>
</node>
<node CREATED="1489461843747" ID="ID_1499714490" MODIFIED="1518487921061" TEXT="die Command-ID beziehen">
<icon BUILTIN="forward"/>
<node CREATED="1489461856042" ID="ID_1097689316" MODIFIED="1518487921061" TEXT="bedingt Command-ID">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489461862937" ID="ID_1649764088" MODIFIED="1518487921061" TEXT="bedingt Command-Definition">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1489544225984" ID="ID_1436775081" MODIFIED="1518487921061" TEXT="Triggern">
<icon BUILTIN="forward"/>
<node CREATED="1489544261547" ID="ID_1624183619" MODIFIED="1518487921062" TEXT="wer">
<icon BUILTIN="help"/>
<node CREATED="1489544403984" ID="ID_1230750297" MODIFIED="1518487921062" TEXT="&quot;ein UI-Element&quot;">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1489544439187" ID="ID_1231587220" MODIFIED="1518487921062" TEXT="Beispiel: Toolbar-Button"/>
<node CREATED="1489544452034" ID="ID_745673239" MODIFIED="1518487921062" TEXT="Beispiel: Kontextmen&#xfc;-Eintrag"/>
<node CREATED="1489544513577" ID="ID_128032926" MODIFIED="1518487921062" TEXT="Beispiel: Aktion per Keybinding"/>
<node CREATED="1489544524128" ID="ID_1668808893" MODIFIED="1518487921062" TEXT="Beispiel: Signal drag-n-drop"/>
</node>
<node CREATED="1489544268018" ID="ID_452323402" MODIFIED="1518487921062" TEXT="was">
<icon BUILTIN="help"/>
<node CREATED="1489544652414" ID="ID_1351449548" MODIFIED="1518487921062" TEXT="lokal bekannt"/>
<node CREATED="1489544640288" ID="ID_1518540017" MODIFIED="1518487921062" TEXT="fest verdrahtet"/>
<node CREATED="1489544659597" ID="ID_1444251202" MODIFIED="1518487921062" TEXT="ggfs. Auswahl aus kleiner Menge"/>
</node>
<node CREATED="1489544717333" ID="ID_1695877485" MODIFIED="1518487921062" TEXT="falls">
<icon BUILTIN="help"/>
<node CREATED="1489544722261" ID="ID_1263012116" MODIFIED="1518487921062" TEXT="ausf&#xfc;hrbar"/>
<node CREATED="1489544725860" ID="ID_1167910092" MODIFIED="1518487921062" TEXT="d.h. aktiviert"/>
<node CREATED="1489544826383" ID="ID_166753518" MODIFIED="1518487921062" TEXT="zwei verschiedene Effekte">
<icon BUILTIN="idea"/>
<node CREATED="1489544836757" ID="ID_1543872004" MODIFIED="1518487921062" TEXT="Ausf&#xfc;hrung abweisen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...stattdessen einen Fehler-Indikator ausl&#246;sen
</p>
<p>
(Beispiel &quot;in-point fehlt&quot;)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1489544910395" ID="ID_82086808" MODIFIED="1518487921062" TEXT="enable Action">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das ist eine Reaktion,
</p>
<p>
die von einem managing Ui-Element ausgef&#252;hrt wird,
</p>
<p>
aber von einem externen State-Change getriggert wird
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1492461164005" ID="ID_301986256" MODIFIED="1518487921062" TEXT="Argumente">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461170141" ID="ID_740147771" MODIFIED="1518487921062" TEXT="der Anker">
<icon BUILTIN="hourglass"/>
<node CREATED="1492965703927" ID="ID_1023878270" MODIFIED="1518487921062" TEXT="auf sp&#xe4;ter vertagt">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1492965711791" ID="ID_965013716" MODIFIED="1518487921062" TEXT="InteractionControl">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1492461179404" ID="ID_1843144262" MODIFIED="1518487921062" TEXT="die neue Sequenz">
<node CREATED="1492461186562" ID="ID_357158955" MODIFIED="1518487921062" TEXT="ID mu&#xdf; gesendet werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
damit UNDO funktionieren kann,
</p>
<p>
m&#252;ssen wir schon beim capture wissen,
</p>
<p>
welches Objekt (ID) hinzugef&#252;gt werden wird.
</p>
<p>
Denn sonst m&#252;&#223;ten wir uns den gegenw&#228;rtigen Inhalt speichern
</p>
<p>
und das w&#228;re unsinnig.
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461260360" ID="ID_118202238" MODIFIED="1518487921062" TEXT="EntryID">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
<node CREATED="1492965734610" ID="ID_17105090" MODIFIED="1518487921062" TEXT="neuer Track">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489461946997" HGAP="-10" ID="ID_1526466868" MODIFIED="1518487921062" TEXT="direkt von den Lambdas aus delegieren" VSHIFT="7">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir k&#246;nnen den gr&#246;&#223;ten Teil dieser Einzeiler-Funktionen loswerden,
</p>
<p>
da es nur darum geht, via globalCtx auf den passenden Controller zuzugreifen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1485898796393" FOLDED="true" ID="ID_1217726538" MODIFIED="1538872003316" TEXT="#1069 how to refer to the current window">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1492965823743" ID="ID_729520839" MODIFIED="1518487921062" TEXT="grunds&#xe4;tzlich gel&#xf6;st">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492965830381" ID="ID_1556963629" MODIFIED="1518487921062" TEXT="globalCtx -&gt; find active window">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#990000" CREATED="1492965845115" ID="ID_1375700494" MODIFIED="1523752843329" TEXT="TODO Panel-Aktionen">
<arrowlink DESTINATION="ID_1176492517" ENDARROW="Default" ENDINCLINATION="-68;-316;" ID="Arrow_ID_1083220093" STARTARROW="None" STARTINCLINATION="550;-23;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1492965914018" ID="ID_1134955241" MODIFIED="1518487921062" TEXT="UNIMPLEMENTED"/>
<node CREATED="1493852058451" ID="ID_1074189286" MODIFIED="1518487921062" TEXT="war schon seit 2009 deaktiviert"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1493852066930" ID="ID_715367457" MODIFIED="1518487921062" TEXT="das ganze Konzept mu&#xdf; &#xfc;berarbeitet werden">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555902731" ID="ID_55451880" MODIFIED="1518487921062" TEXT="#1070 how to bind session commands into UI actions">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1489191725382" ID="ID_1332782754" MODIFIED="1518487921062" TEXT="gr&#xf6;&#xdf;eres Thema">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1489191732869" ID="ID_1031180144" MODIFIED="1518487921062" TEXT="nicht sofort zu l&#xf6;sen"/>
<node CREATED="1489191744764" ID="ID_898481930" MODIFIED="1518487921062" TEXT="aber Grundlagen legen">
<arrowlink COLOR="#606d94" DESTINATION="ID_346158251" ENDARROW="Default" ENDINCLINATION="842;21;" ID="Arrow_ID_726918944" STARTARROW="None" STARTINCLINATION="1012;0;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1492461289101" ID="ID_1507239589" MODIFIED="1518487921062" TEXT="Frage: Objekt-Referenzen">
<arrowlink COLOR="#8e2a4d" DESTINATION="ID_1909730752" ENDARROW="Default" ENDINCLINATION="190;-96;" ID="Arrow_ID_1543429248" STARTARROW="None" STARTINCLINATION="-103;109;"/>
<icon BUILTIN="help"/>
<node CREATED="1492461304231" ID="ID_1680959339" MODIFIED="1518487921062" TEXT="LuidH"/>
<node CREATED="1492461306898" ID="ID_94770054" MODIFIED="1518487921062" TEXT="EntryID"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492463479663" ID="ID_1909730752" MODIFIED="1518487921062" TEXT="#1096 passing object IDs">
<arrowlink COLOR="#8e2a4d" DESTINATION="ID_938886823" ENDARROW="Default" ENDINCLINATION="-367;31;" ID="Arrow_ID_265571961" STARTARROW="None" STARTINCLINATION="-367;31;"/>
<linktarget COLOR="#8e2a4d" DESTINATION="ID_1909730752" ENDARROW="Default" ENDINCLINATION="190;-96;" ID="Arrow_ID_1543429248" SOURCE="ID_1507239589" STARTARROW="None" STARTINCLINATION="-103;109;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549081728" ID="ID_1122969153" MODIFIED="1518487921062" TEXT="globale Aktionen">
<arrowlink COLOR="#824f68" DESTINATION="ID_826011549" ENDARROW="Default" ENDINCLINATION="-906;-1187;" ID="Arrow_ID_1373278707" STARTARROW="Default" STARTINCLINATION="877;262;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1488419973349" ID="ID_1855791702" MODIFIED="1518487921062" TEXT="brauche ein Konzept">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1488419979868" ID="ID_474441211" MODIFIED="1518487921062" TEXT="InteractionDirector">
<arrowlink COLOR="#5e4463" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-57;-739;" ID="Arrow_ID_1847127764" STARTARROW="None" STARTINCLINATION="73;95;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
<node CREATED="1488419993090" ID="ID_1039124749" MODIFIED="1518487921062" TEXT="wird Dreh- und Angelpunkt">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1488420003752" ID="ID_1927319278" MODIFIED="1518487921062" TEXT="l&#xf6;st auch das Model-Root-Problem">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1488420014959" ID="ID_1816556929" MODIFIED="1518487921062" TEXT="war insofern sinnvoller Umweg">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1485909456513" FOLDED="true" HGAP="55" ID="ID_576215675" MODIFIED="1557498707220" TEXT="top-level-Verdrahtung" VSHIFT="1">
<arrowlink COLOR="#8c95b2" DESTINATION="ID_36527267" ENDARROW="Default" ENDINCLINATION="138;-548;" ID="Arrow_ID_1284182756" STARTARROW="None" STARTINCLINATION="883;143;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1485909560027" ID="ID_1949656657" MODIFIED="1518487921062" TEXT="baut den UI-Rahen auf"/>
<node CREATED="1485909491412" ID="ID_1205077540" MODIFIED="1518487921062" TEXT="macht die Applikation betriebsbereit">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1486942467620" HGAP="151" ID="ID_1761000392" MODIFIED="1518487921062" TEXT="Alternativen" VSHIFT="14">
<icon BUILTIN="help"/>
<node CREATED="1486942493208" FOLDED="true" ID="ID_805305597" MODIFIED="1538871904985" TEXT="alles via InteractionDirector">
<icon BUILTIN="button_cancel"/>
<node CREATED="1486944032334" ID="ID_1959218653" MODIFIED="1518487921062" TEXT="er macht ohnehin fast alles">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1486944056595" ID="ID_423413011" MODIFIED="1518487921062" TEXT="Actions wird eine leere H&#xfc;lle">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1486944064506" ID="ID_712470482" MODIFIED="1518487921062" TEXT="baut das Men&#xfc;"/>
<node CREATED="1486944068985" ID="ID_1074291755" MODIFIED="1518487921062" TEXT="stellt die Closures bereit"/>
<node CREATED="1486944075456" ID="ID_1851635277" MODIFIED="1518487921062" TEXT="k&#xf6;nnte Exceptions fangen"/>
<node CREATED="1486944081143" ID="ID_310163833" MODIFIED="1518487921062" TEXT="...ist das wirklich so schlecht?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1487034056153" ID="ID_1455538166" MODIFIED="1518487921062" TEXT="Rein aus dem Bauch heraus....">
<icon BUILTIN="stop-sign"/>
<node CREATED="1487034063408" ID="ID_1251347399" MODIFIED="1518487921062">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das <i>verschiebt</i>&#160;das Problem nur
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1487034078974" ID="ID_796487731" MODIFIED="1518487921062" TEXT="verletzt das single responsibility pattern"/>
</node>
</node>
<node CREATED="1486942523724" FOLDED="true" ID="ID_843953045" MODIFIED="1538871902547" TEXT="globalen Kontext einf&#xfc;hren">
<icon BUILTIN="button_ok"/>
<node CREATED="1486942614400" ID="ID_872912875" MODIFIED="1518487921062" TEXT="Action-Definition &quot;wei&#xdf;&quot; wer das konkret machen kann"/>
<node CREATED="1486943522965" ID="ID_244569580" MODIFIED="1518487921062" TEXT="konkret...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1486943529763" ID="ID_186058004" MODIFIED="1518487921062" TEXT="WindowLocator">
<node CREATED="1486943536354" ID="ID_1414688651" MODIFIED="1518487921062" TEXT="neues Fenster"/>
<node CREATED="1486943539809" ID="ID_443462243" MODIFIED="1518487921062" TEXT="Fenster schlie&#xdf;en"/>
<node CREATED="1486943765530" ID="ID_1741627821" MODIFIED="1518487921062" TEXT="show Panel xyz"/>
<node CREATED="1486943555279" ID="ID_1864984187" MODIFIED="1518487921062" TEXT="m&#xf6;glicherweise: gehe zu"/>
</node>
<node CREATED="1486943607120" ID="ID_372751802" MODIFIED="1518487921062" TEXT="InteractionDirector">
<node CREATED="1486943922541" ID="ID_1681514542" MODIFIED="1518487921062" TEXT="Quit Lumiera"/>
<node CREATED="1486943614039" ID="ID_1857002831" MODIFIED="1518487921062" TEXT="Session schlie&#xdf;en/&#xf6;ffnen/speichern"/>
<node CREATED="1486943634229" ID="ID_423286018" MODIFIED="1518487921062" TEXT="Einstieg in...">
<node CREATED="1486943640004" ID="ID_1474901789" MODIFIED="1518487921062" TEXT="Preferences"/>
<node CREATED="1486943643179" ID="ID_1263689486" MODIFIED="1518487921062" TEXT="Assets"/>
<node CREATED="1486943645554" ID="ID_357680575" MODIFIED="1518487921062" TEXT="Timeline"/>
</node>
<node CREATED="1486943674287" ID="ID_1380296040" MODIFIED="1518487921062" TEXT="kontextabh&#xe4;ngig">
<node CREATED="1486943681046" ID="ID_1415550100" MODIFIED="1518487921062" TEXT="Render"/>
<node CREATED="1486943683198" ID="ID_510577218" MODIFIED="1518487921062" TEXT="add Sequence"/>
<node CREATED="1486943691228" ID="ID_684917844" MODIFIED="1518487921062" TEXT="add Track"/>
<node CREATED="1486943854214" ID="ID_382166589" MODIFIED="1518487921062" TEXT="new Viewer"/>
</node>
</node>
<node CREATED="1486943969999" ID="ID_499822898" MODIFIED="1518487921063" TEXT="Meta-Belange">
<node CREATED="1486943974590" ID="ID_233678784" MODIFIED="1518487921063" TEXT="Hilfe"/>
<node CREATED="1486944977005" ID="ID_1548991554" MODIFIED="1518487921063" TEXT="Wizzards"/>
<node CREATED="1533687508760" ID="ID_1331912107" MODIFIED="1533687523000" TEXT="Fehlerlog (notification display)"/>
<node CREATED="1486943976942" ID="ID_1215823743" MODIFIED="1518487921063" TEXT="Navigation">
<node CREATED="1486944958215" ID="ID_175734210" MODIFIED="1518487921063" TEXT="ist wohl ein eigener Controller"/>
<node CREATED="1486944947297" ID="ID_572583322" MODIFIED="1518487921063" TEXT="h&#xe4;ngt aber mit InteractionDirector zusammen"/>
<node CREATED="1486944966679" ID="ID_185137660" MODIFIED="1518487921063" TEXT="k&#xf6;nnte ein Kind von diesem sein...."/>
</node>
</node>
</node>
</node>
<node CREATED="1486942533939" ID="ID_1309437882" MODIFIED="1518487921063" TEXT="einzelne Closures explizit">
<icon BUILTIN="button_cancel"/>
<node CREATED="1486942574333" ID="ID_189848820" MODIFIED="1518487921063" TEXT="das l&#xe4;uft auf ein Delegate hinaus"/>
<node CREATED="1486942583053" ID="ID_1367249768" MODIFIED="1518487921063" TEXT="...und das w&#xe4;re der InteractionDirector"/>
</node>
</node>
<node CREATED="1487034156380" HGAP="29" ID="ID_1632778987" MODIFIED="1518487921063" TEXT="globaler Kontext" VSHIFT="11">
<icon BUILTIN="yes"/>
<node CREATED="1487034162275" ID="ID_28375182" MODIFIED="1518487921063" TEXT="wenige, eng zusammenarbeitende Objekte"/>
<node CREATED="1487034172393" ID="ID_1167812745" MODIFIED="1518487921063" TEXT="...von denen doch jedes seine Aufgabe hat"/>
<node CREATED="1487034180712" ID="ID_1371598611" MODIFIED="1518487921063" TEXT="und jedes genau wei&#xdf;, was die andern k&#xf6;nnen"/>
</node>
</node>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1504393149140" FOLDED="true" HGAP="38" ID="ID_48107354" MODIFIED="1557498707220" TEXT="Addressierung" VSHIFT="55">
<arrowlink COLOR="#4f5d91" DESTINATION="ID_974158229" ENDARROW="Default" ENDINCLINATION="383;-2505;" ID="Arrow_ID_1832380552" STARTARROW="None" STARTINCLINATION="-597;127;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="pencil"/>
<node CREATED="1504393160466" ID="ID_450547493" MODIFIED="1541547317746" TEXT="globales Addre&#xdf;-Schema">
<node CREATED="1504393168946" ID="ID_390425361" MODIFIED="1518487921063" TEXT="Model-Typen"/>
<node CREATED="1504393177712" ID="ID_1686403667" MODIFIED="1518487921063" TEXT="View-Deskriptor">
<node CREATED="1504393184608" ID="ID_792210197" MODIFIED="1518487921063" TEXT="Strategy"/>
<node CREATED="1504834023671" ID="ID_1906244318" MODIFIED="1518487921063" TEXT="konfiguriert">
<node CREATED="1504834102408" ID="ID_1248837242" MODIFIED="1518487921063" TEXT="Layout/Verhalten"/>
<node CREATED="1504393188615" ID="ID_1397553997" MODIFIED="1518487921063" TEXT="Verhaltensmuster f&#xfc;r Component-Views">
<arrowlink COLOR="#5e819b" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-89;-122;" ID="Arrow_ID_1067086551" STARTARROW="None" STARTINCLINATION="-322;62;"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node CREATED="1504833678189" ID="ID_173722644" MODIFIED="1518487921063" TEXT="Einstiegspunkt">
<arrowlink COLOR="#717686" DESTINATION="ID_65709251" ENDARROW="Default" ENDINCLINATION="-8;-209;" ID="Arrow_ID_1510990213" STARTARROW="None" STARTINCLINATION="92;95;"/>
<node CREATED="1504833683333" ID="ID_583036636" MODIFIED="1544329029063" TEXT="Component View">
<arrowlink COLOR="#92a9df" DESTINATION="ID_1717772756" ENDARROW="Default" ENDINCLINATION="-1346;-3359;" ID="Arrow_ID_1986148222" STARTARROW="None" STARTINCLINATION="385;845;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1504833695107" ID="ID_1686159038" MODIFIED="1518487921063" TEXT="in einem Panel zu finden"/>
</node>
</node>
<node CREATED="1519356802243" HGAP="67" ID="ID_1415516084" MODIFIED="1538871866274" TEXT="Komponenten-Zugriff" VSHIFT="12">
<node CREATED="1504393221051" ID="ID_938886823" MODIFIED="1518487921063" TEXT="wie bekommt man eine Objekt-ID?">
<linktarget COLOR="#8e2a4d" DESTINATION="ID_938886823" ENDARROW="Default" ENDINCLINATION="-367;31;" ID="Arrow_ID_265571961" SOURCE="ID_1909730752" STARTARROW="None" STARTINCLINATION="-367;31;"/>
</node>
<node CREATED="1519356887367" ID="ID_1139603062" MODIFIED="1519356897033" TEXT="wie findet man den Ort einer Komponente?"/>
<node CREATED="1519356901933" ID="ID_596521684" MODIFIED="1519356913407" TEXT="Verh&#xe4;ltnis ID / Ort">
<node CREATED="1519356920083" ID="ID_723456910" MODIFIED="1519356926342" TEXT="sind orthogonale Schemata">
<node CREATED="1519357047993" ID="ID_1706134856" MODIFIED="1541547248389" TEXT="ID = globale Identit&#xe4;t">
<arrowlink COLOR="#6b83a8" DESTINATION="ID_1585676322" ENDARROW="Default" ENDINCLINATION="738;0;" ID="Arrow_ID_174361092" STARTARROW="None" STARTINCLINATION="1067;-74;"/>
</node>
<node CREATED="1519357060599" ID="ID_975802429" MODIFIED="1519357070810" TEXT="Ort = Topologie + Typ">
<node CREATED="1519357081868" ID="ID_1484266304" MODIFIED="1519357090975" TEXT="Ortsnamen sind generisch"/>
<node CREATED="1519357091795" ID="ID_68008128" MODIFIED="1519357096374" TEXT="sie werden lokal verstanden"/>
<node CREATED="1519357097154" ID="ID_377787861" MODIFIED="1519357212192" TEXT="lokal als Typangaben interpretiert">
<arrowlink COLOR="#2b4283" DESTINATION="ID_778018274" ENDARROW="Default" ENDINCLINATION="-1752;0;" ID="Arrow_ID_1022345699" STARTARROW="None" STARTINCLINATION="795;544;"/>
</node>
</node>
</node>
<node CREATED="1519356955358" ID="ID_1568727351" MODIFIED="1519356966058" TEXT="ID wird in den Ort eingepflantzt">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519357006055" ID="ID_1652172363" MODIFIED="1519357017238" TEXT="R&#xfc;ckaufl&#xf6;sung ID -&gt; Ort">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1506175115772" FOLDED="true" HGAP="318" ID="ID_1448696607" MODIFIED="1538871818377" VSHIFT="64">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>UI-Koordinaten </b>(UICoord)
</p>
</body>
</html></richcontent>
<cloud COLOR="#e7d6c4"/>
<linktarget COLOR="#535189" DESTINATION="ID_1448696607" ENDARROW="Default" ENDINCLINATION="-391;179;" ID="Arrow_ID_1194909838" SOURCE="ID_342577636" STARTARROW="None" STARTINCLINATION="691;-200;"/>
<icon BUILTIN="info"/>
<node CREATED="1506175332288" ID="ID_1487048178" MODIFIED="1506175335441" TEXT="immutable"/>
<node CREATED="1506175325136" ID="ID_569191479" MODIFIED="1506175331436" TEXT="kopierbare Werte"/>
<node CREATED="1506175344846" ID="ID_1787806028" MODIFIED="1506175357976" TEXT="Tupel von Literalen"/>
<node CREATED="1506175395879" ID="ID_1249891322" MODIFIED="1506175400362" TEXT="Bedeutungs-Varianten">
<node CREATED="1506175488451" ID="ID_134646571" MODIFIED="1506175559083" TEXT="Anker"/>
<node CREATED="1506175405502" ID="ID_468711419" MODIFIED="1506175417680" TEXT="explizit / wildcard"/>
<node CREATED="1506175444505" ID="ID_971546375" MODIFIED="1506175448772" TEXT="bekannt / unbekannt"/>
<node CREATED="1506175493954" ID="ID_1571215800" MODIFIED="1506175949153" TEXT="gedeckt / m&#xf6;glich / unm&#xf6;glich"/>
</node>
<node CREATED="1506175969603" HGAP="58" ID="ID_1322989755" MODIFIED="1506181196817" TEXT="Auswertung" VSHIFT="43">
<node CREATED="1506175980946" ID="ID_1635470067" MODIFIED="1506175983965" TEXT="stateless">
<node CREATED="1506176104177" ID="ID_379934022" MODIFIED="1506176107452" TEXT="Traversierung"/>
<node CREATED="1506176108473" ID="ID_241520424" MODIFIED="1506176114467" TEXT="Interpretation"/>
<node CREATED="1506176114984" ID="ID_332155493" MODIFIED="1506176117235" TEXT="Abgleich"/>
</node>
<node CREATED="1506175984577" HGAP="25" ID="ID_610939878" MODIFIED="1506957372981" TEXT="im Resolver" VSHIFT="-1">
<arrowlink COLOR="#65759f" DESTINATION="ID_1878859300" ENDARROW="Default" ENDINCLINATION="-439;-594;" ID="Arrow_ID_68163828" STARTARROW="None" STARTINCLINATION="307;351;"/>
<node CREATED="1506176010590" ID="ID_901285927" MODIFIED="1506176067906" TEXT="Kontext-Infos">
<node CREATED="1506176024596" ID="ID_1050302466" MODIFIED="1506176028175" TEXT="Aktuelles Fenster"/>
<node CREATED="1506176028787" ID="ID_1768321192" MODIFIED="1506176037158" TEXT="existierende">
<node CREATED="1506176038098" ID="ID_543075741" MODIFIED="1506176039621" TEXT="Fenster"/>
<node CREATED="1506176040161" ID="ID_685895986" MODIFIED="1506176041845" TEXT="Panels"/>
<node CREATED="1506176043073" ID="ID_670302946" MODIFIED="1506176044853" TEXT="Views"/>
<node CREATED="1506176045465" ID="ID_6996325" MODIFIED="1506176046820" TEXT="Tabs"/>
</node>
</node>
<node CREATED="1506176077269" ID="ID_1123330267" MODIFIED="1506176086486" TEXT="Kontext ist zu kapseln">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1506180744136" HGAP="-8" ID="ID_1053983304" MODIFIED="1506180750564" TEXT="Operationen" VSHIFT="34">
<node CREATED="1506180752094" ID="ID_532619019" MODIFIED="1506181105657" TEXT="Query">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1506180752094" ID="ID_509982542" MODIFIED="1506180752094" TEXT="locally decidable">
<node CREATED="1506180752095" ID="ID_1152353258" MODIFIED="1506180752095" TEXT="explicitness"/>
<node CREATED="1506180752095" ID="ID_482556645" MODIFIED="1506180752095" TEXT="presence"/>
</node>
<node CREATED="1506180752096" ID="ID_320263447" MODIFIED="1506180752096" TEXT="contextual predications">
<node CREATED="1506180752096" ID="ID_837824348" MODIFIED="1506180752096" TEXT="anchorage">
<node CREATED="1506180752097" ID="ID_456798717" MODIFIED="1511572071588" TEXT="explicitly anchored">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...and this anchorage can be covered and backed by the currently existing UI configuration
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1506180752098" ID="ID_1971122985" MODIFIED="1511572071594" TEXT="can be a anchored">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...by interpolation of some wildcards
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1506180752099" ID="ID_1588059901" MODIFIED="1511572071600" TEXT="incomplete">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...need to be extended to allow anchoring
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1506180752099" ID="ID_1331064451" MODIFIED="1506180752099" TEXT="impossible to anchor"/>
</node>
<node CREATED="1506180752099" ID="ID_1327313624" MODIFIED="1506180752099" TEXT="coverage">
<node CREATED="1506180752099" ID="ID_1861096545" MODIFIED="1533608413554" TEXT="Prereq: need to anchored">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1506180752099" ID="ID_1260046910" MODIFIED="1506180752099" TEXT="explicitly"/>
<node CREATED="1506180752100" ID="ID_1853688132" MODIFIED="1506180752100" TEXT="by interpolation"/>
<node CREATED="1506180752100" ID="ID_1093737813" MODIFIED="1506180752100" TEXT="by extension of incomplete"/>
</node>
<node CREATED="1506180752100" ID="ID_1925372021" MODIFIED="1506180752100" TEXT="completely covered"/>
<node CREATED="1506180752100" ID="ID_1969020445" MODIFIED="1533608413555" TEXT="partially covered">
<node CREATED="1506180752100" ID="ID_1998116592" MODIFIED="1506180752100" TEXT="test only"/>
<node CREATED="1506180752101" ID="ID_1458219980" MODIFIED="1506180752101" TEXT="yield uncovered extension part"/>
</node>
<node CREATED="1506180752101" ID="ID_398264250" MODIFIED="1506180752101" TEXT="possible to cover completely"/>
<node CREATED="1506180752101" ID="ID_622219519" MODIFIED="1506180752101" TEXT="impossible to cover"/>
</node>
</node>
</node>
<node CREATED="1506180752101" ID="ID_346716510" MODIFIED="1506181115210" TEXT="Mutate">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1506180752101" ID="ID_1235660281" MODIFIED="1506180752101" TEXT="anchoring">
<node CREATED="1506180752101" ID="ID_888532646" MODIFIED="1506180752101" TEXT="by interpolating the given spec"/>
<node CREATED="1506180752102" ID="ID_1762786822" MODIFIED="1506180752102" TEXT="by interpolation and extension of the given spec"/>
</node>
<node CREATED="1506180752102" ID="ID_478035492" MODIFIED="1511572071636" TEXT="covering">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
we may construct the covered part of a given spec, including automatic anchoring.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1506180752102" ID="ID_1444275949" MODIFIED="1506180752102" TEXT="navigating">
<node CREATED="1506180752102" ID="ID_1839478635" MODIFIED="1506181147267" TEXT="Prereq">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1506180752103" ID="ID_183872472" MODIFIED="1506180752103" TEXT="needs to be anchored"/>
<node CREATED="1506180752103" ID="ID_238142563" MODIFIED="1506180752103" TEXT="needs to be completely covered"/>
</node>
<node CREATED="1506180752103" ID="ID_1985524064" MODIFIED="1511572071652" TEXT="starting point">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
navigate to the real UI component
</p>
<p>
designated by the given coordinate spec
</p>
</body>
</html></richcontent>
<node CREATED="1506180752103" ID="ID_1926205805" MODIFIED="1506180752103" TEXT="ascend"/>
<node CREATED="1506180752103" ID="ID_1087218713" MODIFIED="1533608413555" TEXT="descend to an existing child">
<node CREATED="1506180752103" ID="ID_908880124" MODIFIED="1506180752103" TEXT="by matching name"/>
<node CREATED="1506180752104" ID="ID_1484420566" MODIFIED="1506180752104" TEXT="by index number"/>
</node>
<node CREATED="1506180752104" ID="ID_534962278" MODIFIED="1506180752104" TEXT="extend the path by ...creates uncovered extension sequence"/>
<node CREATED="1506180752104" ID="ID_552405160" MODIFIED="1511572071670" TEXT="create suitable children">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...halten wir besser raus aus diesem Design.
</p>
<p>
Denn es w&#252;rde st&#228;rkere Annahmen &#252;ber die &quot;Zielelemente&quot; erforderlich machen,
</p>
<p>
und diese dann doch wieder in ein Korsett zw&#228;ngen. Im Moment (10/17) habe ich
</p>
<p>
stark den Verdacht, da&#223; wir das nur in wenigen Spezialf&#228;llen brauchen werden,
</p>
<p>
und dann kann man es auch extern belassen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504393295097" FOLDED="true" ID="ID_65709251" MODIFIED="1538942527510" TEXT="wie erreicht man einen ComponentView?">
<arrowlink COLOR="#524f7b" DESTINATION="ID_385011645" ENDARROW="Default" ENDINCLINATION="353;-22;" ID="Arrow_ID_186523581" STARTARROW="None" STARTINCLINATION="1270;350;"/>
<linktarget COLOR="#717686" DESTINATION="ID_65709251" ENDARROW="Default" ENDINCLINATION="-8;-209;" ID="Arrow_ID_1510990213" SOURCE="ID_173722644" STARTARROW="None" STARTINCLINATION="92;95;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1522939988823" ID="ID_727558614" MODIFIED="1522939999257" TEXT="Antwort...">
<icon BUILTIN="info"/>
<node CREATED="1522940008276" ID="ID_1983743908" MODIFIED="1522940013511" TEXT="&#xfc;ber den ViewLocator"/>
<node CREATED="1522940014267" ID="ID_707843808" MODIFIED="1522940023254" TEXT="der bietet eine Zugriffs-Funktion pro Type"/>
<node CREATED="1522940023865" ID="ID_1335645863" MODIFIED="1522940040003" TEXT="und was diese macht, ist per ViewSpec-DSL definiert"/>
</node>
<node CREATED="1504457221429" ID="ID_7304477" MODIFIED="1518487921063" TEXT="Problem: Kopplung">
<node CREATED="1504457233178" ID="ID_999730208" MODIFIED="1518487921063" TEXT="ViewLocator an PanelLocator"/>
<node CREATED="1504457251520" ID="ID_799090381" MODIFIED="1518487921063" TEXT="leaks out into the Strategy"/>
</node>
<node CREATED="1504458201898" ID="ID_486407658" MODIFIED="1518487921063" TEXT="L&#xf6;sungen">
<node CREATED="1504458207889" ID="ID_287209177" MODIFIED="1522939882022" TEXT="lokal definierte Zugriffsfunktionen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522939868519" ID="ID_574994725" MODIFIED="1522939885468" TEXT="in eine DSL eingebettet">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1504458229743" ID="ID_1174387567" MODIFIED="1522939863979" TEXT="ENUM und lokaler Switch">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1504458255403" HGAP="41" ID="ID_246632028" MODIFIED="1518487921063" TEXT="F&#xe4;lle" VSHIFT="9">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was f&#252;r verschiedene Arten von Zugriff
</p>
<p>
sind denkbar und m&#252;ssen in der Strategy konfigurierbar sein?
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1504458488876" ID="ID_800753364" MODIFIED="1518487921063" TEXT="Ort">
<node CREATED="1504458802042" ID="ID_300193794" MODIFIED="1518487921063" TEXT="expliziter Ort (global)"/>
<node CREATED="1504458809745" ID="ID_142530354" MODIFIED="1518487921063" TEXT="bestimtes Panel (pro Fenster)"/>
<node CREATED="1504458863986" ID="ID_1423034932" MODIFIED="1518487921063" TEXT="aktuelle Gruppe"/>
</node>
<node CREATED="1504458495043" ID="ID_1488124165" MODIFIED="1518487921063" TEXT="Zahl">
<node CREATED="1504458543877" ID="ID_1146489911" MODIFIED="1518487921063" TEXT="nur einer">
<node CREATED="1504458550796" ID="ID_193440091" MODIFIED="1518487921063" TEXT="global (alle Fenster)"/>
<node CREATED="1504458558307" ID="ID_1626706609" MODIFIED="1518487921063" TEXT="pro Fenster"/>
</node>
<node CREATED="1504458603213" ID="ID_1266508735" MODIFIED="1518487921063" TEXT="viele">
<node CREATED="1504458606052" ID="ID_1545836853" MODIFIED="1518487921063" TEXT="begrenzte Zahl">
<node CREATED="1504458697520" ID="ID_1784843227" MODIFIED="1518487921063" TEXT="immer pro Gruppe"/>
<node CREATED="1504479134100" ID="ID_631162736" MODIFIED="1518487921063" TEXT="Limit an die Gruppe gebunden">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1504458702640" ID="ID_943045771" MODIFIED="1518487921063" TEXT="unlimitiert"/>
</node>
</node>
<node CREATED="1504459120824" ID="ID_342577636" MODIFIED="1518487921063" TEXT="UI-Koordinaten">
<arrowlink COLOR="#535189" DESTINATION="ID_1448696607" ENDARROW="Default" ENDINCLINATION="-391;179;" ID="Arrow_ID_1194909838" STARTARROW="None" STARTINCLINATION="691;-200;"/>
<node CREATED="1504479456449" ID="ID_959239388" MODIFIED="1518487921063">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
m&#246;gliche
</p>
<p>
Komponenten
</p>
</body>
</html></richcontent>
<node CREATED="1504462874221" ID="ID_437025243" MODIFIED="1518487921063" TEXT="[optional] top-level Fenster"/>
<node CREATED="1504462888107" ID="ID_121049221" MODIFIED="1518487921063" TEXT="[optional] Perspektive"/>
<node CREATED="1504462891394" ID="ID_1138854843" MODIFIED="1518487921063" TEXT="Panel"/>
<node CREATED="1504463020913" ID="ID_808284638" MODIFIED="1518487921063" TEXT="[optional] Gruppe"/>
<node CREATED="1504463028384" ID="ID_1928250888" MODIFIED="1518487921063" TEXT="View-ID"/>
</node>
<node CREATED="1504479185405" HGAP="50" ID="ID_50865654" MODIFIED="1538589849694" TEXT="abgeleitet aus Fokus-Koordinaten" VSHIFT="15">
<arrowlink COLOR="#a9a5cd" DESTINATION="ID_150523428" ENDARROW="Default" ENDINCLINATION="1440;-3055;" ID="Arrow_ID_1485937133" STARTARROW="None" STARTINCLINATION="1109;-37;"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506175078553" FOLDED="true" HGAP="97" ID="ID_1154523344" MODIFIED="1538871806881" TEXT="Implementierung" VSHIFT="29">
<icon BUILTIN="pencil"/>
<node CREATED="1506262853956" FOLDED="true" HGAP="-86" ID="ID_652224508" MODIFIED="1538871766064" TEXT="Design-Fragen" VSHIFT="-3">
<node CREATED="1506262880944" ID="ID_1951800292" MODIFIED="1518487921063" TEXT="Mutability">
<node CREATED="1506262901774" ID="ID_732818888" MODIFIED="1518487921063" TEXT="immutable == gut?">
<icon BUILTIN="help"/>
<node CREATED="1506262939753" ID="ID_1096602096" MODIFIED="1518487921063" TEXT="sind 8 Zeiger &quot;schwergewichtig&quot;?"/>
<node CREATED="1506262985930" ID="ID_1947259139" MODIFIED="1518487921063" TEXT="was konkret will man verhindern?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1506263520707" ID="ID_1446434847" MODIFIED="1518487921063" TEXT="wozu &#xc4;ndern?">
<node CREATED="1506263529922" ID="ID_1129266280" MODIFIED="1518487921063" TEXT="Definition zusammenstellen"/>
<node CREATED="1506263537721" ID="ID_1617312199" MODIFIED="1518487921063" TEXT="Pfad-Navigation">
<arrowlink COLOR="#726f7d" DESTINATION="ID_1755700140" ENDARROW="Default" ENDINCLINATION="15;-43;" ID="Arrow_ID_1791940371" STARTARROW="None" STARTINCLINATION="-110;6;"/>
</node>
</node>
</node>
<node CREATED="1506263379070" HGAP="34" ID="ID_1755700140" MODIFIED="1518487921063" VSHIFT="28">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wie funktioniert
</p>
<p>
Pfad-Navigation?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#726f7d" DESTINATION="ID_1755700140" ENDARROW="Default" ENDINCLINATION="15;-43;" ID="Arrow_ID_1791940371" SOURCE="ID_1617312199" STARTARROW="None" STARTINCLINATION="-110;6;"/>
<icon BUILTIN="help"/>
<node CREATED="1506263421552" ID="ID_1410083594" MODIFIED="1518487921063" TEXT="Idee: Wrapper">
<node CREATED="1506263427287" ID="ID_190906360" MODIFIED="1518487921063" TEXT="&#xbb;path navigator&#xab;"/>
<node CREATED="1506263442430" ID="ID_126065663" MODIFIED="1518487921063" TEXT="friend oder Subklasse"/>
</node>
<node CREATED="1506263465075" ID="ID_1873282209" MODIFIED="1518487921063" TEXT="Problem: Kontext">
<node CREATED="1506263472658" ID="ID_557885064" MODIFIED="1518487921063" TEXT="Navigation ist nicht beliebig"/>
<node CREATED="1506263486160" ID="ID_643453258" MODIFIED="1518487921063" TEXT="mu&#xdf; f&#xfc;r jeden Schritt Kontext abfragen"/>
<node CREATED="1507923810917" ID="ID_1300680611" MODIFIED="1518487921063" TEXT="Delegations-API">
<node CREATED="1507923825938" ID="ID_248121468" MODIFIED="1518487921063" TEXT="Kontext-Anfragen"/>
<node CREATED="1507923832289" ID="ID_1141152218" MODIFIED="1518487921063" TEXT="vom konkreten UI implementiert"/>
</node>
</node>
</node>
<node CREATED="1507939232775" ID="ID_314635923" MODIFIED="1518487921063" TEXT="Problem: Binden auf den Kontext">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1507939270618" ID="ID_1505797299" MODIFIED="1518487921063" TEXT="abstrakte Struktur -&gt; konkrete Widgets"/>
<node CREATED="1507939279761" ID="ID_250590373" MODIFIED="1518487921063" TEXT="keine nat&#xfc;rliche Introspektion gegeben"/>
<node CREATED="1507939312860" HGAP="78" ID="ID_444535530" MODIFIED="1525124214749" TEXT="Analyse" VSHIFT="7">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
habe diese Analyse 2017/2018 ein St&#252;ck weit vorangetrieben.
</p>
<p>
Ergebnis war die Schaffung von UI-Koordinaten und die ViewSpec-DSL
</p>
<p>
</p>
<p>
Damit ist das Thema aber bei Weitem noch nicht ausgesch&#246;pft,
</p>
<p>
jedoch gen&#252;gend aufgeschlossen, um die konkrete Implementierung fortzusetzen
</p>
</body>
</html></richcontent>
<icon BUILTIN="hourglass"/>
<node CREATED="1507939326250" ID="ID_1890759249" MODIFIED="1518487921063" TEXT="Aufgaben">
<node CREATED="1507939400248" ID="ID_1464418318" MODIFIED="1518487921063" TEXT="einem Pfad folgen">
<arrowlink COLOR="#7d375a" DESTINATION="ID_721718509" ENDARROW="Default" ENDINCLINATION="166;0;" ID="Arrow_ID_1170204247" STARTARROW="None" STARTINCLINATION="96;-13;"/>
<arrowlink COLOR="#7d375a" DESTINATION="ID_235303811" ENDARROW="Default" ENDINCLINATION="155;0;" ID="Arrow_ID_1900802893" STARTARROW="None" STARTINCLINATION="155;0;"/>
</node>
<node CREATED="1507939407943" ID="ID_721718509" MODIFIED="1518487921063" TEXT="eine Position konstituieren">
<linktarget COLOR="#7d375a" DESTINATION="ID_721718509" ENDARROW="Default" ENDINCLINATION="166;0;" ID="Arrow_ID_1170204247" SOURCE="ID_1464418318" STARTARROW="None" STARTINCLINATION="96;-13;"/>
</node>
<node CREATED="1507939427445" ID="ID_235303811" MODIFIED="1518487921064" TEXT="Kinder finden">
<linktarget COLOR="#7d375a" DESTINATION="ID_235303811" ENDARROW="Default" ENDINCLINATION="155;0;" ID="Arrow_ID_1900802893" SOURCE="ID_1464418318" STARTARROW="None" STARTINCLINATION="155;0;"/>
</node>
<node CREATED="1507939433916" ID="ID_1018540556" MODIFIED="1533608413556" TEXT="Kinder erzeugen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1508109233808" ID="ID_816587529" MODIFIED="1518487921064" TEXT="erfordert gemeinsames Interface"/>
<node CREATED="1508109252574" ID="ID_1185099286" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
betrachte ich als <i>ungesund</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node CREATED="1507939846405" ID="ID_789410975" MODIFIED="1518487921064" TEXT="konkrete Probleme">
<node CREATED="1507939859100" ID="ID_860523933" MODIFIED="1533608413557" TEXT="wer bin &quot;ich&quot;?">
<icon BUILTIN="help"/>
<node CREATED="1507939956606" FOLDED="true" ID="ID_406843936" MODIFIED="1533608416125" TEXT="was ist gegeben?">
<icon BUILTIN="help"/>
<node CREATED="1508017024459" ID="ID_604601896" MODIFIED="1518487921064" TEXT="stets ein kompletter Zugangs-Pfad">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1507939970349" FOLDED="true" ID="ID_714349147" MODIFIED="1533608416126" TEXT="in welcher Form ist es gegeben?">
<icon BUILTIN="help"/>
<node CREATED="1508016915761" ID="ID_1202508530" MODIFIED="1518487921064" TEXT="konkretes Objekt"/>
<node CREATED="1508016919857" ID="ID_437710115" MODIFIED="1518487921064" TEXT="UI-Koordinaten per Lookup"/>
</node>
</node>
<node CREATED="1507939869906" ID="ID_223198097" MODIFIED="1533608413572" STYLE="fork" TEXT="wo bin &quot;ich&quot;?">
<icon BUILTIN="help"/>
<node CREATED="1507940000057" ID="ID_1526112208" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
eine <i>reverse resolution</i>
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1508016549578" ID="ID_526260275" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>zentrales</b>&#160;Problem
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1508016569551" FOLDED="true" ID="ID_250033067" MODIFIED="1533608416128" TEXT="zwei L&#xf6;sungsans&#xe4;tze">
<node CREATED="1508016575359" FOLDED="true" ID="ID_1494737189" MODIFIED="1533608415764" TEXT="Ort ist bekannt">
<node CREATED="1508016623480" ID="ID_66450805" MODIFIED="1518487921064" TEXT="Element speichert seine UICoord"/>
<node CREATED="1508016658684" ID="ID_116864327" MODIFIED="1518487921064" TEXT="globaler Index beim Erstellen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...der beim Erstellen des Elements
</p>
<p>
mit den zu diesem Zeitpunkt bekannten UI-Korrdinaten best&#252;ckt wird
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1508016602867" FOLDED="true" ID="ID_1861393889" MODIFIED="1533608415765" TEXT="Ort kann entdeckt werden">
<node CREATED="1508016710621" ID="ID_194767769" MODIFIED="1518487921064" TEXT="Element kennt seinen Vater"/>
<node CREATED="1508016741377" ID="ID_1796475231" MODIFIED="1518487921064" TEXT="(GObject) Introspektion"/>
</node>
</node>
</node>
<node CREATED="1507939914076" ID="ID_109277608" MODIFIED="1533608413577" TEXT="was gilt als &quot;Kind&quot;?">
<icon BUILTIN="help"/>
<node CREATED="1507940046234" FOLDED="true" ID="ID_577613088" MODIFIED="1533608416130">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auf welche Eigenschaften
</p>
<p>
st&#252;tzen wir uns?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1508017106368" FOLDED="true" ID="ID_896661508" MODIFIED="1533608415767" TEXT="UI-Element">
<icon BUILTIN="button_cancel"/>
<node CREATED="1508017111959" ID="ID_484448099" MODIFIED="1518487921064" TEXT="nein"/>
<node CREATED="1508017121582" ID="ID_1052512660" MODIFIED="1518487921064" TEXT="denn: Fenster, Panels,..."/>
</node>
<node CREATED="1508017134709" FOLDED="true" ID="ID_881948528" MODIFIED="1533608415769" TEXT="Navigierbarkeit">
<node CREATED="1508017225544" ID="ID_1003735159" MODIFIED="1518487921064" TEXT="abstrakt">
<icon BUILTIN="help"/>
</node>
<node CREATED="1508017228080" ID="ID_1185322365" MODIFIED="1518487921064" TEXT="per Interface">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1508017200476" FOLDED="true" ID="ID_1519289713" MODIFIED="1533608415770" TEXT="gar keine">
<node CREATED="1508017203419" ID="ID_1168589916" MODIFIED="1518487921064" TEXT="generische Programmierung!">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1508017409096" FOLDED="true" ID="ID_1088456751" MODIFIED="1533608416131" TEXT="was ist hier ein &quot;Element&quot;?">
<icon BUILTIN="help"/>
<node CREATED="1508017614565" ID="ID_825986555" MODIFIED="1518487921064" TEXT="bleibt abstrakt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1508017621148" ID="ID_945496558" MODIFIED="1518487921064" TEXT="man kann etwas damit machen"/>
</node>
</node>
<node CREATED="1507939927035" ID="ID_461225915" MODIFIED="1533608413581">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wer bestimmt,
</p>
<p>
was &quot;Kind&quot; ist?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1507940112890" ID="ID_1195951242" MODIFIED="1518487921064" TEXT="der Bedarf??"/>
<node CREATED="1507940120425" ID="ID_338582582" MODIFIED="1518487921064" TEXT="der Erzeuger??"/>
</node>
</node>
<node CREATED="1508016417180" ID="ID_1611707918" MODIFIED="1518487921064" TEXT="use cases">
<node CREATED="1508016430306" ID="ID_192114274" MODIFIED="1533608413582" TEXT="ViewSpec">
<node CREATED="1508018634766" ID="ID_749934346" MODIFIED="1518487921064" TEXT="View allozieren"/>
<node CREATED="1508018640309" ID="ID_1078510800" MODIFIED="1518487921064" TEXT="View-Instanz per Gattung"/>
</node>
<node CREATED="1508016469685" ID="ID_115506070" MODIFIED="1533608413582" TEXT="change WorkSite">
<node CREATED="1508018713267" ID="ID_778872885" MODIFIED="1518487921064" TEXT="WorkSite verlagern / mitf&#xfc;hren"/>
<node CREATED="1508018720562" ID="ID_187314256" MODIFIED="1518487921064" TEXT="zu anderer WorkSite gehen"/>
</node>
</node>
</node>
<node CREATED="1508020233586" HGAP="41" ID="ID_1791370781" MODIFIED="1518487921064" TEXT="Fazit" VSHIFT="16">
<node CREATED="1508020253223" ID="ID_1259200744" MODIFIED="1518487921064" TEXT="Problem zerlegen">
<node CREATED="1508020258670" ID="ID_95147852" MODIFIED="1518487921064" TEXT="reverse resolution"/>
<node CREATED="1508020270709" ID="ID_1200125105" MODIFIED="1533608413583" TEXT="Kinder finden">
<node CREATED="1508020280683" ID="ID_646056653" MODIFIED="1518487921064" TEXT="fest verdrahtet f&#xfc;r top-level"/>
<node CREATED="1508020286443" ID="ID_515525549" MODIFIED="1518487921064" TEXT="Interface f&#xfc;r lokal"/>
</node>
</node>
<node CREATED="1508020411538" ID="ID_544888156" MODIFIED="1518487921064" TEXT="Navigation">
<node CREATED="1508020417633" ID="ID_1963411977" MODIFIED="1518487921064" TEXT="arbeitet nur auf UI-Koordinaten"/>
<node CREATED="1508020433719" ID="ID_1645971492" MODIFIED="1518487921064" TEXT="die dahinterliegenden Strukturen bleiben opaque"/>
<node CREATED="1508020450445" ID="ID_1822545447" MODIFIED="1533608413584" TEXT="mit dem Ergebnis">
<node CREATED="1508020465443" ID="ID_1921466133" MODIFIED="1518487921064" TEXT="kann man dann einen View erzeugen"/>
<node CREATED="1508020489583" ID="ID_1140824323" MODIFIED="1518487921064" TEXT="oder ein Element (bekannten Typs) bekommen"/>
<node CREATED="1508020551095" ID="ID_798942495" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
oder den <b>Spot</b>&#160;verschieben
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1508020731399" HGAP="9" ID="ID_1043748115" MODIFIED="1518487921064" VSHIFT="49">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
verbleibende
</p>
<p>
Probleme
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1508020782977" ID="ID_825574354" MODIFIED="1518487921064" TEXT="konkretes Element -&gt; WorkSite"/>
<node CREATED="1508020790888" ID="ID_774784602" MODIFIED="1518487921064" TEXT="&#xbb;reveal yourself&#xab;"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506181068556" FOLDED="true" ID="ID_749871444" MODIFIED="1533685036994" TEXT="UICoord">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506181721910" ID="ID_1680105436" MODIFIED="1515555740881" TEXT="Folge von Symbolen">
<icon BUILTIN="button_ok"/>
<node CREATED="1506263953722" ID="ID_1293486815" MODIFIED="1506831482410" TEXT="Basis-Abstraktion">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1506263960121" ID="ID_381874562" MODIFIED="1506831498373" TEXT="PathArray">
<icon BUILTIN="button_ok"/>
<node CREATED="1506301404246" ID="ID_458341734" MODIFIED="1506301409177" TEXT="Impl-Layout">
<node CREATED="1506301410525" ID="ID_176098837" MODIFIED="1506301414840" TEXT="Rekursiv"/>
<node CREATED="1506301415548" ID="ID_212757263" MODIFIED="1506301419912" TEXT="chunk-wise"/>
</node>
<node CREATED="1506301421612" ID="ID_572376877" MODIFIED="1506301426568" TEXT="Meta-Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1506301428698" ID="ID_1290675306" MODIFIED="1533608413585" TEXT="Parameter-Pack zerlegen">
<icon BUILTIN="button_ok"/>
<node CREATED="1506301435826" ID="ID_1852582857" MODIFIED="1506301447508" TEXT="ersten Teil in ein std::array"/>
<node CREATED="1506301448288" ID="ID_1083459556" MODIFIED="1506301457058" TEXT="zweiten Teil rekursiv..."/>
</node>
<node CREATED="1506301468830" ID="ID_291609200" MODIFIED="1533608413586" TEXT="L&#xf6;sungen">
<icon BUILTIN="button_ok"/>
<node CREATED="1506301476836" FOLDED="true" ID="ID_1339982909" MODIFIED="1533608416135" TEXT="Stackoverflow">
<icon BUILTIN="idea"/>
<node CREATED="1506301629128" ID="ID_1265747852" LINK="https://stackoverflow.com/questions/14261183/how-to-make-generic-computations-over-heterogeneous-argument-packs-of-a-variadic" MODIFIED="1506301640408" TEXT="Param-Pack-Library"/>
<node CREATED="1506301658388" ID="ID_284261237" LINK="https://stackoverflow.com/users/1932150/andy-prowl" MODIFIED="1506301669997" TEXT="von Andy Prowl"/>
<node CREATED="1506302060966" ID="ID_37516099" LINK="https://stackoverflow.com/questions/16821654/splitting-argpack-in-half/16980937#16980937" MODIFIED="1506302137771" TEXT="einfache L&#xf6;sung: split Pack in half"/>
<node CREATED="1506302079276" ID="ID_539701222" LINK="https://stackoverflow.com/users/2361316/joe" MODIFIED="1506302087043" TEXT="von User Joe"/>
<node CREATED="1506303631812" ID="ID_1461128808" LINK="https://stackoverflow.com/questions/5484930/split-variadic-template-arguments/20814644#20814644" MODIFIED="1506303806992" TEXT="direkt initializer_list verwenden"/>
<node CREATED="1506303644395" ID="ID_1907242246" LINK="https://stackoverflow.com/users/2684539/jarod42" MODIFIED="1506303675990" TEXT="von user Jarod42 12/2013"/>
</node>
<node CREATED="1506301674594" FOLDED="true" ID="ID_573792630" MODIFIED="1533608416137" TEXT="Boost.fusion verwenden">
<icon BUILTIN="button_cancel"/>
<node CREATED="1506301681345" ID="ID_1364627462" MODIFIED="1506301687084" TEXT="Param-Pack in Tupel"/>
<node CREATED="1506301687720" ID="ID_1178221359" MODIFIED="1506301696419" TEXT="Tupel mit Boost.fustion manipulieren"/>
<node CREATED="1506301696911" FOLDED="true" ID="ID_1626810109" MODIFIED="1533608415773" TEXT="Compiler optimiert Tupel weg">
<node CREATED="1506301725107" ID="ID_1409951481" MODIFIED="1506301731668" TEXT="Tupel von Referenzen"/>
<node CREATED="1506301713285" ID="ID_703461640" MODIFIED="1506301719136" TEXT="GCC und Clang"/>
<node CREATED="1506301719660" ID="ID_1581101665" MODIFIED="1506301722999" TEXT="in Release-Builds"/>
</node>
</node>
<node CREATED="1506301773341" FOLDED="true" ID="ID_515001314" MODIFIED="1533608416138" TEXT="Entscheidung">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1506301780644" FOLDED="true" ID="ID_143930610" MODIFIED="1533608415776" TEXT="Boost.fustion abgelehnt">
<icon BUILTIN="yes"/>
<node CREATED="1506301789546" ID="ID_322419894" MODIFIED="1506301792558" TEXT="verwendet MPL"/>
<node CREATED="1506301793130" ID="ID_1764621800" MODIFIED="1506301797158" TEXT="verwendet Boost.tuple"/>
<node CREATED="1506301797721" ID="ID_1580459971" MODIFIED="1506301801941" TEXT="generell undurchsichtig"/>
<node CREATED="1506301802865" ID="ID_1127036077" MODIFIED="1506301816915" TEXT="erfordert hohes Abstraktionsniveau"/>
</node>
<node COLOR="#338800" CREATED="1506301834493" FOLDED="true" ID="ID_52512330" MODIFIED="1533608415779" TEXT="selber schreiben anhand Beispiel">
<icon BUILTIN="button_ok"/>
<node CREATED="1506723689710" ID="ID_454128552" MODIFIED="1506723762301" TEXT="Mini-Framework">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1506723694704" ID="ID_649123940" MODIFIED="1506723759877" TEXT="meta::pickArg">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1506723699774" ID="ID_748812841" MODIFIED="1506723757331" TEXT="meta::pickInit">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1506723746120" ID="ID_154958112" MODIFIED="1506723790105" TEXT="unit-test dazu">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
VariadicArgumentPicker_test
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506831455771" ID="ID_1302634711" MODIFIED="1506831476337" TEXT="Normalisierung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506831461738" ID="ID_1629539998" MODIFIED="1506831477640" TEXT="Unit-Test der Grenzf&#xe4;lle">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506887647152" ID="ID_1069521621" MODIFIED="1506887654873" TEXT="String representation">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506906671372" ID="ID_458222870" MODIFIED="1506919618620" TEXT="Builder">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506906657270" ID="ID_1234040290" MODIFIED="1506906687339" TEXT="builder functions">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506906664501" ID="ID_1257993809" MODIFIED="1506919612697" TEXT="mutator functions">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1506181727069" ID="ID_467120404" MODIFIED="1506984539619" TEXT="lokale Pr&#xe4;dikate">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506181744939" ID="ID_1731446951" MODIFIED="1506984286100" TEXT="present">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506181747466" ID="ID_1522805946" MODIFIED="1506984288444" TEXT="wildcard">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506181783173" ID="ID_306479120" MODIFIED="1506984294555" TEXT="explicit">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506984533458" ID="ID_373226509" MODIFIED="1506984536986" TEXT="complete">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506181770783" ID="ID_295392903" MODIFIED="1506984530019" TEXT="incomplete">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506181073556" FOLDED="true" ID="ID_1878859300" MODIFIED="1538871755562" TEXT="Resolver">
<linktarget COLOR="#65759f" DESTINATION="ID_1878859300" ENDARROW="Default" ENDINCLINATION="-439;-594;" ID="Arrow_ID_68163828" SOURCE="ID_610939878" STARTARROW="None" STARTINCLINATION="307;351;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506181794428" ID="ID_333406817" MODIFIED="1518487921064" TEXT="Setup">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181800067" ID="ID_196802981" MODIFIED="1518487921065" TEXT="Wiring">
<icon BUILTIN="hourglass"/>
<node CREATED="1515209567856" ID="ID_1008245035" MODIFIED="1518487921065" TEXT="warten auf reales UI..."/>
<node COLOR="#338800" CREATED="1515891216245" ID="ID_1439162441" MODIFIED="1518487921065" TEXT="Verh&#xe4;ltnis von ViewLocator und Navigator kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515891241785" ID="ID_1731852581" MODIFIED="1522939281894" TEXT="Komponenten-Zugriffe in ViewLocator">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515891256616" ID="ID_1103868933" MODIFIED="1522939298316" TEXT="Baum-Abstraktion im Navigator">
<icon BUILTIN="hourglass"/>
</node>
<node COLOR="#338800" CREATED="1517508494036" ID="ID_490078637" MODIFIED="1522937686153" TEXT="LocationSolver integrieren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1506181802699" ID="ID_582767851" MODIFIED="1518487921065" TEXT="Test-Setup">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1508537003861" ID="ID_846599209" MODIFIED="1531584013547" TEXT="Semantik">
<icon BUILTIN="button_ok"/>
<node CREATED="1508537010868" ID="ID_484491629" MODIFIED="1508537050161">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
welche Operationen
</p>
<p>
sind wirklich notwendig
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1508537057661" FOLDED="true" ID="ID_1582824657" MODIFIED="1533685052776" TEXT="was hei&#xdf;t &quot;covern&quot;?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1508538092061" ID="ID_731131821" MODIFIED="1508538096663" TEXT="komplett/partiell?"/>
<node CREATED="1508538108338" ID="ID_1403158284" MODIFIED="1508625730742" TEXT="so gut wie m&#xf6;glich">
<icon BUILTIN="forward"/>
<node CREATED="1508625742468" ID="ID_511236910" MODIFIED="1508625745864" TEXT="kann partiell sein"/>
<node CREATED="1508625746667" ID="ID_1562464707" MODIFIED="1508625757806" TEXT="endet aber stets mit einem expliziten Element"/>
</node>
<node CREATED="1508538113098" ID="ID_415701605" MODIFIED="1508625772283" TEXT="eine Covfefe ermitteln">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1509323422183" FOLDED="true" ID="ID_1262448971" MODIFIED="1533685054986" TEXT="feine Punkte...">
<icon BUILTIN="yes"/>
<node CREATED="1509323432989" ID="ID_1373680102" MODIFIED="1509323467821" TEXT="per default nur bei expliziten Pfaden">
<node CREATED="1509323478248" ID="ID_101102957" MODIFIED="1509323487630" TEXT="vollst&#xe4;ndig (f&#xe4;ngt mit Window an)"/>
<node CREATED="1509323473576" ID="ID_193021518" MODIFIED="1509323477588" TEXT="keine Wildcards"/>
<node CREATED="1509323560821" ID="ID_294426477" MODIFIED="1509323871911" TEXT="in dem Fall ist anchern und covern &#xe4;quivalent">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1509323573047" ID="ID_263907664" MODIFIED="1529076269308" TEXT="covern: meint total">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1509323496205" ID="ID_231710474" MODIFIED="1509323516558" TEXT="m&#xf6;glich">
<node CREATED="1509323517362" ID="ID_1758863955" MODIFIED="1509323518982" TEXT="ankern"/>
<node CREATED="1509323520018" ID="ID_895622034" MODIFIED="1533608413593" TEXT="covern">
<node CREATED="1514747986164" ID="ID_825407732" MODIFIED="1514747988957" TEXT="total"/>
<node CREATED="1514747959935" ID="ID_1468731328" MODIFIED="1514747964178" TEXT="partiell"/>
<node CREATED="1514747965047" ID="ID_662883062" MODIFIED="1514747969250" TEXT="maximal partiell"/>
<node CREATED="1514747970239" ID="ID_1657718025" MODIFIED="1514747982281" TEXT="partiell lokal maximal"/>
</node>
<node CREATED="1509323523193" ID="ID_1088301010" MODIFIED="1533608413593" TEXT="ist nicht das gleiche">
<icon BUILTIN="idea"/>
<node CREATED="1509323532816" ID="ID_1206148872" MODIFIED="1511572071989" TEXT="covern kann scheitern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir verlangen, da&#223; wir nach dem Interpolieren &#252;ber eine L&#252;cke
</p>
<p>
immer noch <i>mindestens ein explizt gegebenes</i>&#160;Element im Pfad haben,
</p>
<p>
welches auch von der UI-Topologie best&#228;tigt wird.
</p>
<p>
Grund: wir wollen vermeiden, abschlie&#223;ende Wildcards <i>blo&#223; irgendwie</i>&#160;zu binden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509323537479" ID="ID_1638614197" MODIFIED="1511572071995" TEXT="und trotzedm einen Anker finden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich wenn der Pfad mit einem explizit gegebenen Pr&#228;fix anf&#228;ngt,
</p>
<p>
dann aber Wildcards enth&#228;lt, die nicht nach den versch&#228;rften Bedingungen gecovert werden k&#246;nnen.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509323760466" ID="ID_446881733" MODIFIED="1511572072002" TEXT="oder eben doch komplett im Widerspruch zum UI stehen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
beispielsweise
</p>
<ul>
<li>
wenn schon das Pr&#228;fix nicht pa&#223;t
</li>
<li>
wenn das erste Element nach dem Gap nirgends im realen UI in der tiefe existiert
</li>
<li>
wenn mehr Wildcards da sind, als restliche Tiefe zum Matchen
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1514748024287" ID="ID_85844536" MODIFIED="1533608413595" TEXT="ist partielle Covfefe sinnvoll">
<icon BUILTIN="help"/>
<node CREATED="1514748049396" ID="ID_844123386" MODIFIED="1514748079005" TEXT="sch&#xf6;n/herausfordernd zu implementieren">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1514748059827" ID="ID_494930397" MODIFIED="1514748074221" TEXT="aber: ist das jemals eine praktische Fragestellung?">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1515209459887" ID="ID_1673897385" MODIFIED="1515209521230">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
letzten Endes war es nahezu gleich schwer zu implementieren,
</p>
<p>
aber von der Aufruf-Logik her einfacher, stets nach partieller zu suchen
</p>
<p>
und totale Coverage nur nachtr&#228;glich durch L&#228;ngenvergleich festzustellen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1514748348924" ID="ID_1348653545" MODIFIED="1514748355135" TEXT="zustandsbehafted">
<node CREATED="1514748356627" ID="ID_1208345503" MODIFIED="1514748364398" TEXT="Resolver h&#xe4;lt letzte Coverage"/>
<node CREATED="1514748365274" ID="ID_576090166" MODIFIED="1514748371885" TEXT="diese kann partiell oder total sein"/>
<node COLOR="#990000" CREATED="1514748372690" ID="ID_1144080891" MODIFIED="1515209444769" TEXT="es kann mehrere L&#xf6;sungen geben">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1508537087378" FOLDED="true" ID="ID_548549576" MODIFIED="1533685056730" TEXT="Wildcards interpolieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1514328942052" ID="ID_638910432" MODIFIED="1514328949331" TEXT="&#xbb;pathResolution&#xab;"/>
<node CREATED="1514328906513" ID="ID_627709808" MODIFIED="1514328914500" TEXT="Matching-Algo mit Backtracking"/>
<node CREATED="1514328993397" ID="ID_593456636" MODIFIED="1514329001856" TEXT="Bedeutung">
<node CREATED="1514329005195" ID="ID_1796584977" MODIFIED="1533608413596" TEXT="firstWindow">
<node CREATED="1514329012442" ID="ID_1189771196" MODIFIED="1514329021597" TEXT="das formal erste Fenster"/>
<node CREATED="1514329025856" ID="ID_1596613154" MODIFIED="1514329034363" TEXT="typischerweise das zuerst ge&#xf6;ffnete"/>
</node>
<node CREATED="1514329036159" ID="ID_1686905211" MODIFIED="1533608413597" TEXT="currentWindow">
<node CREATED="1514329041046" ID="ID_880415056" MODIFIED="1514329055544" TEXT="das Fenster mit Fokus"/>
<node CREATED="1514329066515" ID="ID_1719764918" MODIFIED="1514329080026">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wo der <i>Spot</i>&#160;ist
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1514329081745" ID="ID_1158924252" MODIFIED="1533608413598" TEXT="&apos;*&apos;">
<node CREATED="1514329106294" ID="ID_1601049546" MODIFIED="1514329116032" TEXT="innere Elemente in einer UICorrd-spec"/>
<node CREATED="1514329119084" ID="ID_898086495" MODIFIED="1514329219306" TEXT="match gegen existierende UI-Elemente..."/>
<node CREATED="1514329219990" ID="ID_490418392" MODIFIED="1514329226489" TEXT="so da&#xdf; sich maximale Coverage ergibt"/>
</node>
</node>
</node>
<node CREATED="1508538286962" ID="ID_500149908" MODIFIED="1508538294950" TEXT="eine gemeinsame Basis-Operation">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1508539139418" ID="ID_1665843572" MODIFIED="1518487921065" TEXT="Operationen">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1508540055241" ID="ID_565736574" MODIFIED="1522937702499" TEXT="Konventionen">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1508540093004" ID="ID_277252077" MODIFIED="1518487921065" TEXT="Kinder-IDs sind eindeutig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Innerhalb einer Kinder-Folge gibt es keine duplikaten IDs.
</p>
<p>
Das hei&#223;t, es gen&#252;gt, den ersten Match zu nehmen.
</p>
<p>
<b>Warnung</b>: diese Konvention ist besonders t&#252;ckisch,
</p>
<p>
denn eine Verletzung kann weithin unbemerkt bleiben
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1508540106274" ID="ID_1727085652" MODIFIED="1518487921065" TEXT="ID-Literale existeren dauerhaft">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Resolver macht kein Memory-Management,
</p>
<p>
sondern speichert einfach Zeiger.
</p>
<p>
Es wird erwartet, da&#223; diese g&#252;ltig bleiben,
</p>
<p>
solange irgend jemand auf den Resolver oder den
</p>
<p>
daraus resultierenden Pfad zugreift
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1508540153564" ID="ID_165161640" MODIFIED="1518487921065" TEXT="UI stabil w&#xe4;hrend der Auswertung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Topologie, aber auch der Fokus-Zustand
</p>
<p>
&#228;ndern sich nicht w&#228;hrend der <i>aktiven Lebensdauer</i>&#160;eines Resolvers
</p>
<p>
Hierbei ist <i>aktive Lebensdauer</i>&#160;wie bei einem Iterator zu verstehen.
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1508540198326" ID="ID_720643889" MODIFIED="1518487921065" TEXT="Konventionen werden nicht verifiziert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aber es gibt Konsistenzchecks + Exceptions
</p>
<p>
wenn die Auswertung aufgrund einer gebrochenen Konvention entgleist
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1508539143849" FOLDED="true" ID="ID_1632791283" MODIFIED="1533685063775" TEXT="path-resolution">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1508539152568" ID="ID_153711822" MODIFIED="1515120963483" TEXT="Beschreibung">
<icon BUILTIN="button_ok"/>
<node CREATED="1508539226014" ID="ID_1714773115" MODIFIED="1511572072101" TEXT="informell...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Tiefensuche &#252;ber die reale UI-Topologie
</p>
<p>
Ziel ist, den Pfad <i>bestm&#246;glich</i>&#160;zu covern
</p>
<p>
Es gilt die erste maximal abdeckende L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1508539330312" ID="ID_67492497" MODIFIED="1508539911843" TEXT="bewegt nur Suchmarken">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1508539350382" ID="ID_585593926" MODIFIED="1533608413598" TEXT="Ergebnis">
<icon BUILTIN="info"/>
<node CREATED="1508539582959" ID="ID_54646462" MODIFIED="1515120947568" TEXT="Anchor == Literal">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1508539633800" ID="ID_471699110" MODIFIED="1515120953828" TEXT="coverDepth (Zahl)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Tiefe, bis zu der dieser Pfad gedeckt ist.
</p>
<p>
Sofern der Pfad bereits explizit ist, gen&#252;gt diese Info allein
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1508539644775" ID="ID_186144507" MODIFIED="1515120958547" TEXT="[optional] explizite Coverage">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
heap-allozierter expliziter Pfad.
</p>
<ul>
<li>
wird notwendig, wenn *this wildcards enth&#228;lt
</li>
<li>
L&#246;sung wird unter Alternativen ausgew&#228;hlt (nach maximaler Tiefe)
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1508539156879" ID="ID_1086207992" MODIFIED="1515037663165" TEXT="Layered Evaluation">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1508539857115" ID="ID_1186310701" MODIFIED="1514330270783" TEXT="state: L&#xf6;sungs-Cache">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1508539879600" ID="ID_1527439493" MODIFIED="1515037657130" TEXT="Auswertungs-Frame (TreeExplorer)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514748701222" ID="ID_1571444662" MODIFIED="1515037660962" TEXT="Varianten partiell/total">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1508539166878" ID="ID_1751192686" MODIFIED="1515209410401" TEXT="Testf&#xe4;lle">
<arrowlink COLOR="#715b79" DESTINATION="ID_1362494392" ENDARROW="Default" ENDINCLINATION="-578;-16;" ID="Arrow_ID_1072715196" STARTARROW="None" STARTINCLINATION="477;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1508539191283" FOLDED="true" ID="ID_1571889765" MODIFIED="1533685065286" TEXT="anchor">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1508540643163" ID="ID_600567923" MODIFIED="1515287569776" TEXT="trivial: Anker-Literal setzen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1508540736254" ID="ID_531471348" MODIFIED="1515287568184" TEXT="incomplete: path-resolution machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1508540764667" ID="ID_772420189" MODIFIED="1515287566905" TEXT="scheitert: Anchor == bottom">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1508540811196" ID="ID_841748634" MODIFIED="1515287563969" TEXT="Ergebnis: Window-Komponente setzen">
<icon BUILTIN="button_ok"/>
<node CREATED="1515287545795" ID="ID_1277908675" MODIFIED="1515287556163" TEXT="aber nur wenn ankerbar">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1515287557121" ID="ID_610935487" MODIFIED="1515287561833" TEXT="sonst: kein Effekt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1508539195258" ID="ID_1044429952" MODIFIED="1525124214766" TEXT="cover">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1508540823475" FOLDED="true" ID="ID_793410656" MODIFIED="1538869129468" TEXT="path-resolution ausf&#xfc;hren">
<icon BUILTIN="button_ok"/>
<node CREATED="1509475490890" ID="ID_1616720086" MODIFIED="1518487921065" TEXT="rekursiv"/>
<node CREATED="1509475495057" ID="ID_27489504" MODIFIED="1518487921065" TEXT="Aufruf mit ResolutionState"/>
<node CREATED="1509475548066" ID="ID_1051318433" MODIFIED="1518487921065" TEXT="jede gefundene L&#xf6;sung &quot;abwerfen&quot;"/>
<node CREATED="1509475609338" ID="ID_142146721" MODIFIED="1518487921065" TEXT="erweitere Variante von drillDown()">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1509475823750" ID="ID_1076784903" MODIFIED="1533608413600" TEXT="Problem: LocationQuery verwenden">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1509475849931" ID="ID_313015724" MODIFIED="1518487921065" TEXT="der Baum ist nicht direkt zug&#xe4;nglich"/>
<node CREATED="1509475856514" ID="ID_759555189" MODIFIED="1518487921065" TEXT="geht dann &#xfc;berhaupt eine rekursive impl?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1509475946414" ID="ID_815740043" MODIFIED="1518487921065" TEXT="mu&#xdf; die Child-Iteratoren nutzen"/>
<node CREATED="1509475966459" ID="ID_1480938627" MODIFIED="1518487921065" TEXT="ineffizient; steigt jedesmal neu von der Wurzel ab"/>
<node CREATED="1509476108672" FOLDED="true" ID="ID_609074970" MODIFIED="1533608416140" TEXT="Kern des Problems">
<icon BUILTIN="info"/>
<node CREATED="1509476118647" ID="ID_1491799749" MODIFIED="1518487921065" TEXT="habe Auswertungs-Zustand"/>
<node CREATED="1509476126793" ID="ID_1463784807" MODIFIED="1518487921065" TEXT="ist mit dem Baum verwoben"/>
<node CREATED="1509476133741" ID="ID_1273043633" MODIFIED="1518487921065" TEXT="der Baum ist aber Implementierungs-Detail"/>
</node>
<node CREATED="1509476154258" ID="ID_930376282" MODIFIED="1535891788152" TEXT="m&#xf6;gliche L&#xf6;sungen">
<icon BUILTIN="idea"/>
<node CREATED="1509476160585" ID="ID_171588117" MODIFIED="1509476184594" TEXT="Zustand opaque verpacken"/>
<node CREATED="1509476185182" ID="ID_613038974" MODIFIED="1509476196153" TEXT="Callback &#xfc;ber den Baum transportieren"/>
<node CREATED="1509476197413" ID="ID_768936647" MODIFIED="1514328778025">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ha! das ist eine <b>Monade</b>!!!!!1!11!
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1509481823391" FOLDED="true" ID="ID_1204466073" MODIFIED="1533608415784" TEXT="IterExplorer nutzen?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1509481841493" FOLDED="true" ID="ID_125946562" MODIFIED="1533608415372" TEXT="depthFirst">
<node CREATED="1509481848292" ID="ID_9233559" MODIFIED="1509481858671" TEXT="verwendet selber einen IterStack"/>
<node CREATED="1509481859522" ID="ID_828467130" MODIFIED="1509481866022" TEXT="packt die Quellsequenz dorthin um"/>
</node>
<node CREATED="1509481873976" FOLDED="true" ID="ID_1335669968" MODIFIED="1533608415374" TEXT="RecursiveExhaustingEvaluation">
<node CREATED="1509481895254" ID="ID_205898550" MODIFIED="1509481900897" TEXT="mit eigenem Buffer-Template"/>
<node CREATED="1509481901461" ID="ID_1119216150" MODIFIED="1509481908384" TEXT="mit eigener explorer-Funktion"/>
</node>
<node CREATED="1509481972452" FOLDED="true" ID="ID_1796930306" MODIFIED="1533608415376" TEXT="RecursiveSelfIntegration">
<node CREATED="1509481981834" ID="ID_312626846" MODIFIED="1509481990157" TEXT="mu&#xdf; dann eigenen Sequenz-Typ verwenden"/>
<node CREATED="1509481991033" ID="ID_321192742" MODIFIED="1509482002172" TEXT="dieser implementiert die re-Integration selber"/>
</node>
<node CREATED="1509482005743" FOLDED="true" ID="ID_156318392" MODIFIED="1533608415378" TEXT="eigenen Combinator">
<node CREATED="1509482018302" ID="ID_1911533794" MODIFIED="1509482027640" TEXT="d.h. IterExplorer selber nutzen"/>
<node CREATED="1509482028205" ID="ID_1589522162" MODIFIED="1509482039271" TEXT="die Logik steckt im eigenen Combinator"/>
</node>
</node>
<node CREATED="1535891975603" ID="ID_1860662881" MODIFIED="1535892401183" TEXT="neuer Anlauf: nochmal ein IterExplorer-Design">
<arrowlink COLOR="#27998e" DESTINATION="ID_137835978" ENDARROW="Default" ENDINCLINATION="-521;-801;" ID="Arrow_ID_1873000120" STARTARROW="None" STARTINCLINATION="-1866;98;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1509495634766" FOLDED="true" ID="ID_422767906" MODIFIED="1538869117623" TEXT="Zusammenspiel">
<icon BUILTIN="info"/>
<node CREATED="1509491594115" FOLDED="true" ID="ID_214903834" MODIFIED="1533608415788" TEXT="was tr&#xe4;gt LocationQuery bei?">
<icon BUILTIN="help"/>
<node CREATED="1509491778083" ID="ID_1393727273" MODIFIED="1509491782470" TEXT="den Ort im Baum"/>
<node CREATED="1509491783058" ID="ID_885705202" MODIFIED="1509491786782" TEXT="dort Kinder finden"/>
</node>
<node CREATED="1509495646276" FOLDED="true" ID="ID_167277646" MODIFIED="1533608415790" TEXT="was tr&#xe4;gt der Resolver bei?">
<icon BUILTIN="help"/>
<node CREATED="1509495661042" ID="ID_653601777" MODIFIED="1509495669717" TEXT="den zu interpolierenden Pfad"/>
<node CREATED="1509495680255" ID="ID_280205397" MODIFIED="1509495708216" TEXT="die Entscheidung, einem Zweig zu folgen"/>
</node>
<node CREATED="1509500182205" FOLDED="true" ID="ID_265529571" MODIFIED="1533608415795" TEXT="wie wird die L&#xf6;sung gebildet?">
<icon BUILTIN="help"/>
<node CREATED="1509500778214" FOLDED="true" ID="ID_205493443" MODIFIED="1533608415382" TEXT="immer wenn ein Zweig ausgesch&#xf6;pft ist">
<node CREATED="1509500789749" ID="ID_900618811" MODIFIED="1509500797807" TEXT="keine Kind-Knoten mehr"/>
<node CREATED="1509500798284" ID="ID_1913555098" MODIFIED="1509500806342" TEXT="der leitende Pfad ist am Ende"/>
<node CREATED="1509500810530" ID="ID_429187382" MODIFIED="1509500819205" TEXT="und wir haben einen Match"/>
</node>
<node CREATED="1509500824008" ID="ID_131979876" MODIFIED="1509500843970" TEXT="dann den aktuellen Pfad von der Wurzel &quot;abwerfen&quot;"/>
</node>
<node CREATED="1509500882017" FOLDED="true" ID="ID_1192819328" MODIFIED="1533608415801" TEXT="Problem: Backtracking">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1509500892895" ID="ID_1418393701" MODIFIED="1509500898746" TEXT="ein Problem der Repr&#xe4;sentation"/>
<node CREATED="1509500905589" ID="ID_583193934" MODIFIED="1509500921375" TEXT="mu&#xdf; zu einem fr&#xfc;heren, partiell gebildeten Pfad zur&#xfc;ckkehren"/>
<node CREATED="1509500998401" FOLDED="true" ID="ID_566603059" MODIFIED="1533608415386" TEXT="Pfade sind vorw&#xe4;rts verlinkt">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1509501075699" ID="ID_41890562" MODIFIED="1509501075699">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...aber im Moment der L&#246;sung brauche ich den Pfad aufw&#228;rts.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509501086314" ID="ID_1462237553" MODIFIED="1509501086314">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Das hei&#223;t, wir m&#252;ssen ihn bereits im Aufrufkontext bereit liegen haben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509579787378" ID="ID_1598679407" MODIFIED="1509579802379" TEXT="...oder ihn aus diesem Kontext rekonstruieren k&#xf6;nnen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1509580020810" ID="ID_602529711" MODIFIED="1509580027551" TEXT="COW">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node CREATED="1509581231027" FOLDED="true" HGAP="73" ID="ID_1779465547" MODIFIED="1533608415805" TEXT="m&#xf6;glicher Ablauf" VSHIFT="18">
<node CREATED="1509581241161" ID="ID_1629692107" MODIFIED="1509915202592" TEXT="UICoordResolver pullt Ergebnis(se)">
<icon BUILTIN="forward"/>
</node>
<node BACKGROUND_COLOR="#b4d1df" CREATED="1509581679727" FOLDED="true" HGAP="39" ID="ID_501629316" MODIFIED="1533608415388" STYLE="bubble" TEXT="f&#xfc;r alle Kinder" VSHIFT="7">
<arrowlink COLOR="#00ff9c" DESTINATION="ID_1294975373" ENDARROW="Default" ENDINCLINATION="8;66;" ID="Arrow_ID_1807409316" STARTARROW="None" STARTINCLINATION="93;38;"/>
<linktarget COLOR="#acf267" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="60;-81;" ID="Arrow_ID_1837883373" SOURCE="ID_1856901364" STARTARROW="None" STARTINCLINATION="126;-77;"/>
<linktarget COLOR="#17dde7" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="98;-46;" ID="Arrow_ID_1045905988" SOURCE="ID_574087782" STARTARROW="None" STARTINCLINATION="108;-138;"/>
<linktarget COLOR="#172fd9" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="25;50;" ID="Arrow_ID_901660904" SOURCE="ID_1687957458" STARTARROW="None" STARTINCLINATION="8;-10;"/>
<node BACKGROUND_COLOR="#e1e1b6" CREATED="1509581375103" FOLDED="true" ID="ID_1294975373" MODIFIED="1525124215509" TEXT="(node, depth) -&gt; match?">
<linktarget COLOR="#00ff9c" DESTINATION="ID_1294975373" ENDARROW="Default" ENDINCLINATION="8;66;" ID="Arrow_ID_1807409316" SOURCE="ID_501629316" STARTARROW="None" STARTINCLINATION="93;38;"/>
<icon BUILTIN="help"/>
<node CREATED="1509581419506" FOLDED="true" ID="ID_956022061" MODIFIED="1525124214781" TEXT="ja">
<node CREATED="1509581675560" ID="ID_17975640" MODIFIED="1514742893143" TEXT="depth+1">
<icon BUILTIN="full-1"/>
</node>
<node BACKGROUND_COLOR="#e1e1b6" CREATED="1509581999829" FOLDED="true" ID="ID_195154621" MODIFIED="1525124214781" TEXT="Rekursion?">
<icon BUILTIN="full-2"/>
<icon BUILTIN="help"/>
<node CREATED="1509582024610" ID="ID_1856901364" MODIFIED="1509834445909" TEXT="ja">
<arrowlink COLOR="#acf267" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="60;-81;" ID="Arrow_ID_1837883373" STARTARROW="None" STARTINCLINATION="126;-77;"/>
</node>
<node CREATED="1509582031809" FOLDED="true" ID="ID_1594605893" MODIFIED="1525124214781" TEXT="nein">
<node CREATED="1509582078939" HGAP="23" ID="ID_171156109" MODIFIED="1514742898612" TEXT="Abwurf" VSHIFT="-5">
<arrowlink COLOR="#2648cc" DESTINATION="ID_1359435447" ENDARROW="Default" ENDINCLINATION="273;37;" ID="Arrow_ID_1082519062" STARTARROW="None" STARTINCLINATION="361;48;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-1"/>
</node>
<node BACKGROUND_COLOR="#b4d1df" CREATED="1509582092777" HGAP="29" ID="ID_574087782" MODIFIED="1514743247011" TEXT="Backtracking" VSHIFT="2">
<arrowlink COLOR="#17dde7" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="98;-46;" ID="Arrow_ID_1045905988" STARTARROW="None" STARTINCLINATION="108;-138;"/>
<linktarget COLOR="#0199e1" DESTINATION="ID_574087782" ENDARROW="Default" ENDINCLINATION="-11;18;" ID="Arrow_ID_514933005" SOURCE="ID_1742427454" STARTARROW="None" STARTINCLINATION="115;15;"/>
<icon BUILTIN="full-2"/>
</node>
</node>
</node>
</node>
<node CREATED="1509581428177" FOLDED="true" ID="ID_593473991" MODIFIED="1525124214781" TEXT="nein">
<node CREATED="1509582401976" ID="ID_1742427454" MODIFIED="1514743247011" TEXT="Zweig widerlegt">
<arrowlink COLOR="#0199e1" DESTINATION="ID_574087782" ENDARROW="Default" ENDINCLINATION="-11;18;" ID="Arrow_ID_514933005" STARTARROW="None" STARTINCLINATION="115;15;"/>
</node>
</node>
</node>
</node>
<node CREATED="1509582914509" ID="ID_1359435447" MODIFIED="1509915433218" TEXT="yield">
<linktarget COLOR="#2648cc" DESTINATION="ID_1359435447" ENDARROW="Default" ENDINCLINATION="273;37;" ID="Arrow_ID_1082519062" SOURCE="ID_171156109" STARTARROW="None" STARTINCLINATION="361;48;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1509582922140" ID="ID_1687957458" MODIFIED="1510272742518">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Puffer ab Tiefe
</p>
<p>
vom Pfad initialisieren
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#172fd9" DESTINATION="ID_501629316" ENDARROW="Default" ENDINCLINATION="25;50;" ID="Arrow_ID_901660904" STARTARROW="None" STARTINCLINATION="8;-10;"/>
</node>
</node>
<node CREATED="1509583164196" HGAP="45" ID="ID_1054378844" MODIFIED="1535892564749" VSHIFT="18">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
monadische L&#246;sung
</p>
<p>
m&#246;glich?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1509583603442" FOLDED="true" ID="ID_1654046432" MODIFIED="1533608415392" TEXT="Aufgabe">
<node CREATED="1509583606241" ID="ID_1229235682" MODIFIED="1509583612828" TEXT="brauche explore-Funktion"/>
<node CREATED="1509583629367" ID="ID_911265983" MODIFIED="1509583641832" TEXT="element -&gt; zu betrachtende Kinder"/>
<node CREATED="1509583710276" FOLDED="true" ID="ID_76982043" MODIFIED="1525124215509" TEXT="Teilaufgaben">
<node CREATED="1509583754350" ID="ID_304891578" MODIFIED="1509583763832" TEXT="element -&gt; match?"/>
<node CREATED="1509583855993" ID="ID_1587235171" MODIFIED="1509583889120" TEXT="ja! -&gt; m&#xf6;gliche Kinder"/>
</node>
<node CREATED="1509583973681" FOLDED="true" ID="ID_1318889619" MODIFIED="1525124215509" TEXT="Problem: tern&#xe4;re Antwort">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1509583985008" ID="ID_396388554" MODIFIED="1509583991099" TEXT="akzeptiert"/>
<node CREATED="1509583991903" ID="ID_236836502" MODIFIED="1509583994178" TEXT="widerlegt"/>
<node CREATED="1509583994814" ID="ID_1069105045" MODIFIED="1509583998658" TEXT="unentschieden"/>
</node>
</node>
<node CREATED="1510266814301" ID="ID_1831665335" MODIFIED="1535892564750" TEXT="Ansatz">
<node CREATED="1510266817500" FOLDED="true" ID="ID_1438980093" MODIFIED="1525124215509" TEXT="3 Layer verwenden">
<icon BUILTIN="idea"/>
<node CREATED="1510266845712" FOLDED="true" ID="ID_1058798631" MODIFIED="1525124214788" TEXT="depthFirstExpandable">
<node CREATED="1510340746785" ID="ID_1049791542" MODIFIED="1510340774700">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>echte</i>&#160;Expand-Funktion notwendig
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1510340942183" ID="ID_1468499222" MODIFIED="1510340946922" TEXT="tree expansion"/>
<node CREATED="1510340919370" ID="ID_1835064492" MODIFIED="1510340941074" TEXT="hidden state"/>
</node>
<node CREATED="1510267240714" FOLDED="true" ID="ID_1928917413" MODIFIED="1525124214789" TEXT="pathMatcher">
<node CREATED="1510340991536" ID="ID_551863450" MODIFIED="1510341006225" TEXT="Zustands-Tupel -&gt; Zustands-Tupel"/>
<node CREATED="1510341122678" ID="ID_628465315" MODIFIED="1510341137973" TEXT="Mehrwert durch Abstraktion">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1510341114343" ID="ID_1967053947" MODIFIED="1510341117354" TEXT="Zustandsmaschine"/>
</node>
<node CREATED="1510267258015" FOLDED="true" ID="ID_858567040" MODIFIED="1525124214789" TEXT="solutionIter">
<node CREATED="1510341147323" ID="ID_224167359" MODIFIED="1510341162916" TEXT="Filter-Iterator"/>
<node CREATED="1510341163528" ID="ID_1640768302" MODIFIED="1510341167036" TEXT="fischt nach L&#xf6;sungen"/>
</node>
</node>
<node CREATED="1510341362957" ID="ID_1499495468" MODIFIED="1535892564752" TEXT="wirklich monadisch?">
<linktarget COLOR="#80c6b3" DESTINATION="ID_1499495468" ENDARROW="Default" ENDINCLINATION="-1812;12745;" ID="Arrow_ID_673178727" SOURCE="ID_1502143527" STARTARROW="None" STARTINCLINATION="4133;-10665;"/>
<node CREATED="1510341374332" ID="ID_483481416" MODIFIED="1511572072346" TEXT="naja...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
mathematische Monaden sind viel mehr...
</p>
<p>
Im Besonderen sind es Typen h&#246;herer Ordnung,
</p>
<p>
also mehr als blo&#223; parametrisierte Typen (Templates)!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1510341461168" ID="ID_862729714" MODIFIED="1510341472426" TEXT="Insofern Iterator == Monade"/>
<node CREATED="1510342283759" FOLDED="true" ID="ID_196604339" MODIFIED="1525124214796" TEXT="als Pipeline realisieren?">
<node CREATED="1510342309372" ID="ID_1423589544" MODIFIED="1510342448222" TEXT="M a &gt;&gt;= (a -&gt; M b) &gt;&gt;= (b -&gt; M c)">
<icon BUILTIN="info"/>
</node>
<node CREATED="1510342375691" FOLDED="true" ID="ID_433622803" MODIFIED="1525124214795" TEXT="hier w&#xe4;re dann...">
<node CREATED="1510342421653" ID="ID_864357466" MODIFIED="1510342428524" TEXT="M der IterExplorer"/>
<node CREATED="1510342385970" ID="ID_1170551187" MODIFIED="1510342397060" TEXT="a eine treePositon"/>
<node CREATED="1510342397768" ID="ID_297412873" MODIFIED="1510342405283" TEXT="b das Zustands-Tupel"/>
<node CREATED="1510342405871" ID="ID_302307398" MODIFIED="1510342408770" TEXT="c eine L&#xf6;sung"/>
</node>
<node CREATED="1510342662644" FOLDED="true" ID="ID_1670214510" MODIFIED="1525124214795" TEXT="geht nur wenn....">
<node CREATED="1510342668115" ID="ID_858941678" MODIFIED="1511572072407">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alles mit <i>einer</i>&#160;Form des IterExplorer machbar ist
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da IterExplorer einen Template-Template-Parameter nimmt,
</p>
<p>
ist er eigentlich ein Meta-Template, und es gibt diverse
</p>
<p>
Auspr&#228;gungen, die alle subtile Seiteneffekte ausnutzen....
</p>
<p>
...was nicht grade zur Verst&#228;ndlichkeit des Ganzen beitr&#228;gt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1510342763622" ID="ID_1851343313" MODIFIED="1510357653178">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das <i>Fortschreiten der Berechnung</i>&#160;dargestellt werden kann
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1510357676862" FOLDED="true" ID="ID_1057287927" MODIFIED="1512926193412" TEXT="das hei&#xdf;t...">
<node CREATED="1510357692028" ID="ID_42511341" MODIFIED="1510357698567" TEXT="wie werden aus einem a mehrere b?"/>
<node CREATED="1510357699299" ID="ID_1428784920" MODIFIED="1510357734578" TEXT="wie kann ein b ein expandiertes a erzeugen?"/>
</node>
</node>
<node CREATED="1510365403358" FOLDED="true" ID="ID_672047484" MODIFIED="1525124214796" TEXT="klingt machbar.....">
<node CREATED="1510365427291" FOLDED="true" ID="ID_176946796" MODIFIED="1512926193412" TEXT="RecursiveSelfIntegration verwenden?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1510365513975" ID="ID_355146506" MODIFIED="1510365524666" TEXT="Problem: keine klassische Monade"/>
<node CREATED="1510365525470" ID="ID_1084258268" MODIFIED="1510365538264" TEXT="ResultIter -&gt; ResultIter"/>
<node CREATED="1510427098600" ID="ID_576903384" MODIFIED="1510438602569" TEXT="Layering nicht Teil des Schemas"/>
<node CREATED="1510427352926" ID="ID_805227666" MODIFIED="1510427370156">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: Layer sind <i>verkoppelt</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1510365437834" FOLDED="true" ID="ID_134006075" MODIFIED="1512926193412" TEXT="Default-combinator verwenden">
<icon BUILTIN="button_cancel"/>
<node CREATED="1510365447736" ID="ID_268132850" MODIFIED="1510365460367">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dann aber als <b>State Monad</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1510365950652" FOLDED="true" ID="ID_978128618" MODIFIED="1512926193407" TEXT="State Monad">
<icon BUILTIN="info"/>
<node CREATED="1510365961732" ID="ID_1589378310" MODIFIED="1510365980084" TEXT="return x = \s -&gt; (x, s) "/>
<node CREATED="1510365961733" FOLDED="true" ID="ID_188006936" MODIFIED="1512926191735">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
m &gt;&gt;= f = \r -&gt; let (x, s) = m r
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;in (f x) s
</p>
</body>
</html></richcontent>
<node CREATED="1510366044023" ID="ID_72536689" MODIFIED="1510366073855" TEXT="Argument: ein State r"/>
<node CREATED="1510366074110" ID="ID_689602412" MODIFIED="1510366201735" TEXT="wende Basis-Monade auf r an">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1510366106215" ID="ID_1509841383" MODIFIED="1510366206135" TEXT="wende f auf den Ergebnis-Wert x an">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1510366161399" ID="ID_854251162" MODIFIED="1510366222663">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wende die resultierende State-Monade
</p>
<p>
auf den Zwischenzustand x aus (1) an
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-3"/>
</node>
</node>
</node>
<node CREATED="1510438509930" ID="ID_895147065" MODIFIED="1510438624934" TEXT="Problem: State Monad ist Funktor, kein Iterator">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1510940573235" ID="ID_953854216" MODIFIED="1510940586348" TEXT="IterExploer pa&#xdf;t nicht so recht">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510446221317" HGAP="52" ID="ID_1590483406" MODIFIED="1535892751360" VSHIFT="42">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sind Monaden
</p>
<p>
wirklich hilfreich?
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b26c7a" DESTINATION="ID_1955430588" ENDARROW="Default" ENDINCLINATION="-343;-748;" ID="Arrow_ID_920121069" STARTARROW="None" STARTINCLINATION="-38;43;"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1510446985581" FOLDED="true" HGAP="7" ID="ID_1266495962" MODIFIED="1525124214797" VSHIFT="44">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alternatives
</p>
<p>
Ziel
</p>
</body>
</html></richcontent>
<node CREATED="1510446995819" ID="ID_23846908" MODIFIED="1510447602718" TEXT="Baukasten-System">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1510447001691" FOLDED="true" ID="ID_139960047" MODIFIED="1525124214796" TEXT="von den Monaden">
<node CREATED="1510447022711" ID="ID_261759287" MODIFIED="1510447030010" TEXT="Idee der Pipeline"/>
<node CREATED="1510447582219" ID="ID_776956172" MODIFIED="1510447592222" TEXT="beliebige Kombinierbarkeit"/>
<node CREATED="1510447030766" ID="ID_1117150634" MODIFIED="1510447044624" TEXT="eigentliche Operation parametrisierbar"/>
</node>
<node CREATED="1510447061138" FOLDED="true" ID="ID_1016093231" MODIFIED="1525124214796" TEXT="Basis: State-Iterator">
<node CREATED="1510447071969" ID="ID_509550363" MODIFIED="1510447075852" TEXT="ist opaque"/>
<node CREATED="1510447076776" ID="ID_1106188456" MODIFIED="1510447096209" TEXT="yield -&gt; Wert oder Marker"/>
<node CREATED="1510447097509" ID="ID_1527567894" MODIFIED="1510447108696" TEXT="iterate -&gt; Proze&#xdf;-Schritt"/>
</node>
<node CREATED="1510447482473" FOLDED="true" ID="ID_232445241" MODIFIED="1525124214797" TEXT="Aufgaben">
<node CREATED="1510447488864" ID="ID_585404918" MODIFIED="1510447497779" TEXT="wie die &quot;Operation&quot; integrieren"/>
<node CREATED="1510447506901" ID="ID_1653596769" MODIFIED="1510447517655" TEXT="Unterschied Explore / Transform"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510540265979" FOLDED="true" HGAP="17" ID="ID_1160853986" MODIFIED="1525124215509" VSHIFT="26">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Fazit:
</p>
<p>
brauche...
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#406878" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-88;-61;" ID="Arrow_ID_409690433" STARTARROW="None" STARTINCLINATION="-374;6;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510540282280" FOLDED="true" ID="ID_304955672" MODIFIED="1525124214797" STYLE="fork" TEXT="Baum-Explorer">
<icon BUILTIN="info"/>
<node CREATED="1510540409159" ID="ID_1790409069" MODIFIED="1512797263191" TEXT="wiederverwendbarer Baustein"/>
<node CREATED="1510540682809" FOLDED="true" ID="ID_1860662906" MODIFIED="1525124214797" TEXT="konfiguriert mit">
<node CREATED="1510540689329" ID="ID_678279547" MODIFIED="1512797263191" TEXT="expand-Funktion"/>
<node CREATED="1510540693760" ID="ID_137650742" MODIFIED="1512797263191" TEXT="transform-Funktion"/>
</node>
<node CREATED="1510540500403" FOLDED="true" ID="ID_494812399" MODIFIED="1525124214797" TEXT="expandierbar">
<node CREATED="1510540735386" ID="ID_94152805" MODIFIED="1512797263191" TEXT="zus&#xe4;tzliche API-Operation"/>
<node CREATED="1510540740977" ID="ID_1864011655" MODIFIED="1512797263191" TEXT="ersetzt aktuellen Knoten durch seine Kinder"/>
<node CREATED="1510939295181" ID="ID_454143909" MODIFIED="1512797263191">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das impliziert <i>grunds&#228;tzlich</i>&#160;einen <b>Stack</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1510540417614" FOLDED="true" ID="ID_169601267" MODIFIED="1525124214797" TEXT="iterierbar">
<node CREATED="1510541064485" ID="ID_15321736" MODIFIED="1512797263192" TEXT="jedes Element geht durch den Transformer"/>
<node CREATED="1510541092114" ID="ID_1514360017" MODIFIED="1512797263192" TEXT="das ist die neue Einsicht">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1510939495862" FOLDED="true" ID="ID_1918069733" MODIFIED="1525124214797" TEXT="Monade?">
<icon BUILTIN="help"/>
<node CREATED="1510939532689" FOLDED="true" ID="ID_608280633" MODIFIED="1512926193412" TEXT="konventionelle L&#xf6;sung">
<icon BUILTIN="button_cancel"/>
<node CREATED="1510939567867" ID="ID_1799788775" MODIFIED="1512797263192" TEXT="expand: S -&gt; S"/>
<node CREATED="1510939642250" ID="ID_456598029" MODIFIED="1512797263192" TEXT="S = opaque state"/>
<node CREATED="1510939675821" ID="ID_71307720" MODIFIED="1512797263192" TEXT="eigentliche Erweiterung ist in S implementiert"/>
<node CREATED="1510939688075" ID="ID_872154531" MODIFIED="1512797263192" TEXT="expand() reicht also nur einen Aufruf weiter"/>
<node CREATED="1510939702170" ID="ID_699246805" MODIFIED="1512797263192" TEXT="Implementierung erfordert Seiteneffekt auf S"/>
<node CREATED="1510939778231" ID="ID_763925317" MODIFIED="1512797263192" TEXT="S mu&#xdf; auf die Verwendung im Baum-Explorer vorbereitet sein"/>
<node CREATED="1510940187687" ID="ID_349334428" MODIFIED="1512797263192" TEXT="triviale Implementierung kan sehr effizient sein"/>
</node>
<node CREATED="1510939552942" FOLDED="true" ID="ID_510344823" MODIFIED="1512926193412" TEXT="modadische L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node CREATED="1510939598175" ID="ID_1272498716" MODIFIED="1512797263192" TEXT="expand: S -&gt; BaumExplorer&lt;S&gt;"/>
<node CREATED="1510939845662" ID="ID_581825327" MODIFIED="1512797263192" TEXT="S = opaque State"/>
<node CREATED="1510939856845" ID="ID_1492383135" MODIFIED="1512797263192" TEXT="Erweiterungs-Mechanismus im Baum-Explorer implementiert"/>
<node CREATED="1510939940275" ID="ID_767766017" MODIFIED="1512797263192">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
expand() ruft eine vorbereitete Parametrisierung
</p>
<p>
&#160;f&#252;r diesen Expand-Mechanismus auf
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1510940053626" ID="ID_865181855" MODIFIED="1512797263192" TEXT="S kann Wertsemantik (aber auch Referenz-Semantik) haben"/>
<node CREATED="1510940088149" ID="ID_791410014" MODIFIED="1512797263192" TEXT="S mu&#xdf; nicht speziell vorbereitet sein (nur konstruierbar)"/>
<node CREATED="1510940199342" ID="ID_1423687617" MODIFIED="1512797263192" TEXT="man zahlt immer den Overhead f&#xfc;r den Stack im Baum-Explorer">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...selbst wenn man ihn f&#252;r eine triviale Implementierung
</p>
<p>
eigentlich &#252;berhaupt nicht braucht.
</p>
<p>
</p>
<p>
Das kann zwar zu einem gewissen Grad abgemildert werden,
</p>
<p>
indem man einen speziellen <i>Inline-Stack mit Heap-Overflow</i>&#160;nutzt
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510939517499" ID="ID_1100296394" MODIFIED="1512797263192" TEXT="das ist eine Weichenstellung">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1510540333481" FOLDED="true" ID="ID_1605100271" MODIFIED="1525124214798" TEXT="Rekursive Zustandsauswertung">
<node CREATED="1510541206810" ID="ID_1795866831" MODIFIED="1510541211885" TEXT="bindet Schritt-Funktion"/>
<node CREATED="1510970252162" ID="ID_1591961626" MODIFIED="1510970261786" TEXT="Layered Iterator Evaluation"/>
<node CREATED="1510970268485" ID="ID_1500401518" MODIFIED="1510970288103" TEXT="m&#xf6;glicherweise fest vorkonfigurierbarer Builder hierf&#xfc;r">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1510540399304" FOLDED="true" ID="ID_300971395" MODIFIED="1525124214798" TEXT="Filter">
<node CREATED="1510541335201" ID="ID_1717169058" MODIFIED="1510541339780" TEXT="fischt nach L&#xf6;sungen"/>
<node CREATED="1513473625110" ID="ID_267118379" MODIFIED="1513473632137" TEXT="kann die Auswertung treiben">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941382478" FOLDED="true" ID="ID_667413818" MODIFIED="1533608415812" TEXT="generische L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node CREATED="1510941425200" FOLDED="true" ID="ID_1773303405" MODIFIED="1533608415399" TEXT="Vorgabe">
<icon BUILTIN="yes"/>
<node CREATED="1510941397907" ID="ID_993148577" MODIFIED="1512955809672" TEXT="zun&#xe4;chst als abstrakter Baustein">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1510941406978" ID="ID_1048232110" MODIFIED="1512955812834" TEXT="sp&#xe4;ter mit IterExplorer verschmelzen">
<icon BUILTIN="bell"/>
</node>
</node>
<node COLOR="#338800" CREATED="1510941455667" FOLDED="true" ID="ID_1945607867" MODIFIED="1533608415402" TEXT="Builder">
<icon BUILTIN="button_ok"/>
<node CREATED="1511054840038" FOLDED="true" ID="ID_18464349" MODIFIED="1525124215509" TEXT="brauch ich am Ende &#xfc;berhaupt einen builder">
<icon BUILTIN="help"/>
<node CREATED="1512955693493" ID="ID_622618029" MODIFIED="1512955706852">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>ich </i>brauche ihn nicht
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512955707636" ID="ID_398975798" MODIFIED="1512955789085" TEXT="aber bestehendes Verhalten ist gef&#xe4;hrlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Builder-Operationen moven den bisherigen Iterator-compound weg.
</p>
<p>
<i>Ich k&#246;nnte mir vorstellen, </i>da&#223; das einen naiven User ziemlich schockiert....
</p>
<p>
</p>
<p>
L&#246;sung w&#228;re, das Iterator-API erst nach einem expliziten terminalen Aufruf freizuschalten
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1512955715434" ID="ID_1973548871" MODIFIED="1512955720444" TEXT="also: sp&#xe4;termal">
<icon BUILTIN="bell"/>
</node>
</node>
<node CREATED="1512278433500" FOLDED="true" ID="ID_1806674229" MODIFIED="1525124215510" TEXT="TreeExplorer fungiert als Builder">
<icon BUILTIN="yes"/>
<node CREATED="1512278445042" ID="ID_205794467" MODIFIED="1512278456012" TEXT="wird jeweils on top dar&#xfc;bergebaut"/>
<node CREATED="1512278456672" ID="ID_488770369" MODIFIED="1512278462388" TEXT="wird in jedem Schritt gestrippt"/>
</node>
</node>
<node COLOR="#338800" CREATED="1510941463562" FOLDED="true" ID="ID_845080696" MODIFIED="1538868265914" TEXT="TreeExplorer">
<linktarget COLOR="#406878" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-88;-61;" ID="Arrow_ID_409690433" SOURCE="ID_1160853986" STARTARROW="None" STARTINCLINATION="-374;6;"/>
<linktarget COLOR="#585e9d" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-23;161;" ID="Arrow_ID_402051988" SOURCE="ID_1359727169" STARTARROW="None" STARTINCLINATION="138;6;"/>
<linktarget COLOR="#83dfc7" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-1109;3887;" ID="Arrow_ID_1645152965" SOURCE="ID_30857289" STARTARROW="None" STARTINCLINATION="2051;-176;"/>
<linktarget COLOR="#8ad3a5" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-230;134;" ID="Arrow_ID_253437970" SOURCE="ID_137835978" STARTARROW="None" STARTINCLINATION="-387;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511571446467" FOLDED="true" ID="ID_1778455053" MODIFIED="1525124215510" TEXT="expand-Operation">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511227813712" FOLDED="true" ID="ID_1961708112" MODIFIED="1525124214805" TEXT="Fall-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1511227821087" ID="ID_143800006" MODIFIED="1511227823932" TEXT="monadisch"/>
<node CREATED="1511227824495" ID="ID_669725928" MODIFIED="1511227836441" TEXT="Val -&gt; Iter(Val)"/>
</node>
<node COLOR="#338800" CREATED="1511227861867" FOLDED="true" ID="ID_1021264891" MODIFIED="1525124214806" TEXT="Fall-2 ">
<icon BUILTIN="button_ok"/>
<node CREATED="1511227870346" ID="ID_707253800" MODIFIED="1511228200055" TEXT="verzahnte Implementierung"/>
<node CREATED="1511227975028" FOLDED="true" ID="ID_1383529442" MODIFIED="1525124214806" TEXT="Sub-F&#xe4;lle">
<node CREATED="1511227902005" ID="ID_867168618" MODIFIED="1511228200056" TEXT="Core -&gt; Iter(Val)"/>
<node CREATED="1511227917971" ID="ID_1274261467" MODIFIED="1511228200056" TEXT="Core -&gt; Core"/>
<node CREATED="1511227925202" ID="ID_211547168" MODIFIED="1511228200056" TEXT="Iter(Val) -&gt; Iter(Val)"/>
<node CREATED="1511227944392" ID="ID_1244265850" MODIFIED="1511228200056" TEXT="Iter(Val) -&gt; Core"/>
</node>
<node CREATED="1511227985314" FOLDED="true" ID="ID_723642910" MODIFIED="1525124214806" TEXT="Problem">
<node CREATED="1511227994153" ID="ID_1055820971" MODIFIED="1511228200056" TEXT="nicht jede Kombi ist valide"/>
<node CREATED="1511228014599" ID="ID_817679403" MODIFIED="1511572072623" TEXT="&quot;Zugriff auf Core&quot; kann nicht abstrahiert werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil...
</p>
<ul>
<li>
sich zwar die Logik syntaktisch anschreiben l&#228;&#223;t
</li>
<li>
aber beide Zweige u.U nicht auf den gleichen Typ hinauslaufen
</li>
<li>
und erst in der Anwendung dieses Ausdruckes werden die Typen gleichgestellt
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1511827033449" ID="ID_1528489344" MODIFIED="1511827073310" TEXT="L&#xf6;sung: Funktions-Komposition mit getemplatetem operator()">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1511228184223" FOLDED="true" HGAP="26" ID="ID_1701796180" MODIFIED="1525124214806" TEXT="Vereinigung" VSHIFT="23">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1511228210268" ID="ID_268486334" MODIFIED="1511228224230" TEXT="im Fall-1 m&#xfc;ssen wir operator* anwenden"/>
<node CREATED="1511228226946" FOLDED="true" ID="ID_1853550246" MODIFIED="1525124214806" TEXT="im Fall-2 m&#xfc;ssen wir einen Core-Typ konstruieren">
<node CREATED="1511228291778" ID="ID_1396258052" MODIFIED="1511228302748" TEXT="und zwar einen, den die Funktion nehmen kann"/>
<node CREATED="1511228303552" ID="ID_833606136" MODIFIED="1511228313746" TEXT="Vorsicht, kann auch eine Referenz sein!">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1511228361960" ID="ID_757059750" MODIFIED="1511402807191" TEXT="wie bringt man das syntaktisch auf eine einzige Linie??">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1511402785895" FOLDED="true" ID="ID_1409331699" MODIFIED="1525124214806" TEXT="L&#xf6;sungsidee: generisches Lambda">
<icon BUILTIN="idea"/>
<node CREATED="1511402832809" ID="ID_844588469" MODIFIED="1511402843611" TEXT="wird einmal auf der initialen Quelle aufgerufen"/>
<node CREATED="1511402844151" ID="ID_504070749" MODIFIED="1511402854442" TEXT="oder dann auf einem der Sub-Iteratoren auf dem Stack"/>
<node CREATED="1511402855174" ID="ID_386377958" MODIFIED="1511402861001" TEXT="beides k&#xf6;nnen unterschiedliche Typen sein"/>
<node CREATED="1511402861613" ID="ID_1536434222" MODIFIED="1511402872072" TEXT="solange der expandFunktor beide akzeptiert...."/>
</node>
<node CREATED="1511455454190" FOLDED="true" ID="ID_1384978479" MODIFIED="1525124214806" TEXT="Problem: kein generischer Expand-Functor">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1511455484027" ID="ID_548359395" MODIFIED="1511572072779" TEXT="unmittelbare Folge davon, da&#xdf; wir den Typ des Expand-Funktors analysieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
_fun&lt;FUN&gt;::Sig scheitert
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1511455502648" ID="ID_1704619802" MODIFIED="1511455566686">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das ist aber <i>unpraktisch</i>....
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1511455513119" ID="ID_128446946" MODIFIED="1511572072789" TEXT="denn grade Iterator-Typen kennt der Benutzer typischerweise nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....also ist es gradezu nat&#252;rlich,
</p>
<p>
einen Expand-Funktor als generisches Lambda zu schreiben!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1511455607914" FOLDED="true" HGAP="56" ID="ID_1866082603" MODIFIED="1512926193412" TEXT="Untersuchung" VSHIFT="39">
<icon BUILTIN="button_cancel"/>
<node CREATED="1511455644829" FOLDED="true" ID="ID_1545300823" MODIFIED="1512926193407" TEXT="ist generisches Labmda detektierbar?">
<icon BUILTIN="help"/>
<node CREATED="1511482195487" ID="ID_954120351" MODIFIED="1511482198474" TEXT="jein"/>
<node CREATED="1511482200510" ID="ID_714363558" MODIFIED="1511482216359" TEXT="man kann nur einen Funktionsoperator erkennen"/>
<node CREATED="1511482216971" ID="ID_1806534330" MODIFIED="1511482240548" TEXT="nicht aber, wenn ein Solcher mehrere Overloads hat oder ein Template ist"/>
</node>
<node CREATED="1511455664043" FOLDED="true" ID="ID_1966980711" MODIFIED="1512926193407" TEXT="kann man Fallback-Mechanismus bauen?">
<icon BUILTIN="help"/>
<node CREATED="1511455698398" FOLDED="true" ID="ID_91244603" MODIFIED="1512926191747" TEXT="wenn generisch...">
<icon BUILTIN="idea"/>
<node CREATED="1511455705149" ID="ID_1094783485" MODIFIED="1511455710889" TEXT="dann versuche"/>
<node CREATED="1511455711525" ID="ID_1584168712" MODIFIED="1511455721127" TEXT="(a) mit dem Value-Type ins Argument"/>
<node CREATED="1511455721907" ID="ID_312038081" MODIFIED="1511455730558" TEXT="(b) mit dem Iterator-Typ ins Argument"/>
</node>
<node CREATED="1511482247535" FOLDED="true" ID="ID_487969118" MODIFIED="1512926191747" TEXT="geht nicht">
<icon BUILTIN="broken-line"/>
<node CREATED="1511482254927" ID="ID_1687625403" MODIFIED="1511482263673" TEXT="zwar funktionieren die Positiv-F&#xe4;lle"/>
<node CREATED="1511482264405" ID="ID_1003171577" MODIFIED="1511482304307">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber eine falsche Template-Instantiierung
</p>
<p>
ist ein <i>Compile</i>-Fehler, kein <i>Substitutions</i>-Fehler
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1511482367184" FOLDED="true" ID="ID_1569720883" MODIFIED="1512926193413" TEXT="bleibt nur...">
<icon BUILTIN="pencil"/>
<node CREATED="1511482374415" FOLDED="true" ID="ID_554184880" MODIFIED="1512926193408" TEXT="maximal ein Versuch">
<icon BUILTIN="yes"/>
<node CREATED="1511482446317" ID="ID_951810826" MODIFIED="1511482457247" TEXT="entweder der Typ der Funktion ist bestimmbar"/>
<node CREATED="1511482457978" ID="ID_564239157" MODIFIED="1511482493455">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
oder man f&#228;llt auf <i>eine</i>&#160;m&#246;gliche Substitution zur&#252;ck
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1511482495719" ID="ID_327135583" MODIFIED="1511482510962">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...und wenn die Scheitert, ist das ein <b>compile</b>-Fehler
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1511482393172" ID="ID_1538766965" MODIFIED="1511572072839" TEXT="das w&#xe4;re dann: den Iterator zu verwenden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn das ist der sinnvollste Fall f&#252;r ein generisches Lambda
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1511571955951" FOLDED="true" HGAP="-20" ID="ID_189622415" MODIFIED="1525124214807" TEXT="zOMG: saukomplex" VSHIFT="13">
<icon BUILTIN="smily_bad"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1511572016775" ID="ID_664087042" MODIFIED="1511572067881" TEXT="selbst beim Schreiben steig ich nicht mehr durch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....und das ist alarmierend,
</p>
<p>
denn Debugging ist mindestens doppelt so schwer...
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
</node>
<node COLOR="#338800" CREATED="1511578305427" ID="ID_1738957205" MODIFIED="1511578318339" TEXT="alle technischen Details in die Traits">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511578319810" ID="ID_1918720180" MODIFIED="1511578585730" TEXT="unterst&#xfc;tzte Varianten dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1511578330448" ID="ID_1808038526" MODIFIED="1512955467937" TEXT="alle unterst&#xfc;tzten Varianten im Test abdecken">
<arrowlink COLOR="#5d68b6" DESTINATION="ID_1298407683" ENDARROW="Default" ENDINCLINATION="-53;-200;" ID="Arrow_ID_1214344498" STARTARROW="None" STARTINCLINATION="-292;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1511827103749" FOLDED="true" ID="ID_1699316886" MODIFIED="1525124215510" TEXT="transform-Operation">
<icon BUILTIN="button_ok"/>
<node CREATED="1511827249561" ID="ID_794510302" MODIFIED="1511827265634" TEXT="strikt nach Dekorator-Pattern"/>
<node CREATED="1511827337686" FOLDED="true" ID="ID_1214119488" MODIFIED="1525124214811" TEXT="bestehendern TransformIter verwenden?">
<node CREATED="1511827584523" ID="ID_1921395634" MODIFIED="1511827600541" TEXT="nein: wir m&#xfc;ssen von der Core erben">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1511827606968" ID="ID_732051224" MODIFIED="1511827652784" TEXT="aber das Konzept mit dem Result-Holder wiederverwenden">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1511827717353" FOLDED="true" ID="ID_244629150" MODIFIED="1525124214811" TEXT="Frage: kann man mit ADL &#xfc;berlagern?">
<icon BUILTIN="help"/>
<node CREATED="1511827732399" ID="ID_1358685038" MODIFIED="1511827746408" TEXT="wenn ja: dann m&#xfc;&#xdf;te man nur yield neu implementieren"/>
<node CREATED="1511831100013" FOLDED="true" ID="ID_446486349" MODIFIED="1525124214811" TEXT="ich denke ja...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1511831114987" ID="ID_371812401" LINK="http://en.cppreference.com/w/cpp/language/adl" MODIFIED="1511831149604" TEXT="ADL findet diverse Kandidaten"/>
<node CREATED="1511831122138" ID="ID_237063151" LINK="http://en.cppreference.com/w/cpp/language/overload_resolution" MODIFIED="1511831139496" TEXT="die Kandidaten werden geRANKt, u.A. nach Vererbung"/>
</node>
</node>
<node CREATED="1511831658137" FOLDED="true" ID="ID_295934398" MODIFIED="1525124214812" TEXT="Dekorator-Ansatz">
<icon BUILTIN="forward"/>
<node CREATED="1512262147649" FOLDED="true" ID="ID_1592901896" MODIFIED="1525124214812" TEXT="Dekorator auf Core">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512262162366" ID="ID_1471773970" MODIFIED="1512262276131" TEXT="kann direkt Core -&gt; Core verarbeiten">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1511831681334" FOLDED="true" ID="ID_1182010965" MODIFIED="1512926193413" TEXT="Unterscheidung nach Parent (per Trait)">
<node CREATED="1511831718105" FOLDED="true" ID="ID_758057732" MODIFIED="1512926193408" TEXT="Parent == state-core">
<node CREATED="1511831731159" ID="ID_1581545445" MODIFIED="1511831735258" TEXT="direkt verwenden"/>
<node CREATED="1511831735870" ID="ID_461566244" MODIFIED="1511831743057" TEXT="bietet bereits die Extension points"/>
</node>
<node CREATED="1511831745237" FOLDED="true" ID="ID_1286724784" MODIFIED="1512926193408" TEXT="Parent == IterableDecorator&lt;Core&gt;">
<node CREATED="1511831773833" ID="ID_1367782989" MODIFIED="1511831783948" TEXT="IterableDecorator wegstrippen"/>
<node CREATED="1511831784823" ID="ID_764863277" MODIFIED="1511831794354" TEXT="Core direkt verwenden (slicing move)"/>
</node>
<node CREATED="1511831840336" FOLDED="true" ID="ID_1853594905" MODIFIED="1512926193408" TEXT="Parent == Lumiera Iterator ">
<node CREATED="1511831893369" ID="ID_1403568713" MODIFIED="1511837159071" TEXT="WrappedIteratorCore dazwischenschieben"/>
</node>
<node CREATED="1511831940346" FOLDED="true" ID="ID_441709942" MODIFIED="1512926193408" TEXT="Resultat: Parent ist stets state-core">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1512259489938" ID="ID_1357405758" MODIFIED="1512259684029" TEXT="Zweifelhalft">
<linktarget COLOR="#fe2e57" DESTINATION="ID_1357405758" ENDARROW="Default" ENDINCLINATION="1323;-81;" ID="Arrow_ID_550770884" SOURCE="ID_1503180090" STARTARROW="None" STARTINCLINATION="-1297;0;"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512259502594" ID="ID_1761695302" MODIFIED="1512259525410" TEXT="sieht nach unn&#xf6;tig verkompliziertem Design aus">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1512262200009" FOLDED="true" ID="ID_1921211925" MODIFIED="1512926193413" TEXT="f&#xfc;hrt zu unn&#xf6;tig komplexem Design">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512262213016" ID="ID_1547313420" MODIFIED="1512262221626" TEXT="wir haben jetzt &quot;zwei Schienen&quot;"/>
<node CREATED="1512262222470" ID="ID_589647672" MODIFIED="1512262236880" TEXT="und es ist nicht mehr klar, was die Quelle ist"/>
</node>
</node>
<node CREATED="1512262251706" FOLDED="true" ID="ID_1480384220" MODIFIED="1525124214812" TEXT="Dekorator auf Iterator">
<node CREATED="1512262291085" FOLDED="true" ID="ID_1532344112" MODIFIED="1512926193413" TEXT="f&#xfc;r jeden Layer">
<node CREATED="1512262299476" ID="ID_102544445" MODIFIED="1512262325001">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
TreeExplorer per <i>slicing move</i>&#160;entfernen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512262331008" ID="ID_287760536" MODIFIED="1512262346625" TEXT="enthaltenen SrcIter dekorieren -&gt; Core"/>
<node CREATED="1512262347637" ID="ID_1683477051" MODIFIED="1512262371854" TEXT="erneut einen TreeExplorer dar&#xfc;ber adaptieren"/>
</node>
<node CREATED="1512262480339" FOLDED="true" ID="ID_62641165" MODIFIED="1512926193413" TEXT="Problem: Parent-Auswahl">
<node CREATED="1512262491362" ID="ID_1646804403" MODIFIED="1512262505036" TEXT="wir k&#xf6;nnen beliebig verschachteln"/>
<node CREATED="1512262505760" ID="ID_534073442" MODIFIED="1512262514890" TEXT="der Trait k&#xf6;nnte eine tiefere Schicht greifen"/>
<node CREATED="1512262516143" FOLDED="true" ID="ID_1514197178" MODIFIED="1512926193408" TEXT="L&#xf6;sung">
<node CREATED="1512262521070" ID="ID_1457239407" MODIFIED="1512262528041" TEXT="geht nur in diesem limitierten Kontext"/>
<node CREATED="1512262528836" ID="ID_879672594" MODIFIED="1512262550733" TEXT="Core bekommt Vorfahrt"/>
<node CREATED="1512262584301" ID="ID_387075989" MODIFIED="1512262598534" TEXT="Folge: Alle Layer m&#xfc;ssen neue Core produzieren">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1511918986936" FOLDED="true" ID="ID_667088953" MODIFIED="1525124214812" TEXT="Konstrukt">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511919003054" FOLDED="true" ID="ID_1728459315" MODIFIED="1525124214812" TEXT="Aufsetz-Punkt">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511919032171" FOLDED="true" ID="ID_737737817" MODIFIED="1512926193413" TEXT="Problem Parent::Iterator">
<icon BUILTIN="button_ok"/>
<node CREATED="1511919050960" ID="ID_1621131204" MODIFIED="1512256810082" TEXT="grunds&#xe4;tzliches Problem jedes Iterator-Dekorators">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir haben bisher viel zu naiv angenommen,
</p>
<p>
da&#223; der parent-Iterator immer auch ein TreeExploer ist.
</p>
<p>
</p>
<p>
Dem ist nicht so, ab dem Moment, wo wir mehrere Decorator-Layer haben!!
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1511920447698" ID="ID_1780310210" MODIFIED="1511920468027" TEXT="gesucht: der Iterator, von dem wir Werte beziehen"/>
<node CREATED="1512010545747" ID="ID_1907550" MODIFIED="1512010612995" TEXT="Idee: das ist genau das, was _TreeExplorerTraits leistet">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512010566105" ID="ID_1750414732" MODIFIED="1512010610681" TEXT="Umbenennung: _DecoratorTraits">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512010575367" FOLDED="true" ID="ID_736035875" MODIFIED="1512926193408" TEXT="soll k&#xfc;nftig zwei F&#xe4;lle unterst&#xfc;tzen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512010586173" ID="ID_1016627565" MODIFIED="1512010597616" TEXT="Finde parent-Iterator"/>
<node CREATED="1512010598540" FOLDED="true" ID="ID_771604715" MODIFIED="1512926191759" TEXT="Finde parent-Core">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512271542268" ID="ID_1668978885" MODIFIED="1512271546128" TEXT="war keine gute Idee"/>
</node>
</node>
<node CREATED="1512271554250" FOLDED="true" ID="ID_6017634" MODIFIED="1512926193408" TEXT="gel&#xf6;st durch stets regelm&#xe4;&#xdf;igen Aufbau der Dekorator-Kette">
<node CREATED="1512271577423" ID="ID_1273633642" MODIFIED="1512271590865" TEXT="TreeExplorer wird gestrippt"/>
<node CREATED="1512271591477" ID="ID_1932230950" MODIFIED="1512271605470" TEXT="Konsequenz: unmittelbare Src == Lumiera Iterator stets">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1511837060201" FOLDED="true" ID="ID_88038793" MODIFIED="1512926193413" TEXT="brauche WrappedIteratorCore">
<icon BUILTIN="button_ok"/>
<node CREATED="1512010365276" ID="ID_956716570" MODIFIED="1512010370631" TEXT="verpackt einen Iterator"/>
<node CREATED="1512010371291" ID="ID_563900951" MODIFIED="1512010383805" TEXT="bietet die ExtensionPoints einer State-Core"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511837027405" FOLDED="true" ID="ID_233806852" MODIFIED="1525124214812" TEXT="Argument-Detektor-Magie">
<icon BUILTIN="button_ok"/>
<node CREATED="1511837039180" ID="ID_1296099637" MODIFIED="1512278401909" TEXT="ganz analog zur expand-Operation">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1511837047810" FOLDED="true" ID="ID_684902103" MODIFIED="1512926193414" TEXT="kann man die Traits wiederverwenden?">
<node CREATED="1512179380102" ID="ID_657845891" MODIFIED="1512179382618" TEXT="schaut gut aus"/>
<node CREATED="1512182255367" FOLDED="true" ID="ID_1818058437" MODIFIED="1512926193409" TEXT="Funktor-Argument">
<node CREATED="1512182288514" ID="ID_1838064094" MODIFIED="1512182295010" TEXT="bestehende Impl verwenden">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512182296169" ID="ID_770503153" MODIFIED="1512182333744" TEXT="mu&#xdf; Info aus dem Funktor gewinnen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1512182308255" FOLDED="true" ID="ID_215116122" MODIFIED="1512271761209" TEXT="komme mit generischem Lambda in den Value-Zweig">
<linktarget COLOR="#a83e54" DESTINATION="ID_215116122" ENDARROW="Default" ENDINCLINATION="351;347;" ID="Arrow_ID_891457048" SOURCE="ID_23118252" STARTARROW="None" STARTINCLINATION="683;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1512182336428" ID="ID_1075031476" MODIFIED="1512271631969" TEXT="WTF??">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512182366016" FOLDED="true" ID="ID_146727217" MODIFIED="1512926191761">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Aufrufpunkt: <b>invokeTransformation</b>()
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
In instantiation of 'lib::{anonymous}::_ExpansionTraits&lt;FUN, SRC&gt;::Res lib::{anonymous}::_ExpansionTraits&lt;FUN, SRC&gt;::Functor::operator()(ARG&amp;) [with ARG = long int; FUN = lib::test::IterTreeExplorer_test::verify_transformOperation()::&lt;lambda(auto:2)&gt;&amp;; SRC = lib::iter_explorer::IterableDecorator&lt;long int, lib::iter_explorer::WrappedIteratorCore&lt;lib::TreeExplorer&lt;lib::iter_explorer::StlRange&lt;std::vector&lt;long int&gt;&amp;&gt; &gt; &gt; &gt;; lib::{anonymous}::_ExpansionTraits&lt;FUN, SRC&gt;::Res = std::basic_string&lt;char&gt;]':
</p>
<p>
</p>
<p>
src/lib/iter-tree-explorer.hpp:426:50: error: no match for call to '(std::function&lt;std::basic_string&lt;char&gt;(lib::iter_explorer::IterableDecorator&lt;long int, lib::iter_explorer::WrappedIteratorCore&lt;lib::TreeExplorer&lt;lib::iter_explorer::StlRange&lt;std::vector&lt;long int&gt;&amp;&gt; &gt; &gt; &gt;&amp;)&gt;) (long int&amp;)'
</p>
</body>
</html></richcontent>
<node CREATED="1512182627492" FOLDED="true" ID="ID_900469807" MODIFIED="1512926191761" TEXT="ARG = long">
<node CREATED="1512182636875" ID="ID_995259969" MODIFIED="1512182643174" TEXT="mu&#xdf; von yield stammen"/>
<node CREATED="1512183058625" ID="ID_1212399223" MODIFIED="1512183084458" TEXT="wir stehen in Transformer&lt;COR..."/>
<node CREATED="1512183107627" ID="ID_1096980589" MODIFIED="1512183113342" TEXT="with COR = lib::iter_explorer::WrappedIteratorCore&lt;lib::TreeExplorer..."/>
<node CREATED="1512183054810" ID="ID_1399207561" MODIFIED="1512183133267" TEXT="typename IT::reference yield(WrappedIteratorCore const&amp;)"/>
<node CREATED="1512183140886" ID="ID_549090759" MODIFIED="1512183150825" TEXT="IT = TreeExplorer"/>
<node CREATED="1512183151693" ID="ID_621724350" MODIFIED="1512183166319" TEXT="IT::reference == long&amp;"/>
</node>
<node CREATED="1512182644930" FOLDED="true" ID="ID_772628629" MODIFIED="1512926191761" TEXT="was ist SRC?">
<node CREATED="1512182682149" ID="ID_1240670384" MODIFIED="1512182695423" TEXT="IterableDecorator&lt;long, WrappedIteratorCore&lt;...."/>
<node CREATED="1512182696579" ID="ID_1928279872" MODIFIED="1512182724615">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
also IterableDecorator aufgesetzt auf die Core <i>im</i>&#160;Transformer
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512182741053" FOLDED="true" ID="ID_142258086" MODIFIED="1512926191761" TEXT="Vermutung">
<icon BUILTIN="button_ok"/>
<node CREATED="1512182747492" FOLDED="true" ID="ID_1749262679" MODIFIED="1512926191761" TEXT="SRC ist korrekt">
<node COLOR="#338800" CREATED="1512182891904" ID="ID_391517148" MODIFIED="1512182895697" TEXT="best&#xe4;tigt">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512182897327" ID="ID_131392784" MODIFIED="1512182918440" TEXT="_ExpansionTraits haben den vorhandenen SrcIterator genommen"/>
<node CREATED="1512182919148" ID="ID_1915639648" MODIFIED="1512182927165" TEXT="genauso wie sie sollen!">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512182752899" ID="ID_1075110241" MODIFIED="1512182940147" TEXT="wir sind im Iterator-Zweig, da generisches Lambda">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512182770497" ID="ID_301580428" MODIFIED="1512182786929" TEXT="also ist das ARG das Problem">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node CREATED="1512183184560" FOLDED="true" ID="ID_1174618775" MODIFIED="1512926191762" TEXT="Anpassungs-Logik fehlt">
<icon BUILTIN="button_ok"/>
<node CREATED="1512183196119" ID="ID_1543276489" MODIFIED="1512183210239" TEXT="hatte nur den Sonnenschein-Fall gecodet">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1512183218675" FOLDED="true" ID="ID_293046899" MODIFIED="1512271754033" TEXT="brauche Adapter um yield">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512183306032" ID="ID_710747972" MODIFIED="1512183310819" TEXT="normalerweise 1:1"/>
<node CREATED="1512183311551" FOLDED="true" ID="ID_783747294" MODIFIED="1512926191761" TEXT="aber je nach Funktion...">
<node CREATED="1512183380565" ID="ID_1649641461" MODIFIED="1512183407885" TEXT="auf Core heben"/>
<node CREATED="1512183408546" ID="ID_1438983384" MODIFIED="1512183418596" TEXT="oder sogar auf SrcIter heben"/>
</node>
<node CREATED="1512250716674" ID="ID_1607046573" MODIFIED="1512250752714" TEXT="nein, das w&#xfc;rde das ganze System aufdoppeln">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512250754085" FOLDED="true" ID="ID_1665621288" MODIFIED="1512926191762" TEXT="warum &#xfc;berhaupt zwei Systeme?">
<icon BUILTIN="help"/>
<node CREATED="1512250771874" ID="ID_59094155" MODIFIED="1512250776853" TEXT="theoretisch k&#xf6;nnte man...."/>
<node CREATED="1512250778322" ID="ID_52171581" MODIFIED="1512250802562" TEXT="immer wieder in einen WrappedIteratorCore einpacken"/>
<node CREATED="1512250807318" FOLDED="true" ID="ID_1268505006" MODIFIED="1512926191761" TEXT="das w&#xe4;ren zwei Indirektionen pro Layer....">
<node CREATED="1512250866126" ID="ID_739491519" MODIFIED="1512250917460" TEXT="zwar optimierbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir gehen davon aus,
</p>
<p>
da&#223; der Optimizer solche inline-Accessor-Funktionen
</p>
<p>
ohnehin restlos wegoptimieren wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512250874420" ID="ID_407939641" MODIFIED="1512250969766" TEXT="aber zus&#xe4;tzlicher Code-Aufwand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und zwar in dem Moment, wo man die Layer zusammensetzt.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512250977247" FOLDED="true" ID="ID_363861413" MODIFIED="1512926191762" TEXT="letztlich egal, also automatisch Konverter einf&#xfc;gen">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512259544994" ID="ID_702123443" MODIFIED="1512259564650" TEXT="Problem: mu&#xdf; auf Iterator hochkasten">
<icon BUILTIN="clanbomber"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1512259576702" ID="ID_1668053426" MODIFIED="1512259606959" TEXT="Problem: Fehl-Match auf tiefer liegende Core">
<icon BUILTIN="clanbomber"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1512259608498" ID="ID_1503180090" MODIFIED="1512259684029" TEXT="versautes Design">
<arrowlink COLOR="#fe2e57" DESTINATION="ID_1357405758" ENDARROW="Default" ENDINCLINATION="1323;-81;" ID="Arrow_ID_550770884" STARTARROW="None" STARTINCLINATION="-1297;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="17"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1512262620480" ID="ID_967757075" MODIFIED="1512262626861" TEXT="Design aufgegeben">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1512183706657" FOLDED="true" ID="ID_1135345978" MODIFIED="1512271747585" TEXT="oder: dritter Zweig in ArgAcessor?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512251027232" ID="ID_755375196" MODIFIED="1512251042682" TEXT="soll also universell die F&#xe4;lle adaptieren k&#xf6;nnen"/>
<node CREATED="1512251172916" FOLDED="true" ID="ID_378084629" MODIFIED="1512926191762" TEXT="Entscheidung: StateCore wird bevorzugt">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512251214046" ID="ID_1353274464" MODIFIED="1512251270499" TEXT="Konsequenz: alle Layer m&#xfc;ssen StateCore sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wenn mal ein Layer &quot;nur&quot; Iterator w&#228;re,
</p>
<p>
dann k&#246;nnte es eine Kombination geben, die einen solchen Layer &#252;bersrpingt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512251276054" ID="ID_236669144" MODIFIED="1512251283329" TEXT="Kurzschlu&#xdf; Core -&gt; Core"/>
</node>
<node CREATED="1512251305810" ID="ID_737982099" MODIFIED="1512271742802" TEXT="Iterator nur, wenn Quelle keine Core ist">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512271698231" ID="ID_1260885042" MODIFIED="1512271712854" TEXT="gel&#xf6;st durch Bereinigung des Design">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512007357412" FOLDED="true" ID="ID_1659237225" MODIFIED="1512926193414" TEXT="was bedeutet ein generisches Lambda?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1512010394800" ID="ID_930446802" MODIFIED="1512010402763" TEXT="analog zu expand handhaben">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512010405199" ID="ID_810102842" MODIFIED="1512010424574" TEXT="Konsequenz: auch Transform kann auf Iteratoren arbeiten">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512179383254" FOLDED="true" ID="ID_1554412479" MODIFIED="1525124214812" TEXT="mu&#xdf; value_type from Funktor gewinnen">
<icon BUILTIN="button_ok"/>
<node CREATED="1512181398331" ID="ID_1715550480" MODIFIED="1512181407142" TEXT="value_type rebinden"/>
<node CREATED="1512181407778" ID="ID_782984508" MODIFIED="1512181425706" TEXT="generischen Helper von IterAdapter">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1512181416881" ID="ID_229445720" MODIFIED="1512181423185" TEXT="verallgemeinern, rund machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512183524170" FOLDED="true" ID="ID_1697656461" MODIFIED="1512926193414" TEXT="TODO: isStringLike in meta/traits.hpp">
<icon BUILTIN="button_ok"/>
<node CREATED="1512183546319" ID="ID_1699019563" MODIFIED="1512183561888" TEXT="warum geht &quot;basically&quot; bis auf den Pointer?"/>
<node CREATED="1512183562621" ID="ID_57742709" MODIFIED="1512183571160" TEXT="logisch w&#xe4;re nur bis zur Referenz"/>
<node CREATED="1512183572244" ID="ID_1399145205" MODIFIED="1512183587645" TEXT="denn: string* ist nix String-artiges!!!"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1511837279715" FOLDED="true" ID="ID_1694539348" MODIFIED="1525124215510" TEXT="filter-Operation">
<icon BUILTIN="button_ok"/>
<node CREATED="1511837285306" FOLDED="true" ID="ID_928417859" MODIFIED="1525124214814" TEXT="der Vollst&#xe4;ndigkeit halber">
<node CREATED="1511837296921" ID="ID_151298846" MODIFIED="1511837304547" TEXT="ist zwar redundant zu den Itertools"/>
<node CREATED="1511837305410" ID="ID_1979322634" MODIFIED="1511837324464" TEXT="treeExplorer k&#xf6;nnte Itertools abl&#xf6;sen">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511837329140" FOLDED="true" ID="ID_1963360740" MODIFIED="1525124214814" TEXT="billige Implementierung nach Schema-F">
<icon BUILTIN="button_ok"/>
<node CREATED="1511837338643" ID="ID_1734683995" MODIFIED="1511837344590" TEXT="bestehende Dekorator-Technik"/>
<node CREATED="1511837345226" ID="ID_991593174" MODIFIED="1511837351797" TEXT="bestehende Funktor-Argument-Traits"/>
</node>
<node COLOR="#338800" CREATED="1512523892775" FOLDED="true" ID="ID_673112014" MODIFIED="1525124214814" TEXT="Knackpunkt">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512523897422" ID="ID_1007287631" MODIFIED="1512606862773" TEXT="pullFilter">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512523905005" ID="ID_1286045611" MODIFIED="1512523921543" TEXT="wie &quot;ausgewertet&quot; merken?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1512606810364" FOLDED="true" ID="ID_1956085441" MODIFIED="1525124214814" STYLE="fork" TEXT="garnicht">
<icon BUILTIN="yes"/>
<node CREATED="1512606816571" ID="ID_1603234787" MODIFIED="1512606853200" TEXT="mit INVARIANTE arbeiten">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512606823682" ID="ID_1935971404" MODIFIED="1512606853200" TEXT="erfordert vorauseilendes Pullen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1514747001446" FOLDED="true" ID="ID_127783087" MODIFIED="1525124215510" TEXT="scheduled-expand">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514747011989" ID="ID_108671176" MODIFIED="1514827156021" TEXT="neuer Layer">
<linktarget COLOR="#455b75" DESTINATION="ID_108671176" ENDARROW="Default" ENDINCLINATION="-973;135;" ID="Arrow_ID_1758556486" SOURCE="ID_836777766" STARTARROW="None" STARTINCLINATION="959;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514747015924" ID="ID_174806510" MODIFIED="1514827157932" TEXT="bool-flag">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514747019740" ID="ID_1271277454" MODIFIED="1514827160424" TEXT="klinkt sich in iterNext ein">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514747033674" FOLDED="true" ID="ID_690243302" MODIFIED="1525124214815" TEXT="auf API herausf&#xfc;hren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1514827186488" ID="ID_43343693" MODIFIED="1514827189500" TEXT="nicht notwendig"/>
<node CREATED="1514827202646" ID="ID_981896608" MODIFIED="1514827218316" TEXT="hijacked the existing expandChildren()">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512363846804" FOLDED="true" ID="ID_1346062807" MODIFIED="1525124215510" TEXT="auto-expand">
<icon BUILTIN="button_ok"/>
<node CREATED="1512844658352" ID="ID_1411659026" MODIFIED="1512844688077" TEXT="einfache Auspr&#xe4;gung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nur was billig ist,
</p>
<p>
denn im Moment brauchen wir das &#252;berhaupt nicht
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512844696922" FOLDED="true" ID="ID_396632754" MODIFIED="1525124214817" TEXT="zus&#xe4;tzlicher Dekorator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...setzt eigentliche Expand-Operation darunter voraus
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1512861383695" ID="ID_837026008" MODIFIED="1512861394833" TEXT="setzt direkt auf drunterliegender State Core auf"/>
<node CREATED="1512861401133" ID="ID_930964397" MODIFIED="1512861421774" TEXT="ersetzt nur eine der State-Core-Operationen"/>
<node CREATED="1512861424976" ID="ID_1203553918" MODIFIED="1512861431277" TEXT="sehr einfach, da Typ gleich bleibt"/>
</node>
<node COLOR="#338800" CREATED="1512844727150" FOLDED="true" ID="ID_706634236" MODIFIED="1525124214817" TEXT="expandAll">
<icon BUILTIN="button_ok"/>
<node CREATED="1512844742788" ID="ID_1270260953" MODIFIED="1512844748479" TEXT="expandChildren verz&#xf6;gert"/>
<node CREATED="1512844749235" ID="ID_1344028360" MODIFIED="1512844759661" TEXT="ausgel&#xf6;st durch Iteration"/>
<node CREATED="1512861437832" ID="ID_922141164" MODIFIED="1512861464189" TEXT="iterate() durch expandChildren() ersetzt">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1512844733549" FOLDED="true" ID="ID_1055588501" MODIFIED="1512952033494" TEXT="expandLeaf">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512844769176" ID="ID_1306087014" MODIFIED="1512844774891" TEXT="expandChildren eager"/>
<node CREATED="1512844775893" ID="ID_781402390" MODIFIED="1512844784866" TEXT="sofort erstes Kind liefern"/>
<node CREATED="1512844785526" ID="ID_244222856" MODIFIED="1512844788897" TEXT="rekursiv"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512872529062" FOLDED="true" ID="ID_1993110543" MODIFIED="1525124214817" TEXT="geht nicht einfach">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1512872546187" FOLDED="true" ID="ID_633024773" MODIFIED="1512926193414" TEXT="Problem: Blatt erkennen">
<node CREATED="1512872574000" ID="ID_262264527" MODIFIED="1512872587090" TEXT="m&#xfc;&#xdf;te auf dem letzten Ergebnis stehen bleiben"/>
<node CREATED="1512872560761" ID="ID_1013659640" MODIFIED="1512872573339" TEXT="expandChildren() geht einfach weiter"/>
</node>
<node CREATED="1512872618801" FOLDED="true" ID="ID_1769639916" MODIFIED="1512926193414" TEXT="nur in Expander selber implementierbar">
<icon BUILTIN="idea"/>
<node CREATED="1512872646574" ID="ID_419478495" MODIFIED="1512872658944" TEXT="eager feed"/>
<node CREATED="1512872676162" ID="ID_1452543628" MODIFIED="1512872683205" TEXT="sofort weiter expanden"/>
<node CREATED="1512872684337" ID="ID_90684575" MODIFIED="1512872695451" TEXT="aber am Ende nicht weiterschalten"/>
</node>
<node CREATED="1512875104589" FOLDED="true" ID="ID_477086316" MODIFIED="1512926193414" TEXT="Frage: sinnvoll?">
<icon BUILTIN="help"/>
<node COLOR="#338800" CREATED="1512875141521" ID="ID_152225336" MODIFIED="1512875149513" TEXT="versuchshalber mal eingebaut">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1512875161638" ID="ID_681111567" MODIFIED="1512875181807" TEXT="ist es die zus&#xe4;tzliche Komplexit&#xe4;t wert?">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1512951786574" FOLDED="true" ID="ID_1699122692" MODIFIED="1525124214817" TEXT="erfordert Umbau des Expanders">
<icon BUILTIN="stop-sign"/>
<node CREATED="1512951797493" ID="ID_1560754078" MODIFIED="1512951806384" TEXT="brauche verschiedene Auswertungs-Strategien"/>
<node CREATED="1512951807371" ID="ID_1239289160" MODIFIED="1512951840907" TEXT="mu&#xdf; f&#xfc;r diesen Fall selbst&#xe4;ndig terminieren"/>
<node CREATED="1512951841703" ID="ID_815720383" MODIFIED="1512951903322" TEXT="&quot;komplett entfaltet&quot; wird zur Invariante">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...also Programmierung analog zum Filter
</p>
<ul>
<li>
sofort aus dem Konstruktor heraus die Invariante etablieren
</li>
<li>
nach jedem Iterations-Schritt die Invariante erneut wiederherstellen
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512951913398" FOLDED="true" ID="ID_488089119" MODIFIED="1525124214817" TEXT="Komplexit&#xe4;t im Moment nicht gerechtfertigt">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512951939794" ID="ID_516260277" MODIFIED="1512951952752" TEXT="Monaden sind gef&#xe4;hrlich">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1512951955616" ID="ID_529939230" MODIFIED="1512951965123" TEXT="sie verleiten zu Glasperlen-Spielen"/>
<node CREATED="1512951978101" ID="ID_489027143" MODIFIED="1512952012416" TEXT="Leitlinie f&#xfc;r gutes Design">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Natur der Dinge folgen,
</p>
<p>
nicht den technischen M&#246;glichkeiten
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512363286920" FOLDED="true" ID="ID_1420123769" MODIFIED="1525124215510" TEXT="Zusammenspiel">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512844805995" FOLDED="true" ID="ID_927486947" MODIFIED="1525124214820" TEXT="single-val">
<icon BUILTIN="help"/>
<node CREATED="1512844821609" ID="ID_478047650" MODIFIED="1512844824644" TEXT="man k&#xf6;nnte...."/>
<node CREATED="1512844825280" ID="ID_1599364674" MODIFIED="1512844833243" TEXT="einzelne Werte in einen Iterator &quot;heben&quot;"/>
<node CREATED="1512844833952" ID="ID_1979934919" MODIFIED="1512844840138" TEXT="sinnvoll nur in der Expand-Funktion"/>
<node CREATED="1512951745988" ID="ID_1788253058" MODIFIED="1512951758010" TEXT="vorerst nicht weiterverfolgt">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512363297486" FOLDED="true" ID="ID_531127457" MODIFIED="1513473550578" TEXT="re-evaluate">
<linktarget COLOR="#5a92a2" DESTINATION="ID_531127457" ENDARROW="Default" ENDINCLINATION="385;167;" ID="Arrow_ID_556443427" SOURCE="ID_579206895" STARTARROW="None" STARTINCLINATION="844;55;"/>
<icon BUILTIN="button_ok"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1512363369036" FOLDED="true" ID="ID_134602126" MODIFIED="1525124214820" TEXT="Problem Quell-&#xc4;nderung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1512363380411" ID="ID_1008917631" MODIFIED="1512363473668" TEXT="expandChildren &#xe4;ndert aktuellen Gehalt der Quelle">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1512363397897" ID="ID_1178182932" MODIFIED="1512521936459" TEXT="aber downstream reagiert (bisher) nur auf iterate()">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512363421797" ID="ID_1732504592" MODIFIED="1512521966101" TEXT="Folge: geCacheter Wert aus Transformer &#xfc;berdeckt">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
<node CREATED="1512363518944" FOLDED="true" HGAP="38" ID="ID_1189860266" MODIFIED="1525124214820" TEXT="L&#xf6;sungsidee" VSHIFT="11">
<icon BUILTIN="idea"/>
<node CREATED="1512363525815" ID="ID_108313040" MODIFIED="1512363819912" TEXT="Hook, auf den alle reagieren">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1512439571337" FOLDED="true" ID="ID_1930899435" MODIFIED="1512926193414" TEXT="Analyse">
<icon BUILTIN="info"/>
<node CREATED="1512363586327" FOLDED="true" ID="ID_594917391" MODIFIED="1512926193409" TEXT="TreeExplorer wird Update-Manager">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512439586771" ID="ID_1378758194" MODIFIED="1512439588983" TEXT="geht nicht"/>
<node CREATED="1512439589594" ID="ID_1211811605" MODIFIED="1512439628493" TEXT="Transformer rufen sich wechselseitig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....und dann k&#246;nnten diese Transformer in der Kette
</p>
<p>
nicht mehr die expandChildren aufrufen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512439636532" FOLDED="true" ID="ID_443920458" MODIFIED="1512926193409" TEXT="refresh()-Call im internen API">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512439680078" ID="ID_795639412" MODIFIED="1512439682641" TEXT="geht nicht"/>
<node CREATED="1512439683710" ID="ID_82602719" MODIFIED="1512439807833" TEXT="ohne VTable k&#xf6;nnen wir niemals von Parent -&gt; Subklasse aufrufen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t, es ist nicht m&#246;glich,
</p>
<p>
da&#223; ein Layer irgendwo in der Mitte einen solchen generischen Hook aufruft.
</p>
<p>
Es sei denn, man speichert einen Funktion-Pointer in der Basis,
</p>
<p>
oder nimmt eben gleich eine virtuelle Funktion.
</p>
<p>
</p>
<p>
Das ist aber hier aus grunds&#228;tzlichen &#220;berlegungen heraus keine Option
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512439832865" FOLDED="true" ID="ID_1782781235" MODIFIED="1512926193409" TEXT="anderes Iterator-API">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512439845112" ID="ID_751119405" MODIFIED="1512439849499" TEXT="geht nicht"/>
<node CREATED="1512439850087" ID="ID_1018141727" MODIFIED="1512440143615">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das IterStateWrapper-API ist <i>optimal</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
unter der Annahme, da&#223; wir beim <b>Lumiera Forward Iterator</b>&#160;- Konzept bleiben
</p>
<p>
</p>
<p>
-- das hei&#223;t, beliebig oft yield, und Iterations-Ende per bool()-Test
</p>
<p>
</p>
<p>
Unter dieser Annahme kommt yield stets vor iterNext (wenn &#252;berhaupt).
</p>
<p>
Und yield mu&#223; (a) einen Status liefern, (b) einen Wert liefern.
</p>
<p>
Einziger Ausweg w&#228;re, wie das IterAdapter macht, einen Pointer rauszugeben.
</p>
<p>
Das ist eigentlich keine gute L&#246;sung, weil die Implementierung dann sehr tricky wird.
</p>
<p>
Siehe IterAdapter als absto&#223;endes Beispiel.
</p>
<p>
Und als weitere Alternative bleibt nur die Einf&#252;hrung von State, und das bedeutet,
</p>
<p>
sich im Iterator oder in der Implementierung irgendwo noch eine zus&#228;tzliche bool-Flag zu speichern.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512440148015" FOLDED="true" ID="ID_1475512070" MODIFIED="1512926193409" TEXT="Einzige L&#xf6;sung">
<icon BUILTIN="yes"/>
<node CREATED="1512440158486" ID="ID_1167307993" MODIFIED="1512440175103" TEXT="alle Layer, die darauf angewiesen sind...."/>
<node CREATED="1512440175931" ID="ID_808598503" MODIFIED="1512440193040">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
implementieren ebenfalls <b>expandChildren</b>()
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512440216070" FOLDED="true" ID="ID_1808232294" MODIFIED="1525124214820" TEXT="Konsequenz der Analyse">
<icon BUILTIN="button_ok"/>
<node CREATED="1512440223221" ID="ID_741091948" MODIFIED="1512512823480" TEXT="warum verwenden wir &#xfc;berhaupt ADL-Funktionen??">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512440238859" ID="ID_1975957673" MODIFIED="1512440262159" TEXT="wir brauchen hier gar keinen &quot;Extension Point&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ganz anders als bei IterAdapter, wo das Sinn macht...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512440263551" ID="ID_1524108340" MODIFIED="1512440285896" TEXT="Dagegen k&#xf6;nnte die &quot;state core&quot; sehr wohl genau dieses API exponieren."/>
<node CREATED="1512440286772" FOLDED="true" ID="ID_535994508" MODIFIED="1512926193414" TEXT="wir brauchen deshalb nicht gleich ein Interface einf&#xfc;hren">
<icon BUILTIN="idea"/>
<node CREATED="1512440307185" ID="ID_1513737160" MODIFIED="1512440431319" TEXT="weil das doch nicht gecheckt werden kann">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ohne da&#223; die Funktionen auch virtuell sind,
</p>
<p>
k&#246;nnen wir nicht sicherstellen
</p>
<ul>
<li>
da&#223; die hereingereichte Implementierung die Funktionen &#252;berschreibt
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1512440341573" ID="ID_1804763032" MODIFIED="1512440348845" TEXT="wir k&#xf6;nnen bis 2020 warten...">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1512440360194" ID="ID_1554793680" MODIFIED="1512440375486" TEXT="es ist n&#xe4;mlich ein Concept"/>
</node>
<node COLOR="#338800" CREATED="1512516448421" ID="ID_980580862" MODIFIED="1512516469297" TEXT="Umstellen aller bestehenden IterstateWrapper">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512516493271" FOLDED="true" HGAP="14" ID="ID_1713522306" MODIFIED="1525124214820" TEXT="Implementierung" VSHIFT="7">
<icon BUILTIN="button_ok"/>
<node CREATED="1512516499478" ID="ID_1331925282" MODIFIED="1512516507112" TEXT="f&#xfc;hre Base-Layer ein"/>
<node CREATED="1512516508341" ID="ID_1894692287" MODIFIED="1512516517207" TEXT="dieser konsumiert die nach unten durchtereichten Aufrufe"/>
<node CREATED="1512516517915" ID="ID_1224748245" MODIFIED="1512516534101" TEXT="einzelne Layer k&#xf6;nne bei Bedarf ebenfalls diese Ketten-Aufrufe implementieren"/>
<node CREATED="1512516534761" FOLDED="true" ID="ID_111530510" MODIFIED="1512926193414" TEXT="speziell expandChildren()">
<node CREATED="1512516543648" ID="ID_1021495966" MODIFIED="1512516558578" TEXT="transformer mu&#xdf; daraufhin seinen Cache wegwerfen"/>
<node CREATED="1512516567076" ID="ID_647647031" MODIFIED="1512516587342" TEXT="filter mu&#xdf; daraufhin erneut filter-pull ausf&#xfc;hren"/>
</node>
<node CREATED="1512516613614" FOLDED="true" ID="ID_1415224184" MODIFIED="1512926193415">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konzept funktioniert nicht
</p>
<p>
aus processing-Function
</p>
<p>
innen heraus
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1512516629180" ID="ID_1157813472" MODIFIED="1512516672998" TEXT="oh wie traurig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
will sagen, das ist ja auch eine durchgeknallte Idee....
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1512516682701" ID="ID_1471867999" MODIFIED="1512516706422">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn eine Funktion <i>in</i>&#160;einem Layer expanded
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512516708649" ID="ID_474656011" MODIFIED="1512516797884" TEXT="dann mu&#xdf; sie sich zwischen Vater oder 1.Kind entscheiden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h, entweder man gibt aus dem Functor das zur&#252;ck,
</p>
<p>
was <i>vor</i>&#160;dem expand anstand (=der Vater), oder man verwirft diesen
</p>
<p>
und liefert das, was nach dem expand erscheind
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512516799653" ID="ID_589615050" MODIFIED="1512516811504" TEXT="nicht als Fehler bewertet">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1512516814507" ID="ID_347481974" MODIFIED="1512516819130" TEXT="eigentlich logisch">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1512794157617" FOLDED="true" ID="ID_1639627950" MODIFIED="1512926193415" TEXT="Problem mit IterSource">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1512794166904" ID="ID_614780435" LINK="http://issues.lumiera.org/ticket/1125" MODIFIED="1512794180867" TEXT="Design-Mismatch">
<icon BUILTIN="info"/>
</node>
<node CREATED="1512794183629" ID="ID_783686672" MODIFIED="1512794297194" TEXT="inzwischen ein Workaround">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
asIterSource() verwendet ein eigenes Interface, um diesen call an die Implementierung durchzureichen
</li>
<li>
in dieses Interface habe ich nun einen R&#252;ckgabewert eingebaut
</li>
<li>
damit kann ich das IterSource-Front-End refreshen
</li>
<li>
trotzdem h&#228;sslich...
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513293471929" FOLDED="true" ID="ID_1115016372" MODIFIED="1513473546013" TEXT="chained expansion">
<icon BUILTIN="stop-sign"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513293488863" FOLDED="true" ID="ID_263549307" MODIFIED="1525124214820" TEXT="logisches Problem mit layered expansion">
<linktarget COLOR="#9c5265" DESTINATION="ID_263549307" ENDARROW="Default" ENDINCLINATION="189;145;" ID="Arrow_ID_1920033917" SOURCE="ID_1013175212" STARTARROW="None" STARTINCLINATION="1219;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1513293497774" ID="ID_115807287" MODIFIED="1513293568808" TEXT="der unterste Expander nivelliert die Baumstruktur"/>
<node CREATED="1513293570748" ID="ID_34081800" MODIFIED="1513293626048" TEXT="dar&#xfc;ber gesetzte Expander bekommen das Schlie&#xdf;en des nested scope nicht mit"/>
<node CREATED="1513293655896" ID="ID_1685869664" MODIFIED="1513293665067" TEXT="dies konterkariert das Bestreben nach Abstraktion"/>
</node>
<node CREATED="1513293768322" FOLDED="true" ID="ID_1803494848" MODIFIED="1525124214820" TEXT="Idee: slave Expander">
<icon BUILTIN="idea"/>
<node CREATED="1513293775257" ID="ID_1165347300" MODIFIED="1513293781468" TEXT="registriert sich als Listener"/>
<node CREATED="1513293782224" ID="ID_1860640469" MODIFIED="1513293845843" TEXT="geht mit expand / backtrack mit"/>
<node CREATED="1513293889809" FOLDED="true" ID="ID_277229668" MODIFIED="1525124214820" TEXT="Wirkung unklar">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513293901848" FOLDED="true" ID="ID_1292422466" MODIFIED="1525124214820" TEXT="Modell-1">
<node CREATED="1513293916558" ID="ID_1801870591" MODIFIED="1513293922177" TEXT="hat selber einen Stack"/>
<node CREATED="1513293941227" ID="ID_1085854477" MODIFIED="1513293947030" TEXT="erzeugt kopierten Zustand"/>
</node>
<node CREATED="1513293910591" FOLDED="true" ID="ID_308120385" MODIFIED="1525124214820" TEXT="Modell-2">
<node CREATED="1513293959848" ID="ID_227867197" MODIFIED="1513293968451" TEXT="reine Callbacks"/>
<node CREATED="1513293996403" ID="ID_770475649" MODIFIED="1513294007637" TEXT="2.Callback zum Schlie&#xdf;en notwendig"/>
</node>
</node>
<node CREATED="1513395781003" ID="ID_1245121355" MODIFIED="1513395835329" TEXT="Problem: wie anschlie&#xdf;en?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
an welcher Stelle wird diese Mechanik
</p>
<p>
an einen bestehenden Iterator angeschlossen
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5f7b87" DESTINATION="ID_618831184" ENDARROW="Default" ENDINCLINATION="0;-100;" ID="Arrow_ID_1648666133" STARTARROW="None" STARTINCLINATION="-110;0;"/>
</node>
</node>
<node CREATED="1513395693887" FOLDED="true" ID="ID_618831184" MODIFIED="1525124214820" TEXT="Design">
<linktarget COLOR="#5f7b87" DESTINATION="ID_618831184" ENDARROW="Default" ENDINCLINATION="0;-100;" ID="Arrow_ID_1648666133" SOURCE="ID_1245121355" STARTARROW="None" STARTINCLINATION="-110;0;"/>
<node CREATED="1513395706469" ID="ID_708077102" MODIFIED="1513395716207" TEXT="expliziter Chain-Zustand"/>
<node CREATED="1513395719139" ID="ID_1788966028" MODIFIED="1513395732164" TEXT="wird aus dem expandable-Iter erzeugt"/>
<node CREATED="1513395734449" ID="ID_1906327703" MODIFIED="1513395755674" TEXT="entfaltet sich per Stack mit Backtracking"/>
<node CREATED="1513395756646" ID="ID_1845114720" MODIFIED="1513395771104" TEXT="Entfaltungs-Funktor"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513294052460" FOLDED="true" ID="ID_803702364" MODIFIED="1525124214820" TEXT="Technik">
<icon BUILTIN="help"/>
<node CREATED="1513294056627" ID="ID_1384622700" MODIFIED="1513294063006" TEXT="Listener-Interface"/>
<node CREATED="1513294065442" ID="ID_1460481832" MODIFIED="1513294078644" TEXT="Listener als Decorator-chain"/>
<node CREATED="1513294087167" ID="ID_936833682" MODIFIED="1513294097217" TEXT="BaseAdapter wird Informations-Hub"/>
<node CREATED="1513395621816" FOLDED="true" ID="ID_1622086178" MODIFIED="1525124214820" TEXT="Problem: virtuelle Calls">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513395629375" ID="ID_698225511" MODIFIED="1513395640418" TEXT="mu&#xdf; nun &quot;downstream&quot; aufrufen"/>
<node CREATED="1513395641293" ID="ID_1382186294" MODIFIED="1513395660295" TEXT="bedingt Funktor oder VTable"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513395667562" ID="ID_1022574173" MODIFIED="1513395685159" TEXT="widerspricht bisherigen Design-Zielen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1513395862384" FOLDED="true" HGAP="-59" ID="ID_992596886" MODIFIED="1525124214821" TEXT="vorerst nicht weiter verfolgt" VSHIFT="4">
<icon BUILTIN="yes"/>
<node CREATED="1513395903962" ID="ID_1252615834" MODIFIED="1513395908990" TEXT="relativ komplex"/>
<node CREATED="1513395909914" ID="ID_866089441" MODIFIED="1513395921284" TEXT="Notwendigkeit nicht klar"/>
<node CREATED="1513395922513" ID="ID_1683537911" MODIFIED="1513396040896" TEXT="k&#xf6;nnte aber sehr sinnvoll werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Stichwort HierarchyOrientationIndicator
</p>
<p>
</p>
<p>
...will sagen, bin nun schon mehrfach in dieses Problem gelaufen,
</p>
<p>
nachdem ich dachte, alles so sch&#246;n gel&#246;st zu haben.
</p>
<p>
Das Problem ist, da&#223; eben auch der <i>Konsument</i>&#160;irgendwie
</p>
<p>
von den verschachtelten Strukturen mit gesteuert wird.
</p>
<p>
Das Ergebnis ist eben nicht rein linear.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513395931727" ID="ID_1852380231" MODIFIED="1513395937842" TEXT="erst mal Erfahrungen sammeln"/>
<node CREATED="1513395939502" FOLDED="true" ID="ID_1752199055" MODIFIED="1525124214820" TEXT="und direkt die Baum-Tiefe durchgeben">
<linktarget COLOR="#75c4c1" DESTINATION="ID_1752199055" ENDARROW="Default" ENDINCLINATION="653;643;" ID="Arrow_ID_1536391130" SOURCE="ID_1466307579" STARTARROW="None" STARTINCLINATION="1299;33;"/>
<icon BUILTIN="yes"/>
<node CREATED="1513396293343" ID="ID_861758487" MODIFIED="1513396293343">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...das ist n&#228;mlich der triviale Workaround
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513396299238" ID="ID_1740583889" MODIFIED="1513396343855" TEXT="noch besser: diese auf das ChildExpandableSource-Interface legen!">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1513396353871" ID="ID_1928833267" MODIFIED="1513396385476" TEXT="das k&#xf6;nnte tats&#xe4;chlich eine echte pragmatische Alternative sein!">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513447925593" FOLDED="true" ID="ID_1239682661" MODIFIED="1525124214821" TEXT="expansion depth">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513447947870" ID="ID_328146397" MODIFIED="1513448183232" TEXT="nach au&#xdf;en zug&#xe4;nglich machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513447956069" FOLDED="true" ID="ID_1345517957" MODIFIED="1525124214821" TEXT="Problem: mu&#xdf; daf&#xfc;r korrekt sein">
<icon BUILTIN="button_ok"/>
<node CREATED="1513447967084" ID="ID_476332936" MODIFIED="1513447978718" TEXT="d.h. mu&#xdf; die logische Tiefe widerspiegeln"/>
<node CREATED="1513447979450" ID="ID_224439756" MODIFIED="1513448250249" TEXT="...auch wenn der Vater bereits ersch&#xf6;pft ist">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir hatten bisher eine auto-Aufr&#228;um-Routine in iterNext(),
</p>
<p>
welche dazu f&#252;hrt, da&#223; ein ersch&#246;pfter Vater sofort wegger&#228;umt wird,
</p>
<p>
noch bevor wir dazu kommen, die Kinder zu pushen
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1513448002247" FOLDED="true" ID="ID_804459643" MODIFIED="1525124214821" TEXT="L&#xf6;sung">
<linktarget COLOR="#63b5aa" DESTINATION="ID_804459643" ENDARROW="Default" ENDINCLINATION="456;372;" ID="Arrow_ID_1606709369" SOURCE="ID_1181955496" STARTARROW="None" STARTINCLINATION="1446;0;"/>
<icon BUILTIN="idea"/>
<node CREATED="1513448017406" ID="ID_753765398" MODIFIED="1513448275095" TEXT="iterNext aufspalten"/>
<node CREATED="1513448019398" ID="ID_1143482463" MODIFIED="1513448026224" TEXT="Invariante explizit machen"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513990803915" FOLDED="true" ID="ID_292438102" MODIFIED="1525124214821" TEXT="IterSource-Integration">
<linktarget COLOR="#659fa4" DESTINATION="ID_292438102" ENDARROW="Default" ENDINCLINATION="853;414;" ID="Arrow_ID_1802135668" SOURCE="ID_1529167083" STARTARROW="None" STARTINCLINATION="674;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513990840253" ID="ID_923982542" MODIFIED="1514050246345" TEXT="wrapper und Iterator bauen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513990851580" ID="ID_1445466432" MODIFIED="1514081134408" TEXT="Traits erweitern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513990858787" ID="ID_1444097417" MODIFIED="1514081138141" TEXT="Funktor erweitern">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1511837384749" FOLDED="true" ID="ID_274979743" MODIFIED="1525124215510" TEXT="asIterSource">
<icon BUILTIN="button_ok"/>
<node CREATED="1512621242778" FOLDED="true" ID="ID_695969017" MODIFIED="1525124214825" TEXT="Eigenschaften">
<icon BUILTIN="info"/>
<node CREATED="1511837396075" ID="ID_1916743569" MODIFIED="1511837401078" TEXT="abschlie&#xdf;ender Dekorator"/>
<node CREATED="1511837401738" ID="ID_289320579" MODIFIED="1511837414204" TEXT="verpackt hinter OO-Interface mit virtuellen Funktionen"/>
<node CREATED="1511837421967" ID="ID_906113750" MODIFIED="1511837433914" TEXT="automatische Heap-Storage"/>
</node>
<node COLOR="#338800" CREATED="1512621260992" FOLDED="true" ID="ID_611871784" MODIFIED="1513473535917" TEXT="erweitertes Interface">
<icon BUILTIN="button_ok"/>
<node COLOR="#990000" CREATED="1512621268527" FOLDED="true" ID="ID_1388034155" MODIFIED="1525124214825" TEXT="wie bauen?">
<icon BUILTIN="help"/>
<node CREATED="1512711450864" ID="ID_1595268563" MODIFIED="1512711455248" TEXT="sollte simpel sein"/>
<node CREATED="1512711430770" ID="ID_217126119" MODIFIED="1512711446628" TEXT="mit builder-Funktion die Baseclass initialisieren"/>
</node>
<node COLOR="#990000" CREATED="1512621274166" FOLDED="true" ID="ID_1452751365" MODIFIED="1525124214825" TEXT="wie expand() an die Quelle weitergeben?">
<icon BUILTIN="help"/>
<node CREATED="1512711382889" ID="ID_1913647489" MODIFIED="1512711393299" TEXT="mu&#xdf; virtuelle methode sein"/>
<node CREATED="1512711396279" ID="ID_633403108" MODIFIED="1512769358637" TEXT="also: mu&#xdf; IterSource erweitern">
<arrowlink COLOR="#b92b64" DESTINATION="ID_1665958887" ENDARROW="Default" ENDINCLINATION="65;-99;" ID="Arrow_ID_1257583135" STARTARROW="None" STARTINCLINATION="-371;-34;"/>
</node>
<node CREATED="1512711404526" ID="ID_17184885" MODIFIED="1512711414688" TEXT="IterSource steckt im shared_ptr"/>
<node CREATED="1512711415324" ID="ID_1951957730" MODIFIED="1512711423975" TEXT="also mu&#xdf; Front-End einen downcast machen"/>
</node>
<node COLOR="#338800" CREATED="1512711462926" FOLDED="true" ID="ID_1665958887" MODIFIED="1525124214825" TEXT="IterSource erweitern">
<linktarget COLOR="#b92b64" DESTINATION="ID_1665958887" ENDARROW="Default" ENDINCLINATION="65;-99;" ID="Arrow_ID_1257583135" SOURCE="ID_633403108" STARTARROW="None" STARTINCLINATION="-371;-34;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#b60303" CREATED="1512711475196" HGAP="15" ID="ID_899953833" MODIFIED="1512769566817" TEXT="Diamond of Death ?!!" VSHIFT="23">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1512711573727" FOLDED="true" ID="ID_1346721743" MODIFIED="1512926193415" TEXT="TODO: virtuelle inheritance nachlesen">
<icon BUILTIN="button_ok"/>
<node CREATED="1512769100530" ID="ID_547968053" MODIFIED="1512769116100" TEXT="vitual mu&#xdf; direkt unter der Basis erfolgen"/>
<node CREATED="1512769116952" ID="ID_1359676759" MODIFIED="1512769124770" TEXT="virtual mu&#xdf; dort in allen Zweigen verwendet werden"/>
<node CREATED="1512769133350" ID="ID_609049064" MODIFIED="1512769142944" TEXT="andernfalles bekommen wir mehrere Sub-Objekte der Basisklasse"/>
</node>
<node CREATED="1512711613841" FOLDED="true" ID="ID_1594826715" MODIFIED="1512926193415" STYLE="fork" TEXT="Kosten? zus&#xe4;tzlicher VTable-Pointer?">
<node CREATED="1512711638574" ID="ID_1769096857" MODIFIED="1512769458120" TEXT="k&#xf6;nnte verschmerzbar sein">
<icon BUILTIN="help"/>
</node>
<node CREATED="1512769160218" ID="ID_155388893" MODIFIED="1512769462006" TEXT="Kosten kommen vom Memory-Layout">
<icon BUILTIN="info"/>
</node>
<node CREATED="1512769179503" ID="ID_1053011981" MODIFIED="1512769198300">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>jeder</i>&#160;Zugriff auf ein Sub-Objekt mu&#223; durch eine VTable
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512769199597" ID="ID_1928524017" MODIFIED="1512769227486">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Stichwort: <b>virtual base offset</b>
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#5229a2" CREATED="1512769231648" ID="ID_925551162" LINK="http://web.archive.org/web/20160413064252/http://www.phpcompiler.org/articles/virtualinheritance.html" MODIFIED="1512769289609" TEXT="Beschreibung der GCC-Implementierung">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1512711586005" FOLDED="true" ID="ID_652398650" MODIFIED="1512926193415" TEXT="vielleicht kein Problem, da wir explizit casten">
<node CREATED="1512769376605" ID="ID_1401491527" MODIFIED="1512769512216" TEXT="ja, workaround">
<arrowlink COLOR="#7c89a1" DESTINATION="ID_813779439" ENDARROW="Default" ENDINCLINATION="178;-25;" ID="Arrow_ID_1765195063" STARTARROW="None" STARTINCLINATION="23;85;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512769383980" ID="ID_415336941" MODIFIED="1512769397102" TEXT="den Zusammenhang nicht im Interface ausdr&#xfc;cken"/>
<node CREATED="1512769398050" ID="ID_1821068883" MODIFIED="1512769409404" TEXT="zusatz-Feature &quot;extendChildren&quot; in separates Interface"/>
</node>
<node COLOR="#2b3cb9" CREATED="1512769068942" ID="ID_1398747892" LINK="https://stackoverflow.com/questions/47722508/cost-of-virtual-inheritance-from-an-interface" MODIFIED="1512769090329" TEXT="Frage auf Stackoverflow gepostet">
<icon BUILTIN="info"/>
</node>
<node CREATED="1512769478607" HGAP="-17" ID="ID_813779439" MODIFIED="1512769512216" TEXT="setze den Workaround um" VSHIFT="28">
<linktarget COLOR="#7c89a1" DESTINATION="ID_813779439" ENDARROW="Default" ENDINCLINATION="178;-25;" ID="Arrow_ID_1765195063" SOURCE="ID_1401491527" STARTARROW="None" STARTINCLINATION="23;85;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1512782185739" FOLDED="true" HGAP="21" ID="ID_787592346" MODIFIED="1525124214825" TEXT="deepCopy()" VSHIFT="13">
<icon BUILTIN="button_cancel"/>
<node CREATED="1512782196185" FOLDED="true" ID="ID_730992497" MODIFIED="1512926193415" TEXT="sinnvoll?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1512782214975" ID="ID_1723806811" MODIFIED="1512782227225" TEXT="Kopie des Iterator Front-End"/>
<node CREATED="1512782228405" ID="ID_1929504787" MODIFIED="1512782239591" TEXT="aber gleiches IterSource Back-End"/>
</node>
<node CREATED="1512782243187" FOLDED="true" ID="ID_836129726" MODIFIED="1512926193416" TEXT="machbar?">
<node CREATED="1512782248162" FOLDED="true" ID="ID_1374048285" MODIFIED="1512926193409" TEXT="analog zu expandChildren">
<icon BUILTIN="idea"/>
<node CREATED="1512782411812" ID="ID_123602287" MODIFIED="1512782418183" TEXT="deepCopy wird virtual function"/>
<node CREATED="1512782418987" ID="ID_1515367406" MODIFIED="1512782431453" TEXT="Implementierung klont und baut neue IterSource"/>
<node CREATED="1512782435761" ID="ID_299702661" MODIFIED="1512782444278" TEXT="ja das w&#xe4;re machbar">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1512782259136" FOLDED="true" ID="ID_1896672181" MODIFIED="1512926193409" TEXT="einigerma&#xdf;en technisch...">
<node CREATED="1512782296798" ID="ID_347250455" MODIFIED="1512782320932" TEXT="es m&#xfc;&#xdf;te sich PackagedTreeExplorerSource selbst bauen k&#xf6;nnen"/>
<node CREATED="1512782329311" ID="ID_1917918946" MODIFIED="1512782351304" TEXT="au&#xdf;erdem m&#xfc;&#xdf;te nun das ChildExpandableSource auf VAL getemplated werden"/>
<node CREATED="1512782382056" ID="ID_657754771" MODIFIED="1512782393002" TEXT="und der ganze Build-Ausdruck wird auf mehrere Klassen verteilt"/>
<node CREATED="1512782393902" ID="ID_1809708776" MODIFIED="1512782398528" TEXT="ned schee">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1512782476707" FOLDED="true" ID="ID_1058031222" MODIFIED="1512926193410" TEXT="fragw&#xfc;rdig....">
<node CREATED="1512782485498" ID="ID_1399160841" MODIFIED="1512782495540" TEXT="normalerweise sind Iteratoren nicht re-startbar"/>
<node CREATED="1512782496417" ID="ID_1935883418" MODIFIED="1512782502387" TEXT="wir k&#xf6;nnten sie sogar move-only machen"/>
<node CREATED="1512782505231" ID="ID_1563966686" MODIFIED="1512782514850" TEXT="und der Pipeline-Builder ist bequem"/>
<node CREATED="1512782515966" ID="ID_4691119" MODIFIED="1512782523832" TEXT="also im Zwefel neu bauen"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512782275078" ID="ID_14348211" MODIFIED="1512782286709" TEXT="im Moment nicht notwendig">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512621185490" FOLDED="true" ID="ID_1611878074" MODIFIED="1525124214826" TEXT="Probleme">
<icon BUILTIN="button_ok"/>
<node CREATED="1512621202688" FOLDED="true" ID="ID_57740660" MODIFIED="1525124214825" TEXT="durchreichen der Basis-Konstruktoren">
<icon BUILTIN="info"/>
<node CREATED="1512706139167" FOLDED="true" ID="ID_1731306892" MODIFIED="1512926193416" TEXT="Basis-Copy-Konstruktoren werden nicht geerbt">
<node CREATED="1512706158004" ID="ID_958479010" MODIFIED="1512706289090" TEXT="nicht in C++14">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da gibt es eine explizite Ausnahme-Regel.
</p>
<p>
Die Copy-Konstruktoren werden aus der Kandidaten-Menge entfernt.
</p>
<p>
</p>
<p>
Grund ist, da&#223; die default-Initialisierung der Member-Felder noch nicht hinrechend gekl&#228;rt war.
</p>
<p>
C++17 holt das nach
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512706162921" ID="ID_601609235" MODIFIED="1512706394332" TEXT="ab C++17 ist das anders">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...dort wird einfach on-demand in der Basisklasse nachgeschaut.
</p>
<p>
Wenn dabei ein Basis-Copy-Ctor gezogen wird, dann wird eben default-Init f&#252;r die Felder im abgeleiteten Objekt gemacht.
</p>
<p>
Es gibt dann eine neue, explizite Regel, die verhindert, da&#223; zuf&#228;llig ein aus der Basis geerbter Ctor
</p>
<p>
die Signatur eines Copy-ctors &#252;berdeckt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512706405155" ID="ID_1013782130" MODIFIED="1512706515474">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Allerdings gen&#252;gt es, dies an <i>einer</i>&#160;Stelle in der Kette zu erg&#228;nzen
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar genau dort, wo erstmals ein Basis-Objekt akzeptiert wird.
</p>
<p>
Das ist bei uns im BaseAdapter, also der ersten Ebene &#252;ber dem zu initialisierenden Basis-Objekt.
</p>
<p>
Alle anderen Layer dar&#252;ber reichen dann korrekt mit dem geerbten Ctor diese Initialisierung nach Unten.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512706516628" ID="ID_1092840037" MODIFIED="1512706656273">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#252;brigens ist es im IterSource&lt;T&gt;::iterator <i>nicht</i>&#160; notwendig
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das war nur ein unn&#246;tiger Fix nach dem Gie&#223;kannen-Prinzip.
</p>
<p>
</p>
<p>
Denn dieser Iterator soll niemals mit einem Basis-Objekt initialisiert werden,
</p>
<p>
sondern stets von der IterSource-Builder-Funktion konstruiert.
</p>
<p>
Und wenn man selber keinen Ctor in eine Klasse schreibt, sondern nur ctor-erbt,
</p>
<p>
dann werden auch die Copy-Konstruktoren korrekt automatisch generiert.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1512621222901" FOLDED="true" ID="ID_701320194" MODIFIED="1525124214825" TEXT="bad function call">
<icon BUILTIN="button_ok"/>
<node CREATED="1512621654283" ID="ID_1975194377" MODIFIED="1512621667489" TEXT="passiert im FIlter-Iterator-Test">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1512621668449" ID="ID_369576813" MODIFIED="1512705931292" TEXT="hab ich einen schon funktionierenden Test gebrochen?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1512705938426" FOLDED="true" ID="ID_483656941" MODIFIED="1512926193416" TEXT="nein: der Test-Code war kaputt">
<icon BUILTIN="ksmiletris"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512705974765" ID="ID_1628672101" MODIFIED="1512706019739" TEXT="Vorsicht: der Builder macht move!">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1512706022079" ID="ID_118572066" MODIFIED="1512706045943" TEXT="d.h. die lokale Variable im Test war danach kaputt..."/>
<node CREATED="1512706051907" ID="ID_133885955" MODIFIED="1512706067900" TEXT="in der vorherigen Version fehlte nur irgendwo in der Kette ein move-ctor"/>
<node CREATED="1512706069104" ID="ID_596682451" MODIFIED="1512706085953" TEXT="und deshalb ist nicht aufgefallen, da&#xdf; das Objekt schon tot war"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512787530248" FOLDED="true" ID="ID_1415286168" MODIFIED="1525124214826" TEXT="IterSource design mismatch">
<icon BUILTIN="hourglass"/>
<node CREATED="1512788814147" ID="ID_499062281" MODIFIED="1512788850106" TEXT="versteckt gecachete Auswertung im Pos-Pointer">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1512788851294" FOLDED="true" ID="ID_185134520" MODIFIED="1512926193416" TEXT="hat nur zwei Iteration-control-Funtkionen">
<node CREATED="1512788924908" ID="ID_1786665760" MODIFIED="1512788936838" TEXT="vmtl. von Java inspiriert">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512788878042" ID="ID_1218734139" MODIFIED="1512788887877" TEXT="rein logisch sollten es 3 sein"/>
<node CREATED="1512788911973" ID="ID_565612331" MODIFIED="1512788919552" TEXT="denn check() != yield()"/>
</node>
<node CREATED="1512788944977" FOLDED="true" ID="ID_1974205271" MODIFIED="1512926193416" TEXT="Konequenz">
<node CREATED="1512788955751" ID="ID_1249769782" MODIFIED="1512788975537" TEXT="Zustand nach letztem iterate() wird verschleppt"/>
<node CREATED="1512788976389" ID="ID_409716481" MODIFIED="1512788989639" TEXT="der Pos-Pointer zeigt irgendwo in die Implementierung"/>
<node CREATED="1512788990467" ID="ID_1029092512" MODIFIED="1512788998757" TEXT="erzeugt ungesunde Koppelung"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512789824290" FOLDED="true" ID="ID_283479652" MODIFIED="1512926193416" TEXT="Beschlu&#xdf;">
<icon BUILTIN="yes"/>
<node CREATED="1512789836161" ID="ID_1758704874" MODIFIED="1512789845955" TEXT="Design von IterSource ist nicht in Ordnung"/>
<node CREATED="1512789847183" ID="ID_1699957562" MODIFIED="1512789865193" TEXT="es sollte sich am &quot;state core&quot;-Schema orientieren"/>
<node CREATED="1512789870516" ID="ID_1318870340" LINK="http://issues.lumiera.org/ticket/1125" MODIFIED="1512794035043">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ticket machen: <font color="#b90736">#1125</font>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#7f5f85" DESTINATION="ID_1318870340" ENDARROW="Default" ENDINCLINATION="867;50;" ID="Arrow_ID_1918593298" SOURCE="ID_1066396845" STARTARROW="None" STARTINCLINATION="483;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1512358595283" FOLDED="true" ID="ID_1526405052" MODIFIED="1525124215511" TEXT="piggyback?">
<icon BUILTIN="stop-sign"/>
<node CREATED="1512358616584" ID="ID_1041373923" MODIFIED="1512358662699" TEXT="&quot;k&#xf6;nnte mal praktisch sein&quot;">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1512358626607" FOLDED="true" ID="ID_853537387" MODIFIED="1525124214828" TEXT="hab die Idee schon lange">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da&#223; man ein Ding komplett in einen Iterator packt,
</p>
<p>
und dieser es dann auch managed
</p>
</body>
</html></richcontent>
<node CREATED="1512358864343" FOLDED="true" ID="ID_1251747225" MODIFIED="1525124214828">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ist das <font color="#9e1124">#190</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1512358896258" ID="ID_62377324" MODIFIED="1512358945435" TEXT="nein das ist was anderes">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1512358903177" ID="ID_1427111206" MODIFIED="1512358940471" TEXT="das w&#xe4;re OpaqueHolder heute">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512358931774" ID="ID_1681797535" MODIFIED="1512358937271" TEXT="plus etwas Magie">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1512358965657" ID="ID_816120367" MODIFIED="1512359005565" TEXT="trotzdem... auch IterSnapshot">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ist partiell diese Idee.
</p>
<p>
Nur auch das auf einem etwas anderem Level,
</p>
<p>
und immer mit einem Heap-allozierten vector
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512358632486" ID="ID_1795551304" MODIFIED="1512358640785" TEXT="aber keine konkrete Anwendung"/>
<node CREATED="1512358649900" FOLDED="true" ID="ID_1625666992" MODIFIED="1525124214828" TEXT="w&#xe4;re hier billig zu haben">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1513473578677" ID="ID_834217894" MODIFIED="1513473581168" TEXT="ja..."/>
<node CREATED="1513473581876" ID="ID_1304656331" MODIFIED="1513473586811" TEXT="bei Bedarf">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941467586" FOLDED="true" ID="ID_381928532" MODIFIED="1533608415426" TEXT="TreeExplorer_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1510969031378" FOLDED="true" ID="ID_1678287752" MODIFIED="1525124215511" TEXT="verify_wrappedIterator();">
<icon BUILTIN="button_ok"/>
<node CREATED="1511054727547" ID="ID_328168347" MODIFIED="1511054858441" TEXT="Problem: mu&#xdf; Iterator-Arten unterscheiden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1511054740579" FOLDED="true" ID="ID_776471136" MODIFIED="1525124214839" TEXT="StateCore direkt verwenden">
<icon BUILTIN="button_ok"/>
<node CREATED="1511054762608" ID="ID_1129026084" MODIFIED="1511054793514" TEXT="mu&#xdf; IterStateWrapper unterst&#xfc;tzen">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1511054775616" ID="ID_1071927856" MODIFIED="1511054795068" TEXT="Metafuntkion um Erweiterungspunkte zu erkennen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511054800851" ID="ID_186154206" MODIFIED="1511054827673" TEXT="Lumiera-Iterator verwenden">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511054810307" ID="ID_418847335" MODIFIED="1511227734539" TEXT="Range-iter um STL -iterable legen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1510969031379" FOLDED="true" ID="ID_1298407683" MODIFIED="1525124215511" TEXT="verify_expandOperation();">
<linktarget COLOR="#5d68b6" DESTINATION="ID_1298407683" ENDARROW="Default" ENDINCLINATION="-53;-200;" ID="Arrow_ID_1214344498" SOURCE="ID_1808038526" STARTARROW="None" STARTINCLINATION="-292;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511227813712" FOLDED="true" ID="ID_942570698" MODIFIED="1525124214840" TEXT="Fall-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1511227821087" ID="ID_1644135845" MODIFIED="1511571551953" TEXT="monadisch / funktional">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1511571810531" ID="ID_84419798" MODIFIED="1511571819891" TEXT="Val -&gt; Core">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511227824495" ID="ID_1299746114" MODIFIED="1511731959295" TEXT="Val -&gt; Iter&lt;Val&gt;">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511571834032" ID="ID_1315469399" MODIFIED="1511754060610" TEXT="Val -&gt; collection&lt;Val&gt;">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511227861867" FOLDED="true" ID="ID_1821706302" MODIFIED="1525124214840" TEXT="Fall-2 ">
<icon BUILTIN="button_ok"/>
<node CREATED="1511227870346" ID="ID_797579225" MODIFIED="1511571541045" TEXT="verzahnte Implementierung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1511227975028" FOLDED="true" ID="ID_1769405758" MODIFIED="1525124214840" TEXT="Sub-F&#xe4;lle">
<node COLOR="#338800" CREATED="1511227917971" ID="ID_200983707" MODIFIED="1511571722416" TEXT="Core&amp; -&gt; Core">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511227902005" ID="ID_1992381343" MODIFIED="1511754553025" TEXT="Core -&gt; Iter&lt;Val&gt;">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1511571746395" FOLDED="true" ID="ID_1199592659" MODIFIED="1512926193416" TEXT="generisches Lambda">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511227944392" ID="ID_881609766" MODIFIED="1511571897315" TEXT="Iter&lt;Val&gt;&amp; -&gt; Core">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511227925202" ID="ID_290152631" MODIFIED="1511755056399" TEXT="Iter&lt;Val&gt; -&gt; Iter&lt;Val&gt;">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510969031379" FOLDED="true" ID="ID_358406634" MODIFIED="1525124215511" TEXT="verify_transformOperation();">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1511835550655" ID="ID_1305788204" MODIFIED="1512276390701" TEXT="Transformer(Iter&lt;Core&gt;)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511835603751" ID="ID_6147833" MODIFIED="1512276267722" TEXT="Transformer(Iter&lt;Val&gt;)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511835716176" ID="ID_1407397782" MODIFIED="1512276211354" TEXT="Transformer mit Seiteneffekt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1511835691963" FOLDED="true" ID="ID_175353270" MODIFIED="1512955657412" TEXT="Transform: generic Lambda">
<icon BUILTIN="button_ok"/>
<node CREATED="1512181454244" ID="ID_23118252" MODIFIED="1512271778125" TEXT="AUA: warum wird hier ein Value als Arguement &#xfc;bergeben">
<arrowlink COLOR="#a83e54" DESTINATION="ID_215116122" ENDARROW="Default" ENDINCLINATION="351;347;" ID="Arrow_ID_891457048" STARTARROW="None" STARTINCLINATION="683;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1512181480616" FOLDED="true" ID="ID_1099744034" MODIFIED="1525124214840" TEXT="Beobachtung: move in join">
<icon BUILTIN="button_ok"/>
<node CREATED="1512181493551" ID="ID_1834475937" MODIFIED="1512181507297" TEXT="Bei &#xdc;bergabe in stringify() fehlt std::forward"/>
<node CREATED="1512181508053" ID="ID_1058623354" MODIFIED="1512181516343" TEXT="transformIterator strippt die Referenz"/>
<node CREATED="1512181517955" ID="ID_517823516" MODIFIED="1512181526366" TEXT="aus LValue wird RValue"/>
<node CREATED="1512181527834" ID="ID_1446020077" MODIFIED="1512181535898" TEXT="Peng">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1512181547263" FOLDED="true" ID="ID_1700050621" MODIFIED="1512926193416" TEXT="Aufkl&#xe4;ren: warum wird Referenz gestrippt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1512349360360" ID="ID_1400970540" MODIFIED="1512349365789" TEXT="vmtl Programmierfehler"/>
<node CREATED="1512349367230" ID="ID_1844975610" MODIFIED="1512349379887" TEXT="IterTool braucht den Typ des Basis-Iterators"/>
<node CREATED="1512349380643" ID="ID_1515581078" MODIFIED="1512349403999">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
versehentlich wurde <i>auch der</i>&#160;an std::forward gegeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512349405280" ID="ID_1121668073" MODIFIED="1512349446256" TEXT="war nachweislich eine echte Fehlfunktion">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
habs mit FormatUtils_test bewiesen
</p>
<p>
Dazu in NumIter einen explizit tracenden move-ctor eingebaut
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512181592137" FOLDED="true" ID="ID_1472433606" MODIFIED="1512926193417" TEXT="im Ergebnis folgenlos, aber gef&#xe4;hrlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil der Aufruf von join(&amp;&amp;) selber wasserdicht ist
</p>
<p>
D.h. er frisst keine Werte.
</p>
<p>
Deshalb f&#228;llt dieses doppelte Problem nicht auf
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1512349447978" ID="ID_1467669966" MODIFIED="1512349453141" TEXT="und zwar wegen util::join"/>
<node CREATED="1512349454562" ID="ID_1337232290" MODIFIED="1512349470555" TEXT="dieses hat --versehentlich-- eine Kopie zu viel gemacht"/>
<node CREATED="1512349471143" ID="ID_540600531" MODIFIED="1512349476953" TEXT="Hurrgha!!!!!">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512349501091" ID="ID_1425293642" MODIFIED="1512349506090" TEXT="beide defekte gefixt">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512355552695" ID="ID_1326048469" MODIFIED="1512355578832" TEXT="Beobachtung: ItemWrapper unterst&#xfc;tzt kein move">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511835901999" FOLDED="true" ID="ID_1717235881" MODIFIED="1525124214840" TEXT="Transform: Core&amp; -&gt; irgendwas">
<icon BUILTIN="help"/>
<node CREATED="1512276512313" ID="ID_725756500" MODIFIED="1512276517860" TEXT="sollte theoretisch m&#xf6;glich sein"/>
<node CREATED="1512276524111" ID="ID_453994757" MODIFIED="1512276583587" TEXT="nicht sonderlich sinnvoll">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil man den konkreten Typ der Core kennen mu&#223;
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1512276518472" ID="ID_1860559214" MODIFIED="1512278316412" TEXT="per Testfall dokumentiert">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510969031379" FOLDED="true" ID="ID_722056043" MODIFIED="1525124215511" TEXT="verify_combinedExpandTransform();">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512363192308" FOLDED="true" ID="ID_1913090689" MODIFIED="1512955646485" TEXT="expand &#xfc;ber Transformer hinweg">
<icon BUILTIN="button_ok"/>
<node CREATED="1512363626338" ID="ID_1302720848" MODIFIED="1512363637547" TEXT="funktioniert out-of-the-Box">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1512363638640" ID="ID_67728054" MODIFIED="1512363645997" TEXT="naja fast">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512363210130" FOLDED="true" ID="ID_480959271" MODIFIED="1512955648908" TEXT="expand aus manipulierendem Transformer">
<icon BUILTIN="button_ok"/>
<node CREATED="1512363649158" ID="ID_1152388495" MODIFIED="1512363655383" TEXT="ebenso">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1512522106792" ID="ID_1499481842" MODIFIED="1512522120926" TEXT="naja fast noch fastiger">
<icon BUILTIN="smiley-neutral"/>
</node>
<node COLOR="#338800" CREATED="1512363659085" ID="ID_1079241242" MODIFIED="1512521919442" TEXT="TODO output CHECK">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512363228751" ID="ID_579206895" MODIFIED="1512516921091" TEXT="Problem: re-evaluate nach expand">
<arrowlink COLOR="#5a92a2" DESTINATION="ID_531127457" ENDARROW="Default" ENDINCLINATION="385;167;" ID="Arrow_ID_556443427" STARTARROW="None" STARTINCLINATION="844;55;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511836579562" FOLDED="true" ID="ID_1718741335" MODIFIED="1525124215511" TEXT="verify_FilterIterator();">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512523719350" ID="ID_351021178" MODIFIED="1512606882124" TEXT="einfaches Pr&#xe4;dikat">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512523726885" ID="ID_282579718" MODIFIED="1512608271472" TEXT="konsumieren bis leer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512523773559" FOLDED="true" ID="ID_917494688" MODIFIED="1525124214840" TEXT="Pr&#xe4;dikat&lt;Core&gt;">
<icon BUILTIN="button_ok"/>
<node CREATED="1512609324903" ID="ID_1654303504" MODIFIED="1512609343982" TEXT="kann an den Vorg&#xe4;ngern vorbeitunneln">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1512523783318" ID="ID_1808219280" MODIFIED="1512611989218" TEXT="Pr&#xe4;dikat&lt;Iter&gt; (generisch)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512523810946" ID="ID_461047497" MODIFIED="1512612006569" TEXT="... mit expand()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512612008548" ID="ID_13525358" MODIFIED="1512612041105" TEXT="...und Seiteneffekt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512612015283" ID="ID_1560717932" MODIFIED="1512612042056" TEXT="...und geklontem Zustand">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512612027105" ID="ID_739092273" MODIFIED="1512612042905" TEXT="...und nachtr&#xe4;glich hinzugef&#xfc;gtem Layer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#2b7d95" CREATED="1512612043592" ID="ID_1719204676" MODIFIED="1512612065051" TEXT="...es lebe die Komplexit&#xe4;t">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1511836589393" FOLDED="true" ID="ID_54165230" MODIFIED="1525124215511" TEXT="verify_asIterSource();">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512620990860" ID="ID_167384287" MODIFIED="1512789972907" TEXT="einfach verpacken">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512620997827" ID="ID_173233581" MODIFIED="1512789974436" TEXT="erzeugte source erneut verpacken">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512621101645" ID="ID_1982135306" MODIFIED="1512789977343" TEXT="Polymorphie: verschiedene Pipelines">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
verschiedendste Pipeline-Konstruktionen
</p>
<p>
k&#246;nnen nun hinter dem gleichen Interface sitzen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512621116947" FOLDED="true" ID="ID_1907769466" MODIFIED="1512955630567" TEXT="durchgeschleifte expandChildren()-Operation">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512787465929" ID="ID_1053911863" MODIFIED="1512788738307" TEXT="Bug!">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512787549870" ID="ID_1969077394" MODIFIED="1512789984536" TEXT="wieder mal kein refresh nach expandChildren()">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1512788719640" ID="ID_1066396845" LINK="http://issues.lumiera.org/ticket/1125" MODIFIED="1512794080241" TEXT="TODO: Design-Mismatch -&gt; Ticket">
<arrowlink COLOR="#7f5f85" DESTINATION="ID_1318870340" ENDARROW="Default" ENDINCLINATION="867;50;" ID="Arrow_ID_1918593298" STARTARROW="None" STARTINCLINATION="483;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1512621383815" FOLDED="true" ID="ID_1705587551" MODIFIED="1512955625640" TEXT="Problem: shallow copy">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
rein ein Problem mit der Test-Fixture.
</p>
<p>
Da die Quelle nun von einem shared-ptr gehalten wird,
</p>
<p>
erzeugt eine Kopie des Iterator-Front-End
</p>
<p>
nun nicht mehr eine Kopie des ganzen Zustandes.
</p>
<p>
</p>
<p>
das w&#228;re aber bequem f&#252;r den Test.
</p>
<p>
<u>Frage</u>: ist das &#252;berhaupt eine gute Idee, vom Design her??
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1512711333823" ID="ID_1629518942" MODIFIED="1512711345303" TEXT="Idee: deepCopy bieten">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1512789897080" ID="ID_1862531344" MODIFIED="1512789900649" TEXT="njet">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1512789907575" ID="ID_1220260137" MODIFIED="1512789914778" TEXT="ist nur ein Problem in Tests etc."/>
<node CREATED="1512789946314" ID="ID_1425696979" MODIFIED="1512789953964" TEXT="widerspricht dem Iteratoren-Konzept"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513990814361" FOLDED="true" ID="ID_306902168" MODIFIED="1525124215512" TEXT="verify_IterSource()">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513990873545" ID="ID_1789456983" MODIFIED="1514050256867" TEXT="einfache Iteration">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514081155455" ID="ID_1538736368" MODIFIED="1514081182820" TEXT="Iteration ohne storage management">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513990880600" ID="ID_1730629901" MODIFIED="1514081152728" TEXT="Iteration + Expansion">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514747089115" FOLDED="true" ID="ID_1696559217" MODIFIED="1525124215512" TEXT="verify_scheduledExpansion">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514747105248" ID="ID_952786179" MODIFIED="1514824954671" TEXT="setup wie child expansion">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514747112048" ID="ID_1206186653" MODIFIED="1514827171677" TEXT="wird aber erst bei Iteration vollzogen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1510969031379" FOLDED="true" ID="ID_1327871737" MODIFIED="1525124215512" TEXT="verify_depthFirstExploration();">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512844598906" ID="ID_933777340" MODIFIED="1512861473722" TEXT="expand incl Parent">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1512952896394" FOLDED="true" ID="ID_501441857" MODIFIED="1512955618961" TEXT="Beispiel mit Tuple als Zwischenwert">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1512952911249" ID="ID_302553275" MODIFIED="1512952934726" TEXT="Funktion mit Tuple-Wert l&#xe4;&#xdf;t sich nicht binden">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512952922127" ID="ID_748691821" MODIFIED="1512955609419" TEXT="Unsinn im Tuple-Helper identifiziert">
<arrowlink COLOR="#408281" DESTINATION="ID_568101334" ENDARROW="Default" ENDINCLINATION="-136;7;" ID="Arrow_ID_1210920107" STARTARROW="None" STARTINCLINATION="-417;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1512952846993" FOLDED="true" HGAP="71" ID="ID_568101334" MODIFIED="1525124214841" TEXT="TupleHelper_test broken" VSHIFT="111">
<linktarget COLOR="#408281" DESTINATION="ID_568101334" ENDARROW="Default" ENDINCLINATION="-136;7;" ID="Arrow_ID_1210920107" SOURCE="ID_748691821" STARTARROW="None" STARTINCLINATION="-417;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1512952975600" FOLDED="true" ID="ID_1282921475" MODIFIED="1525124214840" TEXT="Types&lt;tuple&lt;TYPES...&gt;&gt;">
<node CREATED="1512952994765" ID="ID_1028880050" MODIFIED="1512953023243" TEXT="wurde automatisch gehoben auf Types&lt;TYPES...&gt;">
<icon BUILTIN="info"/>
</node>
<node CREATED="1512953008628" ID="ID_105420180" MODIFIED="1512953018858" TEXT="ziemlich dumme Idee">
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
<node CREATED="1512953639277" FOLDED="true" ID="ID_93632445" MODIFIED="1525124214841" TEXT="broken sind...">
<icon BUILTIN="info"/>
<node CREATED="1512953663356" FOLDED="true" ID="ID_587022650" MODIFIED="1525124214840" TEXT="Tup1 :">
<node CREATED="1512953639278" ID="ID_1100197404" MODIFIED="1512954771519" TEXT="TUPLE-&lt;1&gt;-&lt;3&gt;-&lt;5&gt;-">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512953639278" ID="ID_894542190" MODIFIED="1512954775187" TEXT="TUPLE-&lt;tuple&lt;Num&lt;1&gt;, Num&lt;3&gt;, Num&lt;5&gt; &gt;&gt;-">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1512953674962" FOLDED="true" ID="ID_1880760198" MODIFIED="1525124214840" TEXT="T_L1 :">
<node CREATED="1512953639278" ID="ID_1929044147" MODIFIED="1512954778777" TEXT="TUPLE-&lt;1&gt;-&lt;3&gt;-&lt;5&gt;-">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512953639278" ID="ID_1790615976" MODIFIED="1512954785530" TEXT="TUPLE-&lt;tuple&lt;Num&lt;1&gt;, Num&lt;3&gt;, Num&lt;5&gt; &gt;&gt;-">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1512953684233" FOLDED="true" ID="ID_608070908" MODIFIED="1525124214840" TEXT="Seq1 :">
<node CREATED="1512953639279" ID="ID_1741392154" MODIFIED="1512955031447" TEXT="-&lt;1&gt;-&lt;3&gt;-&lt;5&gt;-">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512953639279" ID="ID_213667790" MODIFIED="1512955034003" TEXT="-&lt;tuple&lt;Num&lt;1&gt;, Num&lt;3&gt;, Num&lt;5&gt; &gt;&gt;-">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1512953692712" FOLDED="true" ID="ID_690443382" MODIFIED="1525124214840" TEXT="Prepend :">
<node CREATED="1512953639279" ID="ID_1949823809" MODIFIED="1512954789660" TEXT="TUPLE-&lt;i&gt;-&lt;1&gt;-&lt;3&gt;-&lt;5&gt;-">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1512953639279" ID="ID_1268362964" MODIFIED="1512954792261" TEXT="TUPLE-&lt;tuple&lt;int, Num&lt;1&gt;, Num&lt;3&gt;, Num&lt;5&gt; &gt;&gt;-">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1512953030113" FOLDED="true" HGAP="21" ID="ID_227944051" MODIFIED="1525124214841" TEXT="bestehenden Code in Commands gefixt" VSHIFT="12">
<icon BUILTIN="button_ok"/>
<node CREATED="1512953037928" ID="ID_1081876156" MODIFIED="1512953052337" TEXT="verwende nun explizite Rebinding-Metafunktion"/>
<node CREATED="1512955051435" ID="ID_1397072837" MODIFIED="1512955062645" TEXT="weitere Fehler im Test-Diagnose-Code">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node COLOR="#990000" CREATED="1512844615941" ID="ID_1111018492" MODIFIED="1512952089605" TEXT="auto expand to leafs">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#990000" CREATED="1512844628403" ID="ID_926180284" MODIFIED="1513217015005" TEXT="Heben von single values">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node COLOR="#338800" CREATED="1510969031379" FOLDED="true" ID="ID_842384656" MODIFIED="1525124215512" TEXT="demonstrate_LayeredEvaluation();">
<icon BUILTIN="button_ok"/>
<node CREATED="1513035990902" FOLDED="true" ID="ID_1647713519" MODIFIED="1525124214841" TEXT="Zweck">
<icon BUILTIN="info"/>
<node CREATED="1513035997493" ID="ID_1010963261" MODIFIED="1513036010287" TEXT="vorbereitender Finger&#xfc;bung f&#xfc;r UI-Coord-Matching"/>
<node CREATED="1513036021682" ID="ID_979180127" MODIFIED="1513036042627" TEXT="demonstriert Arbeiten auf opaque Daten"/>
<node CREATED="1513036050278" ID="ID_1967927817" MODIFIED="1513036064144" TEXT="demonstriert Algo in Layern"/>
</node>
<node CREATED="1513036074899" FOLDED="true" ID="ID_1736020922" MODIFIED="1525124214841" TEXT="Vorgaben">
<icon BUILTIN="yes"/>
<node CREATED="1513036079426" ID="ID_1465268489" MODIFIED="1513036093852" TEXT="Text-Fixture so einfach wie m&#xf6;glich"/>
<node CREATED="1513036109158" ID="ID_142686199" MODIFIED="1513036128095" TEXT="es wird tats&#xe4;chlich etwas Baum-artig gesucht"/>
<node CREATED="1513036128988" ID="ID_1461134959" MODIFIED="1513036135063" TEXT="das Ergebnis ist verifizierbar"/>
</node>
<node CREATED="1513036196163" FOLDED="true" ID="ID_994330749" MODIFIED="1513473349080" TEXT="Idee-1">
<icon BUILTIN="idea"/>
<node CREATED="1513036205114" ID="ID_792801416" MODIFIED="1513036214764" TEXT="zuf&#xe4;llige Zahlenfolge wiederfinden"/>
<node CREATED="1513036215559" ID="ID_971330002" MODIFIED="1513036250591" TEXT="...indem man in N Permutationen hintereinander sucht"/>
<node CREATED="1513036284727" FOLDED="true" ID="ID_1614652691" MODIFIED="1525124214841" TEXT="brauche...">
<icon BUILTIN="forward"/>
<node CREATED="1513036309324" ID="ID_1342792562" MODIFIED="1513036336740" TEXT="Folge von N (zuf&#xe4;lligen) Zahlen"/>
<node CREATED="1513036452217" ID="ID_526681708" MODIFIED="1513036460131" TEXT="permutierte, iterierbare Kopie dieser"/>
<node CREATED="1513036690929" ID="ID_956797377" LINK="http://en.cppreference.com/w/cpp/algorithm/random_shuffle" MODIFIED="1513036739059">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
siehe <font color="#4423e3"><b>std::shuffle</b></font>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1513036568505" FOLDED="true" ID="ID_1862649545" MODIFIED="1525124214841" TEXT="Kritik">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513128587329" ID="ID_1360317308" MODIFIED="1513202754508" TEXT="Ergebnis nicht klar erkennbar"/>
<node CREATED="1513036574968" ID="ID_7224449" MODIFIED="1513036580732" TEXT="ist nicht wirklich ein Baum"/>
<node CREATED="1513202756258" ID="ID_397395434" MODIFIED="1513202760717" TEXT="kein Backtracking"/>
</node>
</node>
<node CREATED="1513128368566" FOLDED="true" ID="ID_405602924" MODIFIED="1513473350640" TEXT="Idee-2">
<icon BUILTIN="idea"/>
<node CREATED="1513128409745" ID="ID_784629005" MODIFIED="1513128419748" TEXT="naive Primfaktor-Zerlegung"/>
<node CREATED="1513129988151" FOLDED="true" ID="ID_1967188076" MODIFIED="1525124214841" TEXT="brauche...">
<icon BUILTIN="forward"/>
<node CREATED="1513129996990" ID="ID_276407850" MODIFIED="1513130019831" TEXT="Baum-artige Darstellung einer repetitiven Berechnung"/>
<node CREATED="1513130020747" ID="ID_308365494" MODIFIED="1513130093541" TEXT="die nicht so verworren ist, da&#xdf; sie sofort abschreckt"/>
</node>
<node CREATED="1513131251047" FOLDED="true" ID="ID_1217476327" MODIFIED="1525124214841" TEXT="Kritik">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513131259926" ID="ID_1015392046" MODIFIED="1513131271729" TEXT="Verfahren ist komplett deterministisch"/>
<node CREATED="1513131272956" ID="ID_1394088821" MODIFIED="1513131285590" TEXT="kein Grund, expandChildren() von au&#xdf;en aufzurufen"/>
</node>
</node>
<node CREATED="1513206569503" FOLDED="true" ID="ID_729219891" MODIFIED="1513473378563" TEXT="Idee-3">
<arrowlink COLOR="#374d84" DESTINATION="ID_570463763" ENDARROW="Default" ENDINCLINATION="2;-39;" ID="Arrow_ID_1149883114" STARTARROW="None" STARTINCLINATION="0;47;"/>
<icon BUILTIN="idea"/>
<node CREATED="1513206594428" ID="ID_678047423" MODIFIED="1513206615387">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
vorgegebene Zahlenfolge<br />in untendlichem Zufalls-Baum finden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513206650964" FOLDED="true" ID="ID_973791239" MODIFIED="1525124214841" TEXT="brauche...">
<icon BUILTIN="forward"/>
<node CREATED="1513206662290" ID="ID_250120880" MODIFIED="1513206691338" TEXT="unendlichen Zufalls-Wald"/>
<node CREATED="1513206692190" ID="ID_1442303873" MODIFIED="1513206708352" TEXT="zuf&#xe4;llige Kind-sequenzen"/>
<node CREATED="1513206709484" ID="ID_1659632018" MODIFIED="1513206720390" TEXT="die nicht sicher zum Erfolg f&#xfc;hren"/>
</node>
<node CREATED="1513206872518" FOLDED="true" ID="ID_1422148890" MODIFIED="1525124214841" TEXT="wichtig">
<icon BUILTIN="yes"/>
<node CREATED="1513206889508" ID="ID_436020243" MODIFIED="1513206900054" TEXT="Trennung zwischen Baum und Suche"/>
<node CREATED="1513207103464" ID="ID_919723140" MODIFIED="1513207144478" TEXT="durchgehender Zustand in der Suche"/>
<node CREATED="1513207165088" ID="ID_529012246" MODIFIED="1513207191511" TEXT="Nichtdeterminismus, aber 99.9999% Erfolgs-Chancen"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513218546828" FOLDED="true" HGAP="-37" ID="ID_570463763" MODIFIED="1525124214842" TEXT="konkret..." VSHIFT="37">
<linktarget COLOR="#374d84" DESTINATION="ID_570463763" ENDARROW="Default" ENDINCLINATION="2;-39;" ID="Arrow_ID_1149883114" SOURCE="ID_729219891" STARTARROW="None" STARTINCLINATION="0;47;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513218561938" ID="ID_1431731183" MODIFIED="1513473294567" TEXT="randomTree bauen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513218569000" ID="ID_973922179" MODIFIED="1513473296220" TEXT="Zustands-Typ bauen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1513218582175" FOLDED="true" ID="ID_1963772553" MODIFIED="1525124214842" TEXT="Probleme">
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1513218627121" FOLDED="true" ID="ID_1077327965" MODIFIED="1513473496041" TEXT="Bottom-Error">
<arrowlink COLOR="#179a76" DESTINATION="ID_474013760" ENDARROW="Default" ENDINCLINATION="513;33;" ID="Arrow_ID_1289625747" STARTARROW="None" STARTINCLINATION="426;-150;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1513218635200" ID="ID_418877787" MODIFIED="1513218650010" TEXT="beim Materialisieren der Random-Target-Sequenz"/>
</node>
<node COLOR="#338800" CREATED="1513218664652" FOLDED="true" ID="ID_606716798" MODIFIED="1513476731235" TEXT="join kopiert einmal zu viel">
<icon BUILTIN="button_ok"/>
<node CREATED="1513218677962" ID="ID_533421172" MODIFIED="1513218685429" TEXT="Ha! in der For-Schleife"/>
<node CREATED="1513218687113" ID="ID_108639825" MODIFIED="1513218698203" TEXT="der Iter ist benannt, also wird kopiert"/>
<node CREATED="1513218699103" FOLDED="true" ID="ID_645074355" MODIFIED="1525124214841" TEXT="ENABLE_IN_STD_FOR_LOOP">
<icon BUILTIN="help"/>
<node CREATED="1513218716941" ID="ID_1490164328" MODIFIED="1513476644166" TEXT="ist das so korrekt?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1513476644949" ID="ID_1188646042" MODIFIED="1513476648032" TEXT="ich denke schon"/>
<node CREATED="1513476649092" ID="ID_1643873286" MODIFIED="1513476698904">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
man kann move(iter) verwenden,
</p>
<p>
wenn man konsumieren m&#246;chte
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513476700629" ID="ID_316067173" MODIFIED="1513476716421" TEXT="...oder eine handgeschriebene FOR-Schleife">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513218727603" ID="ID_1592038855" MODIFIED="1513476627801" TEXT="while-Schleife verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513219035419" FOLDED="true" ID="ID_1033553745" MODIFIED="1513473487443" TEXT="pr&#xfc;fen: default constructible state core">
<icon BUILTIN="button_ok"/>
<node CREATED="1513219271307" ID="ID_474013760" MODIFIED="1513284051101" TEXT="hier liegt der Hund begraben">
<linktarget COLOR="#179a76" DESTINATION="ID_474013760" ENDARROW="Default" ENDINCLINATION="513;33;" ID="Arrow_ID_1289625747" SOURCE="ID_1077327965" STARTARROW="None" STARTINCLINATION="426;-150;"/>
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1513219330467" ID="ID_37372305" MODIFIED="1513284091448" TEXT="default-konstruierte RandomSeq mu&#xdf; leer sein!">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1513473427921" FOLDED="true" ID="ID_530629075" MODIFIED="1525124214841" TEXT="Algo-State ist nicht default-constructible">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1513473445287" ID="ID_482215181" MODIFIED="1513473460312" TEXT="aber man man kommt damit &#xfc;ber die Runden"/>
<node CREATED="1513473461140" ID="ID_9651434" MODIFIED="1513473477134" TEXT="solange man den resultierenden Iterator nicht default-konstruiert"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513283787640" FOLDED="true" ID="ID_1300399860" MODIFIED="1513476755527" TEXT="Protokoll-pop funktioniert nicht">
<icon BUILTIN="stop-sign"/>
<node CREATED="1513283807613" ID="ID_711568006" MODIFIED="1513283821335" TEXT="ersch&#xf6;pfter Kind-Iter wird nicht wegger&#xe4;umt"/>
<node CREATED="1513283822323" ID="ID_1993626666" MODIFIED="1513283848220" TEXT="Folge: es wird auf dem letzten Element weitergez&#xe4;hlt"/>
<node CREATED="1513283849472" FOLDED="true" ID="ID_1522104923" MODIFIED="1525124214841" TEXT="Aber der Basis-Iter (Datenquelle) funktioniert korrekt">
<node CREATED="1513283998356" ID="ID_265634850" MODIFIED="1513284011958" TEXT="deshalb funktioniert der Basis-Algo halbwegs"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513284012947" ID="ID_968932002" MODIFIED="1513476746547" TEXT="aber kein korrekte Backtracking">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513284021720" ID="ID_591353215" MODIFIED="1513476751387" TEXT="und das Protokoll geht out-of sync">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1513283870965" FOLDED="true" ID="ID_372321627" MODIFIED="1525124214842" TEXT="Verdacht: wieder IterSrource schuld">
<icon BUILTIN="button_cancel"/>
<node CREATED="1513283882027" ID="ID_835741483" MODIFIED="1513283887198" TEXT="iterate hinter Ende"/>
<node CREATED="1513283888099" ID="ID_418628311" MODIFIED="1513283895629" TEXT="h&#xe4;tte den Pointer auf NULL setzen m&#xfc;ssen"/>
<node CREATED="1513286352195" ID="ID_613044101" MODIFIED="1513286362260" TEXT="nein, das ist es nicht">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1513286365209" ID="ID_1245783923" MODIFIED="1513286383453" TEXT="dataSrc poppt ja transparent...">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1513286396525" FOLDED="true" ID="ID_1013175212" MODIFIED="1525124214842" TEXT="Logisches Problem mit layered expand">
<arrowlink COLOR="#9c5265" DESTINATION="ID_263549307" ENDARROW="Default" ENDINCLINATION="189;145;" ID="Arrow_ID_1920033917" STARTARROW="None" STARTINCLINATION="1219;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1513286420386" ID="ID_32133695" MODIFIED="1513286442066" TEXT="oberer Layer bekommt Ende der Quell-Folge nicht mit"/>
<node CREATED="1513286442822" ID="ID_1310607126" MODIFIED="1513286465873" TEXT="...und macht daher endlos mit den Kindern weiter">
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513396403408" FOLDED="true" ID="ID_1034289731" MODIFIED="1525124214842" TEXT="pragmatischer Workaround">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513396411416" ID="ID_1466307579" MODIFIED="1513401380676" TEXT="Tiefe &#xfc;ber ChildExpandableSource durchgeben">
<arrowlink COLOR="#75c4c1" DESTINATION="ID_1752199055" ENDARROW="Default" ENDINCLINATION="653;643;" ID="Arrow_ID_1536391130" STARTARROW="None" STARTINCLINATION="1299;33;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513401151507" FOLDED="true" ID="ID_1181955496" MODIFIED="1525124214842" TEXT="Protokoll aber immer noch nicht korrekt implementiert">
<arrowlink COLOR="#63b5aa" DESTINATION="ID_804459643" ENDARROW="Default" ENDINCLINATION="456;372;" ID="Arrow_ID_1606709369" STARTARROW="None" STARTINCLINATION="1446;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1513401162242" ID="ID_147162782" MODIFIED="1513401173005" TEXT="push am Ende"/>
<node CREATED="1513401192358" ID="ID_91552039" MODIFIED="1513401294410" TEXT="Beispiel &quot;FAVSU&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
rLet(40878 &lt; 18446744073709551615) &#8594; S
</p>
<p>
|&#8623;| S ... 40878
</p>
<p>
rLet(40879 &lt; 18446744073709551615) &#8594; F
</p>
<p>
|!| expand 40879
</p>
<p>
rLet(0 &lt; 4) &#8594; A
</p>
<p>
rLet(40880 &lt; 18446744073709551615) &#8594; Q
</p>
<p>
|.| A --&gt;&gt; 40879
</p>
<p>
|!| expand 40879
</p>
<p>
rLet(0 &lt; 4) &#8594; F
</p>
<p>
rLet(1 &lt; 4) &#8594; N
</p>
<p>
|.| F --&gt;&gt; 40879
</p>
<p>
|&#8623;| F ... 40879
</p>
<p>
rLet(1 &lt; 4) &#8594; W
</p>
<p>
|&#8623;| W ... 40879-0-1
</p>
<p>
rLet(2 &lt; 4) &#8594; N
</p>
<p>
|&#8623;| N ... 40879-0-2
</p>
<p>
rLet(3 &lt; 4) &#8594; T
</p>
<p>
|&#8623;| T ... 40879-0-3
</p>
<p>
rLet(4 &lt; 4) &#8594; F
</p>
<p>
|&#8623;| N ... 40879-1
</p>
<p>
rLet(2 &lt; 4) &#8594; F
</p>
<p>
|&#8623;| F ... 40879-2
</p>
<p>
rLet(3 &lt; 4) &#8594; A
</p>
<p>
|!| expand 40879-3
</p>
<p>
rLet(0 &lt; 4) &#8594; J
</p>
<p>
rLet(4 &lt; 4) &#8594; Y
</p>
<p>
|.| J --&gt;&gt; 40879-3
</p>
<p>
|&#8623;| J ... 40879-3
</p>
<p>
rLet(1 &lt; 4) &#8594; H
</p>
<p>
|&#8623;| H ... 40879-4
</p>
<p>
rLet(2 &lt; 4) &#8594; H
</p>
<p>
|&#8623;| H ... 40879-5
</p>
<p>
rLet(3 &lt; 4) &#8594; F
</p>
<p>
|&#8623;| F ... 40879-6
</p>
<p>
rLet(4 &lt; 4) &#8594; V
</p>
<p>
|&#8623;| Q ... 40880
</p>
<p>
rLet(40881 &lt; 18446744073709551615) &#8594; A
</p>
<p>
|&#8623;| A ... 40881
</p>
<p>
rLet(40882 &lt; 18446744073709551615) &#8594; X
</p>
<p>
|&#8623;| X ... 40882
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513401185198" ID="ID_933999759" MODIFIED="1513473212036" TEXT="Z&#xe4;hler l&#xe4;uft weiter">
<icon BUILTIN="info"/>
</node>
<node CREATED="1513473196754" ID="ID_570569140" MODIFIED="1513473207824" TEXT="L&#xf6;sung: depth()-Infromation nutzen">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513447822247" ID="ID_1725576262" MODIFIED="1513448159466" TEXT="jetzt scheint&apos;s zu funktionieren...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
rLet(77943 &lt; 18446744073709551615) &#8594; R
</p>
<p>
|&#8623;| R ... 77943
</p>
<p>
rLet(77944 &lt; 18446744073709551615) &#8594; X
</p>
<p>
|!| expand 77944
</p>
<p>
rLet(0 &lt; 4) &#8594; U
</p>
<p>
rLet(77945 &lt; 18446744073709551615) &#8594; I
</p>
<p>
|.| U --&gt;&gt; 77944-0
</p>
<p>
|&#8623;| U ... 77944-0
</p>
<p>
rLet(1 &lt; 4) &#8594; X
</p>
<p>
|!| expand 77944-1
</p>
<p>
rLet(0 &lt; 4) &#8594; K
</p>
<p>
rLet(2 &lt; 4) &#8594; Z
</p>
<p>
|.| K --&gt;&gt; 77944-1-0
</p>
<p>
|!| expand 77944-1-0
</p>
<p>
rLet(0 &lt; 4) &#8594; V
</p>
<p>
rLet(1 &lt; 4) &#8594; Y
</p>
<p>
|.| V --&gt;&gt; 77944-1-0-0
</p>
<p>
|&#8623;| V ... 77944-1-0-0
</p>
<p>
rLet(1 &lt; 4) &#8594; I
</p>
<p>
|&#8623;| I ... 77944-1-0-1
</p>
<p>
rLet(2 &lt; 4) &#8594; I
</p>
<p>
|&#8623;| I ... 77944-1-0-2
</p>
<p>
rLet(3 &lt; 4) &#8594; Z
</p>
<p>
|!| expand 77944-1-0-3
</p>
<p>
rLet(0 &lt; 4) &#8594; Q
</p>
<p>
rLet(4 &lt; 4) &#8594; X
</p>
<p>
|.| Q --&gt;&gt; 77944-1-0-3-0
</p>
<p>
|&#8623;| Q ... 77944-1-0-3-0
</p>
<p>
rLet(1 &lt; 4) &#8594; M
</p>
<p>
Protocol of the search: 77944-1-0-3-1
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941646050" ID="ID_596422747" MODIFIED="1535892395441" TEXT="expandable ChildIter">
<linktarget COLOR="#283b63" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="66;49;" ID="Arrow_ID_1521598219" SOURCE="ID_1408571420" STARTARROW="Default" STARTINCLINATION="94;-19;"/>
<linktarget COLOR="#786296" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="278;120;" ID="Arrow_ID_1919142695" SOURCE="ID_115330701" STARTARROW="None" STARTINCLINATION="952;148;"/>
<linktarget COLOR="#236375" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="-1080;23;" ID="Arrow_ID_1748772698" SOURCE="ID_463934766" STARTARROW="None" STARTINCLINATION="-1002;-57;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1510941655360" ID="ID_1359727169" MODIFIED="1514292297209" TEXT="verwendet TreeExplorer">
<arrowlink COLOR="#585e9d" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-23;161;" ID="Arrow_ID_402051988" STARTARROW="None" STARTINCLINATION="138;6;"/>
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1510941661615" ID="ID_463290050" MODIFIED="1514292291295" TEXT="verpackt in IterSource">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513561602173" HGAP="180" ID="ID_760843174" MODIFIED="1535891853006" TEXT="Design" VSHIFT="29">
<icon BUILTIN="button_ok"/>
<node CREATED="1513560607636" FOLDED="true" ID="ID_774099115" MODIFIED="1533608415430" TEXT="expand -- wie?">
<icon BUILTIN="help"/>
<node CREATED="1513560618698" ID="ID_471382650" MODIFIED="1513560638771" TEXT="Brauche Navigations-Zustand"/>
<node CREATED="1513560639504" ID="ID_1901070791" MODIFIED="1513560645283" TEXT="eine Position im Baum"/>
<node CREATED="1513560646014" ID="ID_812625308" MODIFIED="1513560649570" TEXT="implementation defined"/>
<node CREATED="1513560650614" ID="ID_127083955" MODIFIED="1513560657793" TEXT="mu&#xdf; dort Kind-iterieren k&#xf6;nnen"/>
</node>
<node CREATED="1513561422541" FOLDED="true" ID="ID_1500554436" MODIFIED="1535891901910" TEXT="was ist depth()?">
<arrowlink COLOR="#62326e" DESTINATION="ID_1709677569" ENDARROW="Default" ENDINCLINATION="-209;-29;" ID="Arrow_ID_894748806" STARTARROW="Default" STARTINCLINATION="43;132;"/>
<linktarget COLOR="#9493b7" DESTINATION="ID_1500554436" ENDARROW="Default" ENDINCLINATION="91;103;" ID="Arrow_ID_811314610" SOURCE="ID_937539446" STARTARROW="None" STARTINCLINATION="-39;0;"/>
<icon BUILTIN="help"/>
<node CREATED="1513561437011" ID="ID_263179318" MODIFIED="1513561443415" TEXT="absolut oder relativ"/>
<node CREATED="1513561451138" FOLDED="true" ID="ID_1617286796" MODIFIED="1525124215512" TEXT="absolut">
<node CREATED="1513561456016" ID="ID_1274246203" MODIFIED="1513561465683" TEXT="Tiefe im Gesamt-Baum"/>
<node CREATED="1513561467719" ID="ID_339272046" MODIFIED="1513561480090" TEXT="startet am Aufsetz-Punkt"/>
<node CREATED="1513561484277" ID="ID_1051233845" MODIFIED="1513561491224" TEXT="kein Aufstieg dar&#xfc;ber m&#xf6;glich"/>
</node>
<node CREATED="1513561492668" FOLDED="true" ID="ID_600604579" MODIFIED="1525124215512" TEXT="relativ">
<node CREATED="1513561497003" ID="ID_860544223" MODIFIED="1513561508950" TEXT="expandChildren-Level"/>
<node CREATED="1513561509754" ID="ID_1041068517" MODIFIED="1513561522123" TEXT="startet mit 0 f&#xfc;r normalen ChildIterator"/>
<node CREATED="1513561531383" ID="ID_442154302" MODIFIED="1513561547728" TEXT="Match-Algo mu&#xdf; start-Offset verwalten und draufschlagen"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513561577840" FOLDED="true" HGAP="63" ID="ID_260039139" MODIFIED="1535891938689" TEXT="Struktur Navigations-Zustand" VSHIFT="22">
<icon BUILTIN="button_ok"/>
<node CREATED="1513561744004" ID="ID_937539446" MODIFIED="1513961543467" TEXT="h&#xe4;ngt ab von relativ/absolut?">
<arrowlink COLOR="#9493b7" DESTINATION="ID_1500554436" ENDARROW="Default" ENDINCLINATION="91;103;" ID="Arrow_ID_811314610" STARTARROW="None" STARTINCLINATION="-39;0;"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1513561681235" FOLDED="true" ID="ID_671830446" MODIFIED="1525124215512" TEXT="relativ =&gt; Node-Ref gen&#xfc;gt">
<icon BUILTIN="help"/>
<node COLOR="#338800" CREATED="1513561715590" ID="ID_1509891681" MODIFIED="1513859782028" TEXT="nein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513561717958" ID="ID_333457131" MODIFIED="1513561721993" TEXT="Sonderfall Perspektive"/>
<node CREATED="1513859759850" ID="ID_799120258" MODIFIED="1513859771462" TEXT="Grunds&#xe4;tzlich kann es Sonderf&#xe4;lle geben">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1513561916554" ID="ID_1130596381" MODIFIED="1513561945359" TEXT="(node&amp;, depth)">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1513562001015" FOLDED="true" ID="ID_1952968226" MODIFIED="1535891935962" TEXT="zuz&#xfc;glich konkretem Kind-Iterator">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513564476303" FOLDED="true" ID="ID_718816032" MODIFIED="1535891933050" TEXT="Problem: Typ">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513564486206" ID="ID_586028205" MODIFIED="1513564495520" TEXT="Typ ist nicht uniform"/>
<node CREATED="1513564496228" ID="ID_559674728" MODIFIED="1513564503503" TEXT="wird erst hinter IterSource konform"/>
<node CREATED="1513564546974" ID="ID_301275475" MODIFIED="1513887480560" TEXT="wirklich relevantes Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil es mutma&#223;lich
</p>
<p>
im realen UI in &#228;hnlicher Form auch auftreten wird:
</p>
<p>
die Menge der Top-Level-Fenster ist eben etwas anderes,
</p>
<p>
als die Menge der Tracks in der Timeline.
</p>
<p>
</p>
<p>
Erst nach einer Transformation wird daraus eine Menge von Strings
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513859299432" FOLDED="true" ID="ID_1668202627" MODIFIED="1525124214849" TEXT="Minimal-Forderungen">
<icon BUILTIN="info"/>
<node CREATED="1513859392644" ID="ID_368154471" MODIFIED="1513859402742" TEXT="Verh&#xe4;ltnis von Original zu Expanded"/>
<node CREATED="1513859408489" ID="ID_1040511060" MODIFIED="1513859645105" TEXT="Expanded::yield mu&#xdf; kompatibel zu Original::yield sein">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1513859477704" FOLDED="true" ID="ID_1667428111" MODIFIED="1525124214849">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Expand-Funktor hat <i>einen</i>&#160;R&#252;ckgabe-Typ
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
<node CREATED="1513859590489" ID="ID_1305886859" MODIFIED="1513859654062" TEXT="das ist die st&#xe4;rkste Limitierung">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1513859609438" ID="ID_1238327119" MODIFIED="1513859619487" TEXT="nicht Referenz-kompatibel">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1513859597904" ID="ID_35135467" MODIFIED="1513859623114" TEXT="Wert-Kopie-kompatibel">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1513864109584" FOLDED="true" HGAP="58" ID="ID_363837528" MODIFIED="1513978344340" TEXT="gesucht ist...." VSHIFT="-10">
<icon BUILTIN="info"/>
<node CREATED="1513864121911" ID="ID_137778872" MODIFIED="1513864124330" TEXT="State-Core"/>
<node CREATED="1513864125110" FOLDED="true" ID="ID_102689213" MODIFIED="1525124214849" TEXT="(node&amp;, depth)">
<node CREATED="1513864147403" ID="ID_1713142534" MODIFIED="1513864154086" TEXT="wegen Spezial-Behandlung"/>
<node CREATED="1513864155194" ID="ID_173512509" MODIFIED="1513864163093" TEXT="an die Kinder rankommen"/>
</node>
<node CREATED="1513864167704" FOLDED="true" ID="ID_1035755808" MODIFIED="1525124214849" TEXT="aktuelle-Kind-Iteratrion">
<node CREATED="1513864226776" ID="ID_744083786" MODIFIED="1513864232132" TEXT="fester Typ"/>
<node CREATED="1513864232744" ID="ID_856825900" MODIFIED="1513864245898" TEXT="variablel wegen Spezial-Behandlung"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1513864247318" ID="ID_522758461" MODIFIED="1513889050556" TEXT="Widerspruch">
<icon BUILTIN="broken-line"/>
</node>
</node>
<node CREATED="1513864213482" ID="ID_1903636205" MODIFIED="1513864220098" TEXT="keine zus&#xe4;tzliche Allokation">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1513889026175" FOLDED="true" ID="ID_1644294386" MODIFIED="1525124214850" TEXT="L&#xf6;sungs-M&#xf6;glichkeiten">
<node CREATED="1513889102196" ID="ID_583394337" MODIFIED="1513890986515" TEXT="zweimal VTable">
<linktarget COLOR="#3c6aa0" DESTINATION="ID_583394337" ENDARROW="Default" ENDINCLINATION="313;-25;" ID="Arrow_ID_387579532" SOURCE="ID_1469033836" STARTARROW="None" STARTINCLINATION="309;-7;"/>
</node>
<node CREATED="1513889145935" FOLDED="true" ID="ID_1909411263" MODIFIED="1525124214849" TEXT="protokoll-basierter Iterator">
<node CREATED="1513889759051" ID="ID_1243725514" MODIFIED="1513889793242" TEXT="analog zu IterAdapter"/>
<node CREATED="1513889793879" ID="ID_1469033836" MODIFIED="1513890986515" TEXT="braucht aber Funktions-Zeiger">
<arrowlink COLOR="#3c6aa0" DESTINATION="ID_583394337" ENDARROW="Default" ENDINCLINATION="313;-25;" ID="Arrow_ID_387579532" STARTARROW="None" STARTINCLINATION="309;-7;"/>
</node>
<node CREATED="1513890876028" ID="ID_1863789470" MODIFIED="1513890944145" TEXT="oder gemeinsame Datenstruktur">
<arrowlink COLOR="#3b69a0" DESTINATION="ID_1440266471" ENDARROW="Default" ENDINCLINATION="299;33;" ID="Arrow_ID_141537663" STARTARROW="None" STARTINCLINATION="258;0;"/>
</node>
</node>
<node CREATED="1513889813876" ID="ID_1440266471" MODIFIED="1513890944145" TEXT="Abstraktion via Datenstruktur">
<linktarget COLOR="#3b69a0" DESTINATION="ID_1440266471" ENDARROW="Default" ENDINCLINATION="299;33;" ID="Arrow_ID_141537663" SOURCE="ID_1863789470" STARTARROW="None" STARTINCLINATION="258;0;"/>
</node>
<node CREATED="1513890469187" FOLDED="true" ID="ID_572634197" MODIFIED="1525124214850" TEXT="Expander vor IterSource setzen">
<node CREATED="1513891132026" HGAP="30" ID="ID_1902519381" MODIFIED="1513891279623" TEXT="Stack of IterSources" VSHIFT="13">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1513891253569" FOLDED="true" ID="ID_972377662" MODIFIED="1525124214850" TEXT="Bauformen">
<node CREATED="1513891231085" ID="ID_1187042759" MODIFIED="1513891239903" TEXT="aus zwei TreeExplorern zusammengesetzt"/>
<node CREATED="1513891240587" ID="ID_1455962854" MODIFIED="1513891250606" TEXT="in das IterSource-Interface integriert"/>
</node>
</node>
</node>
</node>
<node CREATED="1513891620064" FOLDED="true" HGAP="-78" ID="ID_393488703" MODIFIED="1535891925091" TEXT="Diskussion" VSHIFT="10">
<icon BUILTIN="forward"/>
<node CREATED="1513891660578" FOLDED="true" ID="ID_1557026848" MODIFIED="1525124214857" TEXT="heterogener Baum">
<node CREATED="1513891666641" ID="ID_84511927" MODIFIED="1513891673373" TEXT="erzwingt Abstraktion"/>
<node CREATED="1513891674913" ID="ID_1300876479" MODIFIED="1513891696041" TEXT="erzgingt Platzhalter f&#xfc;r &quot;Position&quot;"/>
</node>
<node CREATED="1513891739920" FOLDED="true" ID="ID_1279255374" MODIFIED="1525124214857" TEXT="Meta-Datenstruktur == Reflection">
<node CREATED="1513891751766" ID="ID_1061575112" MODIFIED="1513891760585" TEXT="mu&#xdf; nicht per se schlecht sein"/>
<node CREATED="1513891771979" ID="ID_1279317536" MODIFIED="1513891793738">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>wenn</i>&#160;es sie g&#228;be <i>k&#246;nnte</i>&#160;man sie hier nutzen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513891804199" FOLDED="true" ID="ID_992579634" MODIFIED="1525124214857" TEXT="Ideen">
<node CREATED="1513891809406" ID="ID_397605243" MODIFIED="1513891818033" TEXT="GTK-Widget-Container"/>
<node CREATED="1513891818933" ID="ID_1781581570" MODIFIED="1513891823696" TEXT="GObject"/>
<node CREATED="1513891825708" ID="ID_1596653216" MODIFIED="1513891848885" TEXT="gui::model::Tangible"/>
</node>
<node CREATED="1513891876365" ID="ID_39114883" MODIFIED="1513891928397" TEXT="Knackpunkt: Struktur mu&#xdf; schon da sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t:
</p>
<p>
diese Struktur mu&#223; bereits beim Aufbauen des GUI
</p>
<p>
nebenbei mit aufgebaut werden, und &#252;ber alle
</p>
<p>
mutierenden Aktionen hinweg automatisch konsistent bleiben
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#37417e" CREATED="1513891943436" ID="ID_1217718033" MODIFIED="1513891970693" TEXT="ist mir unsympatisch">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1513892821757" ID="ID_812339590" MODIFIED="1513892833608" TEXT="Navigation allein erzwingt schon VTable"/>
<node CREATED="1513893044279" FOLDED="true" ID="ID_1996211433" MODIFIED="1525124214858" TEXT="Nav und IterSource verschmelzen">
<icon BUILTIN="idea"/>
<node CREATED="1513893027482" ID="ID_1061106814" MODIFIED="1513893042316" TEXT="minimales Design"/>
<node CREATED="1513893243100" FOLDED="true" ID="ID_622400006" MODIFIED="1525124214857" TEXT="Cursor-Interface">
<node CREATED="1513893512792" ID="ID_254466319" MODIFIED="1513893533977" TEXT="Iteration: next sibling"/>
<node CREATED="1513893536957" ID="ID_1831743270" MODIFIED="1513893551318" TEXT="Up: zum Vater"/>
<node CREATED="1513893552050" ID="ID_917117587" MODIFIED="1513893567173" TEXT="expand: Kind-Navigator"/>
<node CREATED="1513893589742" ID="ID_487266516" MODIFIED="1513893601664" TEXT="yield: Knoten-ID"/>
<node CREATED="1513893602348" ID="ID_1276818073" MODIFIED="1513893611167" TEXT="path: konstruiere UI-Coord"/>
</node>
<node CREATED="1513961350296" ID="ID_1067031793" MODIFIED="1513961358138" TEXT="TreeExplorer k&#xf6;nnte sowas unterst&#xfc;tzen..."/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513893637863" FOLDED="true" ID="ID_1710637822" MODIFIED="1525124214857" TEXT="sch&#xf6;n aber fragw&#xfc;rdig">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513893645254" ID="ID_111789267" MODIFIED="1513893649713" TEXT="YAGNI"/>
<node CREATED="1513893653949" ID="ID_201919603" MODIFIED="1513893660896" TEXT="Up erfordert Backlink"/>
<node CREATED="1513893682521" ID="ID_1477689037" MODIFIED="1513893811288">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>m&#246;glicherwese</i>&#160;aber notwendig
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen
</p>
<p>
wenn ich mir heute so die Situation vorstelle,
</p>
<p>
k&#246;nnte es darauf hinauslaufen, da&#223; man das braucht.
</p>
<p>
Und zwar, zumindest die Eigenschaft, von gegebenem Element
</p>
<p>
die Koordinaten zu ermitteln.
</p>
<p>
</p>
<p>
Das ist aber dann <i>pratkisch auch schon</i>&#160;eine &quot;Up&quot;-Funktion,
</p>
<p>
selbst wenn man sie nur indirekt implementiert
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1513893841787" FOLDED="true" ID="ID_588599089" MODIFIED="1535891923427">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>vorl&#228;ufige</i>&#160;MInimal-L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1513893858089" ID="ID_1090821912" MODIFIED="1513893873067" TEXT="nur Expander nach au&#xdf;en ziehen"/>
<node CREATED="1513893873983" ID="ID_926734576" MODIFIED="1513893886449" TEXT="und fest als &quot;Iterator&quot;-Klasse definieren"/>
<node CREATED="1513894301013" FOLDED="true" ID="ID_1705515857" MODIFIED="1525124214858" TEXT="aktuell">
<node CREATED="1513893940206" ID="ID_1268073991" MODIFIED="1513893969869">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>bis jetzt</i>&#160;kommen wir ohne <b>Pos</b>-Abstraktion aus
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1513893892581" ID="ID_447708501" MODIFIED="1513893978568">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das <b>Nav</b>-Interface k&#246;nnte daraus entstehen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513893916705" ID="ID_1837000174" MODIFIED="1513894531402" TEXT="als nested-Interface von LocationQuery"/>
</node>
<node COLOR="#177d54" CREATED="1513894057318" FOLDED="true" HGAP="19" ID="ID_1657702066" MODIFIED="1535891921460" TEXT="Weiterungen..." VSHIFT="28">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1513894072292" ID="ID_550737261" MODIFIED="1513894085095" TEXT="die n&#xe4;chsten Schritte w&#xe4;ren....">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513894141899" ID="ID_210080543" MODIFIED="1513894154501" TEXT="IterSource control-API umbauen"/>
<node CREATED="1513894156185" ID="ID_1081040201" MODIFIED="1513894165924" TEXT="spezielle StateCore f&#xfc;r IterSource"/>
<node CREATED="1513894173999" ID="ID_1818551612" MODIFIED="1513894187080" TEXT="...damit das breiter API aus Funktoren zug&#xe4;nglich wird"/>
<node CREATED="1513894188668" ID="ID_910323938" MODIFIED="1513894200942" TEXT="TreeExplorer erkennt IterSource"/>
<node CREATED="1513894240293" ID="ID_1730534731" MODIFIED="1513894256719" TEXT="Expander kann expand-Funktor in VTable nutzen"/>
</node>
</node>
</node>
</node>
<node CREATED="1513961595678" FOLDED="true" HGAP="101" ID="ID_66715685" MODIFIED="1533608415448" TEXT="Beschlu&#xdf;" VSHIFT="26">
<icon BUILTIN="yes"/>
<node CREATED="1513961667045" ID="ID_688351481" MODIFIED="1513962278992" TEXT="nur Verwenden von bestehenden Bausteinen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es werden jetzt keine weiteren Features f&#252;r TreeExplorer gebaut....
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513961683154" ID="ID_1803800382" MODIFIED="1513961693725" TEXT="Expander kommt vor das IterSource-Interface"/>
<node CREATED="1513962370870" ID="ID_1858133966" MODIFIED="1513962394590" TEXT="in einen komplett generischen Iterator-Typ"/>
<node CREATED="1514086892237" ID="ID_1709677569" MODIFIED="1514087030296" TEXT="depth() bleibt vorerst relativ">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...mal sehen, ob wir jemals daran ansto&#223;en...
</p>
</body>
</html></richcontent>
<linktarget COLOR="#62326e" DESTINATION="ID_1709677569" ENDARROW="Default" ENDINCLINATION="-209;-29;" ID="Arrow_ID_894748806" SOURCE="ID_1500554436" STARTARROW="Default" STARTINCLINATION="43;132;"/>
</node>
<node CREATED="1513961696753" FOLDED="true" ID="ID_1159003711" MODIFIED="1525124215513" TEXT="unsch&#xf6;n aber zukunftsweisend...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1513961791716" FOLDED="true" ID="ID_996099359" MODIFIED="1513978359858" TEXT="zus&#xe4;tzliche Heap-Alloc f&#xfc;r jedes Expand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist,
</p>
<p>
<i>zus&#228;tzlich</i>&#160;zu dem Eintrag im Stack,
</p>
<p>
der ohnehin selbst Heap-alloziert ist
</p>
</body>
</html></richcontent>
<node CREATED="1513961961661" FOLDED="true" ID="ID_96700718" MODIFIED="1525124214858" TEXT="Ziel w&#xe4;re...">
<node CREATED="1513962003719" ID="ID_432597650" MODIFIED="1513962013743" TEXT="nur ein shared_ptr"/>
<node CREATED="1513961972116" ID="ID_135060444" MODIFIED="1513961978462" TEXT="nur ein Heap-Block"/>
<node CREATED="1513961979106" ID="ID_1816600166" MODIFIED="1513961984765" TEXT="inilne+overflow"/>
</node>
<node CREATED="1513962016229" FOLDED="true" ID="ID_328900065" MODIFIED="1525124214858" TEXT="Relevanz sp&#xe4;ter untersuchen">
<icon BUILTIN="yes"/>
<node CREATED="1513962043170" ID="ID_156284138" MODIFIED="1513962051989" TEXT="dazu mu&#xdf; das GUI weitgehend ausprogrammiert sein"/>
<node CREATED="1513962052808" ID="ID_1434970767" MODIFIED="1513962062555" TEXT="dann kann man das Nutzuns-Pattern extrahieren"/>
<node CREATED="1513962063639" ID="ID_1542094830" MODIFIED="1513962069898" TEXT="und dann druch Messung &#xfc;berpr&#xfc;fen"/>
</node>
</node>
<node CREATED="1513961838174" ID="ID_579783999" MODIFIED="1513962463112" TEXT="Verh&#xe4;ltnis der VTable-APIs noch unklar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Was ist <b>Nav</b>&#160;und was ist <b>Iteration-control</b>?
</p>
<p>
Ist es sinnvoll, beide in einem gemeinsamen API zu haben,
</p>
<p>
oder delegieren wir besser?
</p>
<p>
Was sind die Kosten daf&#252;r?
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513961620603" FOLDED="true" ID="ID_1014293898" MODIFIED="1535891875282" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513962702097" FOLDED="true" ID="ID_1829231358" MODIFIED="1533608415452" TEXT="Iterator-Typ konstruieren">
<arrowlink COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" STARTARROW="Default" STARTINCLINATION="-102;2;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1513966648491" FOLDED="true" ID="ID_558045889" MODIFIED="1525124215513" TEXT="Anforderungen">
<node CREATED="1513962999465" ID="ID_677650141" MODIFIED="1513963008827" TEXT="ist nicht mehr IterSource&lt;String&gt;::iterator"/>
<node CREATED="1513963010239" ID="ID_1755646553" MODIFIED="1513963023753" TEXT="baut auf einem Sub-Interface von IterSource auf"/>
<node CREATED="1513963030333" ID="ID_540171697" MODIFIED="1513963048414" TEXT="delegiert an den WrappedLumieraIterator f&#xfc;r Konstruktion"/>
<node CREATED="1513963055921" ID="ID_598702105" MODIFIED="1513963075090" TEXT="exponiert das expandChildren()"/>
</node>
<node CREATED="1513966658753" FOLDED="true" ID="ID_1038653404" MODIFIED="1525124215513" TEXT="Konstrukt">
<node CREATED="1513966673608" FOLDED="true" ID="ID_343053579" MODIFIED="1514086565906" TEXT="auf IterExploreSource aufbauen?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1513966727648" ID="ID_538128057" MODIFIED="1513966744402" TEXT="das Interface wird in der Implementierung druchgreicht"/>
<node CREATED="1513966745134" ID="ID_1575558282" MODIFIED="1513966751273" TEXT="man kommt da nicht ohne weiteres ran"/>
<node CREATED="1513966752029" ID="ID_852127426" MODIFIED="1513966770086" TEXT="genau die expand() und depth() wird gar nicht gebraucht"/>
<node CREATED="1513966793087" ID="ID_1973470560" MODIFIED="1513966803775" TEXT="das w&#xe4;re Implementation-reuse">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1513966770770" ID="ID_1037405328" MODIFIED="1513966791882" TEXT="wir bauen gar nicht darauf auf">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1513966690757" FOLDED="true" ID="ID_335317868" MODIFIED="1514086567369" TEXT="direkt IterSource::iterator reimplementieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1513966814204" ID="ID_1477637829" MODIFIED="1513966818232" TEXT="ist halt l&#xe4;stig"/>
<node CREATED="1513966819268" ID="ID_725108588" MODIFIED="1513966823134" TEXT="hier aber wohl einfacher"/>
<node CREATED="1513966826779" ID="ID_806221726" MODIFIED="1513966853280" TEXT="k&#xf6;nnte blueprint sein??">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
IterSource mu&#223; insgesamt besser erweiterbar werden....
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1513980929860" FOLDED="true" ID="ID_1710959906" MODIFIED="1513985103849" TEXT="Alternativen?">
<icon BUILTIN="help"/>
<node CREATED="1513980747077" FOLDED="true" ID="ID_458778699" MODIFIED="1525124214861" TEXT="IterExploreSource geschickt nutzen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1513980786024" ID="ID_906988400" MODIFIED="1513980803442" TEXT="front-End ist IterExploreSource, ohne Wenn und Aber"/>
<node CREATED="1513980816020" ID="ID_1544667042" MODIFIED="1513980839954">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
der Expander sitzt nun doch <i>dahinter,</i>&#160;in der Implementierung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1513980949474" ID="ID_884281761" MODIFIED="1513980956209" TEXT="damit wieder zwei VTables">
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
</node>
<node CREATED="1513981063250" FOLDED="true" HGAP="29" ID="ID_1701586789" MODIFIED="1525124215513" TEXT="Builder" VSHIFT="7">
<icon BUILTIN="idea"/>
<node CREATED="1513981080616" ID="ID_75384138" MODIFIED="1513981107456" TEXT="bekommt TreeStructureNavigator *"/>
<node CREATED="1513981138280" ID="ID_878429069" MODIFIED="1513981146075" TEXT="baut darauf den IterSource::iterator"/>
<node CREATED="1513981147519" ID="ID_1838710944" MODIFIED="1513981198132" TEXT="setzt darauf einen TreeExplorer auf"/>
<node CREATED="1513981205567" ID="ID_1678344039" MODIFIED="1513981213954" TEXT="stattet diesen mit einem Expander aus"/>
<node CREATED="1513981215822" ID="ID_1059471923" MODIFIED="1513981236247" TEXT="welcher das TreeStructureNavigator-Interface nutzt"/>
<node CREATED="1513981274958" ID="ID_895258746" MODIFIED="1513981289179">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das Ergebnis ist der <b>konkrete Iterator-Typ</b>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513962712192" FOLDED="true" ID="ID_357363842" MODIFIED="1533608415454" TEXT="festlegen, wo die VTable ist">
<icon BUILTIN="button_ok"/>
<node CREATED="1513978430367" ID="ID_616991569" MODIFIED="1513978446605" TEXT="Nav und Iter">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513978427353" ID="ID_110999881" MODIFIED="1513978443627" TEXT="TreeStructureNavigator">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513986023498" FOLDED="true" ID="ID_1413967372" MODIFIED="1533608415457" TEXT="Integration mit TreeExplorer">
<icon BUILTIN="button_ok"/>
<node CREATED="1513986032290" FOLDED="true" ID="ID_1427647343" MODIFIED="1525124215513" TEXT="Problem: Zugang zur IterSource">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1513986054199" ID="ID_1239076586" MODIFIED="1513986063345" TEXT="bisher: protected im IterSource::iterator"/>
<node CREATED="1513986114902" ID="ID_1775644602" MODIFIED="1513986130220" TEXT="&quot;riecht&quot; nach einem generellen Problem">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1513986064509" FOLDED="true" ID="ID_1794003959" MODIFIED="1525124214863" TEXT="nun m&#xfc;&#xdf;te man...">
<node CREATED="1513986085162" ID="ID_1791331544" MODIFIED="1513986090214" TEXT="von au&#xdf;en daran kommen"/>
<node CREATED="1513986090946" ID="ID_668980524" MODIFIED="1513986103340" TEXT="und auch noch downcasten auf TreeStructureNavigator"/>
</node>
<node CREATED="1513988678091" FOLDED="true" ID="ID_787175675" MODIFIED="1525124214863" TEXT="Pragmatismus-Trip">
<icon BUILTIN="idea"/>
<node CREATED="1513988687617" ID="ID_1652718385" MODIFIED="1513988692411" TEXT="nicht jetzt l&#xf6;sen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513988694704" ID="ID_1570679085" MODIFIED="1513988710933" TEXT="das w&#xe4;re ein Komplett-Umbau von IterSource">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#174e54" CREATED="1513988715838" ID="ID_1398933111" MODIFIED="1513989057765" TEXT="stattdessen: Vorentwurf auf die gr&#xfc;ne Wiese">
<arrowlink COLOR="#1f9aa8" DESTINATION="ID_1242119956" ENDARROW="Default" ENDINCLINATION="87;-111;" ID="Arrow_ID_662359263" STARTARROW="None" STARTINCLINATION="-259;16;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="licq"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513988744665" FOLDED="true" HGAP="27" ID="ID_1242119956" MODIFIED="1525124215513" TEXT="vorl&#xe4;ufige IterSource-Integration" VSHIFT="12">
<linktarget COLOR="#1f9aa8" DESTINATION="ID_1242119956" ENDARROW="Default" ENDINCLINATION="87;-111;" ID="Arrow_ID_662359263" SOURCE="ID_1398933111" STARTARROW="None" STARTINCLINATION="-259;16;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1513988930537" ID="ID_594152265" MODIFIED="1513992353318" TEXT="kann selbst&#xe4;ndig Iterator-Front-End bauen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513988952901" ID="ID_1668656742" MODIFIED="1513992356071" TEXT="dieses Front-End hat Zugang zum konkreten Sub-Interface">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1513988974179" ID="ID_900695722" MODIFIED="1513992358833" TEXT="Funktoren k&#xf6;nnen dieses Sub-Interface akzeptieren und liefern">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1513989030587" ID="ID_1529167083" MODIFIED="1514082163308" TEXT="TreeExplorer &#xfc;bernimmt / wrappt / packt aus">
<arrowlink COLOR="#659fa4" DESTINATION="ID_292438102" ENDARROW="Default" ENDINCLINATION="853;414;" ID="Arrow_ID_1802135668" STARTARROW="None" STARTINCLINATION="674;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1513962765760" FOLDED="true" ID="ID_795911284" MODIFIED="1533608415461" TEXT="Demo-Impl mit GenNode-Tree">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514153936376" ID="ID_10587919" MODIFIED="1514153997161" TEXT="brauche neuen Builder">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514153943993" ID="ID_1604846560" MODIFIED="1514153996307" TEXT="Sub-Interface dazwischenschieben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514153999177" FOLDED="true" ID="ID_1077665588" MODIFIED="1525124215513" TEXT="Child-Expansion">
<linktarget COLOR="#477889" DESTINATION="ID_1077665588" ENDARROW="Default" ENDINCLINATION="-191;0;" ID="Arrow_ID_1839260012" SOURCE="ID_1352163554" STARTARROW="None" STARTINCLINATION="277;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1514257085356" FOLDED="true" ID="ID_1953942552" MODIFIED="1525124214866" TEXT="AUA: wieder Problem mit IterSource">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1514257106679" ID="ID_639495082" MODIFIED="1514257205927" TEXT="Design kaputt">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1514257118263" ID="ID_1711832615" MODIFIED="1514257127032" TEXT="nur der Iterator kennt &quot;aktuelles Element&quot;"/>
<node CREATED="1514257127740" ID="ID_1443037774" MODIFIED="1514257143638" TEXT="via IterSource-Interface kommt man da nicht ran"/>
</node>
<node COLOR="#338800" CREATED="1514257226775" ID="ID_813552503" MODIFIED="1514260900863" TEXT="workaround: mitlauschen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Wire-Tap-Implementierung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514261162634" FOLDED="true" ID="ID_551533507" MODIFIED="1525124214866" TEXT="funktioniert noch nicht...">
<linktarget COLOR="#bd4043" DESTINATION="ID_551533507" ENDARROW="Default" ENDINCLINATION="-143;214;" ID="Arrow_ID_327266711" SOURCE="ID_732935391" STARTARROW="None" STARTINCLINATION="86;-19;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1514291726371" ID="ID_126077844" MODIFIED="1514291734531" TEXT="war harmlos...">
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1514291737914" ID="ID_480408923" MODIFIED="1514291802409" TEXT="kein grunds&#xe4;tzliches Problem">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514291747624" FOLDED="true" ID="ID_1328105733" MODIFIED="1525124214866" TEXT="nur ein logischer Programmier-Fehler">
<icon BUILTIN="info"/>
<node CREATED="1514291765589" ID="ID_1350779896" MODIFIED="1514291778528" TEXT="(tree,depth) ist eine Art Koordinate hier"/>
<node CREATED="1514291781156" ID="ID_1324645338" MODIFIED="1514291796321">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, depth ist <i>aktuelle</i>&#160;Tiefe!
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941577099" ID="ID_394904963" MODIFIED="1533608413635" TEXT="Implementierung">
<linktarget COLOR="#653655" DESTINATION="ID_394904963" ENDARROW="Default" ENDINCLINATION="606;374;" ID="Arrow_ID_1674594671" SOURCE="ID_286375730" STARTARROW="None" STARTINCLINATION="863;77;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1510941687588" ID="ID_601914095" MODIFIED="1518487921065" TEXT="beispielhaft f&#xfc;r GenNode umsetzen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1510941740069" FOLDED="true" ID="ID_1408571420" MODIFIED="1535891884712" TEXT="erweiterter ChildIter">
<arrowlink COLOR="#283b63" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="66;49;" ID="Arrow_ID_1521598219" STARTARROW="Default" STARTINCLINATION="94;-19;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513560671819" ID="ID_989478065" MODIFIED="1514292039775" TEXT="Interface umstellen">
<linktarget COLOR="#1d3877" DESTINATION="ID_989478065" ENDARROW="Default" ENDINCLINATION="33;-151;" ID="Arrow_ID_1500458185" SOURCE="ID_1829231358" STARTARROW="Default" STARTINCLINATION="-102;2;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513560680562" ID="ID_634877617" MODIFIED="1514154023415" TEXT="TreeExplorer-Ausdr&#xfc;cke">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513560690440" ID="ID_122153660" MODIFIED="1514154026278" TEXT="Spezial-Behandlung f&#xfc;r Perspektive">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514154062952" FOLDED="true" ID="ID_1352163554" MODIFIED="1533608415822" TEXT="Child-Expansion">
<arrowlink COLOR="#477889" DESTINATION="ID_1077665588" ENDARROW="Default" ENDINCLINATION="-191;0;" ID="Arrow_ID_1839260012" STARTARROW="None" STARTINCLINATION="277;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514260922259" FOLDED="true" HGAP="37" ID="ID_1286151530" MODIFIED="1533608415466" TEXT="Test..." VSHIFT="25">
<arrowlink COLOR="#525e89" DESTINATION="ID_113366695" ENDARROW="Default" ENDINCLINATION="125;-4;" ID="Arrow_ID_1734399897" STARTARROW="None" STARTINCLINATION="-10;85;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514261132830" ID="ID_1081488387" MODIFIED="1514292004576" TEXT="einfache Kinder">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514261125623" ID="ID_109806241" MODIFIED="1514261139062" TEXT="depth wird hochgez&#xe4;hlt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514291864080" ID="ID_1213636271" MODIFIED="1514291872824" TEXT="&quot;child exploration&quot;">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514261117856" FOLDED="true" ID="ID_732935391" MODIFIED="1525124215513" TEXT="Perspektive: klappt nicht">
<arrowlink COLOR="#bd4043" DESTINATION="ID_551533507" ENDARROW="Default" ENDINCLINATION="-143;214;" ID="Arrow_ID_327266711" STARTARROW="None" STARTINCLINATION="86;-19;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
<node CREATED="1514291947981" ID="ID_271670446" MODIFIED="1514291954120" TEXT="kein wikliches Problem"/>
<node CREATED="1514291954732" ID="ID_1642614412" MODIFIED="1514291964167" TEXT="nur ein Logik-Fehler beim Coden"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941748388" FOLDED="true" HGAP="38" ID="ID_209463158" MODIFIED="1533608416157" TEXT="Zustands-Layer" VSHIFT="1">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514333524247" FOLDED="true" ID="ID_1136271037" MODIFIED="1533608415826" TEXT="Zustand umfa&#xdf;t...">
<icon BUILTIN="info"/>
<node CREATED="1514333554411" ID="ID_1337747593" MODIFIED="1514333618358" TEXT="target (Pattern) const&amp;"/>
<node CREATED="1514333705095" ID="ID_709075863" MODIFIED="1514898052783" TEXT="coverage (Builder)"/>
<node CREATED="1514333719613" FOLDED="true" ID="ID_256774095" MODIFIED="1533608415469" TEXT="navigator">
<node CREATED="1514333779158" ID="ID_1595920355" MODIFIED="1514333782280" TEXT="current ID"/>
<node CREATED="1514333767470" ID="ID_1575075730" MODIFIED="1514898072757" TEXT="depth"/>
</node>
<node CREATED="1514333825991" ID="ID_541168831" MODIFIED="1514898080652" TEXT="isSolution (implizit)"/>
</node>
<node COLOR="#338800" CREATED="1514338393316" FOLDED="true" ID="ID_1224653593" MODIFIED="1533608415828" TEXT="f&#xfc;r jedes Element...">
<icon BUILTIN="button_ok"/>
<node CREATED="1514338471073" FOLDED="true" ID="ID_1000829527" MODIFIED="1533608415472" STYLE="bubble" TEXT="target[depth] ==?">
<edge COLOR="#5b5ea6"/>
<node CREATED="1514338493135" FOLDED="true" ID="ID_1691944473" MODIFIED="1525124215513" TEXT="Ausgang wenn...">
<node CREATED="1514340242945" ID="ID_150794139" MODIFIED="1514908827230" TEXT="target zuende"/>
<node CREATED="1514340273349" ID="ID_1117812340" MODIFIED="1514908827230" TEXT="kein match"/>
<node BACKGROUND_COLOR="#e2f2c8" CREATED="1514340293010" ID="ID_108821287" MODIFIED="1514908880409">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ist <i>keine </i>L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1514338508292" FOLDED="true" ID="ID_1940839257" MODIFIED="1525124215514" TEXT="sonst">
<node CREATED="1514338551790" ID="ID_76414417" MODIFIED="1514908827232" TEXT="wildcard -&gt; setzen"/>
<node CREATED="1514338597880" ID="ID_413282334" MODIFIED="1514908827232" TEXT="match -&gt; setzen"/>
<node CREATED="1514341358818" ID="ID_1685868652" MODIFIED="1514908827233" TEXT="covered := depth()"/>
<node CREATED="1514338641730" ID="ID_878171387" MODIFIED="1514908827233" TEXT="scheduleExpansion()"/>
<node BACKGROUND_COLOR="#e2f2c8" CREATED="1514827974184" ID="ID_1774080036" MODIFIED="1514908873138">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ist <i>partielle </i>L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1514908723845" ID="ID_1051709102" MODIFIED="1514908732301" TEXT="filtern auf L&#xf6;sung">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514828322209" FOLDED="true" HGAP="447" ID="ID_868482472" MODIFIED="1533608415833" TEXT="Implementierung" VSHIFT="24">
<icon BUILTIN="button_ok"/>
<node CREATED="1514828365236" ID="ID_596741108" MODIFIED="1514828377582" TEXT="per Seiteneffekt auf den privaten Resolver-state"/>
<node CREATED="1514828408694" ID="ID_360791024" MODIFIED="1514828619139">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Ergebnis-Ausgabe </i>ist die jeweilige m&#246;gliche Coverage
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1514847720759" FOLDED="true" ID="ID_831358447" MODIFIED="1533608415476" TEXT="Struktur">
<node CREATED="1514847726158" FOLDED="true" ID="ID_460639525" MODIFIED="1525124215514" TEXT="wo brauche ich Builder?">
<node CREATED="1514847747979" ID="ID_710804937" MODIFIED="1514847782198" TEXT="target ist ein Builder, wird aber nicht ge&#xe4;ndert">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1514847769184" ID="ID_567857702" MODIFIED="1514847778011" TEXT="neue Coverage mu&#xdf; ge&#xe4;ndert werden">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1514847804652" FOLDED="true" ID="ID_1778000574" MODIFIED="1525124215514" TEXT="sind Builder sinnvoll?">
<node CREATED="1514847810723" ID="ID_468954134" MODIFIED="1514847816622" TEXT="gegenw&#xe4;rtig nicht klar"/>
<node CREATED="1514847817306" ID="ID_417284469" MODIFIED="1514847833963" TEXT="UICoord soll immutable sein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1514847837399" FOLDED="true" ID="ID_198877050" MODIFIED="1525124214878" TEXT="Problem Normalisierung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1514847847398" ID="ID_1538721674" MODIFIED="1514847856905" TEXT="Builder-Funktionen k&#xf6;nnen denormalisieren"/>
<node CREATED="1514847857748" ID="ID_1388054576" MODIFIED="1514847876837" TEXT="der Matching-Algo verl&#xe4;&#xdf;t sich auf die Normalisierung">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1514847882601" ID="ID_1468209152" MODIFIED="1514847895570" TEXT="beim Verlassen eines Builders ist erneut zu normalisieren">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1514847919164" FOLDED="true" ID="ID_1457973741" MODIFIED="1525124215514" TEXT="spezieller Manipulations-Builder">
<icon BUILTIN="button_ok"/>
<node CREATED="1514847939937" ID="ID_1183828033" MODIFIED="1514847949844" TEXT="erlaubt punktweise Manipulation"/>
<node CREATED="1514847950576" ID="ID_1211653233" MODIFIED="1514850848636" TEXT="normalisiert automatisch beim Abholen des Ergebnisses"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514942333406" FOLDED="true" ID="ID_1235716633" MODIFIED="1533608415481" TEXT="Ankern unvollst&#xe4;ndiger Pfade">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514942350940" ID="ID_1658536334" MODIFIED="1515034261027" TEXT="erweitertes Verst&#xe4;ndnis von &quot;Wildcard&quot;">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515031418282" ID="ID_1390320369" MODIFIED="1515034265977" TEXT="Anker im Match ber&#xfc;cksichtigen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514942365034" ID="ID_1911438770" MODIFIED="1515034279431" TEXT="nebenbei Anker aktualisieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514942372976" ID="ID_1541868169" MODIFIED="1515034395295" TEXT="feststellen, ob coverage real oder m&#xf6;glich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...insofern wir nur eine (partielle) L&#246;sung signalisieren,
</p>
<p>
wenn wir einen <i>direkten</i>&#160;Match erziehlen.
</p>
<p>
Ein wildcard-Match f&#252;hrt nur dazu, da&#223; wir zu den Kindern absteigen,
</p>
<p>
aber z&#228;hlt erst mal f&#252;r sich nicht als L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517508915741" ID="ID_974516393" MODIFIED="1518750409200">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Support f&#252;r <i>elided</i>&#160;element
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#7e9da8" DESTINATION="ID_796216711" ENDARROW="Default" ENDINCLINATION="989;-91;" ID="Arrow_ID_925245331" STARTARROW="None" STARTINCLINATION="199;-5;"/>
<linktarget COLOR="#91a7b5" DESTINATION="ID_974516393" ENDARROW="Default" ENDINCLINATION="-759;53;" ID="Arrow_ID_862004765" SOURCE="ID_140988955" STARTARROW="None" STARTINCLINATION="1590;41;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1514897795054" FOLDED="true" ID="ID_1126804251" MODIFIED="1533608415483" TEXT="Erweiterung: verschiedne Filter">
<icon BUILTIN="hourglass"/>
<node CREATED="1515034405447" ID="ID_1908721517" MODIFIED="1515034409410" TEXT="YAGNI"/>
<node CREATED="1515034414286" ID="ID_216901407" MODIFIED="1515034430396" TEXT="kann mir jetzt keinen wirklichen Nutzen daf&#xfc;r vorstellen">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node CREATED="1514339655585" FOLDED="true" ID="ID_20763657" MODIFIED="1533608415837" TEXT="brauche">
<icon BUILTIN="forward"/>
<node CREATED="1514339665248" ID="ID_1142507602" MODIFIED="1514339776889" TEXT="low-level-Operation">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
nur f&#252;r internen Gebrauch
</li>
<li>
protected im Builder
</li>
</ul>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node COLOR="#338800" CREATED="1514339673519" FOLDED="true" ID="ID_1697551113" MODIFIED="1533608415486" TEXT="writeAt">
<icon BUILTIN="button_ok"/>
<node CREATED="1514339689469" ID="ID_686921797" MODIFIED="1514339694112" TEXT="erweitert bei Bedarf"/>
<node CREATED="1514339695220" ID="ID_1819447572" MODIFIED="1514339700103" TEXT="&#xfc;berschreibt Position"/>
<node CREATED="1514339700955" ID="ID_503690023" MODIFIED="1514339717876" TEXT="k&#xfc;rzt/&#xe4;ndert sonst nix"/>
</node>
<node COLOR="#338800" CREATED="1514746187370" FOLDED="true" ID="ID_989083906" MODIFIED="1533608415491" TEXT="Problem der partiellen Covfefe">
<icon BUILTIN="button_ok"/>
<node CREATED="1514746268280" FOLDED="true" ID="ID_1650861625" MODIFIED="1525124215514" TEXT="totale Coverage ist einfach">
<node CREATED="1514746278542" ID="ID_638094416" MODIFIED="1514746296223">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sungen m&#252;ssen
</p>
<p>
am Ende des Patterns liegen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1514746306619" ID="ID_1050824210" MODIFIED="1514746324227" TEXT="&#xfc;berall partielle L&#xf6;sungen m&#xf6;glich"/>
<node CREATED="1514746345078" ID="ID_1469851869" MODIFIED="1514746354935" TEXT="wir wissen nicht, ob expand &#xfc;berhaupt geht"/>
<node CREATED="1514746367418" ID="ID_1714254434" MODIFIED="1514827781975" TEXT="L&#xf6;sungsidee: partielle L&#xf6;sungen filtern">
<arrowlink COLOR="#426785" DESTINATION="ID_43243557" ENDARROW="Default" ENDINCLINATION="156;-113;" ID="Arrow_ID_977247001" STARTARROW="None" STARTINCLINATION="-109;6;"/>
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1514747333011" FOLDED="true" ID="ID_1334730598" MODIFIED="1525124215514" TEXT="Rekursion f&#xe4;llt weg">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1514747381652" ID="ID_798538712" MODIFIED="1514747385435" TEXT="super genital">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1514747405345" ID="ID_1406501979" MODIFIED="1514747435945" TEXT="jetzt strukturell lazy">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1514746923713" FOLDED="true" ID="ID_1928999977" MODIFIED="1533608415494" TEXT="scheduleExpansion">
<icon BUILTIN="button_ok"/>
<node CREATED="1514746932144" ID="ID_1456732951" MODIFIED="1514897708074" TEXT="neue TreeExplorer-Operation"/>
<node CREATED="1514746940111" ID="ID_899254883" MODIFIED="1514897708074" TEXT="sieht eine child-Expansion bei n&#xe4;chster Iteration vor">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1514746959580" ID="ID_836777766" MODIFIED="1514897708074" TEXT="eigener Layer notwendig, mit bool-Flag">
<arrowlink COLOR="#455b75" DESTINATION="ID_108671176" ENDARROW="Default" ENDINCLINATION="-973;135;" ID="Arrow_ID_1758556486" STARTARROW="None" STARTINCLINATION="959;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941754211" FOLDED="true" HGAP="36" ID="ID_996085388" MODIFIED="1533608416159" TEXT="Filter-Layer" VSHIFT="-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1514747460122" ID="ID_1735380227" MODIFIED="1514908757875" TEXT="fischt nach tats&#xe4;chlichen L&#xf6;sungen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514747470624" ID="ID_43243557" MODIFIED="1514827781975" TEXT="erm&#xf6;glicht partielle und maximale L&#xf6;sungen">
<linktarget COLOR="#426785" DESTINATION="ID_43243557" ENDARROW="Default" ENDINCLINATION="156;-113;" ID="Arrow_ID_977247001" SOURCE="ID_1714254434" STARTARROW="None" STARTINCLINATION="-109;6;"/>
</node>
<node CREATED="1514747496973" FOLDED="true" ID="ID_1992822141" MODIFIED="1533608415841" TEXT="F&#xe4;lle">
<linktarget COLOR="#7e90a1" DESTINATION="ID_1992822141" ENDARROW="Default" ENDINCLINATION="0;56;" ID="Arrow_ID_26195276" SOURCE="ID_1556354374" STARTARROW="Default" STARTINCLINATION="-20;-69;"/>
<node CREATED="1514747500948" ID="ID_849508712" MODIFIED="1515031494705" TEXT="erste totale L&#xf6;sung">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1514747506516" ID="ID_1823650567" MODIFIED="1515031497729" TEXT="alle totalen L&#xf6;sungen">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1514747511683" ID="ID_1711746734" MODIFIED="1515031538639" TEXT="erste maximale partielle L&#xf6;sung">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514747534880" ID="ID_668507058" MODIFIED="1515031542774" TEXT="alle maximalen partiellen L&#xf6;sungen">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1514747542535" FOLDED="true" ID="ID_1475644253" MODIFIED="1533608415498" TEXT="alle lokal maximalen partiellen L&#xf6;sungen">
<icon BUILTIN="hourglass"/>
<node CREATED="1514747562436" ID="ID_1216946339" MODIFIED="1514747569143" TEXT="am Ende einer Gl&#xfc;cksstr&#xe4;ne"/>
<node CREATED="1514747652752" ID="ID_694825695" MODIFIED="1514747659603" TEXT="etwas kniffelig zu implementieren"/>
<node CREATED="1514747694763" ID="ID_1088990348" MODIFIED="1514747707037" TEXT="letztlich &#xe4;hnlich wie globale Maximums-Suche"/>
<node CREATED="1514747709400" ID="ID_556979975" MODIFIED="1514747724946" TEXT="lediglich das Maximum wird zur&#xfc;ckgesetzt"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1514829169777" FOLDED="true" HGAP="32" ID="ID_331008637" MODIFIED="1533608416162" TEXT="Integration" VSHIFT="10">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514829220907" FOLDED="true" ID="ID_1488508113" MODIFIED="1533608415845" TEXT="zun&#xe4;chst Algo f&#xfc;r partielle Coverage bauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514829338427" ID="ID_623381151" MODIFIED="1515034463168" TEXT="Zustandstyp">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1514829343538" FOLDED="true" ID="ID_61753442" MODIFIED="1533608415500" TEXT="Transformer auf Zustand">
<icon BUILTIN="button_cancel"/>
<node CREATED="1514850791535" ID="ID_1339395363" MODIFIED="1514850794763" TEXT="nicht notwendig"/>
<node CREATED="1514850795678" ID="ID_497352305" MODIFIED="1514850803482" TEXT="Zustand per Seiteneffekt">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514829349585" ID="ID_1389488008" MODIFIED="1515034463168" TEXT="Algo-Kern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514829353681" ID="ID_62480447" MODIFIED="1515034463168" TEXT="einfachster Filter">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514829412249" FOLDED="true" ID="ID_1641757769" MODIFIED="1533608415848" TEXT="Einbindung Resolution-State">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514829452692" ID="ID_1692090746" MODIFIED="1515034463169" TEXT="nested Class">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514829466506" ID="ID_1652951449" MODIFIED="1515034463169" TEXT="low-level writeAt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514829511716" ID="ID_747113559" MODIFIED="1515034463169" TEXT="Pipeline-Builder wie?">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514829532945" ID="ID_1664484116" MODIFIED="1515034463169" TEXT="Ergebnis-Abruf">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#990000" CREATED="1514829238960" FOLDED="true" ID="ID_1556354374" MODIFIED="1533608415851" TEXT="Varianten definieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
YAGNI
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#7e90a1" DESTINATION="ID_1992822141" ENDARROW="Default" ENDINCLINATION="0;56;" ID="Arrow_ID_26195276" STARTARROW="Default" STARTINCLINATION="-20;-69;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1514942095070" ID="ID_815761690" MODIFIED="1515034463169" TEXT="default: ermitteln der maximalen partiellen Coverage">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1514942111347" ID="ID_1991949921" MODIFIED="1515034463169" TEXT="die maximale L&#xf6;sung ist totale Coverage, wenn m&#xf6;glich">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1514942171091" ID="ID_1193370362" MODIFIED="1515034463169" TEXT="sp&#xe4;ter/bei Bedarf: alle L&#xf6;sungen">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1515034212096" ID="ID_1153983253" MODIFIED="1515034463169" TEXT="vermutlich garnicht notwendig">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514848454621" FOLDED="true" ID="ID_472406160" MODIFIED="1533608415854" TEXT="std::swap f&#xfc;r UICoord">
<icon BUILTIN="button_ok"/>
<node CREATED="1514848818421" ID="ID_26529397" MODIFIED="1515206142953" TEXT="vermutlich (fast) nix zu tun">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
die Standard-Implementierung von std::swap macht einen Dreiecks-Move
</li>
<li>
wir haben effiziente Move-Konstruktoren
</li>
</ul>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1514848861831" FOLDED="true" ID="ID_297570158" MODIFIED="1533608415503" TEXT="noexcept() bedenken">
<icon BUILTIN="button_ok"/>
<node CREATED="1515206011718" ID="ID_1572220372" MODIFIED="1515206130684" TEXT="std::Array hat impliziten move-ctor">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1515206027308" ID="ID_1973328661" MODIFIED="1515206127344" TEXT="mu&#xdf; Konstruktor von lib::Literal noexcept machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515206107418" ID="ID_97679310" MODIFIED="1515206126419" TEXT="move-Ctors von Extension (f&#xfc;r PathArray) noexcept machen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1514848874005" ID="ID_751821458" MODIFIED="1515034463169" TEXT="PathArray: move effizienter als swap">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514829244384" FOLDED="true" ID="ID_174527898" MODIFIED="1533608415856" TEXT="API umstellen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514942071848" ID="ID_642968204" MODIFIED="1515034463169" TEXT="totale Coverage wird default">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514942216013" ID="ID_1147733516" MODIFIED="1515034537518" TEXT="Pr&#xe4;dikate spiegeln stets den Zustand der UI-Coord">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und nicht den <i>m&#246;glichen</i>&#160;Zustand.
</p>
<p>
Denn f&#252;r letzteren gibt es die &quot;canXX&quot;-Pr&#228;dikate
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514943888969" ID="ID_1634332467" MODIFIED="1515034463169" TEXT="m&#xf6;glichen Anker nebenbei ermitteln">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1510941766817" FOLDED="true" HGAP="13" ID="ID_1117346518" MODIFIED="1535891833392" TEXT="Testf&#xe4;lle" VSHIFT="29">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1513477873206" ID="ID_939423021" MODIFIED="1518487921065" TEXT="definieren was abzudecken ist...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1513478153511" ID="ID_1826394146" MODIFIED="1518487921065" TEXT="bisherige ChildIter-Testf&#xe4;lle">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514260998192" ID="ID_113366695" MODIFIED="1518487921065" TEXT="einmal child-Expansion">
<linktarget COLOR="#525e89" DESTINATION="ID_113366695" ENDARROW="Default" ENDINCLINATION="125;-4;" ID="Arrow_ID_1734399897" SOURCE="ID_1286151530" STARTARROW="None" STARTINCLINATION="-10;85;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#3b5a89" CREATED="1514292065333" FOLDED="true" ID="ID_1133433583" MODIFIED="1533608415859" TEXT="Frage: expliziter Test f&#xfc;r path resolution?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
macht es Sinn, daf&#252;r einen expliziten Testfall zu konstruieren,
</p>
<p>
oder verfangen wir uns da sofort zu sehr in der Implementierungs-Technik?
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1514329257785" ID="ID_1871812757" MODIFIED="1518487921065" TEXT="Nein">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1514329280718" ID="ID_674722968" MODIFIED="1518487921065" TEXT="sonst m&#xfc;ssen wir die BlackBox &#xf6;ffnen">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1514329261217" ID="ID_1909490994" MODIFIED="1518487921065" TEXT="die Testf&#xe4;lle f&#xfc;r Coverage-Mutation gen&#xfc;gen">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1514329328840" FOLDED="true" HGAP="35" ID="ID_1362494392" MODIFIED="1533608415865" TEXT="Abzudecken ist...." VSHIFT="4">
<linktarget COLOR="#715b79" DESTINATION="ID_1362494392" ENDARROW="Default" ENDINCLINATION="-578;-16;" ID="Arrow_ID_1072715196" SOURCE="ID_1751192686" STARTARROW="None" STARTINCLINATION="477;0;"/>
<linktarget COLOR="#4b5c8d" DESTINATION="ID_1362494392" ENDARROW="Default" ENDINCLINATION="398;572;" ID="Arrow_ID_82261909" SOURCE="ID_1688800613" STARTARROW="None" STARTINCLINATION="1404;115;"/>
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1514329411197" FOLDED="true" ID="ID_1637267494" MODIFIED="1533608415506" TEXT="Trivial-Fall: bestehenden Pfad finden">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514329441136" ID="ID_359779455" MODIFIED="1518487921065" TEXT="mit unvollst&#xe4;ndiger Coverage">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329450807" ID="ID_211306404" MODIFIED="1518487921065" TEXT="mit &#xdc;berhang">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515114713029" FOLDED="true" ID="ID_424458820" MODIFIED="1533608415508" TEXT="Ankern">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514745345018" ID="ID_1229106293" MODIFIED="1518487921065" TEXT="fehlender Anker allein">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515114721228" ID="ID_1329702278" MODIFIED="1518487921065" TEXT="fehlender Anker">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515114740273" FOLDED="true" ID="ID_224432926" MODIFIED="1533608415516" TEXT="interpolieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514329498169" ID="ID_259096801" MODIFIED="1518487921065" TEXT="einfache L&#xfc;cke schlie&#xdf;en">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329504776" ID="ID_1411396073" MODIFIED="1518487921065" TEXT="doppelte L&#xfc;cke schlie&#xdf;en">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329542594" ID="ID_959715297" MODIFIED="1518487921065" TEXT="fehlenden Anker interpolieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514745294579" ID="ID_576780085" MODIFIED="1518487921065" TEXT="fehlender Anker und folgende L&#xfc;cke">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329555505" ID="ID_1508437078" MODIFIED="1518487921065" TEXT="fehlender Anker plus zweite L&#xfc;cke">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517509311733" ID="ID_796216711" MODIFIED="1518750402160" TEXT="Anker+elided plus L&#xfc;cke schlie&#xdf;en">
<linktarget COLOR="#7e9da8" DESTINATION="ID_796216711" ENDARROW="Default" ENDINCLINATION="989;-91;" ID="Arrow_ID_925245331" SOURCE="ID_974516393" STARTARROW="None" STARTINCLINATION="199;-5;"/>
<linktarget COLOR="#4b5cab" DESTINATION="ID_796216711" ENDARROW="Default" ENDINCLINATION="-145;942;" ID="Arrow_ID_570641462" SOURCE="ID_1542036736" STARTARROW="None" STARTINCLINATION="383;78;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517509541382" FOLDED="true" ID="ID_1722401650" MODIFIED="1525124215514">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
realer Pfad endet mit elided <i>nach</i>&#160;Wildcard
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1518752249648" ID="ID_221401224" MODIFIED="1518752257211" TEXT="erst wollte ich das ausschlie&#xdf;en"/>
<node CREATED="1518752257871" ID="ID_1394674174" MODIFIED="1518752269436" TEXT="denke jetzt aber, das soll so sein">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1517509325755" ID="ID_208496330" MODIFIED="1518758436086" TEXT="Anker+elided gilt als partial coverage">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514329861519" FOLDED="true" ID="ID_946875811" MODIFIED="1533608415523" TEXT="Scheitern">
<icon BUILTIN="button_ok"/>
<node CREATED="1514329465117" FOLDED="true" ID="ID_1304144230" MODIFIED="1525124215514" TEXT="trailing Wildcards scheitern">
<icon BUILTIN="button_cancel"/>
<node CREATED="1515120863655" ID="ID_1222552441" MODIFIED="1518487921065" TEXT="werden stets schon vom Konstrukor bereinigt"/>
<node COLOR="#338800" CREATED="1515120874318" ID="ID_282902710" MODIFIED="1518487921065">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann jedoch demonstrieren,
</p>
<p>
da&#223; der Algorithmus solche L&#246;sungen verwirft
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514329890564" ID="ID_723199137" MODIFIED="1518487921065" TEXT="realer Pfad endet vor Wildcards">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329901562" ID="ID_1644217459" MODIFIED="1518487921065" TEXT="realer Pfad endet b&#xfc;ndig mit Wildcards">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329925895" ID="ID_257945525" MODIFIED="1518487921066" TEXT="mismatch auf erstem festen element">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329932501" ID="ID_1190347841" MODIFIED="1518487921066" TEXT="mismatch direkt hinter zweiter L&#xfc;cke">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514330003204" ID="ID_443318342" MODIFIED="1518487921066" TEXT="mismatch wg. verschobenem (matchendem) Element">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514330049166" ID="ID_1096135763" MODIFIED="1518487921066" TEXT="Ankern scheitert">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1514329636838" FOLDED="true" ID="ID_815146070" MODIFIED="1533608415528" TEXT="L&#xf6;sungs-Auswahl">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514329649868" ID="ID_1490593624" MODIFIED="1518487921066" TEXT="erste von zwei &#xe4;quivalenten L&#xf6;sungen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329715859" ID="ID_734262382" MODIFIED="1518487921066" TEXT="gr&#xf6;&#xdf;ere Coverage durch l&#xe4;ngeres, festes Postifix">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329773739" ID="ID_1790993462" MODIFIED="1518487921066" TEXT="gr&#xf6;&#xdf;ere L&#xf6;sung wird sp&#xe4;ter gefunden">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329784090" ID="ID_976931684" MODIFIED="1518487921066" TEXT="gr&#xf6;&#xdf;ere L&#xf6;sung als mittlere von dreien">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514329806999" ID="ID_787741094" MODIFIED="1518487921066" TEXT="gr&#xf6;&#xdf;te L&#xf6;sung zuerst">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518051827562" FOLDED="true" ID="ID_126260279" MODIFIED="1533608415532" TEXT="partielle coverage mit Rest">
<linktarget COLOR="#647a94" DESTINATION="ID_126260279" ENDARROW="Default" ENDINCLINATION="-70;102;" ID="Arrow_ID_1703739591" SOURCE="ID_1400256094" STARTARROW="None" STARTINCLINATION="417;-7;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518051858813" ID="ID_712764658" MODIFIED="1518487921066" TEXT="Erfolg: alles explizit, teilweise gecovert">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518051877651" ID="ID_931862394" MODIFIED="1518487921066" TEXT="Erfolg: L&#xfc;cke schlie&#xdf;en, Rest erhalten">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518051909942" ID="ID_1891019118" MODIFIED="1518487921066" TEXT="Scheitern: kann L&#xfc;cke nicht schlie&#xdf;en">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518051925316" ID="ID_766944591" MODIFIED="1518487921066" TEXT="Scheitern: Rest enth&#xe4;lt noch Wildcards">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1508540835505" FOLDED="true" ID="ID_191493714" MODIFIED="1533685070973" TEXT="Zustand">
<icon BUILTIN="button_ok"/>
<node CREATED="1514748438984" ID="ID_84241950" MODIFIED="1518487921066" TEXT="reflektiert letzte L&#xf6;sung"/>
<node CREATED="1514748445520" ID="ID_728061293" MODIFIED="1518487921066" TEXT="*this = move (Coverage)"/>
<node COLOR="#338800" CREATED="1514748450687" ID="ID_919694647" MODIFIED="1533608413663" TEXT="default: total">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1514748463645" ID="ID_2814761" MODIFIED="1518487921066" TEXT="TODO: &#xe4;ndern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1514748505488" ID="ID_947047856" MODIFIED="1518487921066" TEXT="TODO: API umstellen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
neue Einsicht 31.12.17
</p>
<p>
totale Coverage ist das, was man naiverweise erwartet.
</p>
<p>
Also sollte <i>das</i>&#160;auf dem API der default sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1518052051947" FOLDED="true" ID="ID_1272905286" MODIFIED="1533685073389" TEXT="coverPartially">
<linktarget COLOR="#50546a" DESTINATION="ID_1272905286" ENDARROW="Default" ENDINCLINATION="394;1164;" ID="Arrow_ID_396720500" SOURCE="ID_1447232325" STARTARROW="None" STARTINCLINATION="1558;-33;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518052100828" ID="ID_1400256094" MODIFIED="1518143014344" TEXT="funktioniert analog zu cover()">
<arrowlink COLOR="#647a94" DESTINATION="ID_126260279" ENDARROW="Default" ENDINCLINATION="-70;102;" ID="Arrow_ID_1703739591" STARTARROW="None" STARTINCLINATION="417;-7;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518052123401" ID="ID_969568669" MODIFIED="1518143010646" TEXT="&#xfc;bernimmt &#xfc;bersch&#xfc;ssigen Rest">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518052149982" ID="ID_1099521506" MODIFIED="1518143007944" TEXT="sicherstellen, da&#xdf; keine Wildcards verbleiben">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515451105808" FOLDED="true" ID="ID_1323377531" MODIFIED="1533685074917" TEXT="extend">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515451117055" ID="ID_602743049" MODIFIED="1515451126326" TEXT="durch explizit gegebenes Suffix">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515451127221" ID="ID_130067342" MODIFIED="1515460212289" TEXT="durch (partielle) UI-Coord spec">
<linktarget COLOR="#4f6f95" DESTINATION="ID_130067342" ENDARROW="Default" ENDINCLINATION="544;89;" ID="Arrow_ID_992203487" SOURCE="ID_1736775031" STARTARROW="None" STARTINCLINATION="704;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1515455194222" ID="ID_1550640486" MODIFIED="1533608413663" TEXT="brauche (nun doch) overwrite">
<icon BUILTIN="yes"/>
<node CREATED="1515455204572" ID="ID_538708318" MODIFIED="1515455215023" TEXT="im UI-Coord-Builder ansiedeln"/>
<node CREATED="1515455215779" ID="ID_1744879837" MODIFIED="1515455225131" TEXT="protected....">
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
<node CREATED="1515455238808" ID="ID_1864948105" MODIFIED="1515460226143" TEXT="Fehlerbehandlung: &#xdc;berlapp finden">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1508538883715" ID="ID_506584428" MODIFIED="1531584013560" TEXT="Basis: LocationQuery">
<icon BUILTIN="button_ok"/>
<node CREATED="1508538979935" ID="ID_1139910958" MODIFIED="1511572072944" TEXT="immer explizit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t: keine Wildcards, keine pseudo-Specs (currentWindow)
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1508539089208" ID="ID_1071949477" MODIFIED="1508539131769" TEXT="Query">
<icon BUILTIN="info"/>
<node COLOR="#338800" CREATED="1508619321957" ID="ID_1269390045" MODIFIED="1508717810127" TEXT="anchor">
<icon BUILTIN="button_ok"/>
<node CREATED="1508619329420" ID="ID_360997488" MODIFIED="1508619334447" TEXT="in: expliziter Pfad"/>
<node CREATED="1508619335131" ID="ID_327874233" MODIFIED="1511572072959" TEXT="out: Anker-Literal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Zweck ist vor allem, meta-Specs wie firstWindow, currentWindow aufzul&#246;sen
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1508539108398" ID="ID_681619275" MODIFIED="1509319949242" TEXT="coverage">
<icon BUILTIN="button_ok"/>
<node CREATED="1508539968020" ID="ID_64225559" MODIFIED="1508539972951" TEXT="in: expliziter Pfad"/>
<node CREATED="1508539973587" ID="ID_822140715" MODIFIED="1508539984350" TEXT="out: Tiefe(Zahl)"/>
</node>
<node COLOR="#338800" CREATED="1508539115533" ID="ID_1048456515" MODIFIED="1509319964032" TEXT="child Iteration">
<icon BUILTIN="button_ok"/>
<node CREATED="1508539986290" ID="ID_821465952" MODIFIED="1508539992221" TEXT="in: expliziter Pfad"/>
<node CREATED="1508539992944" ID="ID_1384353532" MODIFIED="1509319961089" TEXT="out: IterSource&lt;Literal&gt;"/>
<node CREATED="1514330179052" ID="ID_1033437899" MODIFIED="1514330186823" TEXT="mit expandChildren()-Operation"/>
</node>
</node>
<node CREATED="1509319992204" HGAP="60" ID="ID_258976142" MODIFIED="1511572072982" TEXT="prototypische Implementierung...." VSHIFT="21">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...verwendet einen GenNode-Tree
</p>
<p>
als Repr&#228;sentation des real-existierenden UI
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1506957414370" ID="ID_848105210" MODIFIED="1518487921066">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Integration ViewLocator
</p>
<p>
Resolver / Navigator
</p>
</body>
</html></richcontent>
<linktarget COLOR="#3f4b87" DESTINATION="ID_848105210" ENDARROW="Default" ENDINCLINATION="-1260;542;" ID="Arrow_ID_1760927309" SOURCE="ID_1256149179" STARTARROW="None" STARTINCLINATION="1244;-591;"/>
<icon BUILTIN="help"/>
<node CREATED="1515884080567" ID="ID_1610510897" MODIFIED="1518487921066" TEXT="Frage der Abh&#xe4;ngigkeit">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1515884093053" ID="ID_578386223" MODIFIED="1518487921066" TEXT="k&#xf6;nnte zyklisch sein">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1515884156717" ID="ID_1719646750" MODIFIED="1518487921066" TEXT="ViewLocator">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1515884167067" ID="ID_252275651" MODIFIED="1518487921066" TEXT="Einzel-Zugang"/>
<node CREATED="1515884183937" ID="ID_1146786067" MODIFIED="1518487921066" TEXT="explizit per Typ"/>
<node CREATED="1515884193464" ID="ID_680693474" MODIFIED="1533608413664">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber auch: <b>Resolver</b>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#3b6680" DESTINATION="ID_680693474" ENDARROW="Default" ENDINCLINATION="-178;8;" ID="Arrow_ID_1157808975" SOURCE="ID_1356241564" STARTARROW="None" STARTINCLINATION="98;0;"/>
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1515884215165" ID="ID_1855078495" MODIFIED="1518487921066" TEXT="baut auf DSL auf"/>
<node CREATED="1515884220428" ID="ID_513230162" MODIFIED="1518487921066" TEXT="Struktur-Regeln"/>
<node CREATED="1515884235658" ID="ID_1028909961" MODIFIED="1518487921066" TEXT="finden oder zeugen"/>
</node>
<node CREATED="1515885720655" ID="ID_1092683882" MODIFIED="1533608413665" TEXT="b&#xfc;ndelt low-level-Zugang">
<linktarget COLOR="#8c98a0" DESTINATION="ID_1092683882" ENDARROW="Default" ENDINCLINATION="-155;0;" ID="Arrow_ID_1761525173" SOURCE="ID_150080053" STARTARROW="None" STARTINCLINATION="-156;6;"/>
<node CREATED="1515885728374" ID="ID_152777185" MODIFIED="1533685424812" TEXT="Bezug auf GlobalCtx">
<node CREATED="1515885839951" ID="ID_123309845" MODIFIED="1518487921066" TEXT="f&#xfc;r WindowLocator"/>
<node CREATED="1515885847767" ID="ID_1781347382" MODIFIED="1518487921066" TEXT="f&#xfc;r PanelManager"/>
<node CREATED="1515885855014" ID="ID_1634512088" MODIFIED="1518487921066" TEXT="f&#xfc;r LocationQuery">
<arrowlink COLOR="#8c98a0" DESTINATION="ID_150080053" ENDARROW="Default" ENDINCLINATION="198;0;" ID="Arrow_ID_1806083846" STARTARROW="None" STARTINCLINATION="10;48;"/>
</node>
</node>
<node CREATED="1515885751787" ID="ID_1669926039" MODIFIED="1518487921066" TEXT="indirekt zyklisch">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1515885762754" ID="ID_657098401" MODIFIED="1518487921066" TEXT="ist OK">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Regel ist:
</p>
<p>
Bei zyklischen Abh&#228;ngigkeiten erfolgt der Ringschlu&#223;
</p>
<p>
an einer Stelle &#252;ber eine allgemeine Abstraktion
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1515884935318" ID="ID_1231381049" MODIFIED="1518487921066" TEXT="Navigator">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1515884949013" ID="ID_562171495" MODIFIED="1518487921066" TEXT="nur lesend"/>
<node CREATED="1515884972018" ID="ID_105092644" MODIFIED="1518487921066" TEXT="leistet Baum-Abstraktion"/>
<node CREATED="1515884955620" ID="ID_1330012545" MODIFIED="1518487921066" TEXT="manipuliert Zustand, nicht Struktur"/>
<node CREATED="1515885006181" ID="ID_150080053" MODIFIED="1518487921066">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
implementiert <b>LocationQuery</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#8c98a0" DESTINATION="ID_1092683882" ENDARROW="Default" ENDINCLINATION="-155;0;" ID="Arrow_ID_1761525173" STARTARROW="None" STARTINCLINATION="-156;6;"/>
<linktarget COLOR="#8c98a0" DESTINATION="ID_150080053" ENDARROW="Default" ENDINCLINATION="198;0;" ID="Arrow_ID_1806083846" SOURCE="ID_1634512088" STARTARROW="None" STARTINCLINATION="10;48;"/>
</node>
</node>
</node>
<node CREATED="1515891291587" HGAP="42" ID="ID_1000521247" MODIFIED="1518487921066" TEXT="Design" VSHIFT="11">
<node CREATED="1515891297466" ID="ID_1885414397" MODIFIED="1518487921066" TEXT="Komponenten sind nach Themen geschnitten"/>
<node CREATED="1515891308057" ID="ID_89499528" MODIFIED="1518487921066" TEXT="Zyklen werden &#xfc;ber abstrakte Interfaces gef&#xfc;hrt"/>
<node CREATED="1515891349731" ID="ID_1663035567" MODIFIED="1518487921066" TEXT="ViewLocator &quot;generiert nebenbei&quot; die DSL-Token">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506175097367" FOLDED="true" ID="ID_1442345755" MODIFIED="1538871791411" TEXT="ViewSpec-DSL">
<arrowlink COLOR="#b45c5a" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-468;-196;" ID="Arrow_ID_1955094318" STARTARROW="None" STARTINCLINATION="360;85;"/>
<linktarget COLOR="#6a8499" DESTINATION="ID_1442345755" ENDARROW="Default" ENDINCLINATION="-971;84;" ID="Arrow_ID_1191206769" SOURCE="ID_1844877136" STARTARROW="None" STARTINCLINATION="502;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1515877499720" HGAP="-59" ID="ID_1283126436" MODIFIED="1518487921066" TEXT="Basis" VSHIFT="29">
<node CREATED="1515877527300" ID="ID_1356241564" MODIFIED="1518487921066" TEXT="ist Teil des ViewLocators">
<arrowlink COLOR="#3b6680" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-269;-228;" ID="Arrow_ID_408957918" STARTARROW="Default" STARTINCLINATION="-858;0;"/>
<arrowlink COLOR="#3b6680" DESTINATION="ID_680693474" ENDARROW="Default" ENDINCLINATION="-178;8;" ID="Arrow_ID_1157808975" STARTARROW="None" STARTINCLINATION="98;0;"/>
</node>
<node CREATED="1515877545642" ID="ID_1723275956" MODIFIED="1518487921066" TEXT="lebt in der Implementierung"/>
<node CREATED="1515877577414" ID="ID_664776417" MODIFIED="1518487921066" TEXT="Bausteine sind sichtbar...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...als Namespace-globale Variable mit externer Linkage
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#435e98" CREATED="1523117792890" ID="ID_1972679538" MODIFIED="1529076688969" TEXT="Effizienz m&#xe4;&#xdf;ig/unkritisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Ein Lookup-Vorgang ist schon ehr aufwendig,
</p>
<p>
jedoch harmlos im Vergleich zu einer einzigen Frame-Berechnung.
</p>
<ul>
<li>
im ersten Schritt machen wir eine Tiefensuche potentiell &#252;ber die ganze UI-Topologie
</li>
<li>
im zweiten Schritt wiederholen wir noch mal den Abstiegspfad zur L&#246;sung des ersten Schrittes
</li>
</ul>
<p>
Grunds&#228;tzlich gilt hier die Einsch&#228;tzung: <b>Klarheit der Schnittstelle hat Vorrang</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#abc5e4" DESTINATION="ID_1210359211" ENDARROW="Default" ENDINCLINATION="-217;-87;" ID="Arrow_ID_1226100946" STARTARROW="None" STARTINCLINATION="-187;427;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1506181855132" ID="ID_787628963" MODIFIED="1522939107508" TEXT="ViewSpec">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506181868898" ID="ID_1852393086" MODIFIED="1531584013566" TEXT="Resolver">
<icon BUILTIN="button_ok"/>
<node CREATED="1515634532968" ID="ID_1968327718" MODIFIED="1518487921066" TEXT="Abrufen der UI-Coord triggert Resolver">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#2b46b7" CREATED="1515631590595" ID="ID_1454085887" MODIFIED="1529076581800" TEXT="wie mit ViewLocator-Service verdrahten?">
<arrowlink COLOR="#614483" DESTINATION="ID_1252372720" ENDARROW="Default" ENDINCLINATION="-203;-10;" ID="Arrow_ID_1759099248" STARTARROW="Default" STARTINCLINATION="-373;-23;"/>
<icon BUILTIN="help"/>
<node CREATED="1522809043561" ID="ID_1735397574" MODIFIED="1522809050105" TEXT="gar nicht direkt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1522809051096" ID="ID_1045087817" MODIFIED="1522809066884">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ViewLocator <i>ruft</i>&#160;die DSL auf
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522809068294" ID="ID_1952538901" MODIFIED="1522809098365" TEXT="LocatorSpec in der DSL hat ein Depend&lt;UILocationSolver&gt;"/>
<node CREATED="1522809099593" ID="ID_627167110" MODIFIED="1522809142602">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...welcher wiederum von ViewLocator <i>betrieben</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522809144347" ID="ID_1903702867" MODIFIED="1522809145703" TEXT="und mit Navigator als LocationQuery hinterlegt ist"/>
<node CREATED="1522809146618" ID="ID_827431936" MODIFIED="1522809154977" TEXT="ois kloar?">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515631616944" ID="ID_700537003" MODIFIED="1518487921066" TEXT="verbinden mit Navigator als LocationQuery-Implementierung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515631646108" ID="ID_1553855476" MODIFIED="1518840394020" TEXT="UICoordResolver erzeugen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515979648475" FOLDED="true" HGAP="38" ID="ID_350272872" MODIFIED="1533685125752" TEXT="Funktionsweise der &quot;Resolution&quot; kl&#xe4;ren" VSHIFT="1">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1515980158112" ID="ID_1744041635" MODIFIED="1522939070606" TEXT="der Reihe nach pr&#xfc;fen">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1515979664353" ID="ID_1353761382" MODIFIED="1533608413665" TEXT="was hei&#xdf;t &quot;existing&quot;?">
<icon BUILTIN="help"/>
<node CREATED="1515979750382" ID="ID_598253186" MODIFIED="1518487921067" TEXT="darf nicht neu erzeugt werden">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1515979791512" ID="ID_1473589676" MODIFIED="1518487921067" TEXT="Gegensatz: View ggfs an bekannter Stelle erzeugen"/>
<node CREATED="1515979803503" FOLDED="true" ID="ID_397957162" MODIFIED="1533608416169" TEXT="Schlu&#xdf;folgerung">
<icon BUILTIN="forward"/>
<node CREATED="1516909893778" ID="ID_659065678" MODIFIED="1518487921067" TEXT="&quot;existing&quot; &#x27fa; total coverage"/>
<node CREATED="1516909908686" ID="ID_1886532442" MODIFIED="1518487921067" TEXT="&quot;create&quot; &#x27fa; can cover"/>
</node>
</node>
<node CREATED="1515980170359" ID="ID_1820091983" MODIFIED="1518487921067" TEXT="L&#xf6;sung erfordert wenigstens partielle coverage"/>
<node CREATED="1515982274106" ID="ID_1283888757" MODIFIED="1533608413666" TEXT="Problem: Match erm&#xf6;glichen">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1515982295663" ID="ID_208797931" MODIFIED="1518487921067" TEXT="der View-Name fehlt noch"/>
<node CREATED="1515982302678" ID="ID_1579006450" MODIFIED="1518487921067" TEXT="nicht existierende Parents"/>
<node CREATED="1515982330139" ID="ID_176314830" MODIFIED="1518487921067" TEXT="Perspective == egal"/>
</node>
<node COLOR="#990000" CREATED="1515982375397" ID="ID_773035469" MODIFIED="1533608413667" STYLE="fork" TEXT="Fallback &quot;wenn alles scheitert&quot;?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1516910666253" ID="ID_1056732886" MODIFIED="1518487921067" TEXT="Misconfig"/>
<node CREATED="1516910669357" ID="ID_1129354200" MODIFIED="1518487921067" TEXT="fataler Fehler"/>
<node CREATED="1516910673110" FOLDED="true" ID="ID_436584221" MODIFIED="1533608416170" TEXT="Regel mu&#xdf; Fallback enthalten">
<icon BUILTIN="yes"/>
<node CREATED="1516910710727" ID="ID_1042011734" MODIFIED="1518487921067" TEXT="warum?"/>
<node CREATED="1516910736388" ID="ID_1267411576" MODIFIED="1518487921067" TEXT="Principle of least surprise"/>
<node CREATED="1516910715343" ID="ID_1721041331" MODIFIED="1518487921067" TEXT="sonst default f&#xfc;r den default">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sonst bekommen wir eine versteckte
</p>
<p>
zweite hart-gecodete Fallback-Konfig
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1516147992493" HGAP="24" ID="ID_4925227" MODIFIED="1533608413668" TEXT="wie wird das Zielobjekt selber bestimmt?" VSHIFT="-1">
<icon BUILTIN="help"/>
<node CREATED="1516148029148" FOLDED="true" ID="ID_1974346974" MODIFIED="1533608416172" TEXT="M&#xf6;glichkeiten">
<node CREATED="1516148034899" ID="ID_1675414085" MODIFIED="1518487921067" TEXT="explizit anschreiben"/>
<node CREATED="1516148048121" ID="ID_1850664922" MODIFIED="1518487921067" TEXT="aus letzter gegebener Komponente ableiten"/>
<node CREATED="1516909656846" ID="ID_1429663106" MODIFIED="1518487921067" TEXT="aus Typ ableiten und fehlende Parents erg&#xe4;nzen"/>
</node>
<node CREATED="1516148091716" FOLDED="true" ID="ID_1815243780" MODIFIED="1533608416174" TEXT="Anforderungen">
<icon BUILTIN="info"/>
<node CREATED="1516148107065" ID="ID_389475040" MODIFIED="1518487921067" TEXT="Name-ID des Elements bestimmbar"/>
<node CREATED="1516148118064" FOLDED="true" ID="ID_541058997" MODIFIED="1533608415867" TEXT="Coverage feststellbar">
<node CREATED="1516148128790" FOLDED="true" ID="ID_739368723" MODIFIED="1533608415534" TEXT="partiell">
<node CREATED="1516148133085" ID="ID_325513379" MODIFIED="1518487921067" TEXT="ein nicht-Wildcard darunter mu&#xdf; schon existieren"/>
<node CREATED="1516148144267" ID="ID_1074912934" MODIFIED="1518487921067" TEXT="Problem: Perspektive"/>
</node>
<node CREATED="1516148152938" FOLDED="true" ID="ID_1439081992" MODIFIED="1533608415536" TEXT="total">
<node CREATED="1516148156514" ID="ID_323573839" MODIFIED="1518487921067" TEXT="Komponente selber mu&#xdf; spezifiziert sein"/>
<node CREATED="1516148172864" ID="ID_1611427093" MODIFIED="1518487921067" TEXT="erst dann kann man Match &#xfc;berhaupt pr&#xfc;fen"/>
</node>
</node>
<node CREATED="1516148185461" FOLDED="true" ID="ID_1903672954" MODIFIED="1533608415872" TEXT="Konsequenz">
<icon BUILTIN="forward"/>
<node CREATED="1516148190821" ID="ID_1390287231" MODIFIED="1518487921067" TEXT="Koordinaten-Erg&#xe4;nzung mu&#xdf; im Locator erfolgen"/>
<node CREATED="1516909726125" ID="ID_1451248007" MODIFIED="1518487921067">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>existing()</b>&#160;sollte <i>default</i>&#160;sein und <b>create()</b>&#160;explizit anzufordern
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil der gr&#246;&#223;te Teil aller real anzugebenden Regel-Klauseln
</p>
<p>
von der Bedeutung her &quot;existing&quot; meint
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1516912422576" ID="ID_1350672682" MODIFIED="1518487921067" TEXT="create() tritt normalerweise auf der letzten Regel auf"/>
<node CREATED="1516912433647" ID="ID_1102539904" MODIFIED="1518487921067" TEXT="das k&#xf6;nnte redundant sein, ist aber klarer so"/>
<node CREATED="1516910880176" ID="ID_1842572487" MODIFIED="1518487921067" TEXT="create() kann scheitern"/>
<node CREATED="1516910885938" FOLDED="true" ID="ID_348346243" MODIFIED="1533608415539" TEXT="abschlie&#xdf;ende create()-Regel">
<node CREATED="1516910927252" ID="ID_219541480" MODIFIED="1518487921067" TEXT="sollte failsafe sein"/>
<node CREATED="1516910928914" ID="ID_698619582" MODIFIED="1518487921067" TEXT="d.h. stets realisierbar"/>
<node CREATED="1516910936185" ID="ID_1449340119" MODIFIED="1518487921067" TEXT="modulo Perspektive"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1516916455847" FOLDED="true" ID="ID_1054137561" MODIFIED="1533608416176" TEXT="Ergebnis">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1516916468901" ID="ID_1527047531" MODIFIED="1518487921067">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>komplett definierter</i>&#160;Pfad incl Zielobjekt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1516916496673" ID="ID_1162890109" MODIFIED="1518487921067">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ggfs wird <i>h&#246;chstes ein abschlie&#223;endes</i>&#160;Element hinzugef&#252;gt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1516916543155" ID="ID_458920753" MODIFIED="1518487921067">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dieser Pfad ist stets <i>anchored</i>&#160;und <i>partially covered</i>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#48639d" CREATED="1516916096887" HGAP="32" ID="ID_319974456" MODIFIED="1533608413676" TEXT="zu kl&#xe4;ren...." VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1516916105462" FOLDED="true" ID="ID_1576570507" MODIFIED="1533608416177" TEXT="ist die Semantik of canCover() ausreichend?">
<icon BUILTIN="button_ok"/>
<node CREATED="1517011522978" ID="ID_1745637631" MODIFIED="1518487921067" TEXT="im Prinzip ja">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1517011530017" ID="ID_1904091651" MODIFIED="1518487921067" TEXT="Sonderbehandlung Perspektive notwendig"/>
</node>
<node COLOR="#338800" CREATED="1516916140785" FOLDED="true" ID="ID_1667593991" MODIFIED="1533608416179" TEXT="wie umschiffen wir konkret das Problem mit der Perspektive?">
<icon BUILTIN="button_ok"/>
<node CREATED="1517011709672" FOLDED="true" ID="ID_755188751" MODIFIED="1533608415875" TEXT="Problem ist...">
<icon BUILTIN="info"/>
<node CREATED="1517011717447" ID="ID_1098719627" MODIFIED="1518487921067" TEXT="da&#xdf; es typischerweise nur eine Perspektive gibt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
zwar k&#246;nnte es (sp&#228;ter mal) sein,
</p>
<p>
da&#223; wir mehrere Perspektiven gleichzeitig in die UI-Topologie abbilden...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517011727918" ID="ID_1678474222" MODIFIED="1518487921067" TEXT="und man daher typischerweise diese in der Spec weglassen m&#xf6;chte">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil die Perspektive eigentlich als <i>etwas Orthogonales</i>&#160;empfunden wird,
</p>
<p>
das nicht dirket zur &quot;harten&quot; Topologie geh&#246;rt, sondern vielmehr bestehende Elemente umgruppiert.
</p>
<p>
Andererseits m&#246;chte man eben doch manchmal eine View-Spec eigens auf eine bestimmte Perspektive beschr&#228;nken,
</p>
<p>
und deshalb habe ich die Perspektive zu den UI-Koordinaten hinzugenommen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517011745635" ID="ID_1001739741" MODIFIED="1518487921067" TEXT="aber dies einen Wildcard zur Folge hat, der eine L&#xf6;sung verhindern kann">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar genau dann, wenn bereits die n&#228;chste Komponente unterhalb der Perspektive,
</p>
<p>
also das Pannel, nicht oder nicht in dieser Form existiert, also erzeugt werden m&#252;&#223;te.
</p>
<p>
Unser Kriterium f&#252;r L&#246;sungen jedoch verlangt mindestens einen Match jenseits der Wildcards,
</p>
<p>
um den Match eindeutig zu machen.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1517012023926" FOLDED="true" ID="ID_836827160" MODIFIED="1533608415878" TEXT="mehre M&#xf6;glichkeiten">
<icon BUILTIN="idea"/>
<node CREATED="1517012160083" FOLDED="true" ID="ID_485906589" MODIFIED="1533608415544" TEXT="currentPerspective()">
<icon BUILTIN="button_cancel"/>
<node CREATED="1517012171313" ID="ID_736089446" MODIFIED="1518487921067" TEXT="weiteres Pr&#xe4;dikat"/>
<node CREATED="1517012228857" ID="ID_308230619" MODIFIED="1518487921067" TEXT="mu&#xdf; explizit in der Spec stehen"/>
<node CREATED="1517012184768" ID="ID_165605510" MODIFIED="1518487921067" TEXT="wird durch das gew&#xe4;hlte Fenster gebunden"/>
<node CREATED="1517012202061" ID="ID_910880935" MODIFIED="1518487921067" TEXT="Name ist unbefriedigend"/>
<node CREATED="1517012253638" ID="ID_154854590" MODIFIED="1518487921067" TEXT="sprengt die bisherige Implementierung"/>
</node>
<node CREATED="1517012313269" FOLDED="true" ID="ID_1391847315" MODIFIED="1533608415549" TEXT="Wildcard-Erkennung manipulieren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1517012327796" ID="ID_1970065087" MODIFIED="1518487921068" TEXT="wenn Perspektive der letzte Wildcard ist"/>
<node CREATED="1517012337771" ID="ID_1231541108" MODIFIED="1518487921068" TEXT="...dann z&#xe4;hlt das nicht mehr als Wildcard"/>
<node CREATED="1517012358240" ID="ID_813053802" MODIFIED="1518487921068" TEXT="und wird folglich gebunden und als L&#xf6;sung geliefert"/>
<node CREATED="1517012382901" FOLDED="true" ID="ID_273084853" MODIFIED="1525124215514" TEXT="Pro">
<node CREATED="1517012386556" ID="ID_391025327" MODIFIED="1518487921068" TEXT="funktioniert zuverl&#xe4;ssig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sofern es stets eine Perspektive geben mu&#223;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517012407785" ID="ID_420210882" MODIFIED="1518487921068" TEXT="leicht auf den bestehenden Algo aufzupflanzen"/>
</node>
<node CREATED="1517012430454" FOLDED="true" ID="ID_347958929" MODIFIED="1525124215515" TEXT="Contra">
<node CREATED="1517012434342" ID="ID_421366317" MODIFIED="1518487921068" TEXT="magisch"/>
<node CREATED="1517012444100" ID="ID_936293863" MODIFIED="1518487921068" TEXT="Funktionsweise nicht leicht zu durchschauen"/>
</node>
</node>
<node CREATED="1517012475424" FOLDED="true" ID="ID_1174371180" MODIFIED="1533608415556" TEXT="element elided">
<icon BUILTIN="button_ok"/>
<node CREATED="1517012497909" ID="ID_1850562402" MODIFIED="1518487921068" TEXT="neuer spezieller Wildcard"/>
<node CREATED="1517012527593" ID="ID_1563301573" MODIFIED="1518487921068" TEXT="wird behandelt wie direkter Match"/>
<node CREATED="1517012749682" ID="ID_616699299" MODIFIED="1518487921068" TEXT="kann ggfs in mehreren Zweigen matchen"/>
<node CREATED="1517012770456" ID="ID_1332721436" MODIFIED="1518487921068" TEXT="k&#xf6;nnte vom DSL-Handler bei Bedarf injiziert werden">
<linktarget COLOR="#d55642" DESTINATION="ID_1332721436" ENDARROW="Default" ENDINCLINATION="-121;7;" ID="Arrow_ID_1616643867" SOURCE="ID_1238726037" STARTARROW="None" STARTINCLINATION="81;-10;"/>
</node>
<node CREATED="1517012855604" FOLDED="true" ID="ID_1313395113" MODIFIED="1525124215515" TEXT="Pro">
<node CREATED="1517012861315" ID="ID_1630656396" MODIFIED="1518487921068" TEXT="war ohnehin vorgesehen und notwendig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar zwingend notwendig, weil es (viele) Views geben wird,
</p>
<p>
welche keine mehrfachen TABs unterst&#252;tzen. In solchen F&#228;llen brauchen wir
</p>
<p>
ein Konstrukt, mit dem sich eine Ebene im Baum &#252;berspringen l&#228;&#223;t
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517012879513" ID="ID_391823235" MODIFIED="1518487921068" TEXT="mu&#xdf; sowiso noch nachimplementiert werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<i>&quot;mu&#223;&quot;</i>&#160;ist relativ, denn mit den bisherigen Anforderungen
</p>
<p>
h&#228;tte es gen&#252;gt, den &quot;elided&quot;-Platzhalter nur in den konkreten UI-Koordinaten
</p>
<p>
zu verwenden, und ihn dann jeweils per Wildcard zu matchen (was automatisch passiert,
</p>
<p>
einfach wenn die betreffende Komponente in der Angabe fehlt)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517012889559" ID="ID_1411847979" MODIFIED="1518487921068" TEXT="f&#xfc;gt sich organisch in die Implementierung ein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Die korrekte Semantik f&#228;llt uns hier wirklich in den Scho&#223;,
</p>
<p>
es ist nur eine weitere Zeile in dem Test, ob ein Match vorliegt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1517012992353" FOLDED="true" ID="ID_1397586437" MODIFIED="1525124215515" TEXT="Contra">
<node CREATED="1517012996289" ID="ID_251225300" MODIFIED="1518487921068" TEXT="magisch und subtil"/>
<node CREATED="1517013001144" ID="ID_711459982" MODIFIED="1518487921068" TEXT="zwei verschiedene Wildcards">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wobei einer, n&#228;mlich '*' sehr offensichtlich und bekannt ist,
</p>
<p>
w&#228;hrend der andere (eben dieses '.' == elided) eigens erkl&#228;rt werden mu&#223;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517013053265" ID="ID_1569479466" MODIFIED="1518487921068" TEXT="gewisses Mi&#xdf;brauchs-Potential">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil es eigentlich ein Wildcard ist,
</p>
<p>
aber vom gesamten sonstigen Algorithmus nicht als Wildcard behandelt wird.
</p>
<p>
Damit kann man alle Einschr&#228;nkungen unterlaufen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517013164050" ID="ID_623452791" MODIFIED="1518487921068" TEXT="mehrfach-L&#xf6;sungen nicht offensichtlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Korrekter Gebrauch setzt eigentlich voraus,
</p>
<p>
da&#223; es an dieser Stelle auch tats&#228;chlich &quot;gar nichts&quot; oder nur &quot;ein stets festes Element&quot; gibt.
</p>
<p>
F&#252;r die Perspektive ist das (nach jetztiger Planung) stets gegeben.
</p>
<p>
</p>
<p>
Wenn man allerdings diese Bedingung verletzt, dann matcht der &quot;elided&quot;-Platzhalter
</p>
<p>
in mehreren alternativen Zweigen wie ein Wildcard, und es h&#228;ngt dann von
</p>
<p>
zuf&#228;lligen Umst&#228;nden ab, ob man die erwartete L&#246;sung bekommt
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1517013731613" ID="ID_1238726037" MODIFIED="1518487921068" TEXT="besste L&#xf6;sung offensichtlich....">
<arrowlink COLOR="#d55642" DESTINATION="ID_1332721436" ENDARROW="Default" ENDINCLINATION="-121;7;" ID="Arrow_ID_1616643867" STARTARROW="None" STARTINCLINATION="81;-10;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1516916210656" FOLDED="true" ID="ID_1339759450" MODIFIED="1533608416181" TEXT="wie ermitteln wir das zu erzeugende Suffix des Pfades?">
<icon BUILTIN="button_ok"/>
<node CREATED="1517016683468" ID="ID_174913733" MODIFIED="1518487921068" TEXT="&quot;create()&quot;-Fall &#x27f9; partiallyCovered()">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1517016762625" ID="ID_320463832" MODIFIED="1518487921068" TEXT="...m&#xfc;&#xdf;te diese Info an den Allocator weitergeben"/>
<node CREATED="1517016781198" FOLDED="true" ID="ID_1556601725" MODIFIED="1533608415881" TEXT="Idee: Allocator nimmt UI-Coord-Resolver?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1517018164354" ID="ID_308763864" MODIFIED="1518487921068" TEXT="w&#xfc;rde theoretisch gehen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
blo&#223; w&#252;rde sich die Signatur der DSL-Bausteine &#228;ndern:
</p>
<p>
Allocator = std::function&lt;UICoord(UICoordResolver)&gt;;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517018171153" ID="ID_912683774" MODIFIED="1518487921068" TEXT="wird ziemlich technisch in der Implementierung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn Reolver ist ein UICoord::Builder und als Solcher non-copyable.
</p>
<p>
Also w&#252;rde das ganze Gefrickel mit Referenzen losgehen,
</p>
<p>
in einem St&#252;ck Metaprogramming-Code, das ohnenhin schon ziemlich &quot;dicht&quot; ist....
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517018198398" ID="ID_986073860" MODIFIED="1518487921068" TEXT="sonst mu&#xdf; man halt noch mal traversieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Der Punkt ist: das ist eine reine Lauzeit/Effzienz-&#220;berlegung.
</p>
<p>
</p>
<p>
Nachdem das Pfad-Matching in der DSL f&#252;r die Location die passende L&#246;sung gew&#228;hlt hat,
</p>
<p>
w&#228;re -- im UICoordResolver eben -- auch schon die effektive Coverage bekannt.
</p>
<p>
Da aber unser API nach (reinen) UI-Coord verlangt, werden diese aus der berechneten L&#246;sung
</p>
<p>
herausbewegt. Und der Allokator mu&#223; sich dann erneut einen UICoordResolver bauen,
</p>
<p>
oder zumindest das LocationQuery-Interface bem&#252;hen, welches dann nochmal den Baum
</p>
<p>
traversiert um die Coverage festzustellen.
</p>
<ul>
<li>
Ja, das kostet und ist verschwenderisch...
</li>
<li>
und Ja, vermutlich sind die paar CPU-Zyklen komplett egal
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1517018183472" ID="ID_1424416822" MODIFIED="1518487921068" TEXT="als Optimierung auf sp&#xe4;ter vertagt...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist der klassische Fall, wo man wegen einer solchen Optimierung
</p>
<p>
sich ein Interface versaut und ziemliche zus&#228;tzliche Komplexit&#228;ten an Bord zieht.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1517018624028" ID="ID_701345322" MODIFIED="1518487921068" TEXT="Antwort: gar nicht, wir berechnen das neu">
<icon BUILTIN="forward"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518658487899" FOLDED="true" ID="ID_1831478029" MODIFIED="1533608416184" TEXT="wie k&#xf6;nnen Regeln auf den Anwendungs-Kontext Bezug nehmen?">
<linktarget COLOR="#967ea6" DESTINATION="ID_1831478029" ENDARROW="Default" ENDINCLINATION="-800;514;" ID="Arrow_ID_162294902" SOURCE="ID_986224819" STARTARROW="None" STARTINCLINATION="693;-50;"/>
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518658506857" ID="ID_589229909" MODIFIED="1518658523711" TEXT="das Problem &quot;asset Tab&quot;">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1518658837468" ID="ID_744795602" MODIFIED="1518658861070" TEXT="invertiert die logischen Abh&#xe4;ngigkeiten">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1518658902747" FOLDED="true" ID="ID_976555378" MODIFIED="1533608415883" TEXT="entspricht der Unifikation in Logik-Programmierung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...insofern auch dort
</p>
<p>
die jeweilige generische Regel parametrisiert / instantiiert wird
</p>
<p>
gegen den Kontext, mit dem sie matchen soll
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1518762048186" ID="ID_1857576258" MODIFIED="1518762055013" TEXT="m&#xf6;chte ich eigentlich nicht einf&#xfc;hren"/>
<node CREATED="1518762055881" ID="ID_1976334061" MODIFIED="1518762100381" TEXT="vorerst nicht weiter verfolgt">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518746009058" ID="ID_1800549154" MODIFIED="1518830352525" TEXT="#1130 allow view location by similar kind">
<arrowlink COLOR="#77546e" DESTINATION="ID_1501187790" ENDARROW="Default" ENDINCLINATION="447;-339;" ID="Arrow_ID_437325251" STARTARROW="None" STARTINCLINATION="486;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1518659028202" ID="ID_1880101392" MODIFIED="1518659037749" TEXT="betrifft eigentlich auch currentWindow()"/>
<node CREATED="1518659526767" ID="ID_839916178" MODIFIED="1518742936572" TEXT="&#x27f9; ist Variablen-Bindung und Funktionsauswertung">
<arrowlink COLOR="#8e6e9e" DESTINATION="ID_1208480183" ENDARROW="Default" ENDINCLINATION="-458;-16;" ID="Arrow_ID_504124124" STARTARROW="None" STARTINCLINATION="-600;49;"/>
</node>
</node>
<node COLOR="#48639d" CREATED="1516916599018" FOLDED="true" ID="ID_809925267" MODIFIED="1533608416186" TEXT="wie genau mu&#xdf; die Aufrufschnittstelle aussehen?">
<icon BUILTIN="help"/>
<node CREATED="1517084001346" FOLDED="true" ID="ID_101484926" MODIFIED="1533608415885" TEXT="bekannter Ausgangspunkt">
<node CREATED="1517083926212" FOLDED="true" ID="ID_1898315920" MODIFIED="1533608415558" TEXT="location">
<node CREATED="1517021261097" ID="ID_127451793" MODIFIED="1518487921068" TEXT="wird von der Umwandlung in UICoord getrieben"/>
<node CREATED="1517084031198" FOLDED="true" ID="ID_120792277" MODIFIED="1525124215515" TEXT="braucht">
<node CREATED="1517021285330" ID="ID_38597538" MODIFIED="1518487921068" TEXT="LocationQuery"/>
<node CREATED="1517084112371" ID="ID_769147946" MODIFIED="1518487921068" TEXT="Name bzw. Typ des Elements"/>
</node>
</node>
<node CREATED="1517084049228" FOLDED="true" ID="ID_919406389" MODIFIED="1533608415560" TEXT="allocation">
<node CREATED="1517084052451" ID="ID_1249788788" MODIFIED="1518487921068" TEXT="konsumiert Ergebnis von location"/>
<node CREATED="1517084617710" FOLDED="true" ID="ID_1812571482" MODIFIED="1525124215515" TEXT="braucht">
<node CREATED="1517084621814" FOLDED="true" ID="ID_1163837563" MODIFIED="1525124214917" TEXT="LocationQuery">
<node CREATED="1517084626949" FOLDED="true" ID="ID_73780971" MODIFIED="1525124214917" TEXT="um die Multiplicity-Constraints zu pr&#xfc;fen">
<node CREATED="1517084664528" ID="ID_749914799" MODIFIED="1518487921068" TEXT="wir traversieren / matchen erneut"/>
<node CREATED="1517084673487" ID="ID_114406974" MODIFIED="1518487921068" TEXT="Optimierung w&#xe4;re ein View-Index">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist eine typische, rein lokale Optimierung (Speicher vs CPU)
</p>
<p>
Ein solcher View-Index sollte dann ebenfalls via LocationQuery exponiert werden
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1517084780368" ID="ID_438448516" MODIFIED="1518487921068" TEXT="um das zu erzeugende Pfad-Suffix zu finden"/>
</node>
<node CREATED="1517084832201" FOLDED="true" ID="ID_1256502240" MODIFIED="1525124214918" TEXT="ViewLocator">
<node CREATED="1517084844456" ID="ID_1565019572" MODIFIED="1518487921068" TEXT="um auf die eigentlichen Elemente durchzugreifen"/>
<node CREATED="1517084853574" ID="ID_654820561" MODIFIED="1518487921068" TEXT="um die Erzeugung anzusto&#xdf;en"/>
</node>
</node>
</node>
</node>
<node CREATED="1517085201199" FOLDED="true" ID="ID_857446188" MODIFIED="1533608415888" TEXT="Problem: Name/Typ">
<node CREATED="1517085219749" FOLDED="true" ID="ID_1532208378" MODIFIED="1533608415564" TEXT="mu&#xdf; das DSL-API ge&#xe4;ndert werden?">
<icon BUILTIN="help"/>
<node CREATED="1517085233491" ID="ID_30019292" MODIFIED="1518487921068" TEXT="location auch ein Funktor?"/>
<node CREATED="1517085244625" ID="ID_413721839" MODIFIED="1518487921068" TEXT="nimmt jeweils den konkreten Typ"/>
<node CREATED="1517504908529" FOLDED="true" ID="ID_1809382464" MODIFIED="1525124215515" TEXT="Unterschied zum Allocator">
<icon BUILTIN="idea"/>
<node CREATED="1517504917464" ID="ID_708832973" MODIFIED="1518487921068">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
es gibt <i>nur einen</i>&#160;&quot;Locator&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1517504936349" ID="ID_554771782" MODIFIED="1518487921068" TEXT="aber viele Allocatoren"/>
<node CREATED="1517504985135" ID="ID_1830919763" MODIFIED="1518487921068" TEXT="keine partielle Funktor-Applikation notwendig">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1517505012763" ID="ID_1291355818" MODIFIED="1518487921068" TEXT="man kann es fest auscoden">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517505097399" FOLDED="true" ID="ID_294737534" MODIFIED="1533608415568" TEXT="Konsequenz: Locator wird zum Funktor">
<icon BUILTIN="button_ok"/>
<node CREATED="1517505142369" ID="ID_940906263" MODIFIED="1518487921068" TEXT="wird weiterhin initialisiert mit einer UI-Coord"/>
<node CREATED="1517508084435" ID="ID_536404927" MODIFIED="1518487921068" TEXT="baut daraus eine LocationRule (embedded delegate)"/>
<node CREATED="1517505168030" ID="ID_570287604" MODIFIED="1518487921068" STYLE="fork" TEXT="delegiert L&#xf6;sung an LocationSolver (PImpl)">
<arrowlink COLOR="#7999a3" DESTINATION="ID_1733459677" ENDARROW="Default" ENDINCLINATION="460;0;" ID="Arrow_ID_1447990036" STARTARROW="None" STARTINCLINATION="-15;211;"/>
</node>
<node CREATED="1517505262305" ID="ID_1820737013" MODIFIED="1518487921068" TEXT="ODER erg&#xe4;nzt diesen"/>
<node CREATED="1517505271712" ID="ID_454259889" MODIFIED="1518487921068" TEXT="Aufruf -&gt; solve -&gt; expliziter Pfad"/>
</node>
<node CREATED="1517505121564" ID="ID_880504673" MODIFIED="1518487921068" TEXT="Aufruf &#xe4;ndert sich">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1517505406390" FOLDED="true" ID="ID_799191936" MODIFIED="1533608415890" TEXT="DSL-Anwendung">
<icon BUILTIN="info"/>
<node CREATED="1517505438209" FOLDED="true" ID="ID_1991447613" MODIFIED="1533608415571" TEXT="Schritt 1">
<icon BUILTIN="full-1"/>
<node CREATED="1517505518247" ID="ID_1212835768" MODIFIED="1518487921068" TEXT="locate(typID)"/>
<node CREATED="1517505532484" FOLDED="true" ID="ID_192986712" MODIFIED="1525124215515" TEXT="liefert Pfad">
<node CREATED="1517505555066" ID="ID_286561451" MODIFIED="1518487921069" TEXT="komplettiert"/>
<node CREATED="1517505557977" ID="ID_1809908136" MODIFIED="1518487921069" TEXT="partially covered"/>
</node>
</node>
<node CREATED="1517505442593" FOLDED="true" ID="ID_164467382" MODIFIED="1533608415574" TEXT="Schritt 2">
<icon BUILTIN="full-2"/>
<node CREATED="1517505573687" ID="ID_197290428" MODIFIED="1518487921069" TEXT="allocate(pfad)"/>
<node CREATED="1517505580870" ID="ID_1902973372" MODIFIED="1518487921069" TEXT="mutiert ggfs das UI"/>
<node CREATED="1517505599515" FOLDED="true" ID="ID_1414969254" MODIFIED="1525124215515" TEXT="liefert Pfad">
<node CREATED="1517505605363" ID="ID_1831975809" MODIFIED="1518487921069" TEXT="zeigt auf gew&#xfc;nschtes Element"/>
<node CREATED="1523750537195" ID="ID_1546579450" MODIFIED="1523750551293" TEXT="hat ggfs die typID/Namens-ID dekoriert"/>
<node CREATED="1517505614937" ID="ID_262899447" MODIFIED="1518487921069" TEXT="totally covered"/>
</node>
</node>
</node>
</node>
<node COLOR="#48639d" CREATED="1516916611433" FOLDED="true" ID="ID_1887578617" MODIFIED="1533608416188" TEXT="welche zus&#xe4;tzlichen Services werden ben&#xf6;tigt?">
<icon BUILTIN="help"/>
<node CREATED="1517021372159" FOLDED="true" ID="ID_841350723" MODIFIED="1533608415892" TEXT="location">
<node CREATED="1518840121972" ID="ID_989066633" MODIFIED="1522938419001">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ein <b>LocationSolver</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1517021326957" ID="ID_20403834" MODIFIED="1522938411626">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>LocationQuery</b>&#160;qua Navigator
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1517021298929" ID="ID_621970077" MODIFIED="1518487921069">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...die es <i>hinten herum</i>&#160;bekommt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1517021389028" FOLDED="true" ID="ID_1240883488" MODIFIED="1533608415894" TEXT="Allocator">
<node CREATED="1517021395067" ID="ID_1609814715" MODIFIED="1518487921069" TEXT="die konkreten Allokatoren"/>
<node CREATED="1517021415017" ID="ID_1692689619" MODIFIED="1522938396840">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sehen <b>ViewLocator</b>-API
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517013926947" HGAP="247" ID="ID_1823688859" MODIFIED="1533685136952" TEXT="fehlende Implementierung..." VSHIFT="26">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517013976676" ID="ID_614348470" MODIFIED="1533608413693" TEXT="&quot;elided&quot; als Wildcard behandeln">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517013994137" ID="ID_140988955" MODIFIED="1518762169701" TEXT="einbauen (EInzeiler)">
<arrowlink COLOR="#91a7b5" DESTINATION="ID_974516393" ENDARROW="Default" ENDINCLINATION="-759;53;" ID="Arrow_ID_862004765" STARTARROW="None" STARTINCLINATION="1590;41;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517014001792" ID="ID_1542036736" MODIFIED="1518762171655" TEXT="Testf&#xe4;lle nachtragen">
<arrowlink COLOR="#4b5cab" DESTINATION="ID_796216711" ENDARROW="Default" ENDINCLINATION="-145;942;" ID="Arrow_ID_570641462" STARTARROW="None" STARTINCLINATION="383;78;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#990000" CREATED="1518658696759" ID="ID_68856104" MODIFIED="1533608413694">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Regel-Parametrisierung
</p>
<p>
Kontextualisierung
</p>
</body>
</html></richcontent>
<linktarget COLOR="#e46465" DESTINATION="ID_68856104" ENDARROW="Default" ENDINCLINATION="74;449;" ID="Arrow_ID_110301671" SOURCE="ID_1208480183" STARTARROW="None" STARTINCLINATION="-232;7;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1518658759567" FOLDED="true" ID="ID_1257805922" MODIFIED="1533608416189" TEXT="wie?">
<node CREATED="1517014036148" ID="ID_1650726696" MODIFIED="1518487921069" TEXT="on the fly">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1517014040147" ID="ID_144379993" MODIFIED="1518743268543" TEXT="beim Erzeugen des Resolvers"/>
</node>
<node CREATED="1518658744024" FOLDED="true" ID="ID_1009975119" MODIFIED="1533608416191" TEXT="Zweck">
<node COLOR="#338800" CREATED="1517014013207" FOLDED="true" ID="ID_1843964714" MODIFIED="1533608415896" TEXT="automatisches Injizieren von &quot;elided&quot;">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518743292259" ID="ID_1943028471" MODIFIED="1518839525198" TEXT="das machen wir trotzdem">
<arrowlink COLOR="#595f8d" DESTINATION="ID_1516856737" ENDARROW="Default" ENDINCLINATION="302;0;" ID="Arrow_ID_241747952" STARTARROW="None" STARTINCLINATION="697;-153;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1518743303177" ID="ID_1758602660" MODIFIED="1518743321547" TEXT="...und zwar direkt im LocationSolver"/>
</node>
<node CREATED="1518658412982" FOLDED="true" ID="ID_1860407174" MODIFIED="1533608415900" TEXT="L&#xf6;sung f&#xfc;r &quot;asset Tab&quot;">
<icon BUILTIN="hourglass"/>
<node CREATED="1518745809189" ID="ID_334346990" MODIFIED="1518746202442" TEXT="hier geht es um einen subtilen Punkt im Gebrauch des UI-Raumes">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Man m&#246;chte, da&#223; f&#252;r spezielle Sub-Elemente,
</p>
<p>
die aus einem fremden Kontext heraus ge&#246;ffnet werden,
</p>
<p>
zun&#228;chst versucht wird, einen irgendwo im UI schon bestehenden TAB
</p>
<p>
f&#252;r speziell diesen Element-Typ wiederzuverwenden; das erlaubt dem User,
</p>
<p>
sich einen Platz f&#252;r sehr spezielle Sachen beiseite zu setzen.
</p>
<p>
</p>
<p>
z.B. sehr spezielle Assets oder ein virtueller Clip.
</p>
<p>
</p>
<p>
Erst wenn so ein Ort nicht gefunden wird, m&#246;chte man auf einen
</p>
<p>
generischen Ort zur&#252;ckfallen, und erst als letzte default-L&#246;sung
</p>
<p>
im aktuellen Fenster einen v&#246;llig neuen UI-Elementkontext schaffen.
</p>
</body>
</html></richcontent>
<linktarget COLOR="#2c4580" DESTINATION="ID_334346990" ENDARROW="Default" ENDINCLINATION="242;0;" ID="Arrow_ID_1968525556" SOURCE="ID_1219364679" STARTARROW="None" STARTINCLINATION="78;0;"/>
</node>
<node CREATED="1518745834329" ID="ID_877601312" MODIFIED="1518745855890" TEXT="nicht klar, ob es gerechtfertigt ist, hierf&#xfc;r solche Komplexit&#xe4;ten zu schaffen"/>
<node CREATED="1518745857950" ID="ID_1572087161" MODIFIED="1518745944379" TEXT="wenn sollte man es besser explizit als Spezialfall hart-coden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...statt die gesamte Matching-Engine mit einer Art
</p>
<p>
halbgaren Unifikation aufzubrezln
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1518745906400" ID="ID_958966084" MODIFIED="1518745914960" TEXT="wildMatch() in ui-coord-resolver.cpp">
<icon BUILTIN="forward"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518746009058" FOLDED="true" ID="ID_43313184" MODIFIED="1533608415575" TEXT="#1130 allow view location by similar kind">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1518762071967" FOLDED="true" ID="ID_1501187790" MODIFIED="1525124215515" TEXT="ggfs partielle L&#xf6;sung?">
<linktarget COLOR="#77546e" DESTINATION="ID_1501187790" ENDARROW="Default" ENDINCLINATION="447;-339;" ID="Arrow_ID_437325251" SOURCE="ID_1800549154" STARTARROW="None" STARTINCLINATION="486;0;"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1518830375356" ID="ID_580870700" MODIFIED="1518830460134">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nur eingeschr&#228;nkt</i>&#160;auf die TypID?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1518830433876" FOLDED="true" ID="ID_486080918" MODIFIED="1525124214925" TEXT="Flag, um diese vor Matching injizieren">
<icon BUILTIN="idea"/>
<node CREATED="1518830500331" ID="ID_314535087" MODIFIED="1518830531395">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Preprocessing beim <i>Anlegen</i>&#160;der Klausel
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1518830545773" ID="ID_533394110" MODIFIED="1518830552887" TEXT="setzt spezielle Syntax in Flag um"/>
<node CREATED="1518830581200" ID="ID_1879545754" MODIFIED="1518830625478" TEXT="Flag &#x27f9; aktuelle typID wird als Term angeh&#xe4;ngt"/>
<node CREATED="1518830626306" ID="ID_1109967783" MODIFIED="1518830635572" TEXT="...und mu&#xdf; somit schon existieren"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1518660243382" FOLDED="true" HGAP="32" ID="ID_1951597669" MODIFIED="1533608416192" TEXT="technischer Ansatz" VSHIFT="-2">
<node CREATED="1518660484501" FOLDED="true" ID="ID_1142230788" MODIFIED="1533608415902" TEXT="Pattern umschreiben">
<node CREATED="1518660561314" ID="ID_719818438" MODIFIED="1518660568165" TEXT="sehr leicht zu implementieren"/>
<node CREATED="1518660569273" ID="ID_357095507" MODIFIED="1518660615103" TEXT="verwirrend/magisch/manipulativ"/>
<node CREATED="1518660696792" FOLDED="true" ID="ID_90938050" MODIFIED="1533608415577" TEXT="verschwenderisch">
<node CREATED="1518660724012" ID="ID_471630453" MODIFIED="1518660730367" TEXT="zus&#xe4;tzlicher Pass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518660732051" ID="ID_595304644" MODIFIED="1518738065908" TEXT="f&#xfc;r ein selten verwendetes Feature">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
<node CREATED="1518660504026" FOLDED="true" ID="ID_923980639" MODIFIED="1533608415906" TEXT="Matcher/Unifizierer">
<node CREATED="1518660781261" ID="ID_1851856047" MODIFIED="1518660789479" TEXT="sitzt im Solver selber"/>
<node CREATED="1518660790596" ID="ID_869512309" MODIFIED="1518660793175" TEXT="logisch korrekt"/>
<node CREATED="1518660795403" FOLDED="true" ID="ID_1080152835" MODIFIED="1533608415580" TEXT="erfordert Abstraktion">
<node CREATED="1518660845588" ID="ID_1526822574" MODIFIED="1518660850327" TEXT="Definitionsaufwand"/>
<node CREATED="1518660851035" ID="ID_1271437627" MODIFIED="1518660856798" TEXT="Einrichtungs-Aufwand"/>
<node CREATED="1518660857434" ID="ID_1501111250" MODIFIED="1518660906191" TEXT="komplex f&#xfc;r Test einzurichten"/>
</node>
<node CREATED="1518742996348" ID="ID_328356111" MODIFIED="1518743006606" TEXT="von der Ebene der Sprache her schwer zu verstehen"/>
<node CREATED="1518743012337" ID="ID_1220573120" MODIFIED="1518743054926">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bleibt dem Charakter nach <i>imperativ</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1518743065930" FOLDED="true" HGAP="79" ID="ID_1989234578" MODIFIED="1533608416194" TEXT="vorerst abgelehnt" VSHIFT="21">
<icon BUILTIN="stop-sign"/>
<node CREATED="1518743153214" ID="ID_513041431" MODIFIED="1518743159705" TEXT="keine der L&#xf6;sungen wirklich attraktiv"/>
<node CREATED="1518743167708" ID="ID_1748977650" MODIFIED="1518743186813" TEXT="sprengt gewisserma&#xdf;en den Ansatz eines reinen Matchers"/>
<node CREATED="1518743192305" ID="ID_1134364758" MODIFIED="1518743222705" TEXT="wenn man wirkliche Unifikation will &#x27f9; Resolution-Engine nehmen"/>
<node CREATED="1518743226772" FOLDED="true" ID="ID_1108128377" MODIFIED="1533608415908" TEXT="DSL-Entwurf nochmal angeschaut....">
<node CREATED="1518743248497" ID="ID_1219364679" MODIFIED="1518745996865" TEXT="Feature kann weitgehend umgangen werden">
<arrowlink COLOR="#2c4580" DESTINATION="ID_334346990" ENDARROW="Default" ENDINCLINATION="242;0;" ID="Arrow_ID_1968525556" STARTARROW="None" STARTINCLINATION="78;0;"/>
</node>
<node CREATED="1518743254401" ID="ID_1218065629" MODIFIED="1518743258377" TEXT="YAGNI">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517505328936" ID="ID_406973235" MODIFIED="1533608413702" TEXT="Umbauen Locator in Functor">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517505339663" FOLDED="true" ID="ID_470503309" MODIFIED="1533608416197" TEXT="DSL-Header restrukturieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517507830918" FOLDED="true" ID="ID_1112334086" MODIFIED="1533608415912" TEXT="Locator analog zu Allocator definieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1519355684307" FOLDED="true" ID="ID_336676610" MODIFIED="1533608415582">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
was <i>ist</i>&#160;der Locator?
</p>
</body>
</html></richcontent>
<node CREATED="1519355702409" ID="ID_609593004" MODIFIED="1520205015753" TEXT="eine LocationRule">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1519355709376" ID="ID_142286917" MODIFIED="1519355717530" TEXT="mit Aufruf-Mechanismus"/>
</node>
<node CREATED="1519357904845" FOLDED="true" ID="ID_691482201" MODIFIED="1533608415585" TEXT="Verwendungs-Schema">
<icon BUILTIN="yes"/>
<node CREATED="1519357910532" FOLDED="true" ID="ID_1670200821" MODIFIED="1525124215515" TEXT="komplett symmetrisch?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1519357919770" ID="ID_1959314257" MODIFIED="1519357951259" TEXT="zus&#xe4;tzliche Art der Location?">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1519357938272" ID="ID_446182371" MODIFIED="1519357948252" TEXT="Location-Builder">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1519357953550" FOLDED="true" ID="ID_1286263958" MODIFIED="1525124215516" TEXT="eine Ebene heben">
<icon BUILTIN="button_ok"/>
<node CREATED="1519357991409" ID="ID_994090473" MODIFIED="1519357999947" TEXT="Bauen per Zuweisung"/>
<node CREATED="1519358000671" ID="ID_49826255" MODIFIED="1519358015345" TEXT="Aufruf mit Typ-ID-Argument"/>
</node>
</node>
<node COLOR="#338800" CREATED="1519358138988" FOLDED="true" ID="ID_1481930885" MODIFIED="1533608415590" TEXT="DSL-Mechanik">
<icon BUILTIN="button_ok"/>
<node CREATED="1519358154386" ID="ID_1810798001" MODIFIED="1519358201550" TEXT="Allocator wird durch Zuweisen der AlocSpec generiert">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1519358178623" ID="ID_517547970" MODIFIED="1519442398323" TEXT="beim Locator fehlt ein entsprechendes Gegenst&#xfc;ck">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1519359156410" FOLDED="true" ID="ID_1786241256" MODIFIED="1525124215516" TEXT="Idee">
<icon BUILTIN="idea"/>
<node CREATED="1519359176855" ID="ID_853060191" MODIFIED="1519359192777">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
der <i>Level</i>&#160;im UI ist noch offen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1519359193821" ID="ID_588596170" MODIFIED="1519359234665" STYLE="fork" TEXT="das k&#xf6;nnte Argument eines Builders sein"/>
<node CREATED="1519359239735" FOLDED="true" ID="ID_988890391" MODIFIED="1525124214959" TEXT="konkret......">
<node CREATED="1519438604809" ID="ID_313142617" MODIFIED="1519438615852" TEXT="L&#xf6;sevorgang mu&#xdf; den Ziel-Level kennen"/>
<node CREATED="1519438617271" ID="ID_1310079168" MODIFIED="1519438673926">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>fast immer</i>&#160;ist das aber UIC_VIEW
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
im Moment f&#228;llt mir &#252;berhaupt keine Ausnahme ein
</p>
<p>
aber man soll niemals nie sagen;
</p>
<p>
</p>
<p>
jedenfalls ist der LocationSolver komplett generisch geschrieben,
</p>
<p>
w&#228;re ja auch d&#228;mlich, den auf einen Level festzunageln
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1519439848624" FOLDED="true" ID="ID_1356890401" MODIFIED="1525124214959">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann man den Level <i>erschlie&#223;en?</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1519439872572" ID="ID_1387780581" MODIFIED="1519439914138" TEXT="fast, aber leider nein">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1519439893089" ID="ID_350245814" MODIFIED="1519440011427" TEXT="nicht wenn alle Pattern gleich lang sind">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es ist nicht klar, ob die pattern bereits das fragliche View-Element mit einschlie&#223;en,
</p>
<p>
oder ob das View-Element noch angeh&#228;ngt werden soll. Diese Variation ist essentiell,
</p>
<p>
um Regeln auszudr&#252;cken, die explizit nur eine schon existierende UI-Komponente greifen
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1519440039302" FOLDED="true" ID="ID_779685706" MODIFIED="1525124214959" TEXT="folglich...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
<node CREATED="1519440044629" ID="ID_433141744" MODIFIED="1519442714991" TEXT="mu&#xdf; der Level entweder aus der DSL kommen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1519440054651" ID="ID_1512334426" MODIFIED="1519442712213" TEXT="oder er mu&#xdf; &#xfc;ber den Typ gecodet sein">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1519442682549" ID="ID_1285145089" MODIFIED="1519442708878" TEXT="oder explizit beim Aufruf mitgegeben">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
</node>
<node CREATED="1519437341366" FOLDED="true" ID="ID_1400629217" MODIFIED="1525124215516" TEXT="Alternativen">
<node CREATED="1519437362523" ID="ID_1967120024" MODIFIED="1519440122737" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auto locate = matchView(
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;panel(&quot;blah&quot;)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or currentWindow().panel(&quot;blubb&quot;).create() )
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1519437509655" ID="ID_241024117" MODIFIED="1519442360056" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
LocatorSpec&lt;UIC_VIEW&gt; locate = panel(&quot;blah&quot;)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or currentWindow().panel(&quot;blubb&quot;).create()
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1519437756333" ID="ID_565391583" MODIFIED="1519440134474" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ViewSpec locate = panel(&quot;blah&quot;)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or currentWindow().panel(&quot;blubb&quot;).create()
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1519440138712" FOLDED="true" ID="ID_861550710" MODIFIED="1525124215516" TEXT="Entscheidung">
<icon BUILTIN="yes"/>
<node CREATED="1519440157310" FOLDED="true" ID="ID_1912054433" MODIFIED="1525124214959" TEXT="ziehe die letzte Variante als Standard-Fall vor">
<node CREATED="1519440168660" ID="ID_1954754744" MODIFIED="1519440288338" TEXT="weil sie am unscheinbarsten ist">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1519440271318" ID="ID_436275698" MODIFIED="1519440283871" TEXT="auch wenn dadurch die Definitionen etwas schief werden">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1519440180978" FOLDED="true" ID="ID_42017722" MODIFIED="1525124214959" TEXT="die vorletzte Variante ist die eigentliche Definition">
<node CREATED="1519440198016" ID="ID_650838793" MODIFIED="1519440207306" TEXT="und ViewSpec ein Typ-Alias"/>
<node CREATED="1519440208487" ID="ID_1465224504" MODIFIED="1519440222184" TEXT="analog f&#xfc;r PanelSpec, WindowSpec"/>
</node>
<node CREATED="1519440250849" ID="ID_800018525" MODIFIED="1519440267084" TEXT="die Asymetrie in der DSL-Definition nehme ich in Kauf">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1519355735012" ID="ID_241646491" MODIFIED="1519355793090" TEXT="wo entsteht die LocationRule?">
<arrowlink COLOR="#647b96" DESTINATION="ID_1664602603" ENDARROW="Default" ENDINCLINATION="1374;300;" ID="Arrow_ID_947721778" STARTARROW="None" STARTINCLINATION="298;36;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1517507566761" FOLDED="true" ID="ID_839496495" MODIFIED="1533608415913">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Anwendung <i>delegiert</i>&#160;an einen Serivce
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1522807009051" ID="ID_578310400" MODIFIED="1522807052395">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
f&#252;r <i>LocationQuery</i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#2c5db0" DESTINATION="ID_578310400" ENDARROW="Default" ENDINCLINATION="52;3;" ID="Arrow_ID_808786860" SOURCE="ID_704863615" STARTARROW="None" STARTINCLINATION="52;3;"/>
</node>
<node CREATED="1522807024217" ID="ID_704863615" MODIFIED="1522807052394">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
f&#252;r <i>LocationSolver</i>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#2c5db0" DESTINATION="ID_578310400" ENDARROW="Default" ENDINCLINATION="52;3;" ID="Arrow_ID_808786860" STARTARROW="None" STARTINCLINATION="52;3;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1519355422807" FOLDED="true" ID="ID_1718427051" MODIFIED="1533608415916" TEXT="Service-Zugang regeln">
<icon BUILTIN="button_ok"/>
<node CREATED="1520221913300" FOLDED="true" ID="ID_906905" MODIFIED="1533608415593" TEXT="Design?">
<icon BUILTIN="help"/>
<node CREATED="1520221927138" FOLDED="true" ID="ID_782466951" MODIFIED="1525124215516" TEXT="hintenrum injizieren">
<arrowlink COLOR="#3391c4" DESTINATION="ID_1058958215" ENDARROW="Default" ENDINCLINATION="356;0;" ID="Arrow_ID_1958186293" STARTARROW="None" STARTINCLINATION="40;166;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1520222029276" ID="ID_1305200988" MODIFIED="1520222040102" TEXT="magisch"/>
<node CREATED="1520222040762" ID="ID_1805401030" MODIFIED="1520222046261" TEXT="statefull (Singleton)"/>
<node CREATED="1520222046905" ID="ID_1622261658" MODIFIED="1520222079625" TEXT="Test wird verwirrend"/>
<node COLOR="#338800" CREATED="1522806901418" ID="ID_1922399331" MODIFIED="1522806952792" TEXT="Sch&#xf6;ne L&#xf6;sung: lib::Depend">
<arrowlink COLOR="#3390b9" DESTINATION="ID_871055051" ENDARROW="Default" ENDINCLINATION="-128;-126;" ID="Arrow_ID_1437440702" STARTARROW="None" STARTINCLINATION="-21;26;"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1520221939552" FOLDED="true" ID="ID_1782927241" MODIFIED="1525124215516" TEXT="mit Aufruf mitgeben">
<icon BUILTIN="button_cancel"/>
<node CREATED="1520221963005" ID="ID_1864632806" MODIFIED="1520221965097" TEXT="sauber"/>
<node CREATED="1520221971275" ID="ID_1783955125" MODIFIED="1520222023640" TEXT="gradlinig zu testen"/>
<node CREATED="1520221965972" ID="ID_610476428" MODIFIED="1520221970496" TEXT="einfach zu implementieren"/>
<node CREATED="1520221985682" FOLDED="true" ID="ID_589257049" MODIFIED="1525124214962" TEXT="gef&#xe4;llt mir trotzdem nicht">
<icon BUILTIN="smily_bad"/>
<node CREATED="1520222097723" ID="ID_435762794" MODIFIED="1520222108581" TEXT="weil es die Abstraktion der DSL bricht"/>
<node CREATED="1520222137669" ID="ID_497050094" MODIFIED="1520222152007" TEXT="weil es logisch nichts mit dem query-Aufruf zu tun hat"/>
<node CREATED="1520222159722" ID="ID_462075011" MODIFIED="1520222170981" TEXT="weil es asymetrisch zur Allokation ist"/>
<node CREATED="1520222178063" ID="ID_1483417403" MODIFIED="1520222192305" TEXT="weil es ein Implementierungsdetail auf dem API ist"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522804403692" FOLDED="true" ID="ID_281326685" MODIFIED="1533608415595" TEXT="globale Variable zur&#xfc;ckbauen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522804419777" ID="ID_631271577" MODIFIED="1522806858336" TEXT="locationQuery">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522804436623" ID="ID_968463465" MODIFIED="1522804473410" TEXT="view-locator.cpp">
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1520721753927" FOLDED="true" ID="ID_1564232821" MODIFIED="1533608415599" TEXT="DependencyFactory verwenden">
<icon BUILTIN="button_ok"/>
<node CREATED="1520721767005" ID="ID_364557801" MODIFIED="1522806969961" TEXT="dazu mu&#xdf; diese erst mal ausgebaut werden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1522806971408" ID="ID_747664714" MODIFIED="1522806984381" TEXT="tja, das waren 14 Tage Arbeit....">
<icon BUILTIN="smiley-neutral"/>
</node>
<node COLOR="#338800" CREATED="1520721792978" ID="ID_871055051" MODIFIED="1522806952792" TEXT="#1086 unify Depend singleton and instance management">
<arrowlink COLOR="#7188b5" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="2227;-4042;" ID="Arrow_ID_1654818003" STARTARROW="None" STARTINCLINATION="775;393;"/>
<linktarget COLOR="#3390b9" DESTINATION="ID_871055051" ENDARROW="Default" ENDINCLINATION="-128;-126;" ID="Arrow_ID_1437440702" SOURCE="ID_1922399331" STARTARROW="None" STARTINCLINATION="-21;26;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522804252041" FOLDED="true" HGAP="-15" ID="ID_557569003" MODIFIED="1525124215516" TEXT="Verdrahtung einrichten" VSHIFT="61">
<icon BUILTIN="button_ok"/>
<node CREATED="1522804312832" ID="ID_1841038371" MODIFIED="1522804485667" STYLE="fork" TEXT="InteractionDirector -&gt; Navigator == Service LocationQuery"/>
<node CREATED="1522804344916" ID="ID_456601994" MODIFIED="1522804392465" TEXT="ViewLocator -&gt; UILocationSolver == Service"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517507576168" FOLDED="true" ID="ID_700127725" MODIFIED="1533608415918" TEXT="LocationClause">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517507586447" ID="ID_170204980" MODIFIED="1518487921069" TEXT="eingebettete UI-Coord">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517507596445" ID="ID_386656276" MODIFIED="1518487921069" TEXT="zus&#xe4;tzliche Flags">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518312817798" ID="ID_473624624" MODIFIED="1518487921069">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Schreibweise f&#252;r <i>create Clauses</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1517505346701" FOLDED="true" ID="ID_1733459677" MODIFIED="1533608416201" TEXT="LocationSolver einf&#xfc;hren">
<linktarget COLOR="#7999a3" DESTINATION="ID_1733459677" ENDARROW="Default" ENDINCLINATION="460;0;" ID="Arrow_ID_1447990036" SOURCE="ID_570287604" STARTARROW="None" STARTINCLINATION="-15;211;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1517505662323" ID="ID_1295083929" MODIFIED="1518487921069" TEXT="baut auf LocationQuery auf">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1517505700422" ID="ID_387055301" MODIFIED="1518487921069" TEXT="erweiterte solve()-Methode">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517505717508" FOLDED="true" ID="ID_636863312" MODIFIED="1533608415920" TEXT="Framework f&#xfc;r mehrere Klauseln">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517506971514" ID="ID_1227765715" MODIFIED="1518487921069" TEXT="Iterator(LocationClause const&amp;)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517508131749" FOLDED="true" ID="ID_1527522188" MODIFIED="1533608415602" TEXT="LocationRule">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517508155177" ID="ID_1404330274" MODIFIED="1518487921069" TEXT="vector(LocationClause (values))">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517508205555" ID="ID_1524544821" MODIFIED="1518487921069" TEXT="Iterator daraus generieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517508218889" ID="ID_360290307" MODIFIED="1518487921069" TEXT="Alternative anf&#xfc;gen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517505737977" FOLDED="true" ID="ID_606655578" MODIFIED="1533608415928" TEXT="L&#xf6;sungsmechanismus">
<arrowlink COLOR="#8b9e9d" DESTINATION="ID_1945600026" ENDARROW="None" ENDINCLINATION="341;-39;" ID="Arrow_ID_360373706" STARTARROW="Default" STARTINCLINATION="-302;83;"/>
<linktarget COLOR="#8b9e9d" DESTINATION="ID_606655578" ENDARROW="Default" ENDINCLINATION="-152;43;" ID="Arrow_ID_1433975114" SOURCE="ID_783849930" STARTARROW="None" STARTINCLINATION="213;-13;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517507636416" ID="ID_1159293904" MODIFIED="1518487921069" TEXT="f&#xfc;r jede Klausel...">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517506994783" ID="ID_1943710017" MODIFIED="1518487921069" TEXT="baut jeweils UICorrdResolver">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518658805744" FOLDED="true" ID="ID_1208480183" MODIFIED="1533608415606" TEXT="Kontext-Bindung">
<arrowlink COLOR="#e46465" DESTINATION="ID_68856104" ENDARROW="Default" ENDINCLINATION="74;449;" ID="Arrow_ID_110301671" STARTARROW="None" STARTINCLINATION="-232;7;"/>
<linktarget COLOR="#8e6e9e" DESTINATION="ID_1208480183" ENDARROW="Default" ENDINCLINATION="-458;-16;" ID="Arrow_ID_504124124" SOURCE="ID_839916178" STARTARROW="None" STARTINCLINATION="-600;49;"/>
<linktarget COLOR="#b78791" DESTINATION="ID_1208480183" ENDARROW="Default" ENDINCLINATION="-1240;134;" ID="Arrow_ID_831550289" SOURCE="ID_481219776" STARTARROW="None" STARTINCLINATION="1654;0;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1518659629689" ID="ID_666680369" MODIFIED="1518659660281" TEXT="L&#xf6;se-Funktion bekommt Kontext"/>
<node CREATED="1518660033466" ID="ID_1879301424" MODIFIED="1518660044053" TEXT="jede Klausel wird vorbehandelt"/>
<node CREATED="1518660206867" ID="ID_1357657997" MODIFIED="1518660237412">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
technische L&#246;sug <i>diskutierbar</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen,
</p>
<p>
man kann das erheblich tief und generisch ausbauen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1518742862470" ID="ID_588911138" MODIFIED="1518742880332" TEXT="YAGNI">
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518762499749" FOLDED="true" ID="ID_214794727" MODIFIED="1533608415610">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Perspective <i>elided</i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#8eacb9" DESTINATION="ID_214794727" ENDARROW="Default" ENDINCLINATION="-653;0;" ID="Arrow_ID_1678351989" SOURCE="ID_606433871" STARTARROW="None" STARTINCLINATION="1400;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518762520034" ID="ID_1516856737" MODIFIED="1518839506876" TEXT="hier automatisch injizieren">
<linktarget COLOR="#595f8d" DESTINATION="ID_1516856737" ENDARROW="Default" ENDINCLINATION="302;0;" ID="Arrow_ID_241747952" SOURCE="ID_1943028471" STARTARROW="None" STARTINCLINATION="697;-153;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1518762547918" ID="ID_1868672591" MODIFIED="1518762557041" TEXT="nur f&#xfc;r create()-Klauseln"/>
<node CREATED="1518762532376" ID="ID_720810877" MODIFIED="1518762565908" TEXT="pragmatische L&#xf6;sung, statt voller Unifikation">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1518838263050" FOLDED="true" ID="ID_443518928" MODIFIED="1525124215516" TEXT="Implementierung">
<node CREATED="1518838267457" ID="ID_943649771" MODIFIED="1518838276599" TEXT="als pre-Processing im Solver">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1518838283262" FOLDED="true" ID="ID_238691976" MODIFIED="1525124214993" TEXT="wie Pattern modifizieren?">
<node CREATED="1518838298468" ID="ID_753244692" MODIFIED="1518838305407" TEXT="mu&#xdf; &#xfc;berschreiben">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1518838306835" FOLDED="true" ID="ID_1187474816" MODIFIED="1525124214993" TEXT="overwrite ist protected">
<icon BUILTIN="yes"/>
<node CREATED="1518838316762" ID="ID_375483047" MODIFIED="1518838388905" TEXT="aus gutem Grund">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn durch overwrite kann man denormalisierte Pattern erzeugen.
</p>
<p>
Also mu&#223; jeder Anwender dieser Funktion sicherstellen, da&#223; dies
</p>
<p>
entweder nicht passieren kann, oder explizit normalise() aufrufen.
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1518838372771" ID="ID_1787971906" MODIFIED="1518838384249" TEXT="das soll in der Schachtel bleiben">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518838394663" ID="ID_1070204465" MODIFIED="1518839504321" TEXT="der Resolver mu&#xdf; das f&#xfc;r uns machen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517507036433" ID="ID_921121750" MODIFIED="1518487921069" TEXT="zieht die Antwort bei ersem Erfolg">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518051766018" ID="ID_1447232325" MODIFIED="1518487921069" TEXT="brauche neue Resolver-Primitive">
<arrowlink COLOR="#50546a" DESTINATION="ID_1272905286" ENDARROW="Default" ENDINCLINATION="394;1164;" ID="Arrow_ID_396720500" STARTARROW="None" STARTINCLINATION="1558;-33;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518055049276" FOLDED="true" ID="ID_1963190796" MODIFIED="1533608415615" TEXT="Fallunterscheidung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518055059890" FOLDED="true" ID="ID_1240967474" MODIFIED="1525124215516" TEXT="Standard: totale Coverage!">
<icon BUILTIN="button_ok"/>
<node CREATED="1518055394000" ID="ID_1230502265" MODIFIED="1518487921069" TEXT="alles bis auf Komponente selber mu&#xdf; best&#xe4;tigt sein">
<icon BUILTIN="info"/>
</node>
<node CREATED="1518215016983" ID="ID_643091836" MODIFIED="1518487921069" TEXT="ggfs anzuh&#xe4;ngende KOmponente nicht Teil der L&#xf6;sung"/>
</node>
<node COLOR="#338800" CREATED="1518055089510" FOLDED="true" ID="ID_1374209563" MODIFIED="1525124215516" TEXT="Create-Fall">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518055442607" ID="ID_93235547" MODIFIED="1518487921069" TEXT="partielle coverage erlauben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518055453981" FOLDED="true" ID="ID_1927049673" MODIFIED="1525124214993" TEXT="Frage: totale Neuerzeugung unterst&#xfc;tzen?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das w&#252;rde bedeuten, da&#223; man sogar ein neues Hauptfenster erzeugt.
</p>
<p>
Also in diesem Fall w&#252;rde &#252;berhaupt nichts mit dem existierenden UI matchen...
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1518145517036" ID="ID_272248384" MODIFIED="1518487921069" TEXT="ja">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1518145521684" ID="ID_17194778" MODIFIED="1518487921069" TEXT="ungedeckter Pfad mu&#xdf; explizit sein">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1518055400412" ID="ID_1517580371" MODIFIED="1518487921069">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Komponente <i>falls n&#246;tig</i>&#160;anh&#228;ngen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518215051242" FOLDED="true" ID="ID_1984395087" MODIFIED="1525124215517" TEXT="Ablauf-Logik">
<icon BUILTIN="button_ok"/>
<node CREATED="1518213040236" FOLDED="true" ID="ID_1048898871" MODIFIED="1525124214993" STYLE="bubble" TEXT="L&#xe4;ngenbeschrenkung">
<node BACKGROUND_COLOR="#b6c6f7" CREATED="1518213142062" ID="ID_1389235831" MODIFIED="1518487921069" TEXT="next"/>
</node>
<node CREATED="1518213047987" ID="ID_1894250137" MODIFIED="1518487921069" STYLE="bubble" TEXT="Klausel l&#xf6;sen"/>
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213057553" FOLDED="true" ID="ID_1840655064" MODIFIED="1525124214994" STYLE="bubble" TEXT="Standard/Create?">
<arrowlink COLOR="#4976b7" DESTINATION="ID_1713281564" ENDARROW="Default" ENDINCLINATION="-214;-32;" ID="Arrow_ID_1015037061" STARTARROW="None" STARTINCLINATION="-133;64;"/>
<node CREATED="1518213079183" FOLDED="true" ID="ID_533214872" MODIFIED="1525124214993" TEXT="Standard">
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213086862" FOLDED="true" ID="ID_6239293" MODIFIED="1525124214993" TEXT="totalyCovered?">
<node CREATED="1518213134767" FOLDED="true" ID="ID_775708906" MODIFIED="1525124214993" TEXT="nein?">
<node BACKGROUND_COLOR="#b6c6f7" CREATED="1518213142062" ID="ID_1245747447" MODIFIED="1518487921069" TEXT="next"/>
</node>
<node CREATED="1518213159380" FOLDED="true" ID="ID_213462597" MODIFIED="1525124214993" TEXT="ja?">
<node CREATED="1518213162419" ID="ID_109286322" MODIFIED="1518487921070" TEXT="ggfs Elmnt anhngn"/>
<node BACKGROUND_COLOR="#efbab6" CREATED="1518213219564" ID="ID_1188365373" MODIFIED="1518487921070" TEXT="move(Solution)"/>
</node>
</node>
</node>
<node CREATED="1518213235362" FOLDED="true" ID="ID_977251605" MODIFIED="1525124214994" TEXT="Create">
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213253255" FOLDED="true" ID="ID_1769779207" MODIFIED="1525124214994" TEXT="not empty?">
<node CREATED="1518213302080" FOLDED="true" ID="ID_1846077322" MODIFIED="1525124214993" TEXT="ja?">
<node CREATED="1518213162419" ID="ID_51616856" MODIFIED="1518487921070" TEXT="ggfs Elmnt anhngn"/>
<node BACKGROUND_COLOR="#efbab6" CREATED="1518213219564" ID="ID_1352698993" MODIFIED="1518487921070" TEXT="move(Solution)"/>
</node>
<node CREATED="1518213331788" FOLDED="true" ID="ID_1239103431" MODIFIED="1525124214994" TEXT="nein?">
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213337332" FOLDED="true" ID="ID_901388238" MODIFIED="1525124214994" TEXT="Klausel explizit?">
<node BACKGROUND_COLOR="#efbab6" CREATED="1518213440630" ID="ID_1608293138" MODIFIED="1518213851674" STYLE="bubble" TEXT="copy(Klausel)">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
</node>
<node CREATED="1518213451860" FOLDED="true" ID="ID_1678375217" MODIFIED="1525124214993" TEXT="Wildcards">
<node BACKGROUND_COLOR="#b6c6f7" CREATED="1518213469114" ID="ID_239069612" MODIFIED="1518487921070" TEXT="next"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1518145595274" FOLDED="true" ID="ID_1539200142" MODIFIED="1533608415618" TEXT="in jedem Fall korrekte L&#xe4;nge sicherstellen">
<icon BUILTIN="button_ok"/>
<node CREATED="1518212471553" FOLDED="true" ID="ID_1821401889" MODIFIED="1525124215517" TEXT="Frage: wann?">
<node CREATED="1518212565636" ID="ID_1223770753" MODIFIED="1518487921070" TEXT="L&#xf6;sen einer zu kurzen Klausel bringt nix">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil wir keinen Zustand sammeln
</p>
<p>
und daher jede Klausel von Grund auf neu l&#246;sen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1518212627092" ID="ID_1184420038" MODIFIED="1518487921070" TEXT="...also kann man die sofort wegsortieren"/>
</node>
<node CREATED="1518212670854" FOLDED="true" ID="ID_1003923585" MODIFIED="1525124215517" TEXT="Frage: zu lange Klauseln?">
<icon BUILTIN="stop-sign"/>
<node CREATED="1518212721599" ID="ID_1131508916" MODIFIED="1518487921070" TEXT="...w&#xe4;ren nachtr&#xe4;glich unter Ziel-Level zu k&#xfc;rzen">
<icon BUILTIN="info"/>
</node>
<node CREATED="1518212683340" ID="ID_1968312736" MODIFIED="1518487921070">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>k&#246;nnte</i>&#160;man zulassen
</p>
</body>
</html></richcontent>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1518212772256" ID="ID_1238641704" MODIFIED="1518487921070" TEXT="YAGNI">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1518212791566" FOLDED="true" ID="ID_1644096915" MODIFIED="1525124215517" TEXT="Ergebnis">
<icon BUILTIN="forward"/>
<node CREATED="1518212828593" ID="ID_351911326" MODIFIED="1518487921070" TEXT="gegeben: depth, auf welcher Zielelement aufgesetzt wird">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1518212871379" ID="ID_451555590" MODIFIED="1518487921070" TEXT="len &gt;= depth"/>
<node CREATED="1518212959895" ID="ID_930933486" MODIFIED="1518487921070" TEXT="len &lt;= depth+1"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518145778249" FOLDED="true" ID="ID_462394658" MODIFIED="1533608415620" TEXT="F&#xe4;lle geschickt zusammenfassen (duplikate Aktionen)">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213086862" FOLDED="true" ID="ID_1713281564" MODIFIED="1525124215517" STYLE="bubble">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
not empty? UND
</p>
<p>
Create ODER totalyCovered?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#4976b7" DESTINATION="ID_1713281564" ENDARROW="Default" ENDINCLINATION="-214;-32;" ID="Arrow_ID_1015037061" SOURCE="ID_1840655064" STARTARROW="None" STARTINCLINATION="-133;64;"/>
<node CREATED="1518213159380" FOLDED="true" ID="ID_1113830798" MODIFIED="1525124214998" TEXT="ja?">
<node CREATED="1518213162419" ID="ID_621215851" MODIFIED="1518487921070" TEXT="ggfs Elmnt anhngn"/>
<node BACKGROUND_COLOR="#efbab6" CREATED="1518213219564" ID="ID_1128021646" MODIFIED="1518487921070" TEXT="move(Solution)"/>
</node>
<node CREATED="1518213134767" FOLDED="true" ID="ID_679511688" MODIFIED="1525124214999" TEXT="nein?">
<node BACKGROUND_COLOR="#efedc4" CREATED="1518213337332" FOLDED="true" ID="ID_1046262927" MODIFIED="1525124214998" TEXT="Create UND Klausel explizit?">
<node CREATED="1518214337116" FOLDED="true" ID="ID_1397265252" MODIFIED="1525124214998" TEXT="ja">
<node BACKGROUND_COLOR="#efbab6" CREATED="1518213440630" ID="ID_343251054" MODIFIED="1518213851674" STYLE="bubble" TEXT="copy(Klausel)">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
</node>
</node>
<node CREATED="1518213451860" FOLDED="true" ID="ID_1801836476" MODIFIED="1525124214998" TEXT="sonst">
<node BACKGROUND_COLOR="#b6c6f7" CREATED="1518213469114" ID="ID_955201730" MODIFIED="1518487921070" TEXT="next"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517507082826" ID="ID_1177191870" MODIFIED="1518487921070" TEXT="R&#xfc;ckgabe per Value">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1517505737977" FOLDED="true" ID="ID_1981924615" MODIFIED="1533608415930" TEXT="Unit-Test">
<arrowlink COLOR="#465888" DESTINATION="ID_957265584" ENDARROW="Default" ENDINCLINATION="351;-62;" ID="Arrow_ID_1922023705" STARTARROW="None" STARTINCLINATION="-226;69;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518312788963" ID="ID_1715641481" MODIFIED="1518487921070" TEXT="brauche Setup">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518312794346" FOLDED="true" ID="ID_98359518" MODIFIED="1533608415622" TEXT="Schreibweise f&#xfc;r create-Klauseln im Test">
<icon BUILTIN="button_ok"/>
<node CREATED="1518317872064" ID="ID_230463403" MODIFIED="1518487921070" TEXT="verwende normale Koordinaten-Notation">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1518317892197" ID="ID_20769359" MODIFIED="1518487921070" TEXT="forward-Definition des Konversionsoperators"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1519347191513" FOLDED="true" ID="ID_1058958215" MODIFIED="1533608416202" TEXT="Zugang zum LocationSolver">
<arrowlink COLOR="#33a0d6" DESTINATION="ID_1459009906" ENDARROW="Default" ENDINCLINATION="766;0;" ID="Arrow_ID_393354619" STARTARROW="None" STARTINCLINATION="-338;0;"/>
<linktarget COLOR="#3391c4" DESTINATION="ID_1058958215" ENDARROW="Default" ENDINCLINATION="356;0;" ID="Arrow_ID_1958186293" SOURCE="ID_782466951" STARTARROW="None" STARTINCLINATION="40;166;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1519347295051" ID="ID_846050459" MODIFIED="1522808896717" TEXT="im realen UI">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1519347289508" FOLDED="true" ID="ID_723600288" MODIFIED="1533608415931" TEXT="setup f&#xfc;r Unit-Test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522883291235" ID="ID_543936991" MODIFIED="1522883304073" TEXT="GenNodeLocationQuery">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522883297346" ID="ID_1901671292" MODIFIED="1522883303346" TEXT="darauf aufbauender Mock">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1519347266311" FOLDED="true" ID="ID_1347610352" MODIFIED="1533608416203" TEXT="Funktor-Anwendung implementieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1522808910387" ID="ID_900668862" MODIFIED="1522808936078" TEXT="war Watschn-einfach">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522808920794" ID="ID_93861490" MODIFIED="1522808948322" TEXT="nachdem ich 14 Tage lang das DI-Framework umgebaut habe">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517506090553" HGAP="59" ID="ID_1416624438" MODIFIED="1531584013571" TEXT="UILocationSolver" VSHIFT="-20">
<icon BUILTIN="button_ok"/>
<node CREATED="1517506104183" ID="ID_798223993" MODIFIED="1522808764330" STYLE="fork" TEXT="ansiedeln im ViewLocator">
<node CREATED="1522808738035" ID="ID_1951089115" MODIFIED="1522808764329" TEXT="als Service exportieren"/>
<node CREATED="1522808746394" ID="ID_1564866088" MODIFIED="1522808764329" TEXT="selber mit dem Navigator hinterlegt"/>
</node>
<node COLOR="#338800" CREATED="1517506116502" ID="ID_1945600026" MODIFIED="1522808819872" TEXT="#1127 UILocationSolver">
<linktarget COLOR="#8b9e9d" DESTINATION="ID_1945600026" ENDARROW="None" ENDINCLINATION="341;-39;" ID="Arrow_ID_360373706" SOURCE="ID_606655578" STARTARROW="Default" STARTINCLINATION="-302;83;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517506590574" ID="ID_1459009906" MODIFIED="1522808712178" TEXT="hinten herum verdrahten">
<linktarget COLOR="#33a0d6" DESTINATION="ID_1459009906" ENDARROW="Default" ENDINCLINATION="766;0;" ID="Arrow_ID_393354619" SOURCE="ID_1058958215" STARTARROW="None" STARTINCLINATION="-338;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517508464896" ID="ID_877224411" MODIFIED="1522938360510" TEXT="generische Aufruf-Schnittstelle">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517506116502" ID="ID_957265584" MODIFIED="1518487921070" TEXT="eigenst&#xe4;ndiger Unit-Test">
<arrowlink COLOR="#465888" DESTINATION="ID_718086573" ENDARROW="Default" ENDINCLINATION="-185;-461;" ID="Arrow_ID_1844529849" STARTARROW="None" STARTINCLINATION="-598;29;"/>
<linktarget COLOR="#465888" DESTINATION="ID_957265584" ENDARROW="Default" ENDINCLINATION="351;-62;" ID="Arrow_ID_1922023705" SOURCE="ID_1981924615" STARTARROW="None" STARTINCLINATION="-226;69;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181864011" ID="ID_615395774" MODIFIED="1518487921070" TEXT="Alternativen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515631663265" ID="ID_1149231463" MODIFIED="1518487921070" TEXT="ODER-Operator">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1517970584075" ID="ID_1155445128" MODIFIED="1533608413740" TEXT="Syntax / DSL-Technik">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1517970606791" FOLDED="true" ID="ID_1375091296" MODIFIED="1533608416204" TEXT="Operatoren haben feste Pr&#xe4;zedenz">
<node CREATED="1517970623613" ID="ID_271068747" MODIFIED="1518487921070" TEXT="OR bindet st&#xe4;rker als Zuweisung"/>
<node CREATED="1517970650217" ID="ID_1384466296" MODIFIED="1518487921070" TEXT="LocationSpec = ( UICoord::Builder || UICoord)"/>
</node>
<node CREATED="1517970828105" FOLDED="true" ID="ID_803913203" MODIFIED="1533608416206" TEXT="m&#xf6;gliche Alternativen">
<icon BUILTIN="info"/>
<node CREATED="1517970849142" FOLDED="true" ID="ID_1434826323" MODIFIED="1533608415935" TEXT="Komma-Operator verwenden">
<icon BUILTIN="button_cancel"/>
<node CREATED="1517970857389" ID="ID_815195379" MODIFIED="1518487921070" TEXT="bindet schw&#xe4;cher als Zuweisung"/>
<node CREATED="1517970865180" ID="ID_349717845" MODIFIED="1518487921070" TEXT="wird folglich auf LocationSpec definiert"/>
<node CREATED="1517971057730" ID="ID_1385090987" MODIFIED="1518487921070" TEXT="somit einfach zu implementieren"/>
<node CREATED="1517971070856" ID="ID_1569393703" MODIFIED="1518487921070" TEXT="sauber aus Sicht der Code-Organisation"/>
<node CREATED="1517971082198" ID="ID_821482262" MODIFIED="1518487921070" TEXT="aber semantisch irref&#xfc;hrend">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Komma hei&#223;t &quot;and then&quot; in der Logikprogrammierung
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1517970882714" FOLDED="true" ID="ID_1615423213" MODIFIED="1533608415937" TEXT="Builder mu&#xdf; bereits mit OR umgehen k&#xf6;nnen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1517971040980" ID="ID_1600012363" MODIFIED="1518487921070" TEXT="vermischt die Themen">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1517971023823" ID="ID_1961997914" MODIFIED="1518487921070" TEXT="verkehrt die Definitions-Reihenfolge"/>
</node>
<node CREATED="1517970999466" FOLDED="true" ID="ID_1299498209" MODIFIED="1533608415938" TEXT="freier OR-Operator im DSL-Kontext definiert">
<linktarget COLOR="#55618e" DESTINATION="ID_1299498209" ENDARROW="Default" ENDINCLINATION="115;1000;" ID="Arrow_ID_1706569145" SOURCE="ID_1413272427" STARTARROW="None" STARTINCLINATION="561;-39;"/>
<node CREATED="1517971299201" ID="ID_1350388784" MODIFIED="1518487921070" TEXT="Builder || UICoord -&gt; LocationRule(LocationClause) . add(LocationClause)"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1519355632354" ID="ID_1664602603" MODIFIED="1533608413744" TEXT="wo entsteht die LocationRule?">
<linktarget COLOR="#647b96" DESTINATION="ID_1664602603" ENDARROW="Default" ENDINCLINATION="1374;300;" ID="Arrow_ID_947721778" SOURCE="ID_241646491" STARTARROW="None" STARTINCLINATION="298;36;"/>
<icon BUILTIN="help"/>
<node CREATED="1519355656423" FOLDED="true" ID="ID_1547517953" MODIFIED="1533608416207" TEXT="in der LocationSpec">
<node CREATED="1520207968932" ID="ID_1172076522" MODIFIED="1520207982341" TEXT="wenn eine einfache Ortsangabe gegeben ist"/>
<node CREATED="1520208008190" ID="ID_874779146" MODIFIED="1520208019664" TEXT="dann wird aus dem Builder inline eine LocationClause gemacht"/>
</node>
<node CREATED="1519355666797" FOLDED="true" ID="ID_1270620528" MODIFIED="1533608416208" TEXT="vor der LocationSpec">
<node CREATED="1520207985113" ID="ID_372230629" MODIFIED="1520208000019" TEXT="wenn mehrere Angaben per OR verbunden werden"/>
<node CREATED="1520208026027" ID="ID_409650611" MODIFIED="1520208035510" TEXT="dann passiert die Umwandlung bereits im operator OR"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1518312758758" ID="ID_675085959" MODIFIED="1518835387835" TEXT="Schreibweise f&#xfc;r create-Klauseln">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515631675752" ID="ID_1586757410" MODIFIED="1518835393496" TEXT="Repr&#xe4;sentation als Liste von UICoord">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515631690390" ID="ID_783849930" MODIFIED="1518835396708" TEXT="&quot;committed choice&quot; L&#xf6;sungsmechanismus">
<arrowlink COLOR="#8b9e9d" DESTINATION="ID_606655578" ENDARROW="Default" ENDINCLINATION="-152;43;" ID="Arrow_ID_1433975114" STARTARROW="None" STARTINCLINATION="213;-13;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181842670" ID="ID_229712638" MODIFIED="1518487921070" TEXT="Allocator">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1515631726569" ID="ID_1252372720" MODIFIED="1529076581800" TEXT="wie mit ViewLocator-Service verdrahten?">
<linktarget COLOR="#614483" DESTINATION="ID_1252372720" ENDARROW="Default" ENDINCLINATION="-203;-10;" ID="Arrow_ID_1759099248" SOURCE="ID_1454085887" STARTARROW="Default" STARTINCLINATION="-373;-23;"/>
<icon BUILTIN="help"/>
<node CREATED="1515803834302" ID="ID_1965813896" MODIFIED="1518487921070" TEXT="&#xfc;berhaupt nicht auf DSL-Ebene"/>
<node CREATED="1515803844276" ID="ID_512581752" MODIFIED="1518487921070">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nur &quot;hinten herum&quot; &#252;ber die verwendete <b>LocationQuery</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515631909081" ID="ID_1875881401" MODIFIED="1518487921071" TEXT="Aufrufe auf ViewLocator-API &#xfc;bersetzen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1523118005620" ID="ID_1743128010" MODIFIED="1529076770399" TEXT="kl&#xe4;ren: auf welches API nun wirklich">
<linktarget COLOR="#74d8d6" DESTINATION="ID_1743128010" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_1437087367" SOURCE="ID_539031017" STARTARROW="None" STARTINCLINATION="205;0;"/>
<linktarget COLOR="#ef9f88" DESTINATION="ID_1743128010" ENDARROW="Default" ENDINCLINATION="-2099;1258;" ID="Arrow_ID_175864704" SOURCE="ID_1335551290" STARTARROW="Default" STARTINCLINATION="-20;-1838;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1529076725873" HGAP="102" ID="ID_995038834" MODIFIED="1529076865273" TEXT="Es ist das ElementAccess-API" VSHIFT="-7">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1529076845081" HGAP="113" ID="ID_1049440738" MODIFIED="1529076871065" TEXT="&quot;irgendwo&quot; gibts dazu das ElemAccessDir" VSHIFT="-30">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1523117208251" FOLDED="true" HGAP="27" ID="ID_1210359211" MODIFIED="1533685181871" TEXT="ist das nicht furchbar verschwenderisch...?" VSHIFT="4">
<linktarget COLOR="#abc5e4" DESTINATION="ID_1210359211" ENDARROW="Default" ENDINCLINATION="-217;-87;" ID="Arrow_ID_1226100946" SOURCE="ID_1972679538" STARTARROW="None" STARTINCLINATION="-187;427;"/>
<icon BUILTIN="help"/>
<node CREATED="1523117293583" ID="ID_1129944871" MODIFIED="1523117297666" TEXT="schrittweise...">
<node CREATED="1523117228552" ID="ID_11867965" MODIFIED="1523117242297" TEXT="wir verwenden erst einen Resolver"/>
<node CREATED="1523117242910" ID="ID_260255550" MODIFIED="1523117250656" TEXT="dabei wird der Pfad aufgedr&#xf6;selt"/>
<node CREATED="1523117251365" ID="ID_1344883302" MODIFIED="1523117269374" TEXT="dann das Ergebnis in einen neuen Pfad kopiert"/>
<node CREATED="1523117269970" ID="ID_1283489925" MODIFIED="1523117277269" TEXT="und dieser mu&#xdf; dann wieder aufgedr&#xf6;selt werden"/>
<node CREATED="1523117278161" ID="ID_1145162087" MODIFIED="1523117288019" TEXT="um das das Ergebnis auch umzusetzen"/>
</node>
<node CREATED="1523117332841" ID="ID_58827305" MODIFIED="1523117335261" TEXT="effektiv">
<node CREATED="1523117336257" ID="ID_1661836054" MODIFIED="1523117354618" TEXT="zwei Traversierungen der realen UI-Struktur"/>
<node CREATED="1523117355966" ID="ID_901586822" MODIFIED="1533608413745" TEXT="die sich unterscheiden">
<node CREATED="1523117363405" ID="ID_415134573" MODIFIED="1523117377647" TEXT="die erste ist eine depth-first Suche (aufwendig)"/>
<node CREATED="1523117378307" ID="ID_228369164" MODIFIED="1523117399516" TEXT="die zweite steigt zum L&#xf6;sungspunkt der ersten nochmal ab"/>
<node CREATED="1523117436451" ID="ID_1526973711" MODIFIED="1523117445502" TEXT="und baut dort i.d.R weitere Elemente an"/>
</node>
</node>
<node CREATED="1523117416901" ID="ID_666361594" MODIFIED="1523117419705" TEXT="Optimierung">
<node CREATED="1523117421189" ID="ID_1083685803" MODIFIED="1523117433679" TEXT="den vollen Kontext von der L&#xf6;sung zur zweiten Traversierung durchreichen"/>
<node CREATED="1523117477813" ID="ID_5382937" MODIFIED="1533608413745" TEXT="Problem... nicht alles sind L&#xf6;sungen">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1523117488172" ID="ID_1947043295" MODIFIED="1523117492743" TEXT="es gibt zwei F&#xe4;lle"/>
<node CREATED="1523117493427" ID="ID_391352800" MODIFIED="1523117501086" TEXT="nur in einem Fall wird eine L&#xf6;sung konstruiert"/>
<node CREATED="1523117501722" ID="ID_1104653648" MODIFIED="1523117510604" TEXT="im anderen Fall wird der Pfad direkt interpretiert"/>
</node>
<node CREATED="1523117563481" ID="ID_1561615666" MODIFIED="1533608413746" TEXT="Einspar-Potential">
<node CREATED="1523117578175" ID="ID_17072072" MODIFIED="1523117605679" TEXT="erneuter Einstieg"/>
<node CREATED="1523117606179" ID="ID_1306679723" MODIFIED="1523117618878" TEXT="i.d.R. Window - Panel - View"/>
<node CREATED="1523117625392" ID="ID_1699581450" MODIFIED="1523117630964" TEXT="vermutlich gering gegen&#xfc;ber Suche"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1523117634200" ID="ID_249271137" MODIFIED="1523117761784" TEXT="Fazit">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1523117637807" ID="ID_1136409597" MODIFIED="1523117654081" TEXT="Optimierungs-Gewinn nicht offensichtlich, vermutlich gering"/>
<node CREATED="1523117656380" ID="ID_375543215" MODIFIED="1523117676286" TEXT="Optimierung w&#xfc;rde die Schnittstelle komplex machen"/>
<node CREATED="1523117678010" ID="ID_988976556" MODIFIED="1523117691307" TEXT="die Schnittstelle ist ohnehin schon nicht leicht zu verstehen"/>
<node CREATED="1523117735746" ID="ID_1310906003" MODIFIED="1523117755013">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
klassischer Fall von &#187;<b>premature optimisation</b>&#171;
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354320645" ID="ID_431727101" MODIFIED="1519354329172" TEXT="Verh&#xe4;ltnis zur DSL">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1519354355113" ID="ID_1466028228" MODIFIED="1519354361395" TEXT="die Aloc-Specs delegieren"/>
<node CREATED="1519354365423" ID="ID_1473090391" MODIFIED="1519354379881" TEXT="jede Aloc-Speck entspricht einem Service"/>
<node COLOR="#435e98" CREATED="1519354380677" ID="ID_1029266700" MODIFIED="1529076963809" TEXT="wer bietet diesen Service?">
<icon BUILTIN="help"/>
<node CREATED="1519355147108" ID="ID_1615393259" MODIFIED="1533608413746" TEXT="in Frage kommen">
<icon BUILTIN="info"/>
<node CREATED="1519355157603" ID="ID_1219922150" MODIFIED="1519355160662" TEXT="ViewLocator"/>
<node CREATED="1519355161347" ID="ID_560748249" MODIFIED="1519355167270" TEXT="Navigator"/>
<node CREATED="1519355186551" ID="ID_1807778011" MODIFIED="1519355191106" TEXT="PanelManager"/>
</node>
<node CREATED="1519355289985" ID="ID_239681113" MODIFIED="1519355336332" TEXT="ViewLocator == Dispatcher">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#990000" CREATED="1519355201077" HGAP="31" ID="ID_539031017" MODIFIED="1529076927655" VSHIFT="13">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wer interpretiert
</p>
<p>
UI-Koordinaten
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#74d8d6" DESTINATION="ID_1743128010" ENDARROW="Default" ENDINCLINATION="205;0;" ID="Arrow_ID_1437087367" STARTARROW="None" STARTINCLINATION="205;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1529076931278" ID="ID_1289639668" MODIFIED="1533608413746" TEXT="ElemAccessDir">
<icon BUILTIN="forward"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1529076946755" ID="ID_104892802" MODIFIED="1529076957961" TEXT="derzeit noch nicht implementierbar">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354420343" HGAP="28" ID="ID_17801598" MODIFIED="1533685336238" TEXT="Varianten" VSHIFT="21">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354443485" ID="ID_1474832227" MODIFIED="1533608413747" TEXT="always create">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354760313" FOLDED="true" ID="ID_321705251" MODIFIED="1533608416209" TEXT="Umgang mit Duplikaten">
<linktarget COLOR="#807e9b" DESTINATION="ID_321705251" ENDARROW="Default" ENDINCLINATION="127;-96;" ID="Arrow_ID_1030149985" SOURCE="ID_1792932496" STARTARROW="None" STARTINCLINATION="390;-188;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1519354813458" ID="ID_168710453" MODIFIED="1519354818789" TEXT="beiseite schieben"/>
<node CREATED="1519354819473" ID="ID_996615547" MODIFIED="1519354824572" TEXT="Tab innerhalb erzeugen"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1519354769960" ID="ID_778018274" MODIFIED="1533685343441" TEXT="Festlegung: was sind die Namen?">
<linktarget COLOR="#2b4283" DESTINATION="ID_778018274" ENDARROW="Default" ENDINCLINATION="-1752;0;" ID="Arrow_ID_1022345699" SOURCE="ID_377787861" STARTARROW="None" STARTINCLINATION="795;544;"/>
<linktarget COLOR="#5260a0" DESTINATION="ID_778018274" ENDARROW="Default" ENDINCLINATION="-1217;51;" ID="Arrow_ID_597388409" SOURCE="ID_266745032" STARTARROW="None" STARTINCLINATION="686;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1519357238119" ID="ID_490731063" MODIFIED="1519357248970" TEXT="Namen sind Platzhalter-Symbole"/>
<node CREATED="1519357249702" ID="ID_1135871152" MODIFIED="1519357313101">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
um eine <i>Position</i>&#160;zu kennzeichnen
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1519357262332" ID="ID_1067286247" MODIFIED="1519357267471" TEXT="sie sind generisch"/>
<node CREATED="1519357271642" ID="ID_693336166" MODIFIED="1519357284653" TEXT="werden lokal verstanden"/>
<node CREATED="1519357285265" ID="ID_1314676655" MODIFIED="1529077188628" TEXT="Schl&#xfc;ssel-Schlo&#xdf;-Prinzip">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354459978" ID="ID_1281610608" MODIFIED="1519354465459" TEXT="create or retrieve">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1519354633610" ID="ID_205066693" MODIFIED="1533608413750" TEXT="welches Limit ist notwendig?">
<icon BUILTIN="help"/>
<node CREATED="1519354649560" FOLDED="true" ID="ID_1983794575" MODIFIED="1533608416213" TEXT="globales Limit">
<node CREATED="1519354660903" ID="ID_1601244663" MODIFIED="1519354670073" TEXT="Suche mit Z&#xe4;hlen"/>
<node CREATED="1519354670949" ID="ID_803401695" MODIFIED="1519354673249" TEXT="Registry"/>
</node>
<node CREATED="1519354677373" FOLDED="true" ID="ID_1968452476" MODIFIED="1533608416213" TEXT="pro Fenster">
<node CREATED="1519354685828" ID="ID_966759751" MODIFIED="1519354691638" TEXT="genau wie global"/>
</node>
<node CREATED="1519354697578" FOLDED="true" ID="ID_1780825164" MODIFIED="1533608416215" TEXT="pro Endpunkt">
<node CREATED="1519354849469" ID="ID_1792932496" MODIFIED="1523752503840" TEXT="Variante des create-Mechanismus">
<arrowlink COLOR="#807e9b" DESTINATION="ID_321705251" ENDARROW="Default" ENDINCLINATION="127;-96;" ID="Arrow_ID_1030149985" STARTARROW="None" STARTINCLINATION="390;-188;"/>
</node>
<node CREATED="1519354723262" ID="ID_1902026620" MODIFIED="1519354929283" TEXT="erbt dessen m&#xf6;gliche Auspr&#xe4;gung"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506181875481" ID="ID_941513985" MODIFIED="1518487921071" TEXT="AllocatorSpec">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515631937958" FOLDED="true" ID="ID_1051141312" MODIFIED="1533685210636" TEXT="partielle Funktions-Applikation">
<icon BUILTIN="button_ok"/>
<node CREATED="1515725638196" ID="ID_919161877" MODIFIED="1525124215003" TEXT="geht das generisch...?">
<icon BUILTIN="help"/>
<node CREATED="1515725146909" ID="ID_1363811781" MODIFIED="1515725162527" TEXT="lib::meta::func::PApply"/>
<node CREATED="1515725168850" ID="ID_612007718" MODIFIED="1515725199322" TEXT="analog zum applyLast() helper"/>
<node CREATED="1515725368856" ID="ID_194935085" MODIFIED="1515725407815" TEXT="PApply&lt;SIG, ARGS&gt;::bindBack"/>
<node CREATED="1515725202278" ID="ID_1268597725" MODIFIED="1515725220567" TEXT="&quot;restliche Argumente&quot; abgreifen"/>
<node CREATED="1515725440814" ID="ID_848138398" MODIFIED="1515725457544" TEXT="daraus Funktion fabrizieren, welche diese akzeptiert"/>
<node CREATED="1515725468723" ID="ID_1514420105" MODIFIED="1515725488084" TEXT="keine klassische partielle Applikation..."/>
<node CREATED="1515725488928" ID="ID_1084170574" MODIFIED="1515725505066" TEXT="sonder eine Art non-Standard currying"/>
</node>
<node CREATED="1515725713155" ID="ID_1250695567" MODIFIED="1525124215004" TEXT="w&#xfc;rde schon gehen...">
<icon BUILTIN="idea"/>
<node CREATED="1515725719930" ID="ID_746038986" MODIFIED="1515725729012" TEXT="Aber man bekommt komplexere AlocSpec-Typen"/>
<node CREATED="1515726089841" ID="ID_527144420" MODIFIED="1515726125268" TEXT="der harte (technische) Teil ist bereits implementiert...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich in lib::meta::func::PApply::bindBack
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1515725834771" ID="ID_403863327" MODIFIED="1515725871768" TEXT="variadisch Template-Argumente">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1515725847329" ID="ID_1980343962" MODIFIED="1515725874461" TEXT="Wichtig: im ctor (Builder) statisch asserten">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515726221600" ID="ID_1657507656" MODIFIED="1525124215006" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1515726234742" ID="ID_95404514" MODIFIED="1533608413752" TEXT="Prinzip">
<node CREATED="1515726238061" ID="ID_1475189544" MODIFIED="1515726244416" TEXT="ctor nimmt beliebige Funktion"/>
<node CREATED="1515726245124" ID="ID_914794335" MODIFIED="1515726258014" TEXT="zerlegt und verifiziert Signatur"/>
<node CREATED="1515726258819" FOLDED="true" ID="ID_1930194336" MODIFIED="1533608416217" TEXT="generiert ein Lambda">
<node CREATED="1515726634601" ID="ID_41891466" MODIFIED="1515726639664" TEXT="geht das?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1515726644600" ID="ID_1701085444" MODIFIED="1515726741538" TEXT="C++14">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
// generic lambda, operator() is a template with one parameter
</p>
<p>
auto vglambda = [](auto printer) {
</p>
<p>
&#160;&#160;&#160;&#160;return [=](auto&amp;&amp;... ts) // generic lambda, ts is a parameter pack
</p>
<p>
&#160;&#160;&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;printer(std::forward&lt;decltype(ts)&gt;(ts)...);
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return [=] { printer(ts...); }; // nullary lambda (takes no parameters)
</p>
<p>
&#160;&#160;&#160;&#160;};
</p>
<p>
};
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#ef5d2b" CREATED="1515726754041" ID="ID_315893428" LINK="http://en.cppreference.com/w/cpp/language/lambda" MODIFIED="1515726793618" TEXT="cppreference..."/>
<node COLOR="#ef5d2b" CREATED="1515726774055" ID="ID_1076829685" LINK="https://stackoverflow.com/questions/25885893/how-to-create-a-variadic-generic-lambda" MODIFIED="1515726793620" TEXT="stackoverflow..."/>
</node>
<node CREATED="1515726268721" ID="ID_243053845" MODIFIED="1515726329213" TEXT="welches intern PApply aufruft"/>
</node>
<node CREATED="1515732350136" ID="ID_1294398139" MODIFIED="1533608413754" TEXT="technisch....">
<node COLOR="#a41e57" CREATED="1515732356319" HGAP="25" ID="ID_1071937152" MODIFIED="1515800950319" TEXT="Problem: generisches Lambda in std::function binden">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1515732383331" ID="ID_1688687565" MODIFIED="1515797049652">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Vermutung: mu&#223; Lambda <b>instantiieren</b>...
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1515797030493" FOLDED="true" ID="ID_973074141" MODIFIED="1533608416218" TEXT="Nein: es ist wohl ehr der R&#xfc;ckgabetyp">
<icon BUILTIN="button_ok"/>
<node CREATED="1515798991747" ID="ID_1053457138" MODIFIED="1515799030345" TEXT="Allocator erbt nur von function"/>
<node CREATED="1515799031197" ID="ID_516020279" MODIFIED="1515799045183" TEXT="Lambda liefert aber nur UICoord(UICoord)"/>
<node CREATED="1515799046027" ID="ID_1437287913" MODIFIED="1515799056910" TEXT="L&#xf6;sung: Allocator als reine Typedef">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515801302955" FOLDED="true" ID="ID_208115762" MODIFIED="1533608416220" TEXT="Argument-&#xdc;bergabe">
<icon BUILTIN="button_ok"/>
<node CREATED="1515801313185" ID="ID_1411407565" MODIFIED="1515801322004" TEXT="Funktor bis in die Closure per Move"/>
<node CREATED="1515801324016" ID="ID_814347755" MODIFIED="1515801353352" TEXT="Closure an PApply per const&amp; --&gt; Binder erzeugen"/>
<node CREATED="1515801355124" ID="ID_1735797839" MODIFIED="1515801393059" TEXT="Lambda: Argumente in das Argument-Tupel per Move"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1515631948148" ID="ID_1460703660" MODIFIED="1518487921071" TEXT="Funktor generieren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515633963179" HGAP="-9" ID="ID_423312626" MODIFIED="1518487921071" TEXT="konkrete Bausteine" VSHIFT="34">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#4d316d" CREATED="1515633990048" ID="ID_750345391" MODIFIED="1518487921071" TEXT="komplett auf abstrakter Ebene zu implementieren">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#435e98" CREATED="1515634030562" ID="ID_662195926" MODIFIED="1522939171648" TEXT="Frage: geht das wirklich?">
<icon BUILTIN="help"/>
<node CREATED="1522939129671" ID="ID_905794690" MODIFIED="1522939133057" TEXT="Ja"/>
<node CREATED="1522939133701" ID="ID_1855483555" MODIFIED="1522939138277" TEXT="fast">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522939141372" ID="ID_767946441" MODIFIED="1522939169486" TEXT="wenn man &quot;Dependencies&quot; zul&#xe4;&#xdf;t">
<icon BUILTIN="idea"/>
<node CREATED="1522939154049" ID="ID_1331034331" MODIFIED="1522939163621" TEXT="LocationSolver"/>
<node CREATED="1522939164281" ID="ID_1465185092" MODIFIED="1522939166651" TEXT="Navigator"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515634054990" HGAP="44" ID="ID_146987308" MODIFIED="1518487921071" TEXT="Struktur-L&#xf6;sung" VSHIFT="19">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1515634166656" ID="ID_760459550" MODIFIED="1518743424687" TEXT="UI-Coord-Builder">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515634180942" ID="ID_1485314989" MODIFIED="1518487921071" TEXT="praktisch schon da">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#990000" CREATED="1515634197876" ID="ID_731095389" MODIFIED="1518743462219" TEXT="Problem Asset-Tab...">
<icon BUILTIN="button_cancel"/>
<node CREATED="1515634208379" ID="ID_1341895683" MODIFIED="1518487921071" TEXT="Vermutung: auf backing service angewiesen"/>
<node CREATED="1518659373972" ID="ID_1782316588" MODIFIED="1518659386753" TEXT="ist eine Kontext-Auswertung/Bindung">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1518659396385" ID="ID_986224819" MODIFIED="1518659504863" TEXT="in den L&#xf6;sungsmechanismus zu integrieren">
<arrowlink COLOR="#967ea6" DESTINATION="ID_1831478029" ENDARROW="Default" ENDINCLINATION="-800;514;" ID="Arrow_ID_162294902" STARTARROW="None" STARTINCLINATION="693;-50;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515634249365" ID="ID_498582439" MODIFIED="1518487921071" TEXT="Allokator-Strategien">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1515634282345" ID="ID_788516837" MODIFIED="1518487921071" TEXT="kl&#xe4;ren, wer sie umsetzt">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523752547477" ID="ID_1121433532" MODIFIED="1533608413756" TEXT="limitAllocation">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1523752559939" ID="ID_597346628" MODIFIED="1529079670933" TEXT="umsetzen auf ElementAccess-API">
<linktarget COLOR="#97cad5" DESTINATION="ID_597346628" ENDARROW="Default" ENDINCLINATION="126;9;" ID="Arrow_ID_89575203" SOURCE="ID_1979012219" STARTARROW="None" STARTINCLINATION="567;-16;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1525567190247" FOLDED="true" ID="ID_42079899" MODIFIED="1533608416221" TEXT="Problem: API noch nicht vollst&#xe4;ndig">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1525567207940" FOLDED="true" HGAP="76" ID="ID_1154047307" MODIFIED="1533608415940" TEXT="wirklich zwei Zugriffe?" VSHIFT="-9">
<icon BUILTIN="help"/>
<node CREATED="1525567242728" ID="ID_408728922" MODIFIED="1525567256385" TEXT="Finden / Allozieren">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1525567257934" ID="ID_756598430" MODIFIED="1525567271113" TEXT="Zugang zu diesem Element">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1525567314774" FOLDED="true" HGAP="-80" ID="ID_1634864230" MODIFIED="1533608415626" TEXT="warum?" VSHIFT="65">
<edge STYLE="linear"/>
<node CREATED="1525567347850" ID="ID_314618181" MODIFIED="1525567352685" TEXT="DSL sauber halten"/>
<node CREATED="1525567353825" ID="ID_729394034" MODIFIED="1525567362044" TEXT="Element-Access erfordert Visitor"/>
<node CREATED="1525567420608" ID="ID_1865194597" MODIFIED="1525567450407" TEXT="erscheint sinnvoll vom API her">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1525567432127" ID="ID_1190994966" MODIFIED="1528992332480" TEXT="aber d&#xe4;mlich in der Implementierung">
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1525567474513" FOLDED="true" HGAP="136" ID="ID_492657286" MODIFIED="1533608415943" TEXT="ElementAccess-API umbauen" VSHIFT="5">
<icon BUILTIN="button_ok"/>
<node CREATED="1529016810234" FOLDED="true" ID="ID_190701762" MODIFIED="1533608415631" TEXT="M&#xf6;glichkeiten">
<node CREATED="1528988155980" FOLDED="true" ID="ID_425314989" MODIFIED="1531584013575" TEXT="Variante-1">
<icon BUILTIN="full-1"/>
<node CREATED="1528988234950" ID="ID_1668042554" MODIFIED="1528988252512" TEXT="UI-Coord zur&#xfc;ckliefern"/>
<node CREATED="1528988263818" ID="ID_480404928" MODIFIED="1529016940289" TEXT="Element-Cache?"/>
<node CREATED="1529016904083" ID="ID_1517114370" MODIFIED="1529016934839" TEXT="API erweitern"/>
</node>
<node CREATED="1528988317699" FOLDED="true" ID="ID_1560503454" MODIFIED="1531584013575" TEXT="Variante-2 ">
<icon BUILTIN="full-2"/>
<node CREATED="1528988340425" ID="ID_1706382791" MODIFIED="1528988354569" TEXT="keine Erzeugung / Allokation"/>
<node CREATED="1528988355802" ID="ID_523121546" MODIFIED="1528988365328" TEXT="ElementAccess = reine Zugriffsfunktion"/>
<node CREATED="1528988379946" ID="ID_131306130" MODIFIED="1528988391702" TEXT="brauche anderweitige Abstraktion"/>
<node CREATED="1528988369596" ID="ID_1174830872" MODIFIED="1528988376583" TEXT="Allokator erzeugt anderweitig"/>
</node>
<node CREATED="1529016988678" FOLDED="true" ID="ID_1209500762" MODIFIED="1531584013575" TEXT="Variante-3">
<icon BUILTIN="full-3"/>
<node CREATED="1529017028938" ID="ID_359770283" MODIFIED="1529017068647" TEXT="Opaque Location Representation"/>
<node CREATED="1529017070019" ID="ID_57519695" MODIFIED="1529017101538" TEXT="Allocator-API darauf umstellen"/>
<node CREATED="1529017279135" ID="ID_707219104" MODIFIED="1529017285322" TEXT="(down)cast-Mechanismus"/>
</node>
<node CREATED="1529018080237" FOLDED="true" ID="ID_776753961" MODIFIED="1531584013575" TEXT="Variante-3b">
<icon BUILTIN="full-4"/>
<node CREATED="1529018093267" ID="ID_389715312" MODIFIED="1529018099078" TEXT="Hybrid-L&#xf6;sung"/>
<node CREATED="1529018100234" ID="ID_1628139323" MODIFIED="1529018119792">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
als <i>Subklasse</i>&#160;von UICoord
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1529018125015" ID="ID_740978949" MODIFIED="1529018137465" TEXT="f&#xfc;gt den Variant-Record und den Konverter hinzu"/>
</node>
</node>
<node CREATED="1529016854248" FOLDED="true" HGAP="37" ID="ID_1664191705" MODIFIED="1533608415635" TEXT="Abw&#xe4;gung" VSHIFT="5">
<node CREATED="1529016871262" ID="ID_957194065" MODIFIED="1529017825322" TEXT="Variante-2 verschiebt das Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn das eigentliche Problem ist,
</p>
<p>
da&#223; ich noch keinerlei Implementierung schreiben kann.
</p>
<p>
Mithin schiebe ich mir Platzhalter von der linken in die rechte Tasche
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1529017693432" ID="ID_70956393" MODIFIED="1529018209759" TEXT="Variante-3 verwendet zwei Repr&#xe4;sentationen f&#xfc;r die gleiche Sache">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und zwar f&#252;r die abstrahierte GUI-Location
</p>
<ul>
<li>
einmal symbolisch als UI-Koordinaten
</li>
<li>
einmal opaque als eingekapselte L&#246;sung
</li>
</ul>
<p>
Und sowas ist verwirrend und verlockt gradezu, die Schachtel aufzumachen
</p>
<p>
und an der Implementierung zu kleben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1529018409007" ID="ID_1460094266" MODIFIED="1529018714798" TEXT="Variante-3b w&#xe4;re nur interessant als eigenst&#xe4;ndige Entit&#xe4;t">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was <i>bis jetzt</i>&#160;nicht gegeben ist!
</p>
<p>
Bis jetzt haben wir einen &quot;Durchlauf-Erhitzer&quot;: letztlich will man nur die Referenz
</p>
<p>
auf das GUI-Element haben, und die dazwischenliegende symbolische Schicht
</p>
<p>
dient nur der Konfiguration und L&#246;sungs-Suche.
</p>
<p>
</p>
<p>
Wenn allerdings sp&#228;ter mal diese <b>UILocation</b>&#160;== bereits decodierte UI-Koordinaten
</p>
<p>
ein eigenst&#228;ndiges Token wird, welches &#252;ber mehrere Schnittstellen hinweg geschoben wird,
</p>
<p>
<i>dann und nur dann</i>&#160;w&#252;rde die zus&#228;tzliche API-Komplexit&#228;t Sinn machen.
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1529019621707" FOLDED="true" ID="ID_537306231" MODIFIED="1531584013575" TEXT="Beschlu&#xdf;">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1529019899294" ID="ID_514740736" MODIFIED="1529065532532" TEXT="Variante-3b wird als Option f&#xfc;r sp&#xe4;ter festgehalten"/>
<node CREATED="1529019931210" ID="ID_963819454" MODIFIED="1529065532532" TEXT="Variante-1 mit API-Erweiterung ist naheliegend"/>
<node CREATED="1529019962989" ID="ID_1964052993" MODIFIED="1529065532532">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
die <b>verfickte</b>&#160;Performance wird ignoriert
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1529073415777" FOLDED="true" HGAP="19" ID="ID_834523571" MODIFIED="1533608415637" TEXT="L&#xf6;sung" VSHIFT="12">
<icon BUILTIN="button_ok"/>
<node CREATED="1529073429723" FOLDED="true" ID="ID_100395564" MODIFIED="1531584013576" TEXT="Funktion locate_or_create()">
<node CREATED="1529073456407" ID="ID_838325275" MODIFIED="1529073466881" TEXT="macht Zugriff und erzeugt ggfs neu"/>
<node CREATED="1529073467710" ID="ID_149127263" MODIFIED="1529073477217" TEXT="gibt UICoord::Builder nach unten"/>
<node CREATED="1529073477988" ID="ID_1842592627" MODIFIED="1529073484271" TEXT="dieser wird dort ggfs umgeschrieben"/>
<node CREATED="1529073485027" ID="ID_1766613398" MODIFIED="1529073496141" TEXT="gibt nur UICoord zur&#xfc;ck"/>
</node>
<node CREATED="1529073497945" FOLDED="true" ID="ID_1104671546" MODIFIED="1531584013576" TEXT="Funktion access()">
<node CREATED="1529073503466" ID="ID_1047392798" MODIFIED="1529073510052" TEXT="darf niemals neu erzeugen"/>
<node CREATED="1529073510904" ID="ID_403151375" MODIFIED="1529073549243" TEXT="navigiert den vorbereiten Pfad nochmal hinunter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....jaaaaa, das ist verschwenderisch
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1529073559905" ID="ID_1370869277" MODIFIED="1529073571068" TEXT="liefert nun aber den verpackten Ergebnis-Zeiger"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523752571241" ID="ID_1806352950" MODIFIED="1523752593134" TEXT="Anzahl Instanzen herausfinden">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529079675765" ID="ID_1441903624" MODIFIED="1529079695630" TEXT="Limit erzwingen">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515634076196" HGAP="-17" ID="ID_1380959703" MODIFIED="1518487921071" TEXT="Implementierung" VSHIFT="20">
<icon BUILTIN="hourglass"/>
<node CREATED="1515634129061" ID="ID_1554987217" MODIFIED="1518487921071" TEXT="locate">
<node CREATED="1515634129062" ID="ID_1263439663" MODIFIED="1518487921071" TEXT="firstWindow"/>
<node CREATED="1515634129062" ID="ID_935490983" MODIFIED="1518487921071" TEXT="currentWindow"/>
<node CREATED="1515634129062" ID="ID_115783898" MODIFIED="1518487921071" TEXT="perspective(id)"/>
<node CREATED="1515634129062" ID="ID_353316788" MODIFIED="1518487921071" TEXT="panel(id)"/>
<node CREATED="1515634129062" ID="ID_1180499191" MODIFIED="1518487921071" TEXT="existingPanel(id)"/>
<node CREATED="1515634129062" ID="ID_67330452" MODIFIED="1518487921071" TEXT="existingGroup WIP 9/17 not clear if possible"/>
</node>
<node CREATED="1515634129062" ID="ID_1198810867" MODIFIED="1518487921071" TEXT="alloc">
<node CREATED="1515634129063" ID="ID_299053476" MODIFIED="1518487921071" TEXT="unlimited"/>
<node CREATED="1515634129063" ID="ID_125752214" MODIFIED="1518487921071" TEXT="onlyOne"/>
<node CREATED="1515634129063" ID="ID_1164137116" MODIFIED="1518487921071" TEXT="limitPerWindow(cnt)"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522940095319" HGAP="-87" ID="ID_257633825" MODIFIED="1522940111813" TEXT="Aufruf einbinden" VSHIFT="-1">
<icon BUILTIN="pencil"/>
<node CREATED="1522940113349" ID="ID_378188810" MODIFIED="1522940183464" TEXT="in ViewLocator">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1522940118628" ID="ID_356408235" MODIFIED="1523752865657" TEXT="auf Typ getemplated">
<icon BUILTIN="button_ok"/>
<node CREATED="1523750592900" ID="ID_266745032" MODIFIED="1529079925485" TEXT="&quot;viewID&quot; ist erst mal eine Typ-ID">
<arrowlink COLOR="#5260a0" DESTINATION="ID_778018274" ENDARROW="Default" ENDINCLINATION="-1217;51;" ID="Arrow_ID_597388409" STARTARROW="None" STARTINCLINATION="686;0;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1523750621640" ID="ID_776549392" MODIFIED="1529076554000" TEXT="wird aber ggfs noch dekoriert (wg. Multiplizit&#xe4;t)">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522940124932" ID="ID_636475854" MODIFIED="1525564213845" TEXT="Aufruf-Mechanismus">
<icon BUILTIN="button_ok"/>
<node CREATED="1522940151016" ID="ID_254319466" MODIFIED="1525564207503" TEXT="Strategy/Spezialisierungen in id-scheme.hpp">
<icon BUILTIN="info"/>
</node>
<node CREATED="1522940161655" ID="ID_1905184084" MODIFIED="1522940166466" TEXT="pro Typ spezialisiert">
<node COLOR="#338800" CREATED="1523752892269" ID="ID_1603142051" MODIFIED="1533608413761" TEXT="Problem: Instanzen">
<icon BUILTIN="button_ok"/>
<node CREATED="1523752902739" ID="ID_1018267741" MODIFIED="1523752943957" TEXT="statische Felder gehen nicht ohne Weiteres">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1523752911010" ID="ID_1174940020" MODIFIED="1523752930531" TEXT="...also brauchen wir Instanzen der Deskriptoren"/>
<node CREATED="1523752932735" ID="ID_225005955" MODIFIED="1525564117580" TEXT="Familie von Meyer&apos;s Singletons"/>
<node CREATED="1525564118640" ID="ID_327931353" MODIFIED="1525564137811" TEXT="lebt in view-spec-dsl.hpp (inline)">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1522940167125" ID="ID_980922327" MODIFIED="1522940174904" TEXT="h&#xe4;lt die konkrete ViewSpec-DSL"/>
</node>
<node COLOR="#338800" CREATED="1525564232321" ID="ID_46755801" MODIFIED="1529079723225" TEXT="konkrete Allokator-Strategien verdrahten">
<icon BUILTIN="button_ok"/>
<node CREATED="1525564255702" ID="ID_645519559" MODIFIED="1525564259768" TEXT="hinten rum">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1525564261653" ID="ID_1979012219" MODIFIED="1525564307309" TEXT="Interface ElementAccess">
<arrowlink COLOR="#97cad5" DESTINATION="ID_597346628" ENDARROW="Default" ENDINCLINATION="126;9;" ID="Arrow_ID_89575203" STARTARROW="None" STARTINCLINATION="567;-16;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1525565917296" ID="ID_174717640" MODIFIED="1525565932959" TEXT="Problem: resultierende UI-Coord">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1525565935350" ID="ID_252570354" MODIFIED="1525565950136" TEXT="Instanz-Limit"/>
<node CREATED="1525565950988" ID="ID_1233385790" MODIFIED="1525567162939">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann dazu f&#252;hren,
</p>
<p>
da&#223; etwas Bestehendes zur&#252;ckgeliefert wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#338800" CREATED="1529079727758" ID="ID_288941017" MODIFIED="1529079742349" TEXT="L&#xf6;sung gefunden: ElementAccess gibt UICoord zur&#xfc;ck">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522940203377" ID="ID_1539937928" MODIFIED="1522940298042" TEXT="Testabdeckung">
<arrowlink COLOR="#4c8891" DESTINATION="ID_1745396406" ENDARROW="Default" ENDINCLINATION="-828;-41;" ID="Arrow_ID_1830310728" STARTARROW="None" STARTINCLINATION="242;22;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1506181908037" HGAP="-29" ID="ID_1925951134" MODIFIED="1518487921071" TEXT="Test" VSHIFT="21">
<icon BUILTIN="prepare"/>
<node CREATED="1506181922767" ID="ID_1642380411" MODIFIED="1518487921071" TEXT="UICoord_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506182009518" ID="ID_138248232" MODIFIED="1518487921071" TEXT="verify_basics">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506182009519" ID="ID_1637725534" MODIFIED="1518487921071" TEXT="verify_builder">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506182009519" ID="ID_542761230" MODIFIED="1518487921071" TEXT="verify_comparisons">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506984579372" ID="ID_1752757359" MODIFIED="1518487921071" TEXT="verify_localPredicates">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1506984614487" FOLDED="true" ID="ID_380908645" MODIFIED="1533684995953" TEXT="UICoordResolver_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1506984645745" ID="ID_244163155" MODIFIED="1518487921071" TEXT="verify_simpleUsage">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506984645747" ID="ID_517262443" MODIFIED="1531584013579" TEXT="verify_backingQuery">
<icon BUILTIN="button_ok"/>
<node CREATED="1508809610790" ID="ID_1860790851" MODIFIED="1512926191814" TEXT="Builder-Syntax war falsch">
<icon BUILTIN="button_ok"/>
<node CREATED="1508809620762" ID="ID_236111511" MODIFIED="1508809630860" TEXT="mu&#xdf; die Attribute-Collection nutzen"/>
<node CREATED="1508809631448" ID="ID_956153388" MODIFIED="1508809644482" TEXT="Builder wohl noch nie f&#xfc;r diesen Fall verwendet"/>
<node CREATED="1508809645470" ID="ID_1846245702" MODIFIED="1508809656617" TEXT="erlaube Move-Initialisierung"/>
</node>
<node CREATED="1508809657253" ID="ID_108704029" MODIFIED="1512926191815" TEXT="Segfault">
<icon BUILTIN="button_ok"/>
<node CREATED="1508809662036" ID="ID_1522595538" MODIFIED="1508809674479" TEXT="sehe zwar die drei Window-Elemente"/>
<node CREATED="1508809674994" ID="ID_1781272984" MODIFIED="1533608413762" TEXT="aber die ID-Strings sind komisch">
<node CREATED="1508809684338" ID="ID_1268163778" MODIFIED="1508809688341" TEXT="erster String ist &quot;&quot;"/>
<node CREATED="1508809688881" ID="ID_1836564528" MODIFIED="1508809700115" TEXT="zweiter String hat richtigen Anfang..."/>
<node CREATED="1508809700919" ID="ID_733585050" MODIFIED="1508809716393" TEXT="aber wird mit nachfolgendem M&#xfc;ll angezeigt"/>
<node CREATED="1508809719165" ID="ID_1506398379" MODIFIED="1509064569893" TEXT="Segfault beim Initialisieren des Ergebnisses f&#xfc;r extractKey"/>
</node>
<node CREATED="1508809741418" ID="ID_1013369537" MODIFIED="1509070755705" TEXT="Verdacht: irgendwo move mit dangling storage?"/>
<node CREATED="1509070756935" ID="ID_1331980374" MODIFIED="1509070861495" TEXT="nein! Nur eine Referenz vom Temporary">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...merke
</p>
<p>
die Spezialbehandlung f&#252;r const&amp; gilt nur, wenn wir direkt auch diesen Typ nehmen.
</p>
<p>
Im vorliegenden fall wird aber der conversion-Operator aufgerufen, um den Initializser zu erzeugen.
</p>
<p>
Daher denkt der Compiler, er kann das Ursprungsobjekt jezt wergwerfen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1509142651113" ID="ID_99734013" MODIFIED="1512926191818">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Spezialbehandlung
</p>
<p>
Perspektive
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1509143055036" ID="ID_810015478" MODIFIED="1509143099748" TEXT="absichtlich unorthogonal repr&#xe4;sentiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um zu pr&#252;fen, ob das allgemeine Design
</p>
<p>
mit solchen Asymetrien umgehen kann,
</p>
<p>
welche ziemlich sicher noch viel mehr
</p>
<p>
bei der Navigation in einem realen GUI auftreten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509143404342" ID="ID_708195081" MODIFIED="1533608413762" TEXT="drillDown aufbohren">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1509143431491" ID="ID_1535839304" MODIFIED="1509143436685" TEXT="Pfad normal weiterverarbeiten"/>
<node CREATED="1509143437202" ID="ID_1489524396" MODIFIED="1509143442917" TEXT="aber Abstieg im Baum manipulieren"/>
<node CREATED="1509143453151" FOLDED="true" ID="ID_373632759" MODIFIED="1533608416222" TEXT="speziell...">
<node CREATED="1509143459519" FOLDED="true" ID="ID_1727095948" MODIFIED="1533608415945" TEXT="existenz-Check l&#xe4;uft anders">
<node CREATED="1509143492194" ID="ID_835507213" MODIFIED="1509143513852" TEXT="getType und stringvergleich"/>
<node CREATED="1509143514352" ID="ID_730111393" MODIFIED="1509143519963" TEXT="statt hasAttribute"/>
</node>
<node CREATED="1509143469429" ID="ID_1414723485" MODIFIED="1509143481984" TEXT="keinen Abstiegs-Schritt machen"/>
</node>
<node CREATED="1509143542611" ID="ID_114168871" MODIFIED="1509143583963" TEXT="Schwein gehabt, rekursiv programmiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und ich hab mir letzte Woche noch solche Vorw&#252;rfe gemacht,
</p>
<p>
da&#223; ich mich wieder mal &quot;akademisch&quot; verspielt habe.... :-P
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1509151268071" ID="ID_38582779" MODIFIED="1533608413764" TEXT="getChildren aufbohren">
<icon BUILTIN="button_ok"/>
<node CREATED="1509151285749" ID="ID_1826645914" MODIFIED="1509287428715" TEXT="eigentlich einfach">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1509287527705" ID="ID_1588631568" MODIFIED="1509287562960" TEXT="mu&#xdf; blo&#xdf; in einem Fall explizit was anderes liefern..."/>
<node CREATED="1509287541919" ID="ID_58868223" MODIFIED="1509287552668" TEXT="Aua! Iterator ist im weg">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1509151289637" FOLDED="true" ID="ID_892381116" MODIFIED="1533608416225" TEXT="brauche singletonIter">
<icon BUILTIN="button_ok"/>
<node CREATED="1509151296292" ID="ID_1050274308" MODIFIED="1509151411655" TEXT="liefert ein einziges Element"/>
<node CREATED="1509151305602" ID="ID_452317335" MODIFIED="1509287419861" TEXT="als IterSource verpackt">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1509151309866" ID="ID_1109789284" MODIFIED="1509151411655" TEXT="sollte es als als Basis iter implementieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und die IterSource dann nur &#252;ber WrapIter definieren.
</p>
<p>
Schichten-Prinzip...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1509151381113" ID="ID_779657015" MODIFIED="1509151411655" TEXT="brauche ItemWrapper f&#xfc;r beliebiges Element"/>
<node CREATED="1509151390495" ID="ID_947844248" MODIFIED="1509285129251" TEXT="Idee: TransformIter aufbohren">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1509285130478" ID="ID_1391664155" MODIFIED="1509285142156" TEXT="direkt coden ist am klarsten">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1506984645748" ID="ID_1254044275" MODIFIED="1531584013581" TEXT="verify_queryAnchor">
<icon BUILTIN="button_ok"/>
<node CREATED="1513477632318" ID="ID_1636138355" MODIFIED="1515209155590" TEXT="setzt PathResolution voraus">
<icon BUILTIN="info"/>
<node COLOR="#338800" CREATED="1513477685935" ID="ID_115330701" MODIFIED="1515209146174" TEXT="brauche layered pull-Evaluation">
<arrowlink COLOR="#786296" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="278;120;" ID="Arrow_ID_1919142695" STARTARROW="None" STARTINCLINATION="952;148;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477772387" ID="ID_1207553398" MODIFIED="1515209119633" TEXT="neu implementierter ChildIter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477790161" ID="ID_286375730" MODIFIED="1515209148753" TEXT="PathResolution implementieren">
<arrowlink COLOR="#653655" DESTINATION="ID_394904963" ENDARROW="Default" ENDINCLINATION="606;374;" ID="Arrow_ID_1674594671" STARTARROW="None" STARTINCLINATION="863;77;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1513477954730" ID="ID_1541867154" MODIFIED="1513478089188" TEXT="F&#xe4;lle...">
<icon BUILTIN="info"/>
<node COLOR="#338800" CREATED="1513477957584" ID="ID_862780828" MODIFIED="1515209246199" TEXT="Explizit: window(&quot;window-1&quot;).persp(&quot;perspective-A&quot;)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477957585" ID="ID_992417953" MODIFIED="1515209244400" TEXT="Gibtsned: window(&quot;windows&quot;);">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477957586" ID="ID_1927496001" MODIFIED="1515209242711" TEXT="contextual state: firstWindow();">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477957586" ID="ID_519256473" MODIFIED="1515209240701" TEXT="context-relativ: currentWindow().persp(&quot;perspective-B&quot;);">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1513477957586" ID="ID_1636269470" MODIFIED="1533608413765" TEXT="context-relativ-unl&#xf6;sbar: currentWindow().panel(&quot;panelY&quot;);">
<icon BUILTIN="button_ok"/>
<node CREATED="1515209222726" ID="ID_959307669" MODIFIED="1515209232972" TEXT="aber ankerbar!">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1513477957586" ID="ID_1247686548" MODIFIED="1515209175737" TEXT="partiell-interpolierbar: view(&quot;someView&quot;);">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1506984645748" ID="ID_670536416" MODIFIED="1518487921071" TEXT="verify_queryCoverage">
<icon BUILTIN="stop-sign"/>
<node CREATED="1515209280278" ID="ID_959372189" MODIFIED="1518487921071" TEXT="sinnlos, da man das Ergebnis nicht sieht"/>
<node CREATED="1515209292804" ID="ID_907780055" MODIFIED="1523750073991" TEXT="ansonsten redundant zur Mutation"/>
</node>
<node COLOR="#338800" CREATED="1506984645748" ID="ID_1171284706" MODIFIED="1531584013583" TEXT="verify_mutateAnchor">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515287623841" ID="ID_11774693" MODIFIED="1518487921071" TEXT="explizit verankert: &#xe4;ndert sich nix">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515287648717" ID="ID_293459284" MODIFIED="1518487921071" TEXT="firstWindow explizit machen">
<icon BUILTIN="button_ok"/>
<node CREATED="1515291045220" ID="ID_907726638" MODIFIED="1518487921071" TEXT="...selbst wenn sonst nicht l&#xf6;sbar">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515287660188" ID="ID_811260333" MODIFIED="1518487921071" TEXT="currentWindow explizit machen">
<icon BUILTIN="button_ok"/>
<node CREATED="1515291071497" ID="ID_913736296" MODIFIED="1518487921071" TEXT="...und tr&#xe4;gt auch zur L&#xf6;sung bei">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1515287665939" ID="ID_525267705" MODIFIED="1518487921071" TEXT="l&#xf6;sbare coverage">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515287701126" ID="ID_1257691503" MODIFIED="1533608413765" TEXT="noch nicht berechnet: errechnen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515291242698" ID="ID_512594119" MODIFIED="1518487921071" TEXT="mu&#xdf; re-normalisieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1515291264591" FOLDED="true" ID="ID_250465802" MODIFIED="1533608416226" TEXT="sollte dann coverDepth neu errechnen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1515305853681" ID="ID_1757724837" MODIFIED="1515305908431" TEXT="nicht notwendig">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1515305858184" FOLDED="true" ID="ID_1728979618" MODIFIED="1533608415946">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das ist <i>immer</i>&#160;schon korrekt erledigt
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1515305886989" ID="ID_877994644" MODIFIED="1515305894383" TEXT="entweder der Beginn ist explizit"/>
<node CREATED="1515305895307" ID="ID_371777501" MODIFIED="1515305899622" TEXT="oder wir haben eine L&#xf6;sung"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1515287694871" ID="ID_953283273" MODIFIED="1533608413767" TEXT="schon berechnet: eintragen">
<icon BUILTIN="button_ok"/>
<node CREATED="1515291343277" ID="ID_1704851738" MODIFIED="1518487921071" TEXT="explizites Cover machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515291350332" FOLDED="true" ID="ID_219986282" MODIFIED="1533608416229" TEXT="neue coverDepth mu&#xdf; sichtbar werden">
<icon BUILTIN="button_ok"/>
<node CREATED="1515298565483" ID="ID_719457405" MODIFIED="1515298571802" TEXT="Autsch">
<icon BUILTIN="smily_bad"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515298572994" FOLDED="true" ID="ID_1082678541" MODIFIED="1533608415948" TEXT="Denkfehler im Builder-Konzept!">
<icon BUILTIN="broken-line"/>
<node CREATED="1515298602326" ID="ID_13919667" MODIFIED="1515298692557" TEXT="R&#xfc;ckgabe ist Value...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das hei&#223;t.
</p>
<p>
ein Value wird auch sofort konstruiert,
</p>
<p>
egal, ob man den dann gleich wegwirft.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1515298698849" ID="ID_1957524269" MODIFIED="1515298709411" TEXT="Objekt wird nach erstem Aufruf tats&#xe4;chlich zerst&#xf6;rt"/>
</node>
<node COLOR="#338800" CREATED="1515298710952" ID="ID_167586553" MODIFIED="1515298806412" TEXT="L&#xf6;sung: &amp;&amp; zur&#xfc;ckgeben">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1515298722702" FOLDED="true" ID="ID_273407473" MODIFIED="1533608415951" TEXT="k&#xf6;nnte gef&#xe4;hrlich sein">
<icon BUILTIN="bell"/>
<node CREATED="1515298735548" ID="ID_966210103" MODIFIED="1515298746799" TEXT="Stichwort: Sequence Points"/>
<node CREATED="1515298747531" ID="ID_1013710090" MODIFIED="1515298752254" TEXT="im Debugger beobachtet"/>
<node CREATED="1515298753074" ID="ID_5305718" MODIFIED="1515298776867" TEXT="Builder-Syntax scheint zu funktionieren, wie erwartet"/>
<node CREATED="1515298777551" ID="ID_1384914895" MODIFIED="1515298789593" TEXT="explizite Aufruf-Syntax ebenso"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1515287717092" ID="ID_459525933" MODIFIED="1518487921071" TEXT="nicht coverbar: &#xe4;ndert sich nix">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1506984645748" ID="ID_1688800613" MODIFIED="1518487921071" TEXT="verify_mutateCoverage">
<arrowlink COLOR="#4b5c8d" DESTINATION="ID_1362494392" ENDARROW="Default" ENDINCLINATION="398;572;" ID="Arrow_ID_82261909" STARTARROW="None" STARTINCLINATION="1404;115;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1506984645748" ID="ID_768385613" MODIFIED="1531584013584" TEXT="verify_mutateExtend">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515449655380" ID="ID_1282321814" MODIFIED="1518487921071" TEXT="expliziten Pfad erweitern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515450991631" ID="ID_1736775031" MODIFIED="1518487921071" TEXT="Pfad durch partielle UI-Coord erweitern">
<arrowlink COLOR="#4f6f95" DESTINATION="ID_130067342" ENDARROW="Default" ENDINCLINATION="544;89;" ID="Arrow_ID_992203487" STARTARROW="None" STARTINCLINATION="704;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515451047192" ID="ID_554336668" MODIFIED="1525124215016" TEXT="erweitern scheitert wegen &#xdc;berlapp">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515455278659" ID="ID_1749331083" MODIFIED="1515555648076" TEXT="pr&#xe4;ziser Anschlu&#xdf; funktioniert">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515455289417" ID="ID_228177396" MODIFIED="1515555650682" TEXT="&#xdc;berlapp == 1 scheitert">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515455296784" ID="ID_957569216" MODIFIED="1533608413769" TEXT="sinnvolle Fehlermeldung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1515456807297" ID="ID_940232878" MODIFIED="1515555654366" TEXT="ausgehend von expliziter Spec">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515456817248" ID="ID_631326169" MODIFIED="1515555656365" TEXT="ausgehend von berechneter Coverage-L&#xf6;sung">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1515449669446" ID="ID_1747646759" MODIFIED="1518487921071" TEXT="partially covered erweitern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515449719015" ID="ID_979130061" MODIFIED="1518487921071" TEXT="unl&#xf6;sbar -&gt; truncate">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1515449727142" ID="ID_1936618724" MODIFIED="1518487921071" TEXT="coverage kann dadurch anwachsen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1517506145618" FOLDED="true" ID="ID_718086573" MODIFIED="1533684993432" TEXT="UILocationSolver_test">
<linktarget COLOR="#465888" DESTINATION="ID_718086573" ENDARROW="Default" ENDINCLINATION="-185;-461;" ID="Arrow_ID_1844529849" SOURCE="ID_957265584" STARTARROW="None" STARTINCLINATION="-598;29;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1517506161024" ID="ID_21333166" MODIFIED="1518487921071" TEXT="Verdrahtung mit Test/Dummy-UI">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517506256691" ID="ID_360871736" MODIFIED="1518487921071" TEXT="einfaches Anwendungs-Beispiel">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1517506268969" ID="ID_1285475519" MODIFIED="1531584013587" TEXT="theoretische Grenzf&#xe4;lle">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518220727527" ID="ID_935687591" MODIFIED="1518762392404" TEXT="leere Regel">
<icon BUILTIN="button_ok"/>
<node CREATED="1518220764202" ID="ID_1551836374" MODIFIED="1518762392404" TEXT="geht nicht">
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#338800" CREATED="1518220767426" ID="ID_1678897927" MODIFIED="1518762392404" TEXT="aber eine leere Klausel geht">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221630349" ID="ID_748354557" MODIFIED="1518762392404" TEXT="leere Klausel plus andere">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518220806629" ID="ID_1877537399" MODIFIED="1518762392404" TEXT="zu kurze Regel">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518220812132" ID="ID_1855700910" MODIFIED="1518762392404" TEXT="zu lange Regel">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1518221033294" ID="ID_379081230" MODIFIED="1531584013588" TEXT="Anfrage auf Window">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221041493" ID="ID_1938682325" MODIFIED="1518762392404" TEXT="existierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221057362" ID="ID_1276841328" MODIFIED="1518762392404" TEXT="generisch">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221047172" ID="ID_899404932" MODIFIED="1518762392404" TEXT="nicht existierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221069089" ID="ID_834357218" MODIFIED="1518762392404" TEXT="nicht existierend / create">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221069089" ID="ID_1759153588" MODIFIED="1518762392404" TEXT=" existierend / create">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1518221096237" ID="ID_1538354349" MODIFIED="1531584013588" TEXT="Anfrage auf Perspektive">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221103372" ID="ID_4661652" MODIFIED="1518762392404" TEXT="existierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221109227" ID="ID_357379201" MODIFIED="1518762392404" TEXT="elided">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221115123" ID="ID_444249560" MODIFIED="1518762392404" TEXT="nicht exisitierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221121450" ID="ID_1105449946" MODIFIED="1518762392404" TEXT="nichte existierend / create">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1518221188121" ID="ID_541455871" MODIFIED="1518762392404" TEXT="Anfrage auf (tiefen) Pfad">
<icon BUILTIN="button_ok"/>
<node CREATED="1518221206998" ID="ID_1900776687" MODIFIED="1533608413770" TEXT="komplett explizit">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221213277" ID="ID_1744618018" MODIFIED="1518762392404" TEXT="covered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221239058" ID="ID_1778260898" MODIFIED="1518762392404" TEXT="covered / create">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221217997" ID="ID_1478390273" MODIFIED="1518762392404" TEXT="partially covered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221217997" ID="ID_789039729" MODIFIED="1518762392404" TEXT="partially covered / create">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221264143" ID="ID_676167818" MODIFIED="1518762392404" TEXT="uncovered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221267862" ID="ID_637617629" MODIFIED="1518762392404" TEXT="uncovered / create">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1518221321054" ID="ID_1884750439" MODIFIED="1533608413771" TEXT="Wildcard">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221328398" ID="ID_771962346" MODIFIED="1518762392404" TEXT="covered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221342140" ID="ID_1533800638" MODIFIED="1518762392404" TEXT="covered ohne Endelement">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221353130" ID="ID_786771733" MODIFIED="1518762392404" TEXT="create aber komplett existierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221365785" ID="ID_812801272" MODIFIED="1518762392404" TEXT="create ohne Endelement">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221374663" ID="ID_1846464761" MODIFIED="1518762392404" TEXT="partially covered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221380231" ID="ID_378548083" MODIFIED="1518762392404" TEXT="partially covered / create">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221386438" ID="ID_864741660" MODIFIED="1518762392404" TEXT="uncovered">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221398668" ID="ID_1119602753" MODIFIED="1518762392404" TEXT="uncovered / create">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1518221447093" ID="ID_1048302687" MODIFIED="1518762392404" TEXT="zwei Klauseln">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221466779" ID="ID_1934359283" MODIFIED="1518762392404" TEXT="beide erf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221482345" ID="ID_867150257" MODIFIED="1518762392404" TEXT="erste unerf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1518221509805" ID="ID_1191463024" MODIFIED="1533608413771" TEXT="erste create">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221525891" ID="ID_395077893" MODIFIED="1518762392404" TEXT="erf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221539089" ID="ID_1046962094" MODIFIED="1518762392404" TEXT="nicht erf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1518221571021" ID="ID_1917057944" MODIFIED="1533608413772" TEXT="zweite create">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518221582347" ID="ID_1796461457" MODIFIED="1518762392404" TEXT="erste erf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221587275" ID="ID_1141416112" MODIFIED="1518762392404" TEXT="zweite erf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518221593034" ID="ID_1276221189" MODIFIED="1518762392404" TEXT="auch zweite unerf&#xfc;llbar">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1517506289222" ID="ID_1250541940" MODIFIED="1531584013594" TEXT="praktische Standard-F&#xe4;lle">
<icon BUILTIN="button_ok"/>
<node CREATED="1518575724831" ID="ID_712009155" MODIFIED="1518579539092" TEXT="Idee">
<icon BUILTIN="idea"/>
<node CREATED="1518575730894" ID="ID_24825251" MODIFIED="1518575750656">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nur <i>einen Satz</i>&#160;Klauseln
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1518575751651" ID="ID_1423547228" MODIFIED="1518575765468" TEXT="stattdessen den Test-&quot;Baum&quot; variieren"/>
<node CREATED="1518575766889" ID="ID_1639479655" MODIFIED="1518575777979" TEXT="damit die Situationen der realen Regeln nachbilden"/>
<node CREATED="1518575779991" ID="ID_1194432520" MODIFIED="1518575791081" TEXT="und beweisen, da&#xdf; die Ergebnisse eindeutig sind"/>
</node>
<node COLOR="#338800" CREATED="1518579541832" ID="ID_512680632" MODIFIED="1518579550376" TEXT="flexibles Test-Setup hierf&#xfc;r">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1518221768370" ID="ID_958994214" MODIFIED="1518487921072" TEXT="match by">
<node COLOR="#338800" CREATED="1518223023735" ID="ID_1788599676" MODIFIED="1518739354202" TEXT="pespective + panel">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518223029399" ID="ID_1184092341" MODIFIED="1518739356121" TEXT="generic window + existing panel">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518223039229" ID="ID_427870686" MODIFIED="1518739358673" TEXT="panel alone">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#990000" CREATED="1518223101637" ID="ID_481219776" MODIFIED="1518742835910" TEXT="wildcard view + specific tab">
<arrowlink COLOR="#b78791" DESTINATION="ID_1208480183" ENDARROW="Default" ENDINCLINATION="-1240;134;" ID="Arrow_ID_831550289" STARTARROW="None" STARTINCLINATION="1654;0;"/>
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#338800" CREATED="1518223107508" ID="ID_254700276" MODIFIED="1518742616988" TEXT="wildcard panel + view appended">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1518223136888" ID="ID_373048163" MODIFIED="1518487921072" TEXT="create match">
<node COLOR="#338800" CREATED="1518223141623" ID="ID_1610919464" MODIFIED="1518742653179" TEXT="on wildcard">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1518223149750" ID="ID_1733413613" MODIFIED="1533608413772" TEXT="on wildcard fail">
<icon BUILTIN="button_ok"/>
<node CREATED="1518742624742" ID="ID_1245433967" MODIFIED="1518742630585" TEXT="implizit mitgetestet">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1518742642180" ID="ID_194206742" MODIFIED="1518742648655" TEXT="....indem die n&#xe4;chste Regel zieht"/>
</node>
<node COLOR="#338800" CREATED="1518223044301" ID="ID_1476637837" MODIFIED="1533608413772" TEXT="generic window + panel create">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1518762440997" ID="ID_606433871" MODIFIED="1518840066703" TEXT="ggfs auto-elided?">
<arrowlink COLOR="#8eacb9" DESTINATION="ID_214794727" ENDARROW="Default" ENDINCLINATION="-653;0;" ID="Arrow_ID_1678351989" STARTARROW="None" STARTINCLINATION="1400;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1518223201375" ID="ID_1794858276" MODIFIED="1518742656811" TEXT="complete create">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182023288" ID="ID_1539184761" MODIFIED="1523118243889" STYLE="fork" TEXT="ViewSpecDSL_test">
<arrowlink COLOR="#43667c" DESTINATION="ID_1234019560" ENDARROW="Default" ENDINCLINATION="-338;-1489;" ID="Arrow_ID_839730277" STARTARROW="None" STARTINCLINATION="-530;453;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182077694" ID="ID_839824654" MODIFIED="1523053425474" TEXT="verify_basicProperties">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1515633695710" ID="ID_1540478220" MODIFIED="1523053425474" TEXT="aus standardUsage ablzuleiten"/>
<node CREATED="1515633710396" ID="ID_335824710" MODIFIED="1523053425474" TEXT="spezifiziert die formalen Basis-Eigenschaften"/>
</node>
<node COLOR="#338800" CREATED="1506182037003" ID="ID_439307131" MODIFIED="1523053425474" TEXT="verify_standardUsage">
<icon BUILTIN="button_ok"/>
<node CREATED="1515633645885" ID="ID_1659749577" MODIFIED="1523053425474" TEXT="einfaches Dummy-Setup"/>
<node CREATED="1515633651212" ID="ID_704575529" MODIFIED="1523053425474" TEXT="erlaubt, die Strukturen zu bauen"/>
<node CREATED="1515633658483" ID="ID_149158343" MODIFIED="1523053425474" TEXT="l&#xe4;uft ohne die UI-Backbone">
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182087462" ID="ID_47070993" MODIFIED="1523053425474" TEXT="verify_alternatives">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1515633722883" ID="ID_9454050" MODIFIED="1523053425474" TEXT="rein technische Erweiterung"/>
<node CREATED="1515633737905" ID="ID_1500220475" MODIFIED="1523053425474" TEXT="Auswahl der ersten &quot;passenden&quot; L&#xf6;sung"/>
<node CREATED="1515633770884" ID="ID_861669562" MODIFIED="1523053425474" TEXT="Dummy: GenNodeLocationQuery anstelle eines realen UI"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522940227022" ID="ID_1745396406" MODIFIED="1523746775368" TEXT="verify_genericInvocation">
<linktarget COLOR="#4c8891" DESTINATION="ID_1745396406" ENDARROW="Default" ENDINCLINATION="-828;-41;" ID="Arrow_ID_1830310728" SOURCE="ID_1539937928" STARTARROW="None" STARTINCLINATION="242;22;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1523746830877" ID="ID_179614354" MODIFIED="1523746850828" TEXT="Ziel ist ein Komponenten-Integrationstest">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1523727045276" ID="ID_1873415671" MODIFIED="1523727056587" TEXT="Problem: wie testen ohne UI-Context?">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1523727057907" ID="ID_465631036" MODIFIED="1523746795582" TEXT="Ausweg">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn irgendwann wird's l&#228;cherlich mit der Unit-Testerei.
</p>
<p>
Oder zumindest Hexagonal.
</p>
<p>
Bedingt durch die ganzen rausgezogenen Interfaces hat jetzt bereits ViewLocator &#252;berhaupt keinen Gehalt mehr.
</p>
<p>
Wenn ich jetzt auch noch die einzige verbleibende Methode rausziehe, um sie testen zu k&#246;nnen,
</p>
<p>
drehe ich mich komplett im Kreis. Schlie&#223;lich kann ich diese Methode ja, genau genommen,
</p>
<p>
im Moment auch noch nicht wirklich testen, aus genau den gleichen Gr&#252;nden,
</p>
<p>
warum ViewLocator so nebul&#246;s bleibt: <b>es gibt noch kein Lumiera GUI</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1523746796508" ID="ID_1839059733" MODIFIED="1523746796508" TEXT="Aufruf nur nachbauen"/>
<node CREATED="1523746798210" ID="ID_1076120435" MODIFIED="1523746818187" TEXT="Fake-DSL-Definitionen verwenden"/>
</node>
<node COLOR="#435e98" CREATED="1523749882439" ID="ID_1150944546" MODIFIED="1529079882713" TEXT="Schritt-1">
<icon BUILTIN="full-1"/>
<node CREATED="1523749910106" ID="ID_542105863" MODIFIED="1523750022741" TEXT="einfache direkte Erzeugung von einem View">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1523749925224" ID="ID_1469440140" MODIFIED="1529079888021" TEXT="minimale Verifikation">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523749888005" ID="ID_1904054486" MODIFIED="1523749907772" TEXT="Schritt-2">
<icon BUILTIN="full-2"/>
<node CREATED="1523749931480" ID="ID_1388717184" MODIFIED="1523750026436" TEXT="komplexere Fake-DSL">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523749938023" ID="ID_873547886" MODIFIED="1529079897790" TEXT="Alternativen und wirkliche L&#xf6;sung">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523749952356" ID="ID_1622746609" MODIFIED="1523749963165" TEXT="Schritt-3">
<icon BUILTIN="full-3"/>
<node CREATED="1523749968914" ID="ID_998334237" MODIFIED="1523750029454" TEXT="Test-Mock verwendet GenNode-Tree-Repr&#xe4;sentation">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523749987776" ID="ID_1752498971" MODIFIED="1523750010189" TEXT="Allokations-Mechanismus genauer spezifizieren">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523750001990" ID="ID_1324123993" MODIFIED="1523750009285" TEXT="Allokation konkret abdecken">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1523746600925" HGAP="1" ID="ID_435582808" MODIFIED="1523746656723" VSHIFT="36">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Das urspr&#252;ngliche Ziel f&#252;r diesen Test
</p>
<p>
ist in unserem Test-Framework <b>nicht realisierbar</b>
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1523746659654" ID="ID_1299891788" MODIFIED="1523746698882" TEXT="Das Ziel war: alle konkreten Standard-F&#xe4;lle durchspielen">
<icon BUILTIN="info"/>
</node>
<node CREATED="1523746674939" ID="ID_1008453652" MODIFIED="1523746693800" TEXT="dies erfordert, die realen WIdgets zu instantiieren">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1523746704479" ID="ID_462392796" MODIFIED="1523746735833" TEXT="...und das ist ausgeschlossen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<u>Policy</u>: Unit-Tests d&#252;rfen keine GTK-Abh&#228;ngigkeit haben
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#435e98" CREATED="1523748895111" ID="ID_613307109" MODIFIED="1523748953311" TEXT="sp&#xe4;ter mal....">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523748900655" ID="ID_1768095597" MODIFIED="1523748939872" TEXT="#1140 UI integration tests">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523748905725" ID="ID_748849132" MODIFIED="1523748935631" TEXT="#1141 verify UI default view allocation">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504479724869" HGAP="-123" ID="ID_637855369" MODIFIED="1518487921072" TEXT="Darstellung" VSHIFT="10">
<icon BUILTIN="forward"/>
<node CREATED="1504479769415" HGAP="45" ID="ID_115454468" MODIFIED="1518487921072" TEXT="Ma&#xdf;stab" VSHIFT="-13">
<icon BUILTIN="yes"/>
<node CREATED="1504479773327" ID="ID_874044841" MODIFIED="1518487921072" TEXT="mu&#xdf; lesbar sein"/>
<node CREATED="1504479778086" ID="ID_1867364946" MODIFIED="1518487921072" TEXT="wichtige F&#xe4;lle abbilden"/>
<node CREATED="1504479801683" ID="ID_1408830980" MODIFIED="1518487921072" TEXT="Implementierung">
<node CREATED="1504479807066" ID="ID_1318651039" MODIFIED="1518487921072" TEXT="m&#xe4;&#xdf;ig komplex"/>
<node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1518487921072" TEXT="ehr effizient">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
wird m&#228;&#223;ig h&#228;ufig aufgerufen
</li>
<li>
beim &quot;&#214;ffnen&quot; und zur Navigation
</li>
<li>
im Interaktions-Kontext
</li>
<li>
keinen Speicherdruck erzeugen
</li>
</ul>
</body>
</html></richcontent>
<arrowlink COLOR="#8e79a4" DESTINATION="ID_1229791291" ENDARROW="Default" ENDINCLINATION="16;-93;" ID="Arrow_ID_277133142" STARTARROW="None" STARTINCLINATION="133;0;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504479933641" FOLDED="true" ID="ID_686917529" MODIFIED="1533685261979" TEXT="DSL">
<cloud COLOR="#dac6a1"/>
<linktarget COLOR="#5e819b" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-89;-122;" ID="Arrow_ID_1067086551" SOURCE="ID_1397553997" STARTARROW="None" STARTINCLINATION="-322;62;"/>
<linktarget COLOR="#b45c5a" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-468;-196;" ID="Arrow_ID_1955094318" SOURCE="ID_1442345755" STARTARROW="None" STARTINCLINATION="360;85;"/>
<icon BUILTIN="idea"/>
<node CREATED="1504479939664" ID="ID_1158508729" MODIFIED="1518487921072" TEXT="Term-Schreibweise"/>
<node CREATED="1504479950607" ID="ID_118638432" MODIFIED="1518487921072" TEXT="generiert Funktoren/Closures"/>
<node CREATED="1504480019182" ID="ID_1190390221" MODIFIED="1518487921072" TEXT="Problem: encapsulation">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1504480041315" ID="ID_535241643" MODIFIED="1518487921072" TEXT="DSL-Ausdr&#xfc;cke stehen in globalem Header"/>
<node CREATED="1504480172697" ID="ID_858936833" MODIFIED="1518487921073" TEXT="tats&#xe4;chlich nur im ViewLocator zu interpretieren"/>
</node>
<node CREATED="1504480237649" HGAP="15" ID="ID_1076181034" MODIFIED="1518487921073" TEXT="Variation der Diff-Verben?" VSHIFT="11">
<icon BUILTIN="idea"/>
<node CREATED="1504480255374" ID="ID_869593955" MODIFIED="1518487921073" TEXT="Token + Argument"/>
<node CREATED="1504480260373" ID="ID_236748610" MODIFIED="1518487921073" TEXT="Funktor gebunden"/>
<node CREATED="1504480266909" ID="ID_1626606623" MODIFIED="1518487921073" TEXT="...an Interpreter">
<node CREATED="1504480363968" ID="ID_1701584915" MODIFIED="1518487921073" TEXT="legt die g&#xfc;ltien Verben fest"/>
<node CREATED="1504480371070" ID="ID_505779360" MODIFIED="1518487921073" TEXT="ist ein Interface"/>
<node CREATED="1504480375006" ID="ID_1380298925" MODIFIED="1518487921073" STYLE="fork" TEXT="=&gt; double-dispatch">
<arrowlink COLOR="#6b768e" DESTINATION="ID_1191902349" ENDARROW="Default" ENDINCLINATION="28;-22;" ID="Arrow_ID_1105816510" STARTARROW="None" STARTINCLINATION="113;3;"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1504962176894" ID="ID_1173896337" MODIFIED="1518487921073" TEXT="Sprachdesign...?">
<icon BUILTIN="button_ok"/>
<node CREATED="1504962191564" ID="ID_967497234" MODIFIED="1518487921073" TEXT="Basis">
<node CREATED="1504962330154" ID="ID_242817654" MODIFIED="1518487921073" TEXT="Zuweisung eines Tokens"/>
<node CREATED="1504962335321" ID="ID_1453600135" MODIFIED="1518487921073" TEXT="Token liegt als Konstante definiert vor"/>
<node CREATED="1504962353566" ID="ID_665223755" MODIFIED="1518487921073" TEXT="insgeheim ist das Token ein Funktor"/>
</node>
<node CREATED="1504962218409" ID="ID_1024382518" MODIFIED="1518487921073" TEXT="Eigenschaften">
<node CREATED="1504962376172" ID="ID_1142953512" MODIFIED="1518487921073" TEXT="geringe Komplexit&#xe4;t"/>
<node CREATED="1504962382427" ID="ID_931743673" MODIFIED="1518487921073" TEXT="Token k&#xf6;nnen konstante Parameter nehmen"/>
<node CREATED="1504962405768" ID="ID_1340772990" MODIFIED="1518487921073" TEXT="einseitg Implementierungs-gebunden"/>
<node CREATED="1504962420549" ID="ID_553833506" MODIFIED="1518487921073" TEXT="ben&#xf6;tigt explizite Typedefs"/>
</node>
<node CREATED="1504962222248" ID="ID_1699830751" MODIFIED="1518487921073" TEXT="Implementierung">
<node CREATED="1504962230111" ID="ID_1779805843" MODIFIED="1518487921073" TEXT="interne DSL"/>
<node CREATED="1504962233718" ID="ID_949042440" MODIFIED="1518487921073" TEXT="ist opaque"/>
<node CREATED="1504962251844" ID="ID_1229791291" MODIFIED="1518487921073" TEXT="Effizienz">
<linktarget COLOR="#8e79a4" DESTINATION="ID_1229791291" ENDARROW="Default" ENDINCLINATION="16;-93;" ID="Arrow_ID_277133142" SOURCE="ID_141842675" STARTARROW="None" STARTINCLINATION="133;0;"/>
<node CREATED="1504831930030" ID="ID_1191902349" MODIFIED="1533608413773" TEXT="double dispatch?">
<linktarget COLOR="#6b768e" DESTINATION="ID_1191902349" ENDARROW="Default" ENDINCLINATION="28;-22;" ID="Arrow_ID_1105816510" SOURCE="ID_1380298925" STARTARROW="None" STARTINCLINATION="113;3;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1504832179925" ID="ID_878950103" MODIFIED="1518487921073" TEXT="w&#xe4;re akzeptabel"/>
<node CREATED="1504831934790" ID="ID_1800843653" MODIFIED="1518487921073" TEXT="aber etwas &#xfc;bertrieben...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es ist im Rahmen;
</p>
<p>
denn wir akzeptieren <i>double dispatch</i>&#160;sogar in der Diff-Anwendung,
</p>
<p>
welche viel h&#228;ufiger l&#228;uft, als dieser View-Zugriff hier.
</p>
<p>
</p>
<p>
Allerdings, die <i>doppelte</i>&#160;Indirektion ist nicht grunds&#228;tzlich notwendig hier,
</p>
<p>
da wir nur einen einzigen Anwendungsfall haben. Die zweite Indirektion in jedem Aufruf
</p>
<p>
bewirkt nur eine Entkoppelung vom Implementierungs-Kontext
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504832266793" ID="ID_1279692021" MODIFIED="1533608413774" TEXT="einfache Funktoren?">
<icon BUILTIN="button_ok"/>
<node CREATED="1504832394952" ID="ID_85672659" MODIFIED="1518487921073">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wir brauchen keine <i>Token</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1504832413997" ID="ID_439230153" MODIFIED="1518487921073" TEXT="namentlich bekannte Definitionen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....anders als im Diff-Framework
</p>
<p>
senden wir hier keine beliebigen Nachrichten,
</p>
<p>
sondern interpretieren jeweils nur eine einzige feste Konfiguration
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504832476365" ID="ID_799285654" MODIFIED="1518487921073" TEXT="mit der Implementierungsfunktion initialisiert"/>
<node CREATED="1504832511688" ID="ID_673872785" MODIFIED="1518487921073" TEXT="Voraussetzung: sinnvolle Primitive">
<arrowlink COLOR="#b16174" DESTINATION="ID_879982156" ENDARROW="Default" ENDINCLINATION="154;-219;" ID="Arrow_ID_1853267431" STARTARROW="None" STARTINCLINATION="-401;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504832752113" ID="ID_1801527547" MODIFIED="1518487921073" TEXT="Struktur">
<node CREATED="1504832762680" HGAP="68" ID="ID_879982156" MODIFIED="1518487921073" TEXT="Primitive" VSHIFT="-16">
<cloud COLOR="#ebd5a6"/>
<linktarget COLOR="#b16174" DESTINATION="ID_879982156" ENDARROW="Default" ENDINCLINATION="154;-219;" ID="Arrow_ID_1853267431" SOURCE="ID_673872785" STARTARROW="None" STARTINCLINATION="-401;0;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1504884422206" ID="ID_1738943559" MODIFIED="1518487921073" TEXT="Anforderungen">
<node CREATED="1504884432700" ID="ID_1124930479" MODIFIED="1533608413776" TEXT="wir brauchen">
<node CREATED="1504884465448" ID="ID_158939863" MODIFIED="1518487921073" TEXT="schlie&#xdf;lich.... Aufruf an den PanelManager"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504884487533" FOLDED="true" ID="ID_1578364370" MODIFIED="1533608416230" TEXT="Art des Aufrufes">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1504885358585" ID="ID_1662504157" MODIFIED="1518487921073" TEXT="erzeuge neu in Panel(coord)"/>
<node CREATED="1504885435351" ID="ID_1583789854" MODIFIED="1518487921073" TEXT="ersetze in Panel(coord)"/>
<node CREATED="1504885503118" ID="ID_883040433" MODIFIED="1518487921073" TEXT="entferne view(ID) aus Panel(coord)"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504885554399" FOLDED="true" ID="ID_1868485493" MODIFIED="1533608416233">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Allokator</i>&#160;pro Typ
</p>
</body>
</html></richcontent>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1504885680095" FOLDED="true" ID="ID_1828531407" MODIFIED="1533608415953" TEXT="sicherstellen">
<node CREATED="1504885686470" ID="ID_450596618" MODIFIED="1518487921073" TEXT="-- nix --"/>
<node CREATED="1504885692389" ID="ID_735840491" MODIFIED="1518487921073" TEXT="global einer"/>
<node CREATED="1504885708291" ID="ID_304260062" MODIFIED="1518487921073" TEXT="limit pro Fenster"/>
</node>
<node CREATED="1504886385928" ID="ID_894995512" MODIFIED="1518487921073" TEXT="Koordinaten finden...">
<arrowlink COLOR="#21428c" DESTINATION="ID_660502374" ENDARROW="Default" ENDINCLINATION="30;-48;" ID="Arrow_ID_900798705" STARTARROW="None" STARTINCLINATION="158;0;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504886036743" FOLDED="true" ID="ID_1013293844" MODIFIED="1533608416241" TEXT="UI-Koordinaten">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1504886051389" ID="ID_1177567162" MODIFIED="1518487921073" TEXT="Tupel {Fenster, Perspektive, Panel, Gruppe, Pfad}"/>
<node CREATED="1504886084393" ID="ID_28488269" MODIFIED="1518487921073" TEXT="optionale Komponenten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wir brauchen eine Repr&#228;sentation,
</p>
<p>
um auszudr&#252;cken, da&#223; gewissen Angaben ausgelassen wurden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504886119604" ID="ID_206635297" MODIFIED="1518487921073" TEXT="komplexes Thema">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1504885799423" FOLDED="true" ID="ID_660502374" MODIFIED="1533608415957" TEXT="coordinate resolver">
<linktarget COLOR="#21428c" DESTINATION="ID_660502374" ENDARROW="Default" ENDINCLINATION="30;-48;" ID="Arrow_ID_900798705" SOURCE="ID_894995512" STARTARROW="None" STARTINCLINATION="158;0;"/>
<node CREATED="1504885810485" FOLDED="true" ID="ID_822801746" MODIFIED="1533608415640" TEXT="Fenster">
<node CREATED="1504885841193" ID="ID_202708982" MODIFIED="1518487921073" TEXT="by ID"/>
<node CREATED="1504885820724" ID="ID_1450511748" MODIFIED="1518487921073" TEXT="erstes"/>
<node CREATED="1504885827803" ID="ID_1198849275" MODIFIED="1518487921073" TEXT="aktuelles"/>
</node>
<node CREATED="1504885855551" ID="ID_812520157" MODIFIED="1518487921073" TEXT="match Perspektive"/>
<node CREATED="1504885875884" FOLDED="true" ID="ID_1808427553" MODIFIED="1533608415642" TEXT="Panel">
<node CREATED="1504885879652" ID="ID_1434158169" MODIFIED="1518487921073" TEXT="hasPanel(Window)"/>
<node CREATED="1504885976847" ID="ID_290757972" MODIFIED="1518487921073" TEXT="createPanel"/>
</node>
<node CREATED="1504886006459" FOLDED="true" ID="ID_1307875760" MODIFIED="1533608415643" TEXT="group">
<node CREATED="1504886010442" ID="ID_1660557914" MODIFIED="1518487921073" TEXT="panel has group"/>
</node>
</node>
<node CREATED="1505420642387" ID="ID_9234158" MODIFIED="1522937622171" TEXT="UI-Koordinaten Builder-DSL">
<icon BUILTIN="idea"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1504886210096" ID="ID_1980896942" MODIFIED="1533608413780" TEXT="locate -&gt;">
<node CREATED="1504886227678" ID="ID_1936525982" MODIFIED="1518487921073" TEXT="existiert | machbar | unm&#xf6;glich"/>
<node CREATED="1504959598053" ID="ID_952692651" MODIFIED="1518487921073" TEXT="Zielkoordinaten"/>
</node>
<node CREATED="1504959603212" ID="ID_627664382" MODIFIED="1533608413780" TEXT="alloc -&gt;">
<node CREATED="1504959659068" ID="ID_389794808" MODIFIED="1518487921073" TEXT="allocator(Zielkoordinaten, managementScope, limit)"/>
<node CREATED="1504959829510" ID="ID_570145960" MODIFIED="1518487921073" TEXT="POST: neuer / alter View unter Zielkoordinaten erreichbar"/>
<node CREATED="1504959871472" ID="ID_864423184" MODIFIED="1518487921073" TEXT="ggfs rekonfigurieren..."/>
</node>
<node CREATED="1504961752279" ID="ID_361507996" MODIFIED="1533608413780" TEXT="Signaturen">
<node CREATED="1504961759077" ID="ID_627682268" MODIFIED="1518487921073" TEXT="locate: UICoord"/>
<node CREATED="1504961784098" ID="ID_268457753" MODIFIED="1518487921073" TEXT="count: UICoord(UICoord)"/>
</node>
</node>
<node CREATED="1504962005981" ID="ID_1955013070" MODIFIED="1518487921073" TEXT="Spec.locate">
<node CREATED="1504962498963" ID="ID_1263067927" MODIFIED="1518487921073" TEXT="firstWindow"/>
<node CREATED="1504962486589" ID="ID_246663472" MODIFIED="1518487921073" TEXT="currentWindow"/>
<node CREATED="1504962506970" ID="ID_726895192" MODIFIED="1518487921073" TEXT="perspective(id)"/>
<node CREATED="1504962522800" ID="ID_224266262" MODIFIED="1518487921074" TEXT="panel(id)"/>
<node CREATED="1504962530335" ID="ID_465095301" MODIFIED="1518487921074" TEXT="existingPanel(id)"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504962643384" ID="ID_1610178620" MODIFIED="1533608413781" TEXT="existingGroup">
<icon BUILTIN="help"/>
<node CREATED="1504962664781" ID="ID_261278011" MODIFIED="1518487921074" TEXT="ist das implementierbar?"/>
<node CREATED="1504962671884" ID="ID_583107872" MODIFIED="1518487921074" TEXT="braucht verdeckten Parameter"/>
</node>
</node>
<node CREATED="1504962013068" ID="ID_1352068125" MODIFIED="1518487921074" TEXT="Spec.alloc">
<node CREATED="1504962685443" ID="ID_663273997" MODIFIED="1518487921074" TEXT="unlimited"/>
<node CREATED="1504962692881" ID="ID_261391829" MODIFIED="1518487921074" TEXT="onlyOne"/>
<node CREATED="1504962700536" ID="ID_1061344108" MODIFIED="1518487921074" TEXT="limitPerWindow(cnt)"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1506034501537" FOLDED="true" ID="ID_262802757" MODIFIED="1533685244285" TEXT="TODO">
<icon BUILTIN="flag-pink"/>
<node CREATED="1506034518068" ID="ID_1413583873" MODIFIED="1518487921074" TEXT="ViewSpecDSL wird f&#xfc;r Location Spec zust&#xe4;ndig"/>
<node CREATED="1506034529729" ID="ID_1906856590" MODIFIED="1518487921074" TEXT="Keine Generics mehr notwendig"/>
<node CREATED="1506034536976" ID="ID_760545085" MODIFIED="1522937397270" TEXT="locationSpec ist direkt eine UICoord">
<icon BUILTIN="button_cancel"/>
<node CREATED="1506114845775" ID="ID_98017975" MODIFIED="1518487921074" TEXT="mu&#xdf; DSL-Elemente unterst&#xfc;tzen"/>
<node CREATED="1506034566805" ID="ID_726919191" MODIFIED="1533608413782" TEXT="ODER-Behandlung wandert in UICoord">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515632006668" ID="ID_1085098385" MODIFIED="1518487921074" TEXT="wirklich?">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1515632050143" ID="ID_1858706501" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Alternative: wrap UI-Coord,
</p>
<p>
thin augmentation layer
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1506114863020" ID="ID_1749053457" MODIFIED="1518487921074" TEXT="Problem: existingPanel(id)">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1522937399796" ID="ID_257379896" MODIFIED="1522937420005" TEXT="locationSpec wrappt">
<node CREATED="1522937421353" ID="ID_1526265712" MODIFIED="1522937428532" TEXT="LocationRule"/>
<node CREATED="1522937429384" ID="ID_159014153" MODIFIED="1522937437674" TEXT="Satz von Einzelregeln"/>
<node CREATED="1522937438358" ID="ID_1221727561" MODIFIED="1522937444145" TEXT="jede von diesen ist ein UICoord"/>
</node>
<node CREATED="1506120453114" ID="ID_1626834388" MODIFIED="1518487921074" TEXT="abgek&#xfc;rzte Schreibweise f&#xfc;r Allocator-Spec"/>
<node CREATED="1506034548376" ID="ID_36109866" MODIFIED="1522937474269" TEXT="count -&gt; umbenennen in alloc">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522937492519" ID="ID_996676171" MODIFIED="1522937502079" TEXT="generischen Aufrufmechanismus kl&#xe4;ren">
<icon BUILTIN="pencil"/>
</node>
</node>
<node CREATED="1504833110793" ID="ID_10881417" MODIFIED="1518487921074" TEXT="Ausdr&#xfc;cke">
<node CREATED="1504833126079" FOLDED="true" ID="ID_286801467" MODIFIED="1533685254493" TEXT="konkret">
<cloud COLOR="#e6d0a4"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="pencil"/>
<node CREATED="1504833146196" ID="ID_278904211" MODIFIED="1533608413783" TEXT="Timeline">
<node CREATED="1504833174961" ID="ID_1294462811" MODIFIED="1518487921074" TEXT="im Timeline-Panel der Gruppe hinzuf&#xfc;gen"/>
<node CREATED="1504882791007" ID="ID_1520721786" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alloc = unlimited
</p>
<p>
locate = panel(timeline)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504833569692" ID="ID_1069272084" MODIFIED="1533608413809" TEXT="Viewer">
<node CREATED="1504834559240" ID="ID_423545167" MODIFIED="1518487921074" TEXT="nur ein einziger(global)"/>
<node CREATED="1504883102734" ID="ID_81147050" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alloc = onlyOne
</p>
<p>
locate = external(beamer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or perspective(mediaView).panel(viewer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or existingPanel(viewer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or firstWindow().panel(viewer)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504834569831" ID="ID_1909335075" MODIFIED="1518487921074" TEXT="maximal 2 Viewer Panel"/>
<node CREATED="1504883107916" ID="ID_1351734300" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alloc = limitPerWindow(2)
</p>
<p>
locate = perspective(edit).existingPanel(viewer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or currentWindow().existingPanel(viewer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or existingPanel(viewer)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or panel(viewer)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504833572687" ID="ID_715257949" MODIFIED="1533608413811" TEXT="(Asset)Bin">
<node CREATED="1504834228100" ID="ID_189081279" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
im Asset-Panel der <i>jeweiligen</i>&#160;Gruppe hinzuf&#252;gen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504883110076" ID="ID_199732103" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alloc = unlimited
</p>
<p>
locate = currentWindow().perspective(edit).existingPanel(asset).existingGroup()
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or perspective(asset)panel(asset)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or firstWindow().panel(asset)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504833574246" ID="ID_1680764695" MODIFIED="1533608413812" TEXT="FehlerLog">
<node CREATED="1504834859584" ID="ID_693499241" MODIFIED="1518487921074" TEXT="im aktuellen Infobox-Panel"/>
<node CREATED="1504883112068" ID="ID_308640581" MODIFIED="1518487921074">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alloc = limitPerWindow(1)
</p>
<p>
locate = currentWindow().existingPanel(infobox)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;or firstWindow().panel(infobox)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504833575700" ID="ID_1341951504" MODIFIED="1533608413812" TEXT="Playcontrol">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504883115283" ID="ID_236325043" MODIFIED="1518487921075" TEXT="?">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1504880643748" ID="ID_1148134938" MODIFIED="1518487921075" TEXT="Design">
<node CREATED="1504880653395" ID="ID_110525549" MODIFIED="1518487921075" TEXT="Regel-artig"/>
<node CREATED="1504880660666" ID="ID_959703053" MODIFIED="1533608413814" TEXT="mit Pr&#xe4;zedenz">
<node CREATED="1504880672873" ID="ID_355744291" MODIFIED="1518487921075" TEXT="Liste von Definitionen"/>
<node CREATED="1504880685783" ID="ID_1363213536" MODIFIED="1518487921075" TEXT="vom Speziellsten zum Allgemeinen"/>
<node CREATED="1504880722394" FOLDED="true" ID="ID_1620814124" MODIFIED="1533608416242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Voraussetzung: <i>Anwendbarkeit</i>&#160;erkennen
</p>
</body>
</html></richcontent>
<node CREATED="1515632134915" ID="ID_1701452111" MODIFIED="1518487921075" TEXT="UICoordResolver kann das">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504881079778" ID="ID_1944767932" MODIFIED="1518487921075" TEXT="Form">
<node CREATED="1504881091345" ID="ID_453622973" MODIFIED="1518487921075" TEXT="Menge von Spezifikationen"/>
<node CREATED="1504881104919" ID="ID_1302649814" MODIFIED="1518487921075" TEXT="diese sind inh&#xe4;rent getypt"/>
<node CREATED="1504881124612" ID="ID_41842721" MODIFIED="1518487921075" TEXT="Spezifikation per Zuweisung"/>
<node CREATED="1504881139794" ID="ID_1982949721" MODIFIED="1518487921075" TEXT="zugewiesener Ausdruck ist passend getypt">
<node CREATED="1506120341257" ID="ID_1629432417" MODIFIED="1533608413815" TEXT="Loaction-Spec">
<node CREATED="1506120349336" ID="ID_1516960868" MODIFIED="1518487921075" TEXT="Menge von UI-Koordinaten"/>
<node CREATED="1506120361846" ID="ID_1024931059" MODIFIED="1518487921075" TEXT="unterst&#xfc;tzt Alternativen"/>
<node CREATED="1506120367605" ID="ID_1489367458" MODIFIED="1518487921075" TEXT="w&#xe4;hlt den ersten anwendbaren"/>
</node>
<node CREATED="1506120374116" ID="ID_1552148308" MODIFIED="1533608413815" TEXT="Allocator-Def">
<node CREATED="1506120380940" ID="ID_1553891423" MODIFIED="1518487921075" TEXT="ein Funktor UICorrd(UIcoord)"/>
<node CREATED="1506120391506" ID="ID_1217740236" MODIFIED="1518487921075" TEXT="Semantik: nimmt Spec und erzeugt konkretes Ziel"/>
<node CREATED="1506120410863" FOLDED="true" ID="ID_1205747223" MODIFIED="1533608416245" TEXT="Allocaotor-Specs">
<node CREATED="1506120420910" ID="ID_6299376" MODIFIED="1518487921075" TEXT="Hilfs-Tokens"/>
<node CREATED="1506120425773" ID="ID_195710124" MODIFIED="1518487921075" TEXT="partielle Funktionsanwendung">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node CREATED="1504881149417" ID="ID_178442113" MODIFIED="1518487921075" TEXT="Alternativen">
<node CREATED="1504881193043" ID="ID_1759689335" MODIFIED="1533608413816" TEXT="Komma-Operator">
<icon BUILTIN="button_cancel"/>
<node CREATED="1504881756073" ID="ID_1341009121" MODIFIED="1518487921075" TEXT="niedrigere Pr&#xe4;zedenz als ="/>
<node CREATED="1504882453091" FOLDED="true" ID="ID_870917199" MODIFIED="1533608416248" TEXT="damit sehr einfach zu implementieren">
<icon BUILTIN="idea"/>
<node CREATED="1504882554718" ID="ID_744764331" MODIFIED="1518487921075" TEXT="weil auf dem DSL-Proxy"/>
<node CREATED="1504882560202" ID="ID_1190541919" MODIFIED="1518487921075" TEXT="egal, wenn beide Seiten der Zuweisung DSL sind"/>
<node CREATED="1504882584218" ID="ID_790570102" MODIFIED="1518487921075">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
was hier <i>vielleicht</i>&#160;der Fall sein k&#246;nnte
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1504882467714" ID="ID_759428035" MODIFIED="1518487921075" TEXT="bedeutet &quot;and then&quot; in Logik-Programmierung">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1504881197490" ID="ID_1696182789" MODIFIED="1533608413818" TEXT="Oder-Operator">
<icon BUILTIN="button_ok"/>
<node CREATED="1504882423975" ID="ID_884614259" MODIFIED="1518487921075" TEXT="h&#xf6;here Pr&#xe4;zedenz als ="/>
<node CREATED="1504882434846" FOLDED="true" ID="ID_1018309959" MODIFIED="1533608416249" TEXT="zwei Alternativen">
<arrowlink COLOR="#1f6dc8" DESTINATION="ID_986692736" ENDARROW="Default" ENDINCLINATION="-13;-31;" ID="Arrow_ID_1057642367" STARTARROW="None" STARTINCLINATION="88;6;"/>
<node CREATED="1504882621302" ID="ID_1942501913" MODIFIED="1518487921075" TEXT="or"/>
<node CREATED="1504882633268" ID="ID_1285507370" MODIFIED="1518487921075" TEXT="|"/>
</node>
<node CREATED="1504882529890" FOLDED="true" ID="ID_233096485" MODIFIED="1533608416250" TEXT="semantisch klar">
<icon BUILTIN="yes"/>
<node CREATED="1504882657576" ID="ID_986692736" MODIFIED="1518487921075" TEXT="beide Alternativen bieten">
<linktarget COLOR="#1f6dc8" DESTINATION="ID_986692736" ENDARROW="Default" ENDINCLINATION="-13;-31;" ID="Arrow_ID_1057642367" SOURCE="ID_1018309959" STARTARROW="None" STARTINCLINATION="88;6;"/>
</node>
<node CREATED="1504882665519" ID="ID_590443599" MODIFIED="1518487921075" TEXT="numerische Auswertung auszuschlie&#xdf;en">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#990000" CREATED="1517970380222" FOLDED="true" ID="ID_1663499246" MODIFIED="1533608416252" TEXT="trickreich zu implementieren">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1517970403323" ID="ID_676104700" MODIFIED="1518487921075" TEXT="...wofern &#xfc;berhaupt m&#xf6;glich"/>
<node CREATED="1517970410690" ID="ID_1716625175" MODIFIED="1518487921075" TEXT="Problem sind die LocationClauses">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir haben nicht einfach UI-Coordinaten als DSl-Elemente,
</p>
<p>
sondern einzelne Klauseln, die allerdings jeweils eine UI-Coord wrappen.
</p>
<p>
</p>
<p>
Wenn man jedoch, rein syntaktisch zu schreiben beginnt &quot;UICoord::window()&quot;
</p>
<p>
dann bekommt man einen UICoord::Builder&#160;&#160;und das ist noch keine Klausel!
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#281977" CREATED="1517971193343" ID="ID_1413272427" MODIFIED="1518487921075" TEXT="vielleicht mit freiem OR-Operator?">
<arrowlink COLOR="#55618e" DESTINATION="ID_1299498209" ENDARROW="Default" ENDINCLINATION="115;1000;" ID="Arrow_ID_1706569145" STARTARROW="None" STARTINCLINATION="561;-39;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1522937551446" ID="ID_1652249088" MODIFIED="1522937563222" TEXT="genau dieses + implizite Umwandlung">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504831421266" ID="ID_1792240475" MODIFIED="1518487921075" TEXT="Zweck und Ziel">
<icon BUILTIN="info"/>
<node CREATED="1504831462636" ID="ID_252411082" MODIFIED="1518487921075" TEXT="Verhaltensmuster in ein Layout einbringen"/>
<node CREATED="1504831510806" ID="ID_834114445" MODIFIED="1518487921075" TEXT="zun&#xe4;chst sind Layouts eine fest vorgegeben"/>
<node CREATED="1504831537746" ID="ID_692369391" MODIFIED="1518487921075" TEXT="sp&#xe4;ter k&#xf6;nnte das user-Konfigurierbar werden">
<node CREATED="1504831564095" ID="ID_1860813217" MODIFIED="1518487921075" TEXT="per Einrichtungs UI"/>
<node CREATED="1504831577317" ID="ID_1281872136" MODIFIED="1518487921075" TEXT="als textuelle Konfiguration"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523019202064" FOLDED="true" HGAP="-88" ID="ID_1224438713" MODIFIED="1538871875450" TEXT="Low-Level-Zugriff" VSHIFT="93">
<arrowlink COLOR="#48678b" DESTINATION="ID_435980488" ENDARROW="Default" ENDINCLINATION="-1768;-2819;" ID="Arrow_ID_689216354" STARTARROW="Default" STARTINCLINATION="309;919;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1523023060481" ID="ID_1061103814" MODIFIED="1523023064036" TEXT="Zweck">
<node CREATED="1523020311838" ID="ID_118722698" MODIFIED="1523020315553" TEXT="Bindeglied">
<node CREATED="1523020317117" ID="ID_36029855" MODIFIED="1523020327967" TEXT="UI-Koordinaten"/>
<node CREATED="1523020328651" ID="ID_57107983" MODIFIED="1523020334087" TEXT="Component Views"/>
<node CREATED="1523020334770" ID="ID_1169326637" MODIFIED="1523020339014" TEXT="konkrete Widgets"/>
</node>
<node CREATED="1523023241752" ID="ID_1541233512" MODIFIED="1523023254890">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Schicht <i>unter</i>&#160;dem ViewLocator
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1523023256246" ID="ID_1600604589" MODIFIED="1523023271295" TEXT="UI-Koordinaten -&gt;">
<node CREATED="1523023272292" ID="ID_81266590" MODIFIED="1523023288805" TEXT="konkretes Element erreichen"/>
<node CREATED="1523023289345" ID="ID_625415004" MODIFIED="1523023295980" TEXT="konkretes Element erzeugen"/>
</node>
</node>
<node CREATED="1523028361507" ID="ID_393788551" MODIFIED="1523028366222" TEXT="Abstraktion">
<node CREATED="1523028367338" ID="ID_204804362" MODIFIED="1523051167969" TEXT="ElementAccess">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1523028460629" ID="ID_683539946" MODIFIED="1523028462433" TEXT="Service">
<node CREATED="1523028463213" ID="ID_795295203" MODIFIED="1523030738854" TEXT="lib::Depend&lt;ElementAccess&gt;"/>
<node CREATED="1523030678458" ID="ID_1970353135" MODIFIED="1523030681637" TEXT="mockbar"/>
</node>
<node CREATED="1523055325343" ID="ID_1512953348" MODIFIED="1523055328331" TEXT="Dienste">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1523055329159" ID="ID_1316858206" MODIFIED="1523055337404" TEXT="noch nicht wirklich klar">
<icon BUILTIN="clanbomber"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1523118112181" HGAP="58" ID="ID_1335551290" MODIFIED="1523118278708" TEXT="noch nicht klar, wer diesen Dienst bieten kann" VSHIFT="2">
<arrowlink COLOR="#ef9f88" DESTINATION="ID_1743128010" ENDARROW="Default" ENDINCLINATION="-2099;1258;" ID="Arrow_ID_175864704" STARTARROW="Default" STARTINCLINATION="-20;-1838;"/>
<icon BUILTIN="flag-pink"/>
</node>
<node CREATED="1523055339293" ID="ID_805375580" MODIFIED="1523055357236" TEXT="erst mal ein Hilfsmittel f&#xfc;r das Design">
<icon BUILTIN="idea"/>
<node CREATED="1523055360002" ID="ID_1183834156" MODIFIED="1523055363894" TEXT="yet another abstraction"/>
</node>
</node>
</node>
<node CREATED="1523059565187" ID="ID_685856143" MODIFIED="1523059569334" TEXT="Implementierung">
<node CREATED="1523059570619" ID="ID_1720611397" MODIFIED="1525124215025" TEXT="Problem: Typisierung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1523059593831" ID="ID_1175935224" MODIFIED="1523059666434" TEXT="will mich nicht auf eine Basisklasse festlegen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
model::Tangible ist sch&#246;n,
</p>
<p>
aber ich wei&#223; nicht, ob das nicht zu eingeschr&#228;nkt ist.
</p>
<p>
Beispielsweise werden Panel oder WorkspaceWindow ganz sicher keine Tangibles sein,
</p>
<p>
aber es k&#246;nnte durchaus sein, da&#223; man auf sie generisch zugreifen m&#246;chte
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1523059669693" ID="ID_11075132" MODIFIED="1523227985279" STYLE="fork" TEXT="lib::AccessCasted">
<icon BUILTIN="button_cancel"/>
<node CREATED="1523227992122" ID="ID_1284848955" MODIFIED="1523227996485" TEXT="geht nicht direkt"/>
<node CREATED="1523227997217" ID="ID_82006262" MODIFIED="1523228003188" TEXT="void* hat kein RTTI"/>
<node CREATED="1523228003896" ID="ID_1572923964" MODIFIED="1523228016741" TEXT="es gibt keine gemeinsame Basisklasse">
<icon BUILTIN="broken-line"/>
</node>
</node>
<node CREATED="1523229374586" ID="ID_1962044591" MODIFIED="1523229381985" TEXT="sigc::trackable">
<icon BUILTIN="button_cancel"/>
<node CREATED="1523229383305" ID="ID_1786273483" MODIFIED="1523229392595" TEXT="hat kein RTTI"/>
<node CREATED="1523229393567" ID="ID_1067337253" MODIFIED="1523229403706" TEXT="wohl bewu&#xdf;te Design-Entscheidung"/>
</node>
<node CREATED="1523228995279" ID="ID_924400738" MODIFIED="1523229065936" TEXT="mu&#xdf; mich wohl auf eine Menge von Basis-Typen festlegen">
<icon BUILTIN="smily_bad"/>
<node CREATED="1523229075403" ID="ID_808081590" MODIFIED="1523229080671" TEXT="model::Tangible"/>
<node CREATED="1523229081683" ID="ID_766417564" MODIFIED="1523229084838" TEXT="Gtk::Widget"/>
</node>
</node>
<node CREATED="1523059717622" ID="ID_598506387" MODIFIED="1525124215028" TEXT="Grundstruktur">
<node CREATED="1523059685611" ID="ID_1274858318" MODIFIED="1523059711165" TEXT="lib::Result">
<icon BUILTIN="idea"/>
<node CREATED="1523222317789" ID="ID_223201063" MODIFIED="1523222325262" TEXT="ist ein Either-Typ">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1523222326668" ID="ID_1906453858" MODIFIED="1523222336646" TEXT="bietet bereits bool-Abfrage / Exception"/>
<node CREATED="1523222338258" ID="ID_1400754551" MODIFIED="1523224303183" TEXT="pa&#xdf;t perfekt">
<arrowlink COLOR="#97db97" DESTINATION="ID_1568226158" ENDARROW="Default" ENDINCLINATION="226;0;" ID="Arrow_ID_26754858" STARTARROW="None" STARTINCLINATION="277;-10;"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1523224208591" ID="ID_1896914767" MODIFIED="1523225015564" TEXT="geht&apos;s noch einfacher?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1523224222477" ID="ID_769675431" MODIFIED="1523224258636" TEXT="reinen Pointer liefern?"/>
<node CREATED="1523224259839" ID="ID_1984912464" MODIFIED="1523224818692" TEXT="wer braucht Fehler?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Zwei F&#228;lle sind hier zu unterscheiden:
</p>
<ol>
<li>
der gew&#252;nschte Wert existiert nicht, und das ist auch das Ergebnis der Anfrage
</li>
<li>
es liegt eine Fehleinsch&#228;tzung der Situation vor, insofern fest mit einem Ergebnis gerechnet wurde
</li>
</ol>
<p>
In Fall-1 wird man eine bool-Abfrage machen wollen, und man kann auch mit einer false-Antwort umgehen. In Fall-2 dagegen bleibt nur noch der Tod. Und davon ist im Regelfall nicht auszugehen. Im Moment sehe ich Fall-2 als den <b>standard-use-Case</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1523224898647" ID="ID_1600596253" MODIFIED="1523225000638" TEXT="zwei nicht-kongruente F&#xe4;lle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
im Fall-1 wei&#223; der Client, da&#223; er pr&#252;fen mu&#223;
</li>
<li>
im Fall-2 marschiert der Client einfach durch
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1523224938633" ID="ID_1168693432" MODIFIED="1523225005333" TEXT="SEGFAULT droht">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1523224949440" ID="ID_1408830480" MODIFIED="1523224963825" TEXT="Option/Maybe-Typ notwendig">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1523059729276" ID="ID_117320755" MODIFIED="1523059751029" TEXT="sollte auf die Struktur von LocationQuery hinauslaufen"/>
<node CREATED="1523059751905" ID="ID_345254237" MODIFIED="1523059757668" TEXT="aber mit zus&#xe4;tzlichen Operationen...."/>
</node>
<node CREATED="1523118465853" ID="ID_1546860746" MODIFIED="1523118472608" TEXT="Differenzierung">
<node CREATED="1523118474171" ID="ID_96237584" MODIFIED="1523118480758" TEXT="verschiedene Typen von Aufgaben">
<node CREATED="1523118482458" ID="ID_1606478842" MODIFIED="1523118484694" TEXT="Zugriff"/>
<node CREATED="1523118485802" ID="ID_1745902381" MODIFIED="1523118494781" TEXT="Zugriff + Erzeugen"/>
<node CREATED="1523118498760" ID="ID_290260966" MODIFIED="1523118517809" TEXT="multiplicity kontrollieren"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523205852655" ID="ID_101568597" MODIFIED="1523205860142" TEXT="Zugriffs-Mechanik">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523222428901" ID="ID_1793979710" MODIFIED="1523222512561" TEXT="ein rekursiver drill-Down">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523222444467" ID="ID_770319889" MODIFIED="1523222512562" TEXT="der Endpunkt wird zug&#xe4;nglich gemacht">
<icon BUILTIN="hourglass"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523222481262" ID="ID_1485862182" MODIFIED="1523222512562" TEXT="allerdings nur zur Anwendung einer Strategie">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node COLOR="#338800" CREATED="1523222204556" ID="ID_1018012203" MODIFIED="1525124215030" TEXT="Ergebnis-Ausgabe">
<icon BUILTIN="button_ok"/>
<node CREATED="1523222214579" ID="ID_1568226158" MODIFIED="1523224303183" STYLE="fork" TEXT="Feststellung: keine Status-R&#xfc;ckmeldung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das mag &#252;berraschend klingen,
</p>
<p>
aber in der (zu erwartenden) Nutzsituation interessiert sich <i>keine Sau</i>&#160;daf&#252;r,
</p>
<p>
was denn nun konkret gemacht wurde, um den Dienst zu erbringen.
</p>
<p>
Die einzig interessante Information ist, ob es <b>gelungen</b>&#160;ist
</p>
</body>
</html></richcontent>
<linktarget COLOR="#97db97" DESTINATION="ID_1568226158" ENDARROW="Default" ENDINCLINATION="226;0;" ID="Arrow_ID_26754858" SOURCE="ID_1400754551" STARTARROW="None" STARTINCLINATION="277;-10;"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1523222380124" FOLDED="true" ID="ID_1101595897" MODIFIED="1538871711066" TEXT="mu&#xdf; pr&#xfc;fen, ob der Cast m&#xf6;glich ist">
<icon BUILTIN="button_ok"/>
<node CREATED="1523229139923" ID="ID_636796034" MODIFIED="1531584013596" TEXT="Variant?">
<icon BUILTIN="forward"/>
<node COLOR="#338800" CREATED="1523229483619" ID="ID_1116388815" MODIFIED="1523587648174" TEXT="wohl einzige L&#xf6;sung?">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#6c2525" CREATED="1523232748878" ID="ID_153055029" MODIFIED="1523587755516" TEXT="AUA --- geht auch nicht ohne Weiteres">
<icon BUILTIN="broken-line"/>
<node CREATED="1523232788680" ID="ID_849117954" MODIFIED="1523232797628" TEXT="&#xc4;ndert nix am Grundproblem">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1523232798911" ID="ID_351873038" MODIFIED="1523232810481" TEXT="AccessCasted f&#xfc;r Zieltyp"/>
<node CREATED="1523232811805" ID="ID_577095101" MODIFIED="1523232886443" TEXT="l&#xe4;&#xdf;t sich nur bei kompatiblem Basistyp &#xfc;berhaupt instantiieren">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1523232888115" ID="ID_800807629" MODIFIED="1523232908023">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber genau das ist hier jeweils nur <i>in einem Fall</i>&#160;gegeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1523232932724" ID="ID_386898631" MODIFIED="1533608413821" TEXT="Runtime-Compiletime-Problem">
<node CREATED="1523232945043" ID="ID_45452812" MODIFIED="1523232954053" TEXT="erst zur Laufzeit wissen wir, was zur&#xfc;ckkommt"/>
<node CREATED="1523233007258" ID="ID_1076174983" MODIFIED="1523233019060" TEXT="aber zur Compilezeit m&#xfc;ssen wir schon den Cast vorbereiten"/>
</node>
<node COLOR="#338800" CREATED="1523233031479" ID="ID_1135973571" MODIFIED="1533608413821" TEXT="Idee: Visitor spezialisieren">
<linktarget COLOR="#3f6796" DESTINATION="ID_1135973571" ENDARROW="Default" ENDINCLINATION="-62;1;" ID="Arrow_ID_290291364" SOURCE="ID_1510464943" STARTARROW="None" STARTINCLINATION="8;-34;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1523233049316" ID="ID_278890079" MODIFIED="1523396787384" TEXT="er implementiert &#xfc;berhaupt nur den Fall, der geht">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1523587774453" ID="ID_887720572" MODIFIED="1523587792039" TEXT="in allen anderen F&#xe4;llen bleibt der Result-Proxy leer"/>
</node>
</node>
<node CREATED="1523229496001" ID="ID_190653452" MODIFIED="1523229516738" TEXT="bedeutet...">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1523229517523" ID="ID_1510464943" MODIFIED="1523587856731" TEXT="Variant-Visitor">
<arrowlink COLOR="#3f6796" DESTINATION="ID_1135973571" ENDARROW="Default" ENDINCLINATION="-62;1;" ID="Arrow_ID_290291364" STARTARROW="None" STARTINCLINATION="8;-34;"/>
</node>
<node CREATED="1523587686010" ID="ID_533196954" MODIFIED="1523587697908" TEXT="trickreiches Metaprogramming"/>
<node CREATED="1523229519846" ID="ID_307916731" MODIFIED="1523229533208" TEXT="Einschr&#xe4;nkungen f&#xfc;r die Test-Dummies"/>
</node>
</node>
<node CREATED="1523229147593" ID="ID_1510668106" MODIFIED="1523229476684" TEXT="if-else-Kaskade?">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1523225025493" ID="ID_1731501078" MODIFIED="1523225070764" TEXT="der interne Aufruf kann einen Pointer liefern">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1523225052314" ID="ID_271482556" MODIFIED="1523587734563" TEXT="die Aufrufschnittstelle stellt NULL-Check sicher">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1523053331956" ID="ID_563797148" MODIFIED="1523053334615" TEXT="Test">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523053336219" ID="ID_1234019560" MODIFIED="1525124215034" TEXT="ElementAccess_test">
<linktarget COLOR="#43667c" DESTINATION="ID_1234019560" ENDARROW="Default" ENDINCLINATION="-338;-1489;" ID="Arrow_ID_839730277" SOURCE="ID_1539184761" STARTARROW="None" STARTINCLINATION="-530;453;"/>
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523118534675" ID="ID_669651266" MODIFIED="1523663819813" TEXT="Mock-Implementierung">
<icon BUILTIN="pencil"/>
<node CREATED="1523118577557" ID="ID_1246038265" MODIFIED="1523118589479" TEXT="Mock-Prinzip">
<icon BUILTIN="help"/>
<node CREATED="1523118591395" ID="ID_1571065062" MODIFIED="1523118636465" TEXT="vorgefertigter Response">
<icon BUILTIN="full-1"/>
<node CREATED="1523118640980" ID="ID_866333439" MODIFIED="1523118644680" TEXT="billig"/>
<node CREATED="1523118645363" ID="ID_620926078" MODIFIED="1523118650798" TEXT="bringt mit jetzt schnell weiter"/>
</node>
<node CREATED="1523118600186" ID="ID_1717703636" MODIFIED="1523118638974" TEXT="emulierte Auswertung">
<icon BUILTIN="full-2"/>
<node CREATED="1523118604809" ID="ID_224206639" MODIFIED="1523118612228" TEXT="GenNodeLocationQuery aufbohren?"/>
<node CREATED="1523118613096" ID="ID_169844591" MODIFIED="1523118623074" TEXT="== Vorarbeit f&#xfc;r die sp&#xe4;tere Implementierung"/>
</node>
</node>
<node COLOR="#338800" CREATED="1523663840577" ID="ID_1523982995" MODIFIED="1523670899095" TEXT="Mock-Widget-Erzeugung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1523663862182" ID="ID_937721725" MODIFIED="1523670907629" TEXT="besser in die Mock-Service-Impl verlegen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1523663880731" ID="ID_1244735047" MODIFIED="1523670903598" TEXT="von dort nachpr&#xfc;fbar machen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1523118660882" ID="ID_1452843558" MODIFIED="1523725214734" TEXT="Testf&#xe4;lle">
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1523205670160" ID="ID_649704431" MODIFIED="1523663805752" TEXT="einfacher Zugriff auf existierendes Objekt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1523205706547" ID="ID_210608554" MODIFIED="1523670915381" TEXT="Zugriff auf Parent-Ebene, ein Kind-Knoten wird erzeugt">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523205752509" ID="ID_212194424" MODIFIED="1523205775730" TEXT="partielle oder komplette Erzeugung eines Pfades">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523205740998" ID="ID_1828083346" MODIFIED="1523205777745" TEXT="Limitierte Erzeugung von Kindern">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523725217249" ID="ID_168041841" MODIFIED="1523725232375" TEXT="bleibt halbfertig liegen">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1523726928069" ID="ID_1480266497" MODIFIED="1523726945723" TEXT="#1036 low-level Access implementieren">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1523055378032" ID="ID_1727349685" MODIFIED="1525124215035" TEXT="Test-Hilfsmittel">
<node CREATED="1523055393950" ID="ID_62932320" MODIFIED="1523055412955" TEXT="TestElementAccess">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1523055422074" ID="ID_1765892157" MODIFIED="1523055430229" TEXT="Fake-Implementierung des Interfaces">
<node CREATED="1523055519972" ID="ID_52044142" MODIFIED="1523055528879" TEXT="k&#xf6;nnte sich mal zu einem Test-Framework auswachsen"/>
<node CREATED="1523055529443" ID="ID_567387345" MODIFIED="1523055536280" TEXT="...aber nicht jetzt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1523055431649" ID="ID_1190698125" MODIFIED="1523055442076" TEXT="kein GTK dahinter">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1523055476638" ID="ID_1252887483" MODIFIED="1523055485333" TEXT="verwende Marker-Dummy-Typen"/>
<node CREATED="1523055489736" ID="ID_1578213763" MODIFIED="1523055499219" TEXT="um polymorphen und generischen Zugang zu pr&#xfc;fen"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1489777673022" HGAP="-43" ID="ID_873069403" MODIFIED="1557498707220" TEXT="Zugang zu Proc-Commands" VSHIFT="34">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489777702971" HGAP="125" ID="ID_1780068142" MODIFIED="1557498707220" TEXT="Framework mu&#xdf; geschaffen werden" VSHIFT="-42">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1489777783120" ID="ID_1439783231" MODIFIED="1557498707220" TEXT="Protokoll f&#xfc;r den Zugang">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489777837120" ID="ID_466927949" MODIFIED="1557498707220" TEXT="Ort f&#xfc;r Command-Definitionen"/>
<node COLOR="#338800" CREATED="1489777846095" ID="ID_1401258681" MODIFIED="1557498707220" TEXT="Design Proc-Command-Framework vorantreiben">
<arrowlink COLOR="#352c7d" DESTINATION="ID_1622574347" ENDARROW="Default" ENDINCLINATION="-240;-3336;" ID="Arrow_ID_1512127407" STARTARROW="None" STARTINCLINATION="1929;0;"/>
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1489777738462" ID="ID_733673713" MODIFIED="1557498707220" TEXT="angebunden an den InteractionDirector"/>
<node CREATED="1489777748748" ID="ID_1098831130" MODIFIED="1557498707220" TEXT="statisches Front-End: CmdAccessor"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486763185746" HGAP="33" ID="ID_362749694" MODIFIED="1557498707220" TEXT="InteractionDirector" VSHIFT="21">
<arrowlink COLOR="#3b4877" DESTINATION="ID_700485676" ENDARROW="Default" ENDINCLINATION="430;-874;" ID="Arrow_ID_454081114" STARTARROW="Default" STARTINCLINATION="-170;534;"/>
<linktarget COLOR="#798eba" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-218;-590;" ID="Arrow_ID_757867749" SOURCE="ID_1440190469" STARTARROW="None" STARTINCLINATION="15;121;"/>
<linktarget COLOR="#5e4463" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-57;-739;" ID="Arrow_ID_1847127764" SOURCE="ID_474441211" STARTARROW="None" STARTINCLINATION="73;95;"/>
<linktarget COLOR="#683c5b" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-394;0;" ID="Arrow_ID_1979576517" SOURCE="ID_113005643" STARTARROW="None" STARTINCLINATION="-24;-159;"/>
<linktarget COLOR="#1b3863" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-518;1012;" ID="Arrow_ID_959577029" SOURCE="ID_735655054" STARTARROW="Default" STARTINCLINATION="-376;-568;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1486763268223" ID="ID_199328732" MODIFIED="1557498707220" TEXT="nicht der Meister">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1486763278189" ID="ID_330558344" MODIFIED="1557498707220" TEXT="aber ein zentrales Bindeglied"/>
<node CREATED="1486763287244" ID="ID_1712681910" MODIFIED="1557498707220" TEXT="zwei Welten">
<node CREATED="1486763292028" ID="ID_1224392598" MODIFIED="1557498707220" TEXT="Modell-struktur == Hierarchie"/>
<node CREATED="1486763303066" ID="ID_1274975607" MODIFIED="1557498707220" TEXT="Interaktion == Fokus und Kontext"/>
</node>
<node CREATED="1486763350764" ID="ID_1309124609" MODIFIED="1557498707220" TEXT="Aufgaben">
<icon BUILTIN="yes"/>
<node CREATED="1486763355739" ID="ID_745725927" MODIFIED="1557498707220" TEXT="Bindung f&#xfc;r Aktionen bereitstellen"/>
<node CREATED="1488566356774" ID="ID_969011841" MODIFIED="1557498707220" TEXT="Ankerpunkt zum Bilden der Commands">
<arrowlink COLOR="#706a9a" DESTINATION="ID_1461875887" ENDARROW="Default" ENDINCLINATION="-923;-789;" ID="Arrow_ID_457540370" STARTARROW="None" STARTINCLINATION="806;300;"/>
<node CREATED="1488566405248" ID="ID_355508260" MODIFIED="1557498707220" TEXT="auffinden der Command-IDs">
<node CREATED="1489191528425" ID="ID_1331796226" MODIFIED="1557498707220" TEXT="Neuer Service hierf&#xfc;r in Proc">
<arrowlink COLOR="#584d79" DESTINATION="ID_341428100" ENDARROW="Default" ENDINCLINATION="1995;-1317;" ID="Arrow_ID_879741123" STARTARROW="None" STARTINCLINATION="334;-13;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488677809297" ID="ID_1520540731" MODIFIED="1557498707220" TEXT="Problem: Zugang / Wiring">
<arrowlink DESTINATION="ID_850989325" ENDARROW="Default" ENDINCLINATION="183;-575;" ID="Arrow_ID_1002016515" STARTARROW="None" STARTINCLINATION="341;286;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1488566427445" ID="ID_567418101" MODIFIED="1557498707220" TEXT="InteractionStateManager">
<node CREATED="1488566447466" ID="ID_1978593319" MODIFIED="1557498707220" TEXT="h&#xe4;ngen darunter"/>
<node CREATED="1488566452538" ID="ID_1569803797" MODIFIED="1557498707220" TEXT="werden transient gebilet"/>
</node>
</node>
<node CREATED="1486763376960" ID="ID_1618020758" MODIFIED="1557498707220" TEXT="Zugang zu den Timelines">
<node COLOR="#338800" CREATED="1480694550601" ID="ID_810032444" MODIFIED="1557498707220" TEXT="Timeline injizieren">
<linktarget COLOR="#fec680" DESTINATION="ID_810032444" ENDARROW="Default" ENDINCLINATION="-451;-531;" ID="Arrow_ID_1378803021" SOURCE="ID_1375216048" STARTARROW="None" STARTINCLINATION="335;22;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1539141031692" ID="ID_224638279" MODIFIED="1557498707220" TEXT="Aufruf aus dem TreeMutator-Binding"/>
<node COLOR="#338800" CREATED="1539141043842" ID="ID_1475393315" MODIFIED="1557498707220" TEXT="brauche Allocator f&#xfc;r Timelines">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1539141064760" ID="ID_807914812" MODIFIED="1557498707220" TEXT="wo Service ansiedeln">
<icon BUILTIN="help"/>
<node CREATED="1539394478891" ID="ID_1478223120" MODIFIED="1557498707220" TEXT="analog zum Error-Log"/>
<node CREATED="1539394483610" ID="ID_847301374" MODIFIED="1557498707221" TEXT="vorl&#xe4;ufig: WindowLocator -&gt; PanelLoactor"/>
</node>
<node COLOR="#338800" CREATED="1539141076630" ID="ID_399959646" MODIFIED="1557498707221" TEXT="Auspr&#xe4;gung / Platzierung festlegen">
<icon BUILTIN="button_ok"/>
<node CREATED="1539388923323" ID="ID_585499856" MODIFIED="1557498707221" TEXT="Frage: wann wird eine Timeline im GUI repr&#xe4;sentiert?">
<arrowlink COLOR="#c8a1fe" DESTINATION="ID_430199880" ENDARROW="Default" ENDINCLINATION="-629;0;" ID="Arrow_ID_1293894659" STARTARROW="None" STARTINCLINATION="-505;56;"/>
<node CREATED="1539389169498" ID="ID_1287197830" MODIFIED="1557498707221" TEXT="immer?"/>
<node CREATED="1539389172250" ID="ID_1511105173" MODIFIED="1557498707221" TEXT="nur machmal?"/>
<node CREATED="1539389178833" ID="ID_1726056610" MODIFIED="1557498707221" TEXT="wer entscheidet?"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539389184120" ID="ID_1773551633" MODIFIED="1557498707221" TEXT="vorl&#xe4;ufig: immer">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1539389396443" ID="ID_1588695969" MODIFIED="1557498707221" TEXT="Konsequenz: Inaktiv == reine UI-Logik">
<node CREATED="1539389417033" ID="ID_1789060953" MODIFIED="1557498707221" TEXT="Schlie&#xdf;en eines Tab"/>
<node CREATED="1539389434086" ID="ID_1428746299" MODIFIED="1557498707221" TEXT="mu&#xdf; das Widget zerst&#xf6;ren"/>
<node CREATED="1539389442477" ID="ID_803437655" MODIFIED="1557498707221" TEXT="TimelineGui wird inaktiv"/>
</node>
<node COLOR="#338800" CREATED="1539394521229" ID="ID_1457306650" MODIFIED="1557498707221" TEXT="den Rest &#xfc;berlassen wir dem TimelinePanel">
<arrowlink COLOR="#6bb2d4" DESTINATION="ID_50363803" ENDARROW="Default" ENDINCLINATION="381;11;" ID="Arrow_ID_1031630897" STARTARROW="None" STARTINCLINATION="-27;76;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1539141131742" ID="ID_1557130599" MODIFIED="1557498707221" TEXT="WLink baut TimelineWidget und verdrahtet Controller">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539141115961" ID="ID_50363803" MODIFIED="1557498707221" TEXT="TimelineWidget installieren">
<arrowlink COLOR="#a678c8" DESTINATION="ID_1510868551" ENDARROW="Default" ENDINCLINATION="-587;-51;" ID="Arrow_ID_206932394" STARTARROW="None" STARTINCLINATION="-699;0;"/>
<linktarget COLOR="#6bb2d4" DESTINATION="ID_50363803" ENDARROW="Default" ENDINCLINATION="381;11;" ID="Arrow_ID_1031630897" SOURCE="ID_1457306650" STARTARROW="None" STARTINCLINATION="-27;76;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#990000" CREATED="1539141189855" ID="ID_1121710933" MODIFIED="1557498707221" TEXT="Achtung: GUI lebt woanders...">
<arrowlink COLOR="#732647" DESTINATION="ID_385121370" ENDARROW="Default" ENDINCLINATION="93;-27;" ID="Arrow_ID_384022851" STARTARROW="None" STARTINCLINATION="-2;36;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1539258904290" ID="ID_803293419" MODIFIED="1557498707221" TEXT="hier ein Platzhalter">
<icon BUILTIN="yes"/>
<node CREATED="1539258936270" ID="ID_966612516" MODIFIED="1557498707221" TEXT="was ist eine Timeline hier?">
<node CREATED="1539261019926" ID="ID_566230935" MODIFIED="1557498707221" TEXT="Empfangs-Gegenstelle"/>
<node CREATED="1539261038923" ID="ID_1048882319" MODIFIED="1557498707221" TEXT="diffMutable">
<node CREATED="1539261161651" ID="ID_833363023" MODIFIED="1557498707221" TEXT="forwarding">
<arrowlink DESTINATION="ID_1657820556" ENDARROW="Default" ENDINCLINATION="36;0;" ID="Arrow_ID_149841651" STARTARROW="None" STARTINCLINATION="36;0;"/>
</node>
</node>
<node CREATED="1539261148341" ID="ID_1657820556" MODIFIED="1557498707221" TEXT="Zugang zum UI-Widget">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1657820556" ENDARROW="Default" ENDINCLINATION="36;0;" ID="Arrow_ID_149841651" SOURCE="ID_833363023" STARTARROW="None" STARTINCLINATION="36;0;"/>
</node>
<node CREATED="1539261050602" ID="ID_1069671492" MODIFIED="1557498707221" TEXT="Lebenszyklus-Proxy">
<node CREATED="1539261081830" ID="ID_1986320634" MODIFIED="1557498707221" TEXT="zerst&#xf6;rt UI-Repr&#xe4;sentation kaskadierend"/>
<node CREATED="1539261110498" ID="ID_98327658" MODIFIED="1557498707221" TEXT="wird zum reine Platzhalter wenn UI-Widget verschwindet"/>
</node>
</node>
<node CREATED="1539258947005" ID="ID_1624061939" MODIFIED="1557498707221" TEXT="Thema: Slave-Timeline (vertagt)">
<arrowlink COLOR="#bfb5ce" DESTINATION="ID_1028434909" ENDARROW="Default" ENDINCLINATION="-1311;-1012;" ID="Arrow_ID_1339464508" STARTARROW="None" STARTINCLINATION="505;-47;"/>
<icon BUILTIN="hourglass"/>
</node>
<node COLOR="#338800" CREATED="1539262387431" ID="ID_385121370" MODIFIED="1557498707221" TEXT="TimelineGui">
<linktarget COLOR="#732647" DESTINATION="ID_385121370" ENDARROW="Default" ENDINCLINATION="93;-27;" ID="Arrow_ID_384022851" SOURCE="ID_1121710933" STARTARROW="None" STARTINCLINATION="-2;36;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539262834731" ID="ID_1647910407" MODIFIED="1557498707221" TEXT="basiert auf WLink">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539262840962" ID="ID_1624846094" MODIFIED="1557498707221" TEXT="delegiert diffMutable">
<arrowlink DESTINATION="ID_1352270227" ENDARROW="Default" ENDINCLINATION="117;0;" ID="Arrow_ID_1672775567" STARTARROW="None" STARTINCLINATION="117;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1539262860719" ID="ID_113907558" MODIFIED="1557498707221" TEXT="ist ein smart-ptr&lt;TimelineWidget&gt;">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1539382633847" ID="ID_376948699" MODIFIED="1557498707221" TEXT="h&#xe4;llt die Timeline-ID bereit">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1539270786646" ID="ID_1019344552" MODIFIED="1557498707221" TEXT="delegierenden Mutator implementieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1539270801572" ID="ID_1535443502" MODIFIED="1557498707221" TEXT="f&#xfc;r InteractionDirector">
<node CREATED="1539270491013" ID="ID_1136748343" MODIFIED="1557498707221" TEXT="Problem der korrekten Diff-Struktur">
<arrowlink COLOR="#cbada9" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="1069;-129;" ID="Arrow_ID_46239762" STARTARROW="None" STARTINCLINATION="-474;40;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1539382792997" ID="ID_1411304100" MODIFIED="1557498707221" TEXT="im Diff mu&#xdf; jeweils die Root-Track-ID mitkommen"/>
</node>
<node COLOR="#435e98" CREATED="1539270808827" ID="ID_1352270227" MODIFIED="1557498707221" TEXT="f&#xfc;r TimelineGui">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1352270227" ENDARROW="Default" ENDINCLINATION="117;0;" ID="Arrow_ID_1672775567" SOURCE="ID_1624846094" STARTARROW="None" STARTINCLINATION="117;0;"/>
<node COLOR="#435e98" CREATED="1539294555064" HGAP="45" ID="ID_1365984217" MODIFIED="1557498707221" TEXT="Problem: diff ignorieren" VSHIFT="23">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1539294576338" ID="ID_485684974" MODIFIED="1557498707221" TEXT="kann das auftreten....?">
<icon BUILTIN="help"/>
<node CREATED="1539294589200" ID="ID_1206613848" MODIFIED="1557498707221" TEXT="ja">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1539294594367" ID="ID_451112886" MODIFIED="1557498707221" TEXT="wenn InteractionDirector selber ein Diff empf&#xe4;ngt...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...welches in eine Kind-Timeline absteigt,
</p>
<p>
welche gegenw&#228;rtig im GUI nicht existiert
</p>
<p>
und daher auf &quot;inaktiv&quot; geschaltet ist.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1539294678444" ID="ID_934706379" MODIFIED="1557498707221" TEXT="TreeMutator scheitert per Default">
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#338800" CREATED="1539294698801" FOLDED="true" ID="ID_1533611583" MODIFIED="1557498707221" TEXT="also brauche ich einen /dev/null-Mutator">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539294727470" ID="ID_1958316881" MODIFIED="1539299017213" TEXT="speziellen Binding-Layer fabrizieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1539294807066" ID="ID_1137741867" MODIFIED="1539294809654" TEXT="wie?"/>
<node CREATED="1539294812306" ID="ID_1564927840" MODIFIED="1539302566302" TEXT="mu&#xdf; das Standard-Mapping anschauen">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1539294846845" ID="ID_1839295475" MODIFIED="1539294935855" TEXT="TreeDiffMutatorBinding">
<icon BUILTIN="info"/>
<node CREATED="1539294859537" ID="ID_637091190" MODIFIED="1539294928138" TEXT="__expect_further_elements -&gt; immer true">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1539294892879" ID="ID_642349797" MODIFIED="1539294931009" TEXT="__expect_end_of_scope -&gt; auch immer true">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1539294909749" ID="ID_1965063755" MODIFIED="1539294918319" TEXT="Impl in tree-diff.cpp">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1539294950567" ID="ID_1321971857" MODIFIED="1539298935822" TEXT="alle F&#xe4;lle durchklappern">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1539302456636" ID="ID_809868228" MODIFIED="1539302478177" TEXT="Idee: mit anderen Layern kombinieren...">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1539302481080" ID="ID_126724611" MODIFIED="1539302542052" TEXT="static_assertion">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit es nicht versehentlich &#252;ber einen anderen Layer gelegt wird,
</p>
<p>
welchen es dann &#252;berdecken und au&#223;er Gefecht setzen w&#252;rde.
</p>
<p>
</p>
<p>
Habe verifiziert, da&#223; diese Assertion tats&#228;chlich greift
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1539294743739" ID="ID_1596076772" MODIFIED="1539294758145" TEXT="Builder().ignoreAll()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539294760464" ID="ID_1376112641" MODIFIED="1539302371782" TEXT="DiffIgnoreChanges_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539298953819" ID="ID_1706428916" MODIFIED="1539298972769" TEXT="leerer TreeMutator produziert Fehler">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539298974312" ID="ID_986781359" MODIFIED="1539298992271" TEXT="BlackHoleMutation fri&#xdf;t alles">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539298993222" ID="ID_647799125" MODIFIED="1539302373522" TEXT="Kombinieren mit speziellem Overlay">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1486763385591" ID="ID_6651258" MODIFIED="1557498707221" TEXT="Zugang zum Asset-Management"/>
<node CREATED="1486763391862" ID="ID_1568245541" MODIFIED="1557498707221" TEXT="Zugang zur Konfiguration"/>
<node CREATED="1486763408780" ID="ID_520762274" MODIFIED="1557498707221" TEXT="Zugang zum persistenten Interface-State"/>
<node CREATED="1504371285442" ID="ID_634013434" MODIFIED="1557498707221" TEXT="Allokation von ComponentViews">
<arrowlink DESTINATION="ID_948587913" ENDARROW="Default" ENDINCLINATION="87;-34;" ID="Arrow_ID_1863964331" STARTARROW="None" STARTINCLINATION="157;10;"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1486768073223" FOLDED="true" HGAP="38" ID="ID_1457876217" MODIFIED="1557498707221" TEXT="konkret" VSHIFT="16">
<icon BUILTIN="hourglass"/>
<node CREATED="1486768080502" ID="ID_1759740464" MODIFIED="1518487921076" TEXT="Binde-Kontext f&#xfc;r globale Aktionen"/>
<node CREATED="1486768086869" ID="ID_173538981" MODIFIED="1518487921076" TEXT="Idee/Konzept f&#xfc;r kontextabh&#xe4;ngige Aktionen">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1487119208622" ID="ID_728171298" MODIFIED="1518487921076" TEXT="Analyse anhand einiger Beispiele">
<icon BUILTIN="pencil"/>
<node CREATED="1488419440935" ID="ID_802346253" MODIFIED="1518487921076" TEXT="add Sequence">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1488419450812" ID="ID_179687468" MODIFIED="1518487921076" TEXT="add Track">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1487119230659" ID="ID_651577067" MODIFIED="1518487921076">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Frage: wieviel Interaction Control
</p>
<p>
m&#252;ssen wir sofort jetzt implementieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208182655" ID="ID_1220225827" MODIFIED="1518487921076">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
brauche ein <i>aktuelles</i>&#160;Modell-Element
</p>
</body>
</html></richcontent>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208211131" ID="ID_31351462" MODIFIED="1518487921076" TEXT="...und ein Konzept, wie man das gewinnen kann">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208260557" ID="ID_1057793058" MODIFIED="1518487921076" TEXT="und wer daf&#xfc;r zust&#xe4;ndig sein wird">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493852906845" HGAP="24" ID="ID_1176492517" MODIFIED="1533684335148" TEXT="siehe auch #1097 clarify the role of the panels in the UI" VSHIFT="9">
<arrowlink COLOR="#636eac" DESTINATION="ID_429407869" ENDARROW="Default" ENDINCLINATION="650;-595;" ID="Arrow_ID_1361390047" STARTARROW="None" STARTINCLINATION="1465;0;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1176492517" ENDARROW="Default" ENDINCLINATION="-68;-316;" ID="Arrow_ID_1083220093" SOURCE="ID_1375700494" STARTARROW="None" STARTINCLINATION="550;-23;"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1504193112577" ID="ID_1851236797" MODIFIED="1518487921076">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: Zusammenarbeit
</p>
<p>
mit docking panels
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193163264" ID="ID_1943521361" MODIFIED="1533608449611" TEXT="#1104 how to instruct actions through panels">
<arrowlink COLOR="#806893" DESTINATION="ID_1020871440" ENDARROW="Default" ENDINCLINATION="-3;460;" ID="Arrow_ID_412107208" STARTARROW="Default" STARTINCLINATION="-618;-18;"/>
<arrowlink COLOR="#b37033" DESTINATION="ID_945788817" ENDARROW="None" ENDINCLINATION="-67;-71;" ID="Arrow_ID_61914" STARTARROW="Default" STARTINCLINATION="-618;-18;"/>
<linktarget COLOR="#9e99b7" DESTINATION="ID_1943521361" ENDARROW="Default" ENDINCLINATION="-1423;-376;" ID="Arrow_ID_779469840" SOURCE="ID_1446703192" STARTARROW="None" STARTINCLINATION="920;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1533608904623" HGAP="23" ID="ID_1433582308" MODIFIED="1533608919938" TEXT="Anforderungen" VSHIFT="-13">
<icon BUILTIN="yes"/>
<node CREATED="1533608945321" ID="ID_585599427" MODIFIED="1533608961747" TEXT="Zugang via ViewLocator"/>
<node CREATED="1533608737142" ID="ID_752377318" MODIFIED="1533608980481" TEXT="der ausf&#xfc;hrende View-Erzeuger braucht Zugang zum UI-Bus"/>
<node CREATED="1533608822826" ID="ID_1500698931" MODIFIED="1533608834604" TEXT="Schema zur reproduzierbaren ID-Generierung ist notwendig">
<node CREATED="1533609015728" ID="ID_808376623" MODIFIED="1533609027770" TEXT="der nominelle Typ ergibt sich aus der Art der View"/>
<node CREATED="1533609029094" ID="ID_1039386191" MODIFIED="1533609047527" TEXT="der Symbol-Teil der ID mu&#xdf; vorhersagbar sein"/>
<node CREATED="1533609056050" ID="ID_1606983628" MODIFIED="1533609064701" TEXT="oder explizit anzufordern"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193392483" ID="ID_912677550" MODIFIED="1518487921076" TEXT="PanelManager mu&#xdf; umgeschrieben werden">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193400426" ID="ID_1575758873" MODIFIED="1518487921076" TEXT="PanelManager mu&#xdf; umgezogen werden">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193443636" ID="ID_1002171467" MODIFIED="1518487921076" TEXT="Abstraktion herausdestilieren">
<arrowlink COLOR="#4f6595" DESTINATION="ID_385011645" ENDARROW="Default" ENDINCLINATION="377;-49;" ID="Arrow_ID_1185839720" STARTARROW="None" STARTINCLINATION="-267;66;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1488672665626" ID="ID_590886664" MODIFIED="1518487921076" TEXT="Grundlagen f&#xfc;r Command-handling"/>
<node CREATED="1487313769425" ID="ID_728232011" MODIFIED="1518487921076">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Grundlagen f&#252;r <b>InteractionControl</b>
</p>
</body>
</html></richcontent>
<node CREATED="1488419854029" ID="ID_932507511" MODIFIED="1518487921076" TEXT="erst mal: Konzept">
<arrowlink COLOR="#715f85" DESTINATION="ID_329609486" ENDARROW="Default" ENDINCLINATION="-368;-2533;" ID="Arrow_ID_575977434" STARTARROW="None" STARTINCLINATION="1555;-260;"/>
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487313191100" FOLDED="true" ID="ID_1619021408" MODIFIED="1539262561932" TEXT="Fazit(TODO)">
<icon BUILTIN="hourglass"/>
<node CREATED="1487313203254" ID="ID_573801539" MODIFIED="1518487921076" TEXT="Klassen anlegen">
<icon BUILTIN="button_ok"/>
<node CREATED="1487313231355" ID="ID_1566121505" MODIFIED="1518487921076" TEXT="WorkSite">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313293850" ID="ID_1237669879" MODIFIED="1518487921076" TEXT="WorkSiteTrail">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313234714" ID="ID_1600517388" MODIFIED="1518487921076" TEXT="SpotLocator">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313246333" ID="ID_1397075016" MODIFIED="1518487921076" TEXT="FocusTracker">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313253432" ID="ID_1727250153" MODIFIED="1518487921076" TEXT="Navigator">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313374879" ID="ID_604164603" MODIFIED="1518487921076" TEXT="UiState">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1487313454220" ID="ID_640048374" MODIFIED="1518487921076" TEXT="Abgriff in CoreServices">
<icon BUILTIN="button_ok"/>
<node CREATED="1487313462963" ID="ID_342355040" MODIFIED="1518487921076" TEXT="injizieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1487313475593" ID="ID_951423078" MODIFIED="1518487921076" TEXT="&#xfc;ber Lifecycle nachdenken">
<icon BUILTIN="button_ok"/>
<node CREATED="1487472682881" ID="ID_1575753680" MODIFIED="1518487921076" TEXT="UI-Bus zuerst"/>
<node CREATED="1487472687641" ID="ID_731426548" MODIFIED="1518487921076" TEXT="dann Ui-Manager -&gt; InteractionDirector -&gt; Ui-State"/>
<node CREATED="1487472711453" ID="ID_759583421" MODIFIED="1518487921076" TEXT="beim Zerst&#xf6;ren von GtkLumiera">
<node CREATED="1487472720476" ID="ID_1676214656" MODIFIED="1518487921076" TEXT="sollte die Event-Loop bereits beendet sein"/>
<node CREATED="1487472730667" ID="ID_1826692985" MODIFIED="1518487921076" TEXT="k&#xf6;nnen aber noch Fenster existieren"/>
<node CREATED="1487472757439" ID="ID_977443666" MODIFIED="1518487921076">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wird der Link zwischen CoreService und UI-State <i>dangling</i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#659ba4" DESTINATION="ID_977443666" ENDARROW="None" ENDINCLINATION="552;26;" ID="Arrow_ID_1335141107" SOURCE="ID_1261936534" STARTARROW="Default" STARTINCLINATION="462;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1487472781532" ID="ID_957134114" MODIFIED="1518487921076" TEXT="kurz darauf wird auch CoreService + Nexus zerst&#xf6;rt"/>
</node>
<node CREATED="1487472971330" ID="ID_81364279" MODIFIED="1518487921076" TEXT="grunds&#xe4;tzliches Shutdown-Problem">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1487472987984" ID="ID_1443542622" MODIFIED="1518487921076" TEXT="aber harmlos">
<icon BUILTIN="button_ok"/>
<node CREATED="1487472993439" ID="ID_310404379" MODIFIED="1518487921076" TEXT="unter der Annahme, da&#xdf; das UI wirklich single-threaded l&#xe4;uft"/>
<node CREATED="1487473004949" ID="ID_1092623141" MODIFIED="1518487921076" TEXT="wenn wir die Garantie haben, da&#xdf; die Event-Loop nichts mehr macht"/>
<node CREATED="1487473038377" ID="ID_393673106" MODIFIED="1518487921076" TEXT="Policy: kein Tangible darf im dtor mit dem UI-Bus reden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...mit der Ausnahme des Automatismus,
</p>
<p>
der es selbst vom Bus abkoppelt
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1487475679257" ID="ID_1700311138" MODIFIED="1518487921076" TEXT="wir injizieren anders herum">
<icon BUILTIN="forward"/>
<node CREATED="1487475695910" ID="ID_1341876014" MODIFIED="1518487921076" TEXT="StateManager als sub-Service"/>
<node CREATED="1487475711092" ID="ID_838045301" MODIFIED="1518487921076" TEXT="geh&#xf6;rt CoreService"/>
<node CREATED="1487475720363" ID="ID_693101732" MODIFIED="1518487921076" TEXT="l&#xe4;uft immer"/>
<node CREATED="1487475723771" ID="ID_959927308" MODIFIED="1518487921076" TEXT="wird in UiState injiziert"/>
<node CREATED="1487475738369" ID="ID_1261936534" MODIFIED="1518487921076" TEXT="harmloses Problem beseitigt">
<arrowlink COLOR="#659ba4" DESTINATION="ID_977443666" ENDARROW="None" ENDINCLINATION="552;26;" ID="Arrow_ID_1335141107" STARTARROW="Default" STARTINCLINATION="462;0;"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1487475796409" ID="ID_49608905" MODIFIED="1518487921076" TEXT="StateRecorder nun angeschlossen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1487313659680" ID="ID_1420397002" MODIFIED="1518487921076" TEXT="FocusTap">
<node CREATED="1487313668423" ID="ID_1248049801" MODIFIED="1518487921076" TEXT="Signal in model::Tangible"/>
<node CREATED="1487313680053" ID="ID_1563882406" MODIFIED="1518487921076" TEXT="Methode zum Installieren"/>
<node CREATED="1487313691644" ID="ID_1797207964" MODIFIED="1518487921076" TEXT="Verbindung zum FocusTracker herstellen (automatisch)"/>
<node CREATED="1487313717368" ID="ID_1638145586" MODIFIED="1518487921076" TEXT="entsprechend auch in WorkplaceWindow"/>
</node>
<node CREATED="1487313566901" ID="ID_268630370" MODIFIED="1518487921076" TEXT="Methoden">
<node CREATED="1487313570932" ID="ID_1733821258" MODIFIED="1518487921076" TEXT="getCurrentWorkSite"/>
<node CREATED="1487313578555" ID="ID_671600782" MODIFIED="1518487921076" TEXT="getCurrentMO">
<node CREATED="1487313612063" ID="ID_1795028934" MODIFIED="1518487921076" TEXT="ggfs.sinnvollen Dummy hier"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1487461242609" ID="ID_164538059" MODIFIED="1557498707221" TEXT="Struktur">
<node CREATED="1487461304560" ID="ID_349728972" MODIFIED="1557498707221" TEXT="betreibt">
<node CREATED="1487273437019" ID="ID_1653934212" MODIFIED="1557498707221" TEXT="Navigator">
<node CREATED="1515879320297" ID="ID_1194515598" MODIFIED="1557498707221" TEXT="(abstrahierte) Baum-Struktur"/>
<node CREATED="1506957512565" ID="ID_1256149179" MODIFIED="1557498707221" TEXT="dient als Resolver">
<arrowlink COLOR="#3f4b87" DESTINATION="ID_848105210" ENDARROW="Default" ENDINCLINATION="-1260;542;" ID="Arrow_ID_1760927309" STARTARROW="None" STARTINCLINATION="1244;-591;"/>
<linktarget COLOR="#5068a8" DESTINATION="ID_1256149179" ENDARROW="Default" ENDINCLINATION="-104;99;" ID="Arrow_ID_1490250373" SOURCE="ID_650732591" STARTARROW="None" STARTINCLINATION="225;-6;"/>
</node>
</node>
<node CREATED="1487270206369" ID="ID_1888334597" MODIFIED="1557498707221" TEXT="SpotLocator"/>
<node CREATED="1487275297855" ID="ID_898365328" MODIFIED="1557498707221" TEXT="FocusTracker"/>
<node CREATED="1504368969990" ID="ID_948587913" MODIFIED="1557498707221" TEXT="ViewLocator">
<arrowlink COLOR="#9da9b7" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-96;-128;" ID="Arrow_ID_17315740" STARTARROW="None" STARTINCLINATION="-94;5;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_948587913" ENDARROW="Default" ENDINCLINATION="87;-34;" ID="Arrow_ID_1863964331" SOURCE="ID_634013434" STARTARROW="None" STARTINCLINATION="157;10;"/>
<node CREATED="1504370345039" ID="ID_1018366676" MODIFIED="1557498707221" TEXT="Service"/>
<node CREATED="1504373189956" ID="ID_1625042163" MODIFIED="1557498707221" TEXT="intern direkt verdrahtet mit dem PanelLocator"/>
<node CREATED="1504370354446" ID="ID_1714266927" MODIFIED="1557498707221" TEXT="findet, ggfs alloziert einen ComponentView"/>
</node>
</node>
<node CREATED="1487461353681" ID="ID_1117222917" MODIFIED="1557498707221" TEXT="Modell">
<node CREATED="1487461361688" ID="ID_1787396394" MODIFIED="1557498707221" TEXT="Attrib">
<node CREATED="1487461413145" ID="ID_816848691" MODIFIED="1557498707221" TEXT="ctrl::UiState">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_816848691" ENDARROW="Default" ENDINCLINATION="111;0;" ID="Arrow_ID_792016162" SOURCE="ID_1032977850" STARTARROW="None" STARTINCLINATION="111;0;"/>
</node>
<node CREATED="1488492205990" ID="ID_1793304375" MODIFIED="1557498707221" TEXT="AssetController"/>
</node>
<node CREATED="1488492229939" ID="ID_996547800" MODIFIED="1557498707221" TEXT="Children">
<node CREATED="1488492233826" ID="ID_1743746426" MODIFIED="1557498707221" TEXT="Timelines"/>
</node>
</node>
<node CREATED="1487461436006" ID="ID_1721976078" MODIFIED="1557498707221" TEXT="Kooperation">
<node CREATED="1487461440509" ID="ID_1663368282" MODIFIED="1557498707221" TEXT="CoreService">
<node CREATED="1487461456739" ID="ID_1032977850" MODIFIED="1557498707221" TEXT="delegiert UiState">
<arrowlink DESTINATION="ID_816848691" ENDARROW="Default" ENDINCLINATION="111;0;" ID="Arrow_ID_792016162" STARTARROW="None" STARTINCLINATION="111;0;"/>
</node>
</node>
<node CREATED="1487461476736" ID="ID_912393863" MODIFIED="1557498707221" TEXT="Actions">
<node CREATED="1487461484935" ID="ID_951148221" MODIFIED="1557498707221" TEXT="Kontext f&#xfc;r globale Aktionen"/>
</node>
</node>
</node>
<node CREATED="1506956798915" HGAP="-73" ID="ID_1897228503" MODIFIED="1557498707221" TEXT="Services" VSHIFT="32">
<node CREATED="1506956866802" ID="ID_652269096" MODIFIED="1557498707221" TEXT="Navigator">
<node CREATED="1507935433543" ID="ID_239254800" MODIFIED="1557498707221">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
in <i>generischer UI-Struktur</i>&#160;bewegen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1507935461787" ID="ID_1244300168" MODIFIED="1557498707221" TEXT="bietet command-and-query-Interface"/>
<node CREATED="1507935474273" ID="ID_650732591" MODIFIED="1557498707221" TEXT="dient als (Pfad-)Resolver f&#xfc;r UI-Coord">
<arrowlink COLOR="#5068a8" DESTINATION="ID_1256149179" ENDARROW="Default" ENDINCLINATION="-104;99;" ID="Arrow_ID_1490250373" STARTARROW="None" STARTINCLINATION="225;-6;"/>
</node>
<node CREATED="1507935538409" ID="ID_1407528424" MODIFIED="1557498707221" TEXT="st&#xfc;tzt sich auf ViewLocator ab">
<arrowlink COLOR="#89919c" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="90;-49;" ID="Arrow_ID_1845784021" STARTARROW="None" STARTINCLINATION="-22;31;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1504368969990" ID="ID_344392695" MODIFIED="1557498707221" TEXT="ViewLocator">
<linktarget COLOR="#3b6680" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-269;-228;" ID="Arrow_ID_408957918" SOURCE="ID_1356241564" STARTARROW="Default" STARTINCLINATION="-858;0;"/>
<linktarget COLOR="#9da9b7" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-96;-128;" ID="Arrow_ID_17315740" SOURCE="ID_948587913" STARTARROW="None" STARTINCLINATION="-94;5;"/>
<linktarget COLOR="#89919c" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="90;-49;" ID="Arrow_ID_1845784021" SOURCE="ID_1407528424" STARTARROW="None" STARTINCLINATION="-22;31;"/>
<linktarget COLOR="#7c8aa8" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-676;143;" ID="Arrow_ID_1224269755" SOURCE="ID_869653682" STARTARROW="None" STARTINCLINATION="641;-106;"/>
<linktarget COLOR="#7f97bd" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-977;81;" ID="Arrow_ID_1627222173" SOURCE="ID_1747666798" STARTARROW="None" STARTINCLINATION="1159;303;"/>
<node CREATED="1504387078950" ID="ID_1433555277" MODIFIED="1557498707221" TEXT="bietet Komponenten-Management">
<node CREATED="1504387105363" ID="ID_631730744" MODIFIED="1557498707221" TEXT="neue Komponente"/>
<node CREATED="1504387110866" ID="ID_879632055" MODIFIED="1557498707221" TEXT="Komponente l&#xf6;schen"/>
<node CREATED="1504387189744" ID="ID_934669703" MODIFIED="1557498707221" TEXT="notwendig f&#xfc;r Kind-Mutation">
<icon BUILTIN="info"/>
</node>
<node CREATED="1504368969990" ID="ID_1346454848" MODIFIED="1557498707221" TEXT="impl delegiert an den PanelLocator">
<linktarget COLOR="#7c8aa8" DESTINATION="ID_1346454848" ENDARROW="Default" ENDINCLINATION="22;11;" ID="Arrow_ID_1776804306" SOURCE="ID_1606296935" STARTARROW="Default" STARTINCLINATION="313;-14;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1506956871401" ID="ID_1817966830" MODIFIED="1557498707221" TEXT="SpotLocator"/>
<node CREATED="1506956892303" ID="ID_238906242" MODIFIED="1557498707221" TEXT="FocusTracker"/>
</node>
</node>
<node CREATED="1485126466520" ID="ID_717310004" MODIFIED="1557498707221" TEXT="WindowManager" VSHIFT="34">
<icon BUILTIN="button_cancel"/>
<node CREATED="1485457325724" ID="ID_1954589768" MODIFIED="1557498707221" TEXT="nur f&#xfc;r die Hauptfenster zust&#xe4;ndig"/>
<node CREATED="1485457328043" ID="ID_1787642462" MODIFIED="1557498707221" TEXT="wir haben kein ApplicationWindow">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn das ist das vereinfachte Setup f&#252;r &quot;einfache&quot; Applikationen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485457370310" ID="ID_1931452525" MODIFIED="1557498707221" TEXT="GtkWindow sind v&#xf6;llig ausreichend"/>
<node CREATED="1485546285407" ID="ID_1129769291" MODIFIED="1557498707221">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mu&#223; kein <b>Manager</b>&#160;sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1485546319434" ID="ID_1592361314" MODIFIED="1557498707222" TEXT="macht nur eine Sache">
<icon BUILTIN="idea"/>
<node CREATED="1485546325993" ID="ID_1335197005" MODIFIED="1557498707222" TEXT="n&#xe4;mlich eine Liste der Fenster verwalten"/>
<node CREATED="1504368623492" ID="ID_1993615747" MODIFIED="1557498707222" TEXT="und Zugang zu diesen Fenster bieten"/>
</node>
<node CREATED="1485546344471" ID="ID_582242471" MODIFIED="1557498707222" TEXT="WindowLocator">
<arrowlink DESTINATION="ID_298060478" ENDARROW="Default" ENDINCLINATION="25;-40;" ID="Arrow_ID_683571287" STARTARROW="None" STARTINCLINATION="-62;0;"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1485546396952" ID="ID_298060478" MODIFIED="1557498707222" TEXT="WindowLocator">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_298060478" ENDARROW="Default" ENDINCLINATION="25;-40;" ID="Arrow_ID_683571287" SOURCE="ID_582242471" STARTARROW="None" STARTINCLINATION="-62;0;"/>
<node CREATED="1485546400807" ID="ID_1118405222" MODIFIED="1557498707222" TEXT="macht, was vom gro&#xdf;en Manager &#xfc;brig blieb"/>
<node CREATED="1485546425452" ID="ID_1088557274" MODIFIED="1557498707222" TEXT="wird von GtkLumiera gehalten und verdrahtet"/>
<node CREATED="1485548669665" ID="ID_285796853" MODIFIED="1557498707222" TEXT="Problem: wie erreichbar?">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548702476" ID="ID_1295550090" MODIFIED="1557498707222" TEXT="Aufgabe: new_window">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1485548713610" ID="ID_1984416789" MODIFIED="1557498707222" TEXT="wird als Action verdrahtet">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485548727401" ID="ID_1344937285" MODIFIED="1557498707222" TEXT="was ist die Closure">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1538942597728" ID="ID_539326328" MODIFIED="1557498707222" TEXT="globale Aktionen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_1992201258" MODIFIED="1557498707222" TEXT="re-locate Timeline View">
<linktarget COLOR="#fec680" DESTINATION="ID_1992201258" ENDARROW="Default" ENDINCLINATION="-784;-81;" ID="Arrow_ID_126634995" SOURCE="ID_1325225528" STARTARROW="None" STARTINCLINATION="651;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1538942638306" ID="ID_1819831711" MODIFIED="1557498707222" TEXT="View f&#xfc;r ein (weiterhin) bestehendes Model-Element in ein anderes Fenster umziehen">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193329508" FOLDED="true" ID="ID_629544763" MODIFIED="1557498707222" TEXT="Aufgabe: docking panels">
<linktarget COLOR="#b0466a" DESTINATION="ID_629544763" ENDARROW="Default" ENDINCLINATION="-849;-1967;" ID="Arrow_ID_1826422316" SOURCE="ID_1922506931" STARTARROW="None" STARTINCLINATION="690;23;"/>
<linktarget COLOR="#d65a8e" DESTINATION="ID_629544763" ENDARROW="Default" ENDINCLINATION="-176;0;" ID="Arrow_ID_232994989" SOURCE="ID_196345177" STARTARROW="None" STARTINCLINATION="-162;-93;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1504193340786" ID="ID_751993082" MODIFIED="1518487921077" TEXT="PanelLocator hier integrieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1504370542909" ID="ID_1318769916" MODIFIED="1518487921077" TEXT="Query-Front-end"/>
<node CREATED="1504371342426" ID="ID_1606296935" MODIFIED="1534517606904" TEXT="wird ben&#xf6;tigt vom ViewLocator (InteractionDirector)">
<arrowlink COLOR="#7c8aa8" DESTINATION="ID_1346454848" ENDARROW="Default" ENDINCLINATION="22;11;" ID="Arrow_ID_1776804306" STARTARROW="Default" STARTINCLINATION="313;-14;"/>
<arrowlink COLOR="#546195" DESTINATION="ID_1633069135" ENDARROW="Default" ENDINCLINATION="-329;-257;" ID="Arrow_ID_1665485418" STARTARROW="None" STARTINCLINATION="273;0;"/>
</node>
<node CREATED="1504370524687" ID="ID_816760158" MODIFIED="1518487921077" TEXT="PanelManager in den einzelnen Fenstern"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534510952804" HGAP="21" ID="ID_1335931102" MODIFIED="1534511409140" TEXT="#1026 cleanup PanelManager" VSHIFT="1">
<arrowlink COLOR="#ce6b5f" DESTINATION="ID_1249897876" ENDARROW="Default" ENDINCLINATION="1299;0;" ID="Arrow_ID_1635700276" STARTARROW="Default" STARTINCLINATION="-1412;-1014;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534510993903" ID="ID_1287156693" MODIFIED="1534511005821" TEXT="M&#xfc;llhaufen">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1534515750767" HGAP="258" ID="ID_1360472787" MODIFIED="1534519968433" TEXT="bestehende Anforderungen" VSHIFT="-4">
<linktarget COLOR="#99a7bd" DESTINATION="ID_1360472787" ENDARROW="Default" ENDINCLINATION="772;-6907;" ID="Arrow_ID_1137118362" SOURCE="ID_592805858" STARTARROW="None" STARTINCLINATION="698;1616;"/>
<icon BUILTIN="info"/>
<node CREATED="1534515787114" ID="ID_1305719148" MODIFIED="1534515800828" TEXT="Standard-Ausstattung mit Panels in jedem Fenster erzeugen"/>
<node CREATED="1534515801632" ID="ID_1919529189" MODIFIED="1534515823721" TEXT="Panel-Description-Index verwenden"/>
<node CREATED="1534515812439" ID="ID_1980530420" MODIFIED="1534515817842" TEXT="Liste aller Panels verwalten"/>
<node CREATED="1534515834947" ID="ID_510158797" MODIFIED="1534515927180" TEXT="gew&#xfc;nschtes Panel anzeigen, ggfs erstellen">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_510158797" ENDARROW="Default" ENDINCLINATION="104;0;" ID="Arrow_ID_161519533" SOURCE="ID_819902852" STARTARROW="None" STARTINCLINATION="83;0;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_510158797" ENDARROW="Default" ENDINCLINATION="68;0;" ID="Arrow_ID_970402595" SOURCE="ID_747338376" STARTARROW="None" STARTINCLINATION="89;0;"/>
</node>
<node CREATED="1534515873606" ID="ID_819902852" MODIFIED="1534515892457" TEXT="Referenz auf ein Panel beziehen">
<arrowlink DESTINATION="ID_510158797" ENDARROW="Default" ENDINCLINATION="104;0;" ID="Arrow_ID_161519533" STARTARROW="None" STARTINCLINATION="83;0;"/>
</node>
<node CREATED="1534515905714" ID="ID_747338376" MODIFIED="1534515927180" TEXT="Men&#xfc;-Aktionen: bestimmtes Panel anzeigen">
<arrowlink DESTINATION="ID_510158797" ENDARROW="Default" ENDINCLINATION="68;0;" ID="Arrow_ID_970402595" STARTARROW="None" STARTINCLINATION="89;0;"/>
</node>
<node CREATED="1534515935653" ID="ID_1660813925" MODIFIED="1534516000145" TEXT="Panel durch ein Panel anderen Typs ersetzen"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1534510983624" ID="ID_1587195721" MODIFIED="1534511031983" TEXT="setzt Konzept voraus">
<arrowlink COLOR="#202e48" DESTINATION="ID_1526164022" ENDARROW="Default" ENDINCLINATION="7;-78;" ID="Arrow_ID_1840345516" STARTARROW="None" STARTINCLINATION="-84;65;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529240056019" HGAP="33" ID="ID_1526164022" MODIFIED="1534511028176" TEXT="#1144 refactor dock handling" VSHIFT="-6">
<linktarget COLOR="#202e48" DESTINATION="ID_1526164022" ENDARROW="Default" ENDINCLINATION="7;-78;" ID="Arrow_ID_1840345516" SOURCE="ID_1587195721" STARTARROW="None" STARTINCLINATION="-84;65;"/>
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1534511467567" HGAP="37" ID="ID_358403014" MODIFIED="1534512921306" TEXT="M&#xf6;glichkeiten der libGDL" VSHIFT="19">
<arrowlink COLOR="#39478f" DESTINATION="ID_833641481" ENDARROW="Default" ENDINCLINATION="-1307;0;" ID="Arrow_ID_214595057" STARTARROW="None" STARTINCLINATION="-2073;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1533609225355" ID="ID_1031484560" MODIFIED="1534513589857" TEXT="Definitionen festlegen">
<linktarget COLOR="#8a9dae" DESTINATION="ID_1031484560" ENDARROW="Default" ENDINCLINATION="1135;-5718;" ID="Arrow_ID_1369217030" SOURCE="ID_1371608668" STARTARROW="None" STARTINCLINATION="1238;-672;"/>
<node CREATED="1533609236849" ID="ID_429407869" MODIFIED="1533684335148" TEXT="was ist ein Panel?">
<linktarget COLOR="#636eac" DESTINATION="ID_429407869" ENDARROW="Default" ENDINCLINATION="650;-595;" ID="Arrow_ID_1361390047" SOURCE="ID_1176492517" STARTARROW="None" STARTINCLINATION="1465;0;"/>
<icon BUILTIN="yes"/>
<node CREATED="1533609255486" ID="ID_540986387" MODIFIED="1533609275839" TEXT="identifizierbarer Teilraum im UI"/>
<node CREATED="1533609277164" ID="ID_1581083802" MODIFIED="1533609290461" TEXT="ID ist Benennung + Typ"/>
<node CREATED="1533609292426" ID="ID_50953202" MODIFIED="1533609315339" TEXT="Typ legt aber auch teilw. die Platzierung/Pr&#xe4;sentation fest"/>
<node CREATED="1533609332484" ID="ID_68265965" MODIFIED="1533609346342" TEXT="Panel selber ist &quot;substanzlos&quot;">
<node CREATED="1533609349730" ID="ID_1199787724" MODIFIED="1533609376170" TEXT="es wird durch seinen Inhalt mit geschaffen"/>
<node CREATED="1533609378773" ID="ID_896598248" MODIFIED="1533609383161" TEXT="Fallunterscheidung">
<node CREATED="1533609385005" HGAP="22" ID="ID_323786393" MODIFIED="1533609406631" TEXT="instruiert">
<node CREATED="1533609411841" ID="ID_1992759255" MODIFIED="1533609416652" TEXT="View-Anforderung"/>
<node CREATED="1533609417360" ID="ID_1927712425" MODIFIED="1533609433146" TEXT="die ViewSpect-DSL bestimmt, in welchem Panel er erzeugt wird"/>
</node>
<node CREATED="1533609393060" ID="ID_1618346972" MODIFIED="1533609401687" TEXT="per UI-Aktion erzeugt">
<node CREATED="1533609456899" ID="ID_1800763961" MODIFIED="1533609480660" TEXT="erzugt Panel mit seinem Standard-Inhalt (gem&#xe4;&#xdf; Panel-Typ)"/>
<node CREATED="1533609484543" ID="ID_381189275" MODIFIED="1533609505632" TEXT="dieser Standard-Inhalt wird generisch/per-default generiert"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1529235573383" HGAP="36" ID="ID_1156887553" MODIFIED="1529235603008" TEXT="Aufteilen" VSHIFT="9">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1529235578053" ID="ID_1913662480" MODIFIED="1529235582697" TEXT="lokale UI-Mechanik">
<node CREATED="1531407468053" ID="ID_56121895" MODIFIED="1531407487128" TEXT="DockArea">
<icon BUILTIN="idea"/>
<node CREATED="1531407492468" ID="ID_1972848436" MODIFIED="1531407498111" TEXT="Neue Entit&#xe4;t"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531407498771" ID="ID_579294659" MODIFIED="1531414297601" TEXT="bestehenden Code porten">
<icon BUILTIN="pencil"/>
<node CREATED="1531414268783" ID="ID_1591679803" MODIFIED="1531414276500" TEXT="PanelManager macht bisher alles">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531414277462" ID="ID_438558819" MODIFIED="1531414290061" TEXT="bestehenden Code nachvollziehen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531414284237" ID="ID_242501935" MODIFIED="1531414288949" TEXT="sauber neu coden">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1531407473064" ID="ID_1423333582" MODIFIED="1531407481582" TEXT="Einbindung der libGDL">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1529235583621" ID="ID_627187553" MODIFIED="1529235589904" TEXT="&#xfc;bergreifende Steuerung">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529240710412" HGAP="79" ID="ID_1137103744" MODIFIED="1529240803601" TEXT="Kontroll-Struktur einrichten" VSHIFT="-15">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1529240725545" ID="ID_1633069135" MODIFIED="1534517606904" TEXT="PanelLocator">
<linktarget COLOR="#546195" DESTINATION="ID_1633069135" ENDARROW="Default" ENDINCLINATION="-329;-257;" ID="Arrow_ID_1665485418" SOURCE="ID_1606296935" STARTARROW="None" STARTINCLINATION="273;0;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529240729817" ID="ID_899357717" MODIFIED="1529240766068" TEXT="h&#xe4;lt Kontakt zu allen Docks">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529240757677" ID="ID_1894889790" MODIFIED="1529240766845" TEXT="Lebenszyklus-Signale">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1534519634333" ID="ID_298940282" MODIFIED="1534519643957" TEXT="vorl&#xe4;ufig">
<icon BUILTIN="bell"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1534519645420" ID="ID_1509280168" MODIFIED="1534519736382" TEXT="&#xfc;bernimmt Funktionen vom ViewLocator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil ich Stand 8/2018 nicht im Stande bin,
</p>
<p>
den ViewLocator wirklich soweit fertig zu coden, da&#223; er schon einsetzbar ist.
</p>
<p>
Problem ist die ganze abstrahierte Widget-Access-Schicht, die sich erst sinnvoll bauen l&#228;&#223;t,
</p>
<p>
wenn es schon wirkliche und funktionierende Widgets im System gibt.
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1534515750767" FOLDED="true" ID="ID_1614049284" MODIFIED="1534527036807" TEXT="Panel-Lookup/Allocation">
<linktarget COLOR="#aab7cb" DESTINATION="ID_1614049284" ENDARROW="Default" ENDINCLINATION="772;-6907;" ID="Arrow_ID_139428133" SOURCE="ID_1131466377" STARTARROW="None" STARTINCLINATION="676;1738;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534520212473" ID="ID_172585735" MODIFIED="1534526235983" TEXT="durch alle WorkspaceWindows iterieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534520223304" ID="ID_605426716" MODIFIED="1534526241279" TEXT="jeden lokalen PanelManager fragen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534520258251" ID="ID_634139165" MODIFIED="1534526246434" TEXT="wenn nicht gefunden, dann erzeugen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534520271354" ID="ID_1722998809" MODIFIED="1534526944653" TEXT="PanelManager: reine Anfrage">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...bisher erzeugt die lookup-Operation automatisch
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534520304493" ID="ID_1795676672" MODIFIED="1534522378245" TEXT="wo erzeugen?">
<icon BUILTIN="help"/>
<node CREATED="1534520344584" ID="ID_637468747" MODIFIED="1534520371103" TEXT="im primary window">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1534520354510" ID="ID_1031648158" MODIFIED="1534520366567" TEXT="im aktuellen Fenster">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1534520233134" ID="ID_1625789153" MODIFIED="1534522425348" TEXT="typsicheres Front-end vorschalten">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1529240774003" ID="ID_1594029670" MODIFIED="1529240795457" TEXT="Zugriff auf Dock-Master">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
<node CREATED="1504193354056" ID="ID_385011645" MODIFIED="1518487921077">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Abstraktion</b>&#160;zur Steuerung schaffen
</p>
</body>
</html></richcontent>
<linktarget COLOR="#524f7b" DESTINATION="ID_385011645" ENDARROW="Default" ENDINCLINATION="353;-22;" ID="Arrow_ID_186523581" SOURCE="ID_65709251" STARTARROW="None" STARTINCLINATION="1270;350;"/>
<linktarget COLOR="#4f6595" DESTINATION="ID_385011645" ENDARROW="Default" ENDINCLINATION="377;-49;" ID="Arrow_ID_1185839720" SOURCE="ID_1002171467" STARTARROW="None" STARTINCLINATION="-267;66;"/>
<node CREATED="1504307876270" HGAP="80" ID="ID_714147133" MODIFIED="1518487921077" TEXT="Anforderungen" VSHIFT="-7">
<node CREATED="1504307921993" ID="ID_774956517" MODIFIED="1518487921077" TEXT="bestimmtes Element...">
<node CREATED="1504307933535" ID="ID_220451742" MODIFIED="1518487921077" TEXT="ansprechen">
<node CREATED="1504308372668" ID="ID_1978317777" MODIFIED="1518487921077" TEXT="Referenz f&#xfc;r direkte Aufrufe"/>
<node CREATED="1504308379891" ID="ID_829774303" MODIFIED="1518487921077" TEXT="ID f&#xfc;r UI-Bus-Kommunikation"/>
</node>
<node CREATED="1504307929599" ID="ID_1927494491" MODIFIED="1518487921077" TEXT="neu erzeugen"/>
<node CREATED="1504307954292" ID="ID_1658958044" MODIFIED="1518487921077" TEXT="l&#xf6;schen"/>
</node>
<node CREATED="1504308024282" ID="ID_1154461573" MODIFIED="1518487921077">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wie <i>bestimmt?</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1504308038873" ID="ID_1384201938" MODIFIED="1518487921077" TEXT="es gibt nur eines"/>
<node CREATED="1504308044016" ID="ID_1655384159" MODIFIED="1518487921077" TEXT="von bestimmter Art"/>
<node CREATED="1504308073444" ID="ID_1584894553" MODIFIED="1518487921077" TEXT="Typ + ID"/>
<node CREATED="1504308256876" ID="ID_733625102" MODIFIED="1518487921077" TEXT="Problem: View-Instanzen">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1504308268370" ID="ID_1644215776" MODIFIED="1518487921077" TEXT="wie die ID festlegen?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1504308288056" ID="ID_919032583" MODIFIED="1518487921077" TEXT="wer wei&#xdf; von diesen Instanzen?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1504308295190" ID="ID_981780857" MODIFIED="1518487921077" TEXT="wie werden sie im Model dargestellt?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1504308325682" ID="ID_168204060" MODIFIED="1518487921077" TEXT="wer verfolgt die Lebensdauer?">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1504479018947" HGAP="185" ID="ID_88064796" MODIFIED="1518487921078" TEXT="folgt aus dem View-Zugriff" VSHIFT="11">
<icon BUILTIN="idea"/>
<node CREATED="1531412797044" ID="ID_251560954" MODIFIED="1531412802639" TEXT="gebraucht wird...">
<node CREATED="1531412841422" ID="ID_701193023" MODIFIED="1531412940797" TEXT="Panel platzieren">
<node CREATED="1531412942145" ID="ID_1174626592" MODIFIED="1531412950131" TEXT="Panel in Fenster"/>
<node CREATED="1531412950839" ID="ID_1293555405" MODIFIED="1531413115821" TEXT="nur eine DockArea pro Fenster"/>
<node CREATED="1531413165251" ID="ID_1180700051" MODIFIED="1531413181908" TEXT="Panel hat Platzierungs-Default"/>
<node CREATED="1531413538025" ID="ID_1625813136" MODIFIED="1531413544964" TEXT="kann dann aber rearrangiert werden">
<node CREATED="1531413554415" ID="ID_1325622114" MODIFIED="1531413562449" TEXT="GDL selber ist sehr flexibel"/>
<node CREATED="1531413563662" ID="ID_329874195" MODIFIED="1531413568089" TEXT="kann mehrfach schachteln"/>
<node CREATED="1531413571197" ID="ID_1093029020" MODIFIED="1531413577359" TEXT="und Tabbed Notebooks bilden"/>
</node>
<node CREATED="1531413758804" ID="ID_914627458" MODIFIED="1531413769750" TEXT="Details des Platzierungs-Verhaltens">
<node CREATED="1531413770770" ID="ID_484369837" MODIFIED="1531413795844" TEXT="noch nicht klar">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531413774745" ID="ID_1438103076" MODIFIED="1531413792505" TEXT="mehrere gleichartige Panel?">
<icon BUILTIN="help"/>
<node CREATED="1531413838456" ID="ID_1565164486" MODIFIED="1531413845763" TEXT="nebeneinander einf&#xfc;gen?"/>
<node CREATED="1531413846704" ID="ID_157037460" MODIFIED="1531413852418" TEXT="ineinander einf&#xfc;gen?"/>
</node>
</node>
</node>
<node CREATED="1531413901368" ID="ID_375388369" MODIFIED="1531413905347" TEXT="Panel wiederherstellen">
<node CREATED="1531413950369" ID="ID_518996776" MODIFIED="1531413959020" TEXT="gegeben: Menge von UI-Koordinaten"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531413980270" ID="ID_1914402851" MODIFIED="1531413994427" TEXT="Frage: was genau kann GDL wiederherstellen?">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504194145622" ID="ID_511626836" MODIFIED="1518487921078" TEXT="Addressieren einzelner Kind-Komponenten"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555987832" ID="ID_313705636" MODIFIED="1557498707222" TEXT="Wiring">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1485555999110" ID="ID_376092703" MODIFIED="1557498707222" TEXT="top-level macht GtkLumiera im ctor"/>
<node CREATED="1485556011260" ID="ID_1618308499" MODIFIED="1557498707222" TEXT="backlink zum Manager"/>
<node CREATED="1486943522965" ID="ID_36527267" MODIFIED="1557498707222" TEXT="top-level-Kontext">
<linktarget COLOR="#4f547b" DESTINATION="ID_36527267" ENDARROW="Default" ENDINCLINATION="-424;-2038;" ID="Arrow_ID_134552555" SOURCE="ID_984712012" STARTARROW="None" STARTINCLINATION="2623;0;"/>
<linktarget COLOR="#8c95b2" DESTINATION="ID_36527267" ENDARROW="Default" ENDINCLINATION="138;-548;" ID="Arrow_ID_1284182756" SOURCE="ID_576215675" STARTARROW="None" STARTINCLINATION="883;143;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1488494592496" ID="ID_1586259377" MODIFIED="1557498707222" TEXT="UI-Bus"/>
<node CREATED="1488494579346" ID="ID_1182508289" MODIFIED="1557498707222" TEXT="UiManager"/>
<node CREATED="1486943529763" ID="ID_1188971928" MODIFIED="1557498707222" TEXT="WindowLocator"/>
<node CREATED="1486943607120" ID="ID_1101577688" MODIFIED="1557498707222" TEXT="InteractionDirector">
<node CREATED="1486943922541" ID="ID_646168152" MODIFIED="1557498707222" TEXT="Entspricht Model Root"/>
<node CREATED="1486943614039" ID="ID_1354424043" MODIFIED="1557498707222" TEXT="AssetController"/>
<node CREATED="1486943634229" ID="ID_1217772313" MODIFIED="1557498707222" TEXT="Kinder: Timelines">
<node CREATED="1486943640004" ID="ID_1237613626" MODIFIED="1557498707222" TEXT="Preferences"/>
<node CREATED="1486943643179" ID="ID_463409583" MODIFIED="1557498707222" TEXT="Assets"/>
<node CREATED="1486943645554" ID="ID_1803125679" MODIFIED="1557498707222" TEXT="Timeline"/>
</node>
<node CREATED="1488494646129" HGAP="34" ID="ID_1817005014" MODIFIED="1557498707222" TEXT="InteractionControl" VSHIFT="11">
<icon BUILTIN="forward"/>
<node CREATED="1488494665798" ID="ID_1228864928" MODIFIED="1557498707222" TEXT="SpotLocator"/>
<node CREATED="1488494689843" ID="ID_1519420241" MODIFIED="1557498707222" TEXT="Navigator"/>
<node CREATED="1488494692802" ID="ID_1706374538" MODIFIED="1557498707222" TEXT="FocusTracker"/>
</node>
</node>
<node CREATED="1486943969999" ID="ID_1823284637" MODIFIED="1557498707222" TEXT="Wizzard">
<node CREATED="1533688038820" ID="ID_70134302" MODIFIED="1557498707222" TEXT="Fehlerlog (notification display)">
<linktarget COLOR="#a9aac1" DESTINATION="ID_70134302" ENDARROW="Default" ENDINCLINATION="-1984;0;" ID="Arrow_ID_1885125683" SOURCE="ID_361019548" STARTARROW="None" STARTINCLINATION="803;-67;"/>
</node>
<node CREATED="1486943974590" ID="ID_1603501979" MODIFIED="1557498707222" TEXT="Hilfe (Website?)"/>
<node CREATED="1486944977005" ID="ID_811162889" MODIFIED="1557498707222" TEXT="kontextsensitive Hilfe"/>
<node CREATED="1488494783190" ID="ID_1886731977" MODIFIED="1557498707222" TEXT="Assistenten"/>
<node CREATED="1488494785774" ID="ID_167814846" MODIFIED="1557498707222" TEXT="About"/>
</node>
</node>
<node COLOR="#338800" CREATED="1488422770096" ID="ID_286551569" MODIFIED="1557498707222" TEXT="#1085 solve setup of top-level menu actions">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485556027322" ID="ID_196345177" MODIFIED="1557498707222" TEXT="Problem: Docking panels">
<arrowlink COLOR="#d65a8e" DESTINATION="ID_629544763" ENDARROW="Default" ENDINCLINATION="-176;0;" ID="Arrow_ID_232994989" STARTARROW="None" STARTINCLINATION="-162;-93;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1485556037465" ID="ID_1657490812" MODIFIED="1557498707222" TEXT="brauchen typischerweise eine Querverbindung"/>
<node CREATED="1485556046703" ID="ID_50463095" MODIFIED="1557498707222" TEXT="geht das &#xfc;ber den Bus alleine?">
<icon BUILTIN="help"/>
<node CREATED="1504386565227" ID="ID_889188219" MODIFIED="1557498707222" TEXT="nein">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1504386568907" ID="ID_792633121" MODIFIED="1557498707222" TEXT="Referenz notwendig"/>
</node>
<node CREATED="1485556056206" ID="ID_509456873" MODIFIED="1557498707222" TEXT="...sonst mu&#xdf; der PanelManager helfen">
<icon BUILTIN="yes"/>
<node CREATED="1504386527936" ID="ID_307889825" MODIFIED="1557498707222" TEXT="mu&#xdf; ID finden k&#xf6;nnen"/>
<node CREATED="1504386535447" ID="ID_426578263" MODIFIED="1557498707222" TEXT="brauche Service zum Erzeugen/L&#xf6;schen"/>
<node CREATED="1504386595679" ID="ID_1383687482" MODIFIED="1557498707222" TEXT="Mutation: brauche Model-Platzhalter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das Diff wird auf den Platzhalter angewendet
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504386636074" ID="ID_1996752633" MODIFIED="1557498707222" TEXT="automatisches Management von&#xf6;ten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn das Diff ein Element aus einer Kind-Menge <i>wegfallen l&#228;&#223;t,</i>
</p>
<p>
dann mu&#223; dieses automatisch deregistriert werden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504371342426" ID="ID_869653682" MODIFIED="1557498707222">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
vermittelt &#252;ber den <b>ViewLocator</b>&#160;(InteractionDirector)
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#7c8aa8" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-676;143;" ID="Arrow_ID_1224269755" STARTARROW="None" STARTINCLINATION="641;-106;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1488677721565" ID="ID_850989325" MODIFIED="1557498707222" TEXT="Problem: Zugang">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_850989325" ENDARROW="Default" ENDINCLINATION="183;-575;" ID="Arrow_ID_1002016515" SOURCE="ID_1520540731" STARTARROW="None" STARTINCLINATION="341;286;"/>
<linktarget COLOR="#9f5680" DESTINATION="ID_850989325" ENDARROW="Default" ENDINCLINATION="211;189;" ID="Arrow_ID_1007188680" SOURCE="ID_827179653" STARTARROW="None" STARTINCLINATION="912;-974;"/>
<icon BUILTIN="flag-pink"/>
<node CREATED="1488677729388" ID="ID_764102285" MODIFIED="1557498707222" TEXT="grunds&#xe4;tziches Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1488678069565" ID="ID_346104238" MODIFIED="1557498707222" TEXT="explizite Verdrahtung scheidet aus"/>
<node CREATED="1488678077236" ID="ID_1536759032" MODIFIED="1557498707222" TEXT="klassisches Inversion-Of-Control">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1488678106024" ID="ID_1242521430" MODIFIED="1557498707222" TEXT="access by name">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1488677737419" ID="ID_1621219441" MODIFIED="1557498707222" TEXT="einfach gel&#xf6;st f&#xfc;r top-Level">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1488677751537" ID="ID_75445042" MODIFIED="1557498707222" TEXT="schwierig f&#xfc;r Widgets">
<icon BUILTIN="smily_bad"/>
<node COLOR="#338800" CREATED="1520721624161" ID="ID_1714114896" MODIFIED="1557498707222" TEXT="DependencyFactory">
<arrowlink COLOR="#5c71a3" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="767;-2073;" ID="Arrow_ID_1454095581" STARTARROW="None" STARTINCLINATION="1892;380;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1520721630328" ID="ID_1547268458" MODIFIED="1557498707222" TEXT="wir haben schon eine L&#xf6;sung f&#xfc;r Singletons"/>
<node CREATED="1520721638143" ID="ID_1691402961" MODIFIED="1557498707222" TEXT="diese kann auf Services erweitert werden"/>
<node CREATED="1520721647670" ID="ID_1649501241" MODIFIED="1557498707222" TEXT="sollte auch L&#xf6;sung f&#xfc;r Tests beinhalten"/>
</node>
</node>
<node CREATED="1533688118209" ID="ID_143545012" MODIFIED="1557498707222" TEXT="Use cases">
<node CREATED="1533688144038" ID="ID_745583947" MODIFIED="1557498707222" TEXT="bekannte dedizierte Services">
<node CREATED="1533688177913" FOLDED="true" ID="ID_1972484306" MODIFIED="1557498707222" TEXT="Fehlerlog">
<linktarget COLOR="#9c95b1" DESTINATION="ID_1972484306" ENDARROW="Default" ENDINCLINATION="-3826;-1250;" ID="Arrow_ID_1735504887" SOURCE="ID_528918224" STARTARROW="None" STARTINCLINATION="2269;1167;"/>
<node CREATED="1533688203118" ID="ID_1499180551" MODIFIED="1533688211792" TEXT="angesprochen via UI-Bus"/>
<node CREATED="1533688212380" ID="ID_1473874751" MODIFIED="1533688216672" TEXT="hat eine global bekannte ID"/>
<node CREATED="1533688218380" ID="ID_1933065721" MODIFIED="1533688232662" TEXT="ist ein Controller">
<node CREATED="1533688634514" ID="ID_1485276432" MODIFIED="1533688640867" TEXT="NotificationController"/>
<node CREATED="1533688235977" ID="ID_242586172" MODIFIED="1533688243228" TEXT="wird verwaltet vom Wizard"/>
<node CREATED="1533688244128" ID="ID_1500614464" MODIFIED="1533688252139" TEXT="wird von diesem an den Bus angebunden"/>
<node CREATED="1533688254935" ID="ID_1266070525" MODIFIED="1533688263201" TEXT="ist nicht notwendig sichtbar"/>
<node CREATED="1533688263837" ID="ID_132068126" MODIFIED="1533688274600" TEXT="greift sich ein delegate-Display">
<node CREATED="1533688280947" ID="ID_1196135465" MODIFIED="1533688286918" TEXT="im Infobox-Panel"/>
<node CREATED="1533688287890" ID="ID_425331660" MODIFIED="1533688294453" TEXT="alloziert per ViewLocator"/>
</node>
</node>
<node CREATED="1533688318950" ID="ID_995283229" MODIFIED="1533688332784" TEXT="macht bei Bedarf ein Widget sichtbar">
<node CREATED="1533688335907" ID="ID_111071026" MODIFIED="1533688351621" TEXT="vorl&#xe4;ufig: Infobox anzeigen"/>
<node CREATED="1533688352161" ID="ID_1123594451" MODIFIED="1533688365595" TEXT="sp&#xe4;ter: nur Warnlampe blinken">
<node CREATED="1533688366799" ID="ID_1664513873" MODIFIED="1533688369651" TEXT="wie in Ardour"/>
<node CREATED="1533688370311" ID="ID_395456237" MODIFIED="1533688381209" TEXT="nur bei schwerwiegenden Problemen aufploppen"/>
</node>
</node>
</node>
</node>
<node CREATED="1533688162891" ID="ID_781003637" MODIFIED="1557498707222" TEXT="ein Kind in einen bekannten Ort pflanzen"/>
</node>
</node>
<node COLOR="#338800" CREATED="1486520281897" ID="ID_827558797" MODIFIED="1557498707222" TEXT="Problem: zwei Inseln" VSHIFT="16">
<arrowlink COLOR="#5d6386" DESTINATION="ID_1847844548" ENDARROW="Default" ENDINCLINATION="35;-168;" ID="Arrow_ID_1483178089" STARTARROW="Default" STARTINCLINATION="-2;95;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1486520289382" ID="ID_1944158920" MODIFIED="1557498707222" TEXT="CoreService + UI-Bus"/>
<node CREATED="1486520303173" ID="ID_306583765" MODIFIED="1557498707222" TEXT="UiManager, Actions etc"/>
<node CREATED="1486521232144" HGAP="44" ID="ID_1816242514" MODIFIED="1557498707222" TEXT="Fragen" VSHIFT="16">
<icon BUILTIN="help"/>
<node CREATED="1486521810252" ID="ID_728134375" MODIFIED="1557498707222" TEXT="wer verk&#xf6;rpert den Sesison-Root?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521250790" ID="ID_447470270" MODIFIED="1557498707222" TEXT="haben wir einen globalen Controller?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521269531" ID="ID_1633937799" MODIFIED="1557498707222" TEXT="was ist das Modell des globalen Controllers?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521285069" ID="ID_410780953" MODIFIED="1557498707222" TEXT="wie h&#xe4;ngt das mit persistentem UI-State zusammen?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521317725" ID="ID_1502356505" MODIFIED="1557498707222" TEXT="welche Aktionen l&#xf6;st der globale Controller aus?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521369166" ID="ID_1068454326" MODIFIED="1557498707222" TEXT="wie werden die mit dem Men&#xfc; verbunden?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521449835" ID="ID_236689642" MODIFIED="1557498707222" TEXT="wo h&#xe4;ngt der InvocationStateManager?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521478792" ID="ID_235720883" MODIFIED="1557498707222" TEXT="wie redet man mit dem InvocationStateManager?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521492102" ID="ID_339608490" MODIFIED="1557498707222" TEXT="kann man Fragen via Bus stellen?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521526105" ID="ID_1872187260" MODIFIED="1557498707222" TEXT="nutzen wir das Advice-System?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1486521980109" ID="ID_1036025143" MODIFIED="1557498707222" TEXT="wer beendet das UI?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1486751116251" HGAP="140" ID="ID_113005643" MODIFIED="1557498707222" VSHIFT="61">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Br&#252;cke: <i>gemeinsamer</i>&#160;Controller
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#683c5b" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-394;0;" ID="Arrow_ID_1979576517" STARTARROW="None" STARTINCLINATION="-24;-159;"/>
<node CREATED="1486751221990" ID="ID_563286868" MODIFIED="1557498707223" TEXT="ist Bindeglied f&#xfc;r globale Aktionen"/>
<node CREATED="1486751233315" ID="ID_1611855815" MODIFIED="1557498707223" TEXT="verk&#xf6;rpert den Model-Root"/>
<node CREATED="1486751248097" ID="ID_1313868100" MODIFIED="1557498707223" TEXT="ist Vollmitglied am Bus"/>
</node>
</node>
</node>
<node CREATED="1485126481023" ID="ID_943652445" MODIFIED="1557498707223" TEXT="pro Fenster">
<node CREATED="1485126488981" ID="ID_1346100835" MODIFIED="1557498707223" TEXT="WorkspaceWindow"/>
<node CREATED="1485126494621" ID="ID_923407468" MODIFIED="1557498707223" TEXT="PanelManager"/>
</node>
</node>
</node>
<node CREATED="1476376882857" HGAP="193" ID="ID_1420903777" MODIFIED="1557498707223" TEXT="Kern-Elemente" VSHIFT="-34">
<node CREATED="1480639237820" HGAP="-42" ID="ID_138717265" MODIFIED="1557498707223" TEXT="Bausteine" VSHIFT="-11">
<node CREATED="1480639254498" ID="ID_601165955" MODIFIED="1557498707223" TEXT="Placement"/>
<node CREATED="1480639279591" ID="ID_887618627" MODIFIED="1557498707223" TEXT="Timecode"/>
<node CREATED="1480639276064" ID="ID_1418536459" MODIFIED="1557498707223" TEXT="Fader"/>
<node CREATED="1480639258169" ID="ID_1876553930" MODIFIED="1557498707223" TEXT="Label">
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541089187808" ID="ID_368245484" MODIFIED="1557498707223" TEXT="ElementBoxWidget">
<linktarget COLOR="#f6cca4" DESTINATION="ID_368245484" ENDARROW="Default" ENDINCLINATION="-599;39;" ID="Arrow_ID_1199047781" SOURCE="ID_1032237384" STARTARROW="None" STARTINCLINATION="-698;-271;"/>
<linktarget COLOR="#f6cca4" DESTINATION="ID_368245484" ENDARROW="Default" ENDINCLINATION="-599;39;" ID="Arrow_ID_703893400" SOURCE="ID_1437927701" STARTARROW="None" STARTINCLINATION="42;-316;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541095743511" ID="ID_96949358" MODIFIED="1557498707223" TEXT="#1185 ElementBoxWidget">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1541087843514" ID="ID_1798999985" MODIFIED="1557498707223" TEXT="weit verbreiteter Grundbaustein">
<icon BUILTIN="idea"/>
<node CREATED="1541087865477" ID="ID_1163649496" MODIFIED="1557498707223" TEXT="f&#xfc;r Marker"/>
<node CREATED="1541087870503" ID="ID_1325112319" MODIFIED="1557498707223" TEXT="abridged Clip"/>
<node CREATED="1541087879886" ID="ID_979570785" MODIFIED="1557498707223" TEXT="Effekt-Balken"/>
<node CREATED="1541087988423" ID="ID_1910744352" MODIFIED="1557498707223" TEXT="Elemente in den Bins"/>
<node CREATED="1541088003117" ID="ID_1033651238" MODIFIED="1557498707223" TEXT="Track-Heads"/>
<node CREATED="1541088007644" ID="ID_613037557" MODIFIED="1557498707223" TEXT="Clip-Placement und Name"/>
</node>
<node CREATED="1541088033426" ID="ID_1557673770" MODIFIED="1557498707223" TEXT="besteht aus drei Komponenten">
<icon BUILTIN="info"/>
<node CREATED="1541088065655" ID="ID_1906795297" MODIFIED="1557498707223" TEXT="ein Icon"/>
<node CREATED="1541088069333" ID="ID_387176460" MODIFIED="1557498707223" TEXT="ein Men&#xfc;-Knopf"/>
<node CREATED="1541088076739" ID="ID_1484330559" MODIFIED="1557498707223" TEXT="ein Text-Label"/>
</node>
<node CREATED="1541088109169" ID="ID_12349251" MODIFIED="1557498707223" TEXT="Eigenschaften">
<node CREATED="1541088143435" ID="ID_1434785926" MODIFIED="1557498707223" TEXT="Icon einfach vorw&#xe4;hlbar">
<node CREATED="1541089389797" ID="ID_311117611" MODIFIED="1557498707223" TEXT="Placement"/>
<node CREATED="1541089394205" ID="ID_1611263820" MODIFIED="1557498707223" TEXT="Stock"/>
</node>
<node CREATED="1541088360999" ID="ID_1860524548" MODIFIED="1557498707223" TEXT="horizontale Ausdehnung steuerbar">
<node CREATED="1541088395516" ID="ID_122658669" MODIFIED="1557498707223" TEXT="nat&#xfc;rlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. das Widget unternimmt selber nichts, und &#252;berl&#228;&#223;t GTK die Gr&#246;&#223;enbestimmung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541088402105" ID="ID_857510555" MODIFIED="1557498707223" TEXT="feste L&#xe4;ngenvorgabe">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. das Text-Label bekommt ggfs. eine L&#228;ngenbeschr&#228;nkung.
</p>
<p>
Und sonst wird er K&#246;rper/Hintergrund ausgedehnt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541088480846" ID="ID_6642470" MODIFIED="1557498707223" TEXT="Kopf proportional platzierbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Vorgabe ist ein Fenster(=Intervall) und dessen Position relativ zum Widget-Start.
</p>
<p>
Das Widget bestimmt daraus selbst&#228;ndig
</p>
<ul>
<li>
wie das Fenster relativ zu seiner eigenen Ausdehnung liegt (Logik von Intervallen ist komplex!)
</li>
<li>
ob es im Besonderen in seinem Inneren liegt, und proportional wo
</li>
<li>
und w&#228;hlt dem entsprechend die Platzierung des &quot;Kopf&quot;-Handles (Icon+Label)
</li>
</ul>
<p>
Das Resultat ist, da&#223; der Kopf dynamisch und proportional mitrollt,
</p>
<p>
&#228;hnlich wie das Handle einer Scrollbar. Damit bleibt der Kopf
</p>
<p>
stets zugreifbar, und gibt einen Hinweis auf die Gesamtlage.
</p>
<p>
<b>Sehr wichtig</b>&#160;f&#252;r die Anzeige von <b>langen Clips</b>&#160;und Effekten.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541095770851" ID="ID_1856155420" MODIFIED="1557498707223" TEXT="#1186 proportional Head placement">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1541089256961" ID="ID_1928362240" MODIFIED="1557498707223" TEXT="der Body kann optoinal ein anderes Widget halten"/>
<node CREATED="1541089279788" ID="ID_798853169" MODIFIED="1557498707223" TEXT="Standard-Verdrahtung">
<node CREATED="1541089452455" ID="ID_1363384956" MODIFIED="1557498707223" TEXT="Icon == Placement">
<node CREATED="1541089459079" ID="ID_1295238871" MODIFIED="1557498707223" TEXT="Klick auf Placement"/>
<node CREATED="1541089468035" ID="ID_1760862573" MODIFIED="1557498707223" TEXT="f&#xfc;hrt in den Placement-Editor"/>
<node CREATED="1541089480558" ID="ID_562547203" MODIFIED="1557498707223" TEXT="kann Pop-Up sein, oder im Property-Grid"/>
</node>
<node CREATED="1541089502918" ID="ID_1500762782" MODIFIED="1557498707223" TEXT="nur ein (gemeinsames) Binding">
<node CREATED="1541089526108" ID="ID_1032155020" MODIFIED="1557498707223" TEXT="Signal"/>
</node>
<node CREATED="1541089531186" ID="ID_1668113871" MODIFIED="1557498707223" TEXT="zwei Bindings">
<node CREATED="1541089538704" ID="ID_454635570" MODIFIED="1557498707223" TEXT="Icon-Signal"/>
<node CREATED="1541089542345" ID="ID_1226950315" MODIFIED="1557498707223" TEXT="Arrow-Signal"/>
</node>
<node CREATED="1541089600063" ID="ID_1799506646" MODIFIED="1557498707223" TEXT="Expander mit Arrow verbunden"/>
<node CREATED="1541089613961" ID="ID_857454578" MODIFIED="1557498707223" TEXT="jedes Binding kann d&#xfc;rch ein Pop-Up-Men&#xfc; ersetzt werden"/>
</node>
</node>
</node>
<node CREATED="1480639267600" ID="ID_671046048" MODIFIED="1557498707223" TEXT="Clip"/>
<node CREATED="1480639365715" ID="ID_743867283" MODIFIED="1557498707223" TEXT="Bin"/>
</node>
<node CREATED="1480639327169" HGAP="36" ID="ID_700485676" MODIFIED="1557498707223" TEXT="Root" VSHIFT="-2">
<linktarget COLOR="#3b4877" DESTINATION="ID_700485676" ENDARROW="Default" ENDINCLINATION="430;-874;" ID="Arrow_ID_454081114" SOURCE="ID_362749694" STARTARROW="Default" STARTINCLINATION="-170;534;"/>
<node CREATED="1504459308239" HGAP="47" ID="ID_247672235" MODIFIED="1557498707223" TEXT="Assets" VSHIFT="-26">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1504459300720" ID="ID_1860702149" MODIFIED="1557498707223" TEXT="Einstellungen"/>
<node CREATED="1504459315798" ID="ID_888900532" MODIFIED="1557498707223" TEXT="Zugang zum Model">
<arrowlink COLOR="#3c5879" DESTINATION="ID_1847844548" ENDARROW="Default" ENDINCLINATION="-41;-263;" ID="Arrow_ID_1586720666" STARTARROW="None" STARTINCLINATION="41;-1;"/>
</node>
</node>
<node CREATED="1476376913589" HGAP="42" ID="ID_1887326939" MODIFIED="1557498707223" TEXT="Timeline" VSHIFT="-17">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1477599995452" HGAP="10" ID="ID_97568136" MODIFIED="1557498707223" TEXT="Bestandteile" VSHIFT="-4">
<node CREATED="1476377043180" ID="ID_1179709828" MODIFIED="1557498707223" TEXT="Head">
<node CREATED="1476377067729" ID="ID_896843893" MODIFIED="1557498707223" TEXT="Patchbay"/>
<node CREATED="1476377071072" ID="ID_745594295" MODIFIED="1557498707223" TEXT="in-sync with body"/>
</node>
<node CREATED="1476377048043" ID="ID_994927647" MODIFIED="1557498707223" TEXT="Body">
<node CREATED="1476377078839" ID="ID_331565543" MODIFIED="1557498707223" TEXT="the Fork">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1476377087942" ID="ID_26794000" MODIFIED="1557498707223" TEXT="expandable"/>
</node>
<node CREATED="1476377059386" ID="ID_363001687" MODIFIED="1557498707223" TEXT="Control">
<node CREATED="1476377117290" ID="ID_179386424" MODIFIED="1557498707223" TEXT="scolling"/>
<node CREATED="1480694668090" ID="ID_792729651" MODIFIED="1557498707223" TEXT="TimelineWidget">
<node CREATED="1480694675624" ID="ID_1512443419" MODIFIED="1557498707223" TEXT="Einstiegspunkt"/>
<node CREATED="1480694679232" ID="ID_1344733448" MODIFIED="1557498707223">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sets f&#252;r <b>eine feste</b>&#160;session::Timeline
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1480694854057" HGAP="32" ID="ID_577309407" MODIFIED="1557498707223" TEXT="TimelinePane" VSHIFT="7">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694860696" ID="ID_1847844548" MODIFIED="1557498707223" TEXT="h&#xe4;ngt am Model-Root">
<linktarget COLOR="#5d6386" DESTINATION="ID_1847844548" ENDARROW="Default" ENDINCLINATION="35;-168;" ID="Arrow_ID_1483178089" SOURCE="ID_827558797" STARTARROW="Default" STARTINCLINATION="-2;95;"/>
<linktarget COLOR="#3c5879" DESTINATION="ID_1847844548" ENDARROW="Default" ENDINCLINATION="-41;-263;" ID="Arrow_ID_1586720666" SOURCE="ID_888900532" STARTARROW="None" STARTINCLINATION="41;-1;"/>
<icon BUILTIN="yes"/>
<node CREATED="1504459404130" ID="ID_1800175742" MODIFIED="1557498707223" TEXT="InteractionDirector verwaltet Platzhalter"/>
<node CREATED="1504459419584" ID="ID_1339072222" MODIFIED="1557498707223" TEXT="in der TimelinePane leben die zugeh&#xf6;rigen Widgets"/>
<node CREATED="1504459462330" ID="ID_791513915" MODIFIED="1557498707223">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Verwaltung <i>autmatisch</i>&#160;via ViewLocator -&gt; PanelLocator
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1480694897443" ID="ID_402490324" MODIFIED="1557498707223" TEXT="verwaltet die Timelines"/>
<node CREATED="1480694918056" ID="ID_789731200" MODIFIED="1557498707223">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
es gibt eine <i>EmptyTimeline</i>
</p>
</body>
</html></richcontent>
<node CREATED="1480694930990" ID="ID_1289595423" MODIFIED="1557498707223" TEXT="interface == Widget"/>
</node>
</node>
<node CREATED="1480694624879" HGAP="37" ID="ID_1678741068" MODIFIED="1557498707223" TEXT="TimelineController" VSHIFT="21">
<node CREATED="1480694630302" ID="ID_10965216" MODIFIED="1557498707223" TEXT="hat das Sagen"/>
<node CREATED="1480694652219" ID="ID_1232910852" MODIFIED="1557498707223" TEXT="Widget wird passiv"/>
</node>
</node>
</node>
<node CREATED="1477600006370" ID="ID_1328755612" MODIFIED="1557498707223" TEXT="Konzept">
<node CREATED="1504387810549" ID="ID_599967369" MODIFIED="1557498707223" TEXT="Identit&#xe4;t">
<node CREATED="1504387825051" ID="ID_281718898" MODIFIED="1557498707223" TEXT="eine View pro Model-Komponente"/>
<node CREATED="1504387834601" ID="ID_798058080" MODIFIED="1557498707223" TEXT="Slave-Views kaskadiert">
<icon BUILTIN="idea"/>
<node CREATED="1504387844840" ID="ID_1591380172" MODIFIED="1557498707223" TEXT="TimelineView verwaltet eigene Sklaven"/>
<node CREATED="1504387856919" ID="ID_198003145" MODIFIED="1557498707224" TEXT="nach au&#xdf;en hin transparent"/>
<node CREATED="1504387865853" ID="ID_519067212" MODIFIED="1557498707224" TEXT="delegiert automatisch"/>
</node>
<node CREATED="1504387896417" ID="ID_1112793361" MODIFIED="1557498707224" TEXT="EntryID&lt;Timeline&gt;"/>
</node>
<node CREATED="1477600020776" ID="ID_955842824" MODIFIED="1557498707224" TEXT="Einteilung"/>
<node CREATED="1477600027128" ID="ID_1592196047" MODIFIED="1557498707224" TEXT="Handhabung">
<node CREATED="1477600041886" ID="ID_1241593972" MODIFIED="1557498707224" TEXT="User"/>
<node CREATED="1477600044069" ID="ID_217967290" MODIFIED="1557498707224" TEXT="technisch">
<node COLOR="#435e98" CREATED="1477600126514" FOLDED="true" ID="ID_1433799303" MODIFIED="1557498707224" TEXT="grunds&#xe4;tzlich....">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1477600134217" ID="ID_1352260964" MODIFIED="1541088152670" TEXT="wie viel selber machen?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Frage ist, wie viel des Verhaltens programmieren wir selber explizit aus,
</p>
<p>
und welchen Teil des Verhaltens &#252;berlassen wir GTK
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1477600216950" ID="ID_1935952349" MODIFIED="1518487921079" TEXT="focus">
<node CREATED="1477600231756" ID="ID_1744616929" MODIFIED="1518487921079" TEXT="Tabbing">
<node CREATED="1477600258865" ID="ID_112614309" MODIFIED="1518487921079" TEXT="GTK &#xfc;berlassen">
<icon BUILTIN="help"/>
</node>
<node CREATED="1477600275118" ID="ID_1701392398" MODIFIED="1518487921079" TEXT="Ordnung explizit setzen">
<icon BUILTIN="help"/>
</node>
<node CREATED="1477600285685" ID="ID_195435447" MODIFIED="1518487921079" TEXT="effektiv unterbinden">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1477600234036" ID="ID_957445675" MODIFIED="1518487921079" TEXT="Navigation">
<node CREATED="1477600335934" ID="ID_1021991791" MODIFIED="1518487921079" TEXT="r&#xe4;umliche Metapher"/>
<node CREATED="1477600353036" ID="ID_529949426" MODIFIED="1518487921079" TEXT="brauche Orts-Repr&#xe4;sentation">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1477600385264" ID="ID_734925174" MODIFIED="1518487921079" TEXT="Darstellung">
<node CREATED="1477600397934" ID="ID_224014088" MODIFIED="1518487921079" TEXT="GTK alles geben">
<icon BUILTIN="help"/>
</node>
<node CREATED="1477600402110" ID="ID_375405149" MODIFIED="1518487921079" TEXT="nur eine aktuelle Auswahl">
<icon BUILTIN="help"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541858017069" HGAP="7" ID="ID_1165638730" MODIFIED="1541858026121" TEXT="Fazit" VSHIFT="5">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1541858031423" ID="ID_1183173385" MODIFIED="1541858167541">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Standard</i>&#160;UI-Mechanik &#252;berlassen wir GTK
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das hei&#223;t, wir betreiben ggfs sogar erheblichen Aufwand,
</p>
<p>
um Standard-Mechanik auch &#252;ber die Standard-Mechanismen abzubilden.
</p>
<p>
Aus Gr&#252;nden der Konsistenz und Zukunftsf&#228;higkeit
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541858088132" ID="ID_303565989" MODIFIED="1541858326966">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
unser <b>InteractionControl</b>&#160;ist eine Zwischenschicht
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
InteractionControl
</p>
<ul>
<li>
ist ein eigenst&#228;ndiges Framework in der Obhut des InteractionDirector
</li>
<li>
lauscht und empf&#228;ngt die Benutzer-Events zweiten Grades (nicht absolut low-level Pixel und Mausbewegung)
</li>
<li>
erzeugt Trigger, auf die die normale UI-Mechanik reagiert (z.B. setzt den Fokus, scrollt)
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1477600431489" FOLDED="true" ID="ID_741336406" MODIFIED="1557498707224" TEXT="gtk::Layout">
<icon BUILTIN="forward"/>
<node CREATED="1477600442792" ID="ID_143840935" MODIFIED="1518487921079" TEXT="ist das offizielle Canvas-Control"/>
<node CREATED="1477600450463" ID="ID_293636936" MODIFIED="1518487921079" TEXT="scheint sehr m&#xe4;chtig"/>
<node CREATED="1477600454470" ID="ID_1255426760" MODIFIED="1518487921079" TEXT="ist ein gtk::Container"/>
</node>
</node>
</node>
</node>
<node CREATED="1479678484210" ID="ID_1561971595" MODIFIED="1557498707224" TEXT="Struktur">
<node CREATED="1479678496272" ID="ID_807567871" LINK="file:///home/hiv/devel/lumi/wiki/renderengine.html#GuiTimelineWidgetStructure" MODIFIED="1557498707224" TEXT="Analyse">
<node CREATED="1479678503071" ID="ID_806149006" MODIFIED="1557498707224" TEXT="Grid bringt nix">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Das war zwar schon meine Bauchgef&#252;hl,
</p>
<p>
habe aber sicherheitshalber diese Analyse nochmal gemacht.
</p>
<p>
Details im&#160;&#160;TiddlyWiki....
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1479678634213" ID="ID_432405176" MODIFIED="1557498707224" TEXT="rekursive Struktur schaffen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1479678509822" ID="ID_915690336" MODIFIED="1557498707224" TEXT="Scrolling ist notwendig speziell"/>
</node>
<node CREATED="1479678717961" ID="ID_946163885" MODIFIED="1557498707224" TEXT="globales Widget">
<node CREATED="1479678723576" ID="ID_666987913" MODIFIED="1557498707224" TEXT="Layout Grundmuster: zweigeteilt"/>
<node CREATED="1479678736655" ID="ID_1313901406" MODIFIED="1557498707224" TEXT="globaler Layout-Manager"/>
</node>
<node CREATED="1480723110777" HGAP="24" ID="ID_1197860604" MODIFIED="1557498707224" TEXT="Kontrollstruktur" VSHIFT="7">
<icon BUILTIN="pencil"/>
<node CREATED="1480723136861" ID="ID_839909208" MODIFIED="1557498707224" TEXT="Einstiegspunkt">
<arrowlink COLOR="#8d8ba5" DESTINATION="ID_1295897045" ENDARROW="Default" ENDINCLINATION="296;-456;" ID="Arrow_ID_150397161" STARTARROW="None" STARTINCLINATION="1056;0;"/>
<node CREATED="1480723144188" ID="ID_420419439" MODIFIED="1557498707224" TEXT="TimelineWidget"/>
<node CREATED="1480723148572" ID="ID_1331974915" MODIFIED="1557498707224" TEXT="wirklich">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1480723200765" ID="ID_1498754065" MODIFIED="1557498707224" TEXT="aktiv">
<node CREATED="1480723223938" ID="ID_1057816659" MODIFIED="1557498707224" TEXT="UI-Mechanik">
<node CREATED="1480723246207" ID="ID_988556037" MODIFIED="1557498707224" TEXT="Scrollen"/>
<node CREATED="1480723270492" ID="ID_1057899601" MODIFIED="1557498707224" TEXT="Zoomen"/>
<node CREATED="1480723288521" ID="ID_238022948" MODIFIED="1557498707224" TEXT="Navigieren">
<node CREATED="1480723291697" ID="ID_486282572" MODIFIED="1557498707224" TEXT="delegiert"/>
<node CREATED="1480723296128" ID="ID_681787776" MODIFIED="1557498707224" TEXT="timeline::NavigatorWidget"/>
</node>
<node CREATED="1480723797453" ID="ID_451406554" MODIFIED="1557498707224" TEXT="Benachrichtigungen"/>
</node>
<node CREATED="1480723989315" ID="ID_1314277524" MODIFIED="1557498707224" TEXT="zentral">
<node CREATED="1480724166868" ID="ID_1338884424" MODIFIED="1557498707224" TEXT="Struktur&#xe4;nderung">
<node CREATED="1480724385214" ID="ID_1913904871" MODIFIED="1557498707224" TEXT="DiffMutable bieten">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1480724171371" ID="ID_410013238" MODIFIED="1557498707224" TEXT="Struktur&#xe4;nderung vorbereiten">
<node CREATED="1480724215437" ID="ID_1953691654" MODIFIED="1557498707224" TEXT="Kontextmen&#xfc;"/>
<node CREATED="1480724317120" ID="ID_1898649980" MODIFIED="1557498707224" TEXT="Fokus + Befehl / Taste"/>
<node CREATED="1480724346548" ID="ID_200646693" MODIFIED="1557498707224" TEXT="markieren + Kommando schicken">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1480724417722" HGAP="55" ID="ID_940232384" MODIFIED="1557498707224" TEXT="drei M&#xf6;glichkeiten" VSHIFT="5">
<icon BUILTIN="forward"/>
<node CREATED="1480724450958" FOLDED="true" ID="ID_493402962" MODIFIED="1557498707224" TEXT="Widget is Tangible">
<icon BUILTIN="button_cancel"/>
<node CREATED="1480724706739" ID="ID_1043502336" MODIFIED="1518487921080" TEXT="kann dann direkt Notifications implementieren"/>
<node CREATED="1480724724585" ID="ID_576219568" MODIFIED="1518487921080" TEXT="mu&#xdf; f&#xfc;r alle Struktur&#xe4;nderungen delegieren"/>
<node CREATED="1480724738583" ID="ID_403933116" MODIFIED="1518487921080" TEXT="Achtung: Tangible is noncopyable">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1480724761876" ID="ID_335451126" MODIFIED="1541088152754" TEXT="wegen BusTerm">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
braucht feste Speicher-Addresse
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480724781801" ID="ID_198046255" MODIFIED="1518487921080" TEXT="folglich: nicht in STL-Container">
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
<node CREATED="1480724461860" FOLDED="true" ID="ID_865875607" MODIFIED="1557498707224" TEXT="Controller is Tangible">
<linktarget COLOR="#1017b1" DESTINATION="ID_865875607" ENDARROW="Default" ENDINCLINATION="-67;4;" ID="Arrow_ID_1321400081" SOURCE="ID_1683703083" STARTARROW="Default" STARTINCLINATION="-78;4;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1480724851312" ID="ID_1653680733" MODIFIED="1541088152763" TEXT="erzeugt R&#xfc;ckbezug f&#xfc;r Notifications">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
..d.h. der Controller mu&#223; wieder auf das Widget zugreifen
</p>
<p>
und sei es auch blo&#223; &#252;ber ein Interface!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480724910096" ID="ID_874781354" MODIFIED="1518487921080" TEXT="kann direkt das View-Modell manipulieren"/>
<node CREATED="1480724927814" ID="ID_1912287440" MODIFIED="1518487921080" TEXT="ist nicht direkt erreichbar">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1480724935397" ID="ID_1279073903" MODIFIED="1518487921080" TEXT="Modell-Vater mu&#xdf; DiffMutable sehen">
<arrowlink COLOR="#2817aa" DESTINATION="ID_550796340" ENDARROW="Default" ENDINCLINATION="129;0;" ID="Arrow_ID_1199115828" STARTARROW="None" STARTINCLINATION="129;0;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1480724468283" FOLDED="true" ID="ID_1683703083" MODIFIED="1557498707224" TEXT="expose DiffMutable">
<arrowlink COLOR="#1017b1" DESTINATION="ID_865875607" ENDARROW="Default" ENDINCLINATION="-67;4;" ID="Arrow_ID_1321400081" STARTARROW="Default" STARTINCLINATION="-78;4;"/>
<icon BUILTIN="idea"/>
<node CREATED="1480724983774" ID="ID_845297603" MODIFIED="1518487921080" TEXT="hei&#xdf;t: Manipulation au&#xdf;erhalb des Diff-Systems"/>
<node CREATED="1480725000029" ID="ID_1586514211" MODIFIED="1518487921080" TEXT="wir steigen stets auf Ebene einer Timeline ein"/>
<node CREATED="1480725012731" ID="ID_9332776" MODIFIED="1541088152776">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>aber:</i>&#160;Binding im Diff-System durchaus m&#246;glich
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn:
</p>
<p>
das Diff-System verlangt nicht, da&#223; Kinder in der Collection auch Tangible sind.
</p>
<p>
Es verlangt nur
</p>
<ul>
<li>
da&#223; wir wissen, wie wir Kinder machen
</li>
<li>
da&#223; wir f&#252;r ein gegebenes Kind ein DiffMutable beschaffen k&#246;nnen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1480725106478" ID="ID_550796340" MODIFIED="1518487921080" TEXT="effektiv auch die L&#xf6;sung f&#xfc;r Alternative-2">
<linktarget COLOR="#2817aa" DESTINATION="ID_550796340" ENDARROW="Default" ENDINCLINATION="129;0;" ID="Arrow_ID_1199115828" SOURCE="ID_1279073903" STARTARROW="None" STARTINCLINATION="129;0;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1479688613990" ID="ID_1537299376" MODIFIED="1557498707224" TEXT="Struktur&#xe4;nderung">
<node CREATED="1479688621637" ID="ID_71591229" MODIFIED="1557498707224" TEXT="notwendig: strukturelles Modell">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1479688633483" ID="ID_1301490505" MODIFIED="1557498707224" TEXT="Elemente in diesem halten einen display-context"/>
<node CREATED="1479688653913" ID="ID_1435784278" MODIFIED="1557498707224" TEXT="dieser wiederum mu&#xdf; f&#xfc;r jede Erweiterung konsultiert werden"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487465759930" HGAP="19" ID="ID_923619509" MODIFIED="1557498707224" VSHIFT="26">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#d71313">Problem</font>: Slave-Timeline
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1487465830224" ID="ID_614775878" MODIFIED="1557498707224" TEXT="mehrere Ansichten f&#xfc;r die gleiche Timeline"/>
<node CREATED="1487465882513" ID="ID_347013155" MODIFIED="1557498707224" TEXT="Gr&#xfc;nde">
<icon BUILTIN="info"/>
<node CREATED="1487465847518" ID="ID_1430621359" MODIFIED="1557498707224" TEXT="bewu&#xdf;t verschiedene Ausschnitte"/>
<node CREATED="1487465854653" ID="ID_921534930" MODIFIED="1557498707224" TEXT="unbeabsichtigt in verschiedenen Fenstern"/>
<node CREATED="1487465866499" ID="ID_354960009" MODIFIED="1557498707224" TEXT="Fokussierte Ansicht einer nested sequence"/>
</node>
<node CREATED="1487465918884" ID="ID_1775013701" MODIFIED="1557498707224" TEXT="L&#xf6;sungs-Ans&#xe4;tze">
<icon BUILTIN="hourglass"/>
<node CREATED="1487465924572" ID="ID_542870958" MODIFIED="1557498707224" TEXT="auf Widget-Ebene doppeln">
<icon BUILTIN="button_cancel"/>
<node CREATED="1487465932554" ID="ID_450673459" MODIFIED="1557498707224" TEXT="greift in die direkte Diff-Mechanik ein"/>
<node CREATED="1487465947504" ID="ID_284663745" MODIFIED="1557498707224" TEXT="Timeline-Komponenten sind selber beliebig komplex"/>
<node CREATED="1487465960198" ID="ID_1257024935" MODIFIED="1557498707224" TEXT="Annahme war immer, da&#xdf; Presenter nahe am Widget arbeitet"/>
</node>
<node CREATED="1487465985315" ID="ID_1891341453" MODIFIED="1557498707224" TEXT="Timeline-Controller-Slaves">
<node CREATED="1487465996906" ID="ID_1882876532" MODIFIED="1557498707224" TEXT="machbar"/>
<node CREATED="1487465999417" ID="ID_1034026426" MODIFIED="1557498707224" TEXT="typische Clustering-Probleme"/>
<node CREATED="1487466005952" ID="ID_465457871" MODIFIED="1557498707224" TEXT="Scheitern in-Memory unwahrscheinlich"/>
<node CREATED="1487466021990" ID="ID_212586057" MODIFIED="1557498707224" TEXT="Controller mu&#xdf; aktiv mitwirken"/>
</node>
<node CREATED="1487466040524" ID="ID_646231524" MODIFIED="1557498707224" TEXT="Timeline-Slave in der Session">
<linktarget COLOR="#5793da" DESTINATION="ID_646231524" ENDARROW="Default" ENDINCLINATION="186;21;" ID="Arrow_ID_431447729" SOURCE="ID_1227431164" STARTARROW="None" STARTINCLINATION="26;-3;"/>
<node CREATED="1487466064520" ID="ID_1607482571" MODIFIED="1557498707224" TEXT="macht Doppelung explizit"/>
<node CREATED="1487466078743" ID="ID_1134944510" MODIFIED="1557498707224" TEXT="Problem mit den Element-IDs"/>
<node CREATED="1487466090917" ID="ID_1611961848" MODIFIED="1557498707224" TEXT="UI -&gt; Session ist unproblematisch"/>
<node CREATED="1487466100372" ID="ID_1630288830" MODIFIED="1557498707224" TEXT="Session/Builder mu&#xdf; aufdoppeln">
<node CREATED="1487466111930" ID="ID_966355925" MODIFIED="1557498707224" TEXT="Diff-Nachrichten"/>
<node CREATED="1487466115154" ID="ID_260455064" MODIFIED="1557498707224" TEXT="Fehler-Markierungen"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487466966478" ID="ID_479759046" MODIFIED="1557498707224" TEXT="#1083 solution for Timeline slave">
<icon BUILTIN="bell"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1487466997138" ID="ID_1028434909" MODIFIED="1557498707224" TEXT="auf sp&#xe4;ter vertagt">
<linktarget COLOR="#bfb5ce" DESTINATION="ID_1028434909" ENDARROW="Default" ENDINCLINATION="-1311;-1012;" ID="Arrow_ID_1339464508" SOURCE="ID_1624061939" STARTARROW="None" STARTINCLINATION="505;-47;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1487466986523" ID="ID_39632539" MODIFIED="1557498707224" TEXT="zun&#xe4;chst unterbinden">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1539258805201" ID="ID_1227431164" MODIFIED="1557498707224" TEXT="gegenw&#xe4;rtig Pr&#xe4;ferenz erkennbar....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;r die dritte L&#246;sung, die Repr&#228;sentation bereits in der Session
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5793da" DESTINATION="ID_646231524" ENDARROW="Default" ENDINCLINATION="186;21;" ID="Arrow_ID_431447729" STARTARROW="None" STARTINCLINATION="26;-3;"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539388923323" ID="ID_430199880" MODIFIED="1557498707224">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#e71c1c">Problem</font>: alle Timelines der Session repr&#228;sentieren?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#c8a1fe" DESTINATION="ID_430199880" ENDARROW="Default" ENDINCLINATION="-629;0;" ID="Arrow_ID_1293894659" SOURCE="ID_585499856" STARTARROW="None" STARTINCLINATION="-505;56;"/>
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1539389184120" ID="ID_1213259045" MODIFIED="1557498707224" TEXT="vorl&#xe4;ufig: immer">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1539389333308" ID="ID_1581229247" MODIFIED="1557498707224" TEXT="wer kann das entscheiden?">
<node CREATED="1539389339515" ID="ID_1778009129" MODIFIED="1557498707224" TEXT="Entscheider mu&#xdf; am UI-Bus h&#xe4;ngen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1539389345674" ID="ID_742174622" MODIFIED="1557498707224" TEXT="also der TimelineController">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1539389243488" ID="ID_1100284261" MODIFIED="1557498707224" TEXT="man k&#xf6;nnte das als GUI-State auslegen">
<icon BUILTIN="idea"/>
<node CREATED="1539389266141" ID="ID_1321613506" MODIFIED="1557498707224" TEXT="collapsed?"/>
</node>
</node>
</node>
<node CREATED="1479774700668" HGAP="47" ID="ID_1407821684" MODIFIED="1557498707224" TEXT="Mutation" VSHIFT="13">
<node CREATED="1479774705839" ID="ID_301222108" MODIFIED="1557498707224" TEXT="Problem">
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#d30f0f" CREATED="1479774731141" ID="ID_1523088286" MODIFIED="1557498707225" TEXT="Element != Widget"/>
<node COLOR="#640c0c" CREATED="1479774764575" ID="ID_1338013643" MODIFIED="1557498707225" TEXT="DiffApplikator geht einfach von STL-Collection aus">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1479774747753" ID="ID_279553704" MODIFIED="1557498707225" TEXT="Umordnen der Elemente hat keinen Effekt auf die Anzeige">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480120294912" HGAP="31" ID="ID_1734639851" MODIFIED="1557498707225" VSHIFT="23">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
grunds&#228;tzliches
</p>
<p>
Problem
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1480120349873" ID="ID_795629510" MODIFIED="1557498707225" TEXT="Diff repr&#xe4;sentiert &#xc4;nderungen indirekt"/>
<node CREATED="1480120487509" ID="ID_1693545323" MODIFIED="1557498707225">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
speziell die Umordnungen <i>ergeben sich</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480120359191" ID="ID_1039094699" MODIFIED="1557498707225" TEXT="Widget-Container hat keine &#xc4;nderungs-Schnittstelle"/>
<node COLOR="#338800" CREATED="1480725417748" HGAP="28" ID="ID_1996114890" MODIFIED="1557498707225" TEXT="...war dann doch kein so schlimmes Problem" VSHIFT="7">
<arrowlink COLOR="#69ee12" DESTINATION="ID_1964453367" ENDARROW="Default" ENDINCLINATION="-55;-87;" ID="Arrow_ID_636465261" STARTARROW="None" STARTINCLINATION="-116;69;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1480120516442" ID="ID_880374813" MODIFIED="1557498707225" TEXT="Ans&#xe4;tze">
<node CREATED="1480120531935" ID="ID_1894474191" MODIFIED="1557498707225" TEXT="Dekorator auf TreeMutator">
<icon BUILTIN="button_cancel"/>
<node CREATED="1480121069464" ID="ID_1707876611" MODIFIED="1557498707225" TEXT="Operationen mitlesen"/>
<node CREATED="1480121074703" ID="ID_1346494338" MODIFIED="1557498707225" TEXT="Notifikations-Schnittstelle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und der Dekorator w&#252;rde die beobachteten Operationen
</p>
<p>
an diese Notifikations-Schnittstelle senden.
</p>
<p>
Implementiert w&#252;rde sie vom jeweiligen Widget
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480123478013" ID="ID_1281325973" MODIFIED="1557498707225" TEXT="eine Ebene zu tief, aber geht noch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
korrekt w&#228;re, die Diff-Verben mitzulesen.
</p>
<p>
<i>Das </i>geht aber nicht, weil wir intern (aktiv) iterieren.
</p>
<p>
Wollten wir das doch, m&#252;&#223;ten wir das gesamte Diff-Applikator-Design wegwerfen.
</p>
<p>
</p>
<p>
Da aber eigentlich eine 1:1-Zuordnung zwischen Diff-Verben und Operations-Primitiven besteht,
</p>
<p>
k&#246;nnte man trotzdem (mit etwas H&#228;ngen und W&#252;rgen) noch hinkommen.
</p>
<p>
Der Dekorator w&#252;rde also auf dem TreeMutator sitzen...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480121092492" ID="ID_1543810707" MODIFIED="1557498707225" TEXT="L&#xf6;schungen nur heuristisch zu erkennen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Weil wir die &quot;skip&quot;-Operation f&#252;r zwei Zwecke verwenden,
</p>
<p>
und man im Skip nicht wei&#223;, ob man das Element &#252;berhaupt noch anfassen darf,
</p>
<p>
denn es k&#246;nnte ja auch ein von &quot;find&quot; zur&#252;ckgelassener M&#252;ll sein.
</p>
<p>
Daher gibt es die matchSrc-Operation. Effektiv wird die aber nur bei einem Delete aufgerufen...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480123741362" ID="ID_586646895" MODIFIED="1557498707225" TEXT="unsauber, h&#xe4;sslich, ungl&#xfc;cklich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
man sitzt mit dem Detektor unter dem API
</li>
<li>
dadurch entstehen &quot;ungeschriebene Regeln&quot;, wie das API auzurufen ist
</li>
<li>
alternativ k&#246;nnten wir die Operationen komplett 1:1 definieren, also eine explizite delete-Operation einf&#252;hren
</li>
<li>
daf&#252;r w&#252;rde dann die matchSrc wegfallen, was praktisch alle sinnvollen Unit-Tests stark beschr&#228;nkt.
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1480123380843" ID="ID_1717666432" MODIFIED="1557498707225" TEXT="w&#xe4;re prinzipiell machbar">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1480121177145" ID="ID_1964453367" MODIFIED="1557498707225" TEXT="Widget is delegate/slave">
<linktarget COLOR="#69ee12" DESTINATION="ID_1964453367" ENDARROW="Default" ENDINCLINATION="-55;-87;" ID="Arrow_ID_636465261" SOURCE="ID_1996114890" STARTARROW="None" STARTINCLINATION="-116;69;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1480121209277" ID="ID_834494092" MODIFIED="1557498707225" TEXT="Hinzuf&#xfc;gungen erzeugen neue Widgets">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1480121219579" ID="ID_1906821886" MODIFIED="1557498707225" TEXT="L&#xf6;schungen entfernen das zugeh&#xf6;rige Widget">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1480121271493" ID="ID_1169797519" MODIFIED="1557498707225" TEXT="Reihenfolge ist nebens&#xe4;chlich">
<icon BUILTIN="idea"/>
<node CREATED="1480123311260" ID="ID_1288896772" MODIFIED="1557498707225" TEXT="Reihenfolge der Widgets == Z-Ordnung"/>
<node CREATED="1480123321707" ID="ID_1842225087" MODIFIED="1557498707225" TEXT="das ist ein reiner UI-Belang"/>
<node CREATED="1480123330521" ID="ID_255024472" MODIFIED="1557498707225" TEXT="Reihenfolge der Tracks wird im UI realisiert"/>
<node CREATED="1480123353030" ID="ID_871730723" MODIFIED="1557498707225" TEXT="Reihenfolge der Clips wird redundant (durch Position) gegeben"/>
</node>
</node>
</node>
<node CREATED="1480123881912" HGAP="6" ID="ID_1550301342" MODIFIED="1557498707225" TEXT="Schlu&#xdf;folgerung" VSHIFT="3">
<icon BUILTIN="yes"/>
<node CREATED="1480123900845" ID="ID_1099759004" MODIFIED="1557498707225" TEXT="wir mutieren ein Modell-Objekt"/>
<node CREATED="1480123908524" ID="ID_599072568" MODIFIED="1557498707225" TEXT="das Widget h&#xe4;ngt an diesem als kompletter Slave">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480123920371" ID="ID_413127533" MODIFIED="1557498707225" TEXT="Registrierung / Deregistrierung mu&#xdf; vollautomatisch sein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1480124094867" ID="ID_1956638484" MODIFIED="1557498707225">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nach </i>der Mutation erfolgt <b>Display-Neubewertung</b>
</p>
</body>
</html></richcontent>
<node CREATED="1480124145476" ID="ID_1268974326" MODIFIED="1557498707225" TEXT="f&#xfc;r einen ganzen Scope"/>
<node CREATED="1480124153979" ID="ID_887707794" MODIFIED="1557498707225" TEXT="stellt fest, was gezeigt werden mu&#xdf;"/>
<node CREATED="1480124174144" ID="ID_1145067443" MODIFIED="1557498707225" TEXT="synthetisiert Anzeige-Parameter (z.B: Koordinaten, Z-Ordnung)"/>
<node CREATED="1480124235128" ID="ID_162610711" MODIFIED="1557498707225" TEXT="mu&#xdf; inkrementell arbeiten und bestehende Widgets anpassen"/>
</node>
</node>
</node>
<node CREATED="1480300573857" HGAP="68" ID="ID_434577605" MODIFIED="1557498707225" TEXT="Anzeige-Steuerung" VSHIFT="39">
<icon BUILTIN="pencil"/>
<node CREATED="1480300584454" ID="ID_202830560" MODIFIED="1557498707225" TEXT="globaler Layout-Manager">
<node CREATED="1480300595820" ID="ID_1004344887" MODIFIED="1557498707225" TEXT="fungiert als Service"/>
<node CREATED="1480300614873" ID="ID_895306481" MODIFIED="1557498707225" TEXT="Ermitteln konkreter Koordinaten"/>
</node>
<node CREATED="1480300627712" ID="ID_1748490788" MODIFIED="1557498707225" TEXT="Display-Manager">
<node CREATED="1480300640790" ID="ID_1461181527" MODIFIED="1557498707225" TEXT="Abstraktion">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1480300645837" ID="ID_337010957" MODIFIED="1557498707225" TEXT="Interface"/>
<node CREATED="1480300649437" ID="ID_704277125" MODIFIED="1557498707225">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
interagiert mit den <b>Presentern</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1480300682256" ID="ID_1828380850" MODIFIED="1557498707225" TEXT="Presenter">
<node CREATED="1480300690191" ID="ID_1405428387" MODIFIED="1557498707225" TEXT="sind lokales Struktur-Modell">
<node CREATED="1480300733506" ID="ID_186466790" MODIFIED="1557498707225" TEXT="werden per Diff manipuliert"/>
<node CREATED="1480300740537" ID="ID_1322437138" MODIFIED="1557498707225" TEXT="enthalten die Modell-Binding-Daten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. eine LUID
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1480300699694" ID="ID_1686150984" MODIFIED="1557498707225" TEXT="aktiver Part der View-Steuerung"/>
<node CREATED="1480300717747" ID="ID_1736166807" MODIFIED="1557498707225" TEXT="Master-Slave f&#xfc;r die Widgets"/>
<node CREATED="1480300804840" ID="ID_1330942810" MODIFIED="1557498707225" TEXT="Verbindung zum Anzeigekontext">
<node CREATED="1480300822302" ID="ID_1819260908" MODIFIED="1557498707225" TEXT="zwei Kontexte f&#xfc;r die Tracks"/>
<node CREATED="1480300836092" ID="ID_1069009472" MODIFIED="1557498707225" TEXT="Anzeigekontext = Konkretes Vater-Widget"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480606888860" HGAP="25" ID="ID_899101975" MODIFIED="1557498707225" TEXT="Implementierung" VSHIFT="14">
<icon BUILTIN="pencil"/>
<node CREATED="1480606950372" ID="ID_1502878943" MODIFIED="1557498707225" TEXT="Grundstruktur">
<node CREATED="1480639404070" ID="ID_506539007" MODIFIED="1557498707225" TEXT="HeaderPane">
<node CREATED="1480639435010" ID="ID_892799964" MODIFIED="1557498707225" TEXT="Navigator"/>
<node CREATED="1480639438921" ID="ID_1668884794" MODIFIED="1557498707225" TEXT="Baum">
<node CREATED="1480639447736" ID="ID_1842963526" MODIFIED="1557498707225" TEXT="Expander"/>
<node CREATED="1480639450960" ID="ID_1468387103" MODIFIED="1557498707225" TEXT="Patchbay"/>
</node>
</node>
<node CREATED="1480639411109" ID="ID_520199505" MODIFIED="1557498707225" TEXT="ScrolledPane">
<node CREATED="1480639423116" ID="ID_1226894709" MODIFIED="1557498707225" TEXT="Ruler"/>
<node CREATED="1480639429307" ID="ID_1922498247" MODIFIED="1557498707225" TEXT="Canvas"/>
</node>
</node>
<node CREATED="1480606954115" ID="ID_1178000371" MODIFIED="1557498707225" TEXT="Struktur-Modell">
<icon BUILTIN="button_ok"/>
<node CREATED="1480725215087" ID="ID_212845679" MODIFIED="1557498707225" TEXT="erzeugen">
<node CREATED="1480725218783" ID="ID_192239117" MODIFIED="1557498707225" TEXT="Controller ist Tangible">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1480725247115" ID="ID_1533101483" MODIFIED="1557498707225" TEXT="Konstruktion erfordert...">
<node CREATED="1480796814716" ID="ID_1742743432" MODIFIED="1557498707225" TEXT="ID einer Timeline">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir lassen es offen, welche Art von ID das ist.
</p>
<p>
Irgend eine BareEntryID gen&#252;gt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540639615789" ID="ID_1775707565" MODIFIED="1557498707225" TEXT="ID des root-Track"/>
<node CREATED="1480725273775" ID="ID_1495656573" MODIFIED="1557498707225" TEXT="Bus-Term-Referenz"/>
</node>
</node>
<node CREATED="1540639905935" ID="ID_1563220898" MODIFIED="1557498707225" TEXT="zerst&#xf6;ren">
<node CREATED="1540639914260" ID="ID_1797549156" MODIFIED="1557498707225" TEXT="der Root-Track kann nicht gel&#xf6;scht werden">
<icon BUILTIN="idea"/>
<node CREATED="1540639925885" ID="ID_1352494029" MODIFIED="1557498707225" TEXT="das wird bereits auf Diff-Ebene abgewiesen"/>
<node CREATED="1540639934819" ID="ID_1733133201" MODIFIED="1557498707225" TEXT="...da es sich um ein Attribut-Binding handelt"/>
<node CREATED="1540639945978" ID="ID_1136500098" MODIFIED="1557498707225" TEXT="(sollte aber auch niemals auftreten)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da wir unterstellen, da&#223; das Gegenst&#252;ck im Session-Modell,
</p>
<p>
von dem der Diff ausgeht, ebenfalls den Root-Track als festes Attribut h&#228;lt.
</p>
<p>
Daher sollte eine inkompatible Struktur&#228;nderung &#252;berhaupt nicht auftreten k&#246;nnen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1540640048428" ID="ID_838010387" MODIFIED="1557498707225" TEXT="nur das gesamte Widget insgesamt">
<node CREATED="1540640063547" ID="ID_975320950" MODIFIED="1557498707225" TEXT="kaskadiert in nat&#xfc;rlicher Ordnung"/>
<node CREATED="1540640074705" ID="ID_181154970" MODIFIED="1557498707225" TEXT="Kinder zuerst...">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node CREATED="1480725377994" ID="ID_172881069" MODIFIED="1557498707226" TEXT="verwalten">
<node COLOR="#338800" CREATED="1480741524775" ID="ID_661893589" MODIFIED="1557498707226" TEXT="Bindings einrichten">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1480800574418" ID="ID_791426893" MODIFIED="1557498707226" TEXT="Marker">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1480800603331" ID="ID_1846937607" MODIFIED="1557498707226" TEXT="treten in diversen Scopes auf"/>
<node CREATED="1480800643953" ID="ID_409762087" MODIFIED="1557498707226" TEXT="sogar global, auf dem TimeRuler">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1480800605150" ID="ID_1156238228" MODIFIED="1557498707226" TEXT="sind stets optional"/>
<node CREATED="1480807594822" ID="ID_333819085" MODIFIED="1557498707226" TEXT="f&#xfc;hre mal einen Marker-Typ ein"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1538957611472" ID="ID_1996849782" MODIFIED="1557498707226" TEXT="erwartet gem&#xe4;&#xdf; UI Modell-Schema">
<arrowlink COLOR="#919fc6" DESTINATION="ID_165150753" ENDARROW="Default" ENDINCLINATION="-902;329;" ID="Arrow_ID_651613049" STARTARROW="None" STARTINCLINATION="823;93;"/>
<icon BUILTIN="info"/>
<node COLOR="#435e98" CREATED="1540639547294" ID="ID_133813709" MODIFIED="1557498707226" TEXT="TimelineID"/>
<node COLOR="#435e98" CREATED="1540639550757" ID="ID_521896867" MODIFIED="1557498707226" TEXT="Root-TrackID">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1541462330990" ID="ID_1246009618" MODIFIED="1557498707226" TEXT="TODO: eigentlich redundant">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1541462351699" ID="ID_1571413865" MODIFIED="1557498707226" TEXT="sie ist immer &quot;fork&quot;, da es ein Attribut ist"/>
<node CREATED="1541462368025" ID="ID_66547064" MODIFIED="1557498707226" TEXT="der Entry-ID-Typ ist GenNode"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_391329400" MODIFIED="1557498707226" TEXT="TimelineController">
<linktarget COLOR="#fec680" DESTINATION="ID_391329400" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_1839172502" SOURCE="ID_693425928" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1480694557112" ID="ID_786517324" MODIFIED="1557498707226" TEXT="Widget ist Startpunkt"/>
<node CREATED="1480694571310" ID="ID_1188786444" MODIFIED="1557498707226" TEXT="aber Controller wird Chef"/>
<node CREATED="1480725633399" ID="ID_1475661668" MODIFIED="1557498707226" TEXT="mu&#xdf; erst mal Controller implementieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...abstraktes Interface
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
<node CREATED="1480725680713" ID="ID_448125852" MODIFIED="1557498707226" TEXT="Delegate for Notification">
<icon BUILTIN="help"/>
</node>
<node CREATED="1480725704142" ID="ID_992732373" MODIFIED="1557498707226" TEXT="was bleibt abstrakt?">
<node CREATED="1480725715916" ID="ID_890987188" MODIFIED="1557498707226" TEXT="buildMutator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
lat&#252;rnich
</p>
<p>
...den <i>mu&#223;</i>&#160;jeder individuell implementieren,
</p>
<p>
um die Bindung herzustellen
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1540639476279" ID="ID_298401557" MODIFIED="1557498707226" TEXT="vorerst Platzhalter">
<icon BUILTIN="bell"/>
</node>
</node>
<node CREATED="1480741498930" ID="ID_1605140473" MODIFIED="1557498707226" TEXT="hat nur einen einzigen RootTrack">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1480742405505" FOLDED="true" ID="ID_1590367176" MODIFIED="1557498707226" TEXT="ACHTUNG: leere Sequenz?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<i>theoretisch</i>&#160;k&#246;nnte man eine Timeline ohne Sequenz
</p>
<p>
oder eine Sequenz ohne root-Fork zulassen
</p>
<p>
<u>Fazit</u>: wir lassen das nicht zu, erzwingen das bereits per ctor
</p>
<p>
und erwarten abweichend vom Standard ein vollst&#228;ndiges Skelett im INS-Verb
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1480776052551" ID="ID_431920594" MODIFIED="1518487921081" TEXT="warum">
<node CREATED="1480742420383" ID="ID_19092812" MODIFIED="1518487921081" TEXT="kann ihn nicht gleich im ctor erzeugen"/>
<node CREATED="1480742432749" ID="ID_1840237751" MODIFIED="1518487921081" TEXT="denn wir brauchen die ID"/>
<node CREATED="1480742437892" ID="ID_1335490062" MODIFIED="1518487921081" TEXT="und die kann nur &#xfc;ber den Bus kommen"/>
<node CREATED="1480742445563" ID="ID_1224591813" MODIFIED="1518487921081" TEXT="also m&#xfc;ssen wir warten, bis das Attribut zugewiesen wird"/>
</node>
<node CREATED="1480776067549" FOLDED="true" HGAP="41" ID="ID_1500222365" MODIFIED="1540506824773" TEXT="Alternativen" VSHIFT="-1">
<icon BUILTIN="info"/>
<node CREATED="1480776081388" ID="ID_783764544" MODIFIED="1540506788245" TEXT="via ctor">
<icon BUILTIN="full-1"/>
<node CREATED="1480776096665" ID="ID_1492275941" MODIFIED="1539382659115" TEXT="das hei&#xdf;t....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Thema &quot;Darstellung von Objekt-Feldern im Diff&quot;
</p>
<p>
<i>da hab ich mir ausgiebig Gedanken dar&#252;ber gemacht (in dieser Mindmap)</i>
</p>
<ul>
<li>
entweder ein Feld ist wirklich optional belegbar, dann kann es mit dem Diff kommen
</li>
<li>
wenn dagegen ein Feld zwingend bef&#252;llt sein soll, mu&#223; man das &#252;ber den Konstruktor erzwingen<br />in diesem Fall m&#252;ssen alle Daten bereits mit dem vorangehenden INS kommen,<br />welches den Konstruktor-Aufruf ausl&#246;st<br /><br />
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1480776313813" ID="ID_1507386991" MODIFIED="1518487921082" TEXT="Vorteil: einfache Verh&#xe4;ltnisse in der Widget-Impl"/>
<node CREATED="1480776341393" ID="ID_1985821448" MODIFIED="1540506389132" TEXT="Nachteil: mu&#xdf; Diff genau in spezieller Form schicken"/>
<node CREATED="1480777922397" ID="ID_514769772" MODIFIED="1518487921082" TEXT="...sonst">
<icon BUILTIN="smily_bad"/>
<node CREATED="1480777950449" ID="ID_487608965" MODIFIED="1540506527436" TEXT="Core schickt unvollst&#xe4;ndigen Populations-diff"/>
<node CREATED="1480777972862" ID="ID_1185499319" MODIFIED="1518487921082" TEXT="Exception beim Aufspielen"/>
<node CREATED="1480777979069" ID="ID_1379570617" MODIFIED="1518487921082" TEXT="kann nur geloggt werden"/>
<node CREATED="1480777983381" ID="ID_1125654729" MODIFIED="1518487921082" TEXT="Folglich fehlt im UI die betreffende Timeline"/>
<node CREATED="1480778002098" ID="ID_535894255" MODIFIED="1518487921082" TEXT="sp&#xe4;tere Updates scheitern gleicherma&#xdf;en"/>
<node CREATED="1480778011745" ID="ID_1623403394" MODIFIED="1518487921082" TEXT="dysfunktionales UI">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node CREATED="1480776087027" ID="ID_132590373" MODIFIED="1518487921082" TEXT="leer zulassen">
<node CREATED="1480778115091" ID="ID_1948130012" MODIFIED="1539382659144" TEXT="das hei&#xdf;t...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die betreffenden Felder sind echt optional.
</p>
<p>
Der Ctor belegt sie mit einem sinnvollen Leerwert
</p>
<p>
Das Objekt mu&#223; so geschrieben werden, da&#223; es mit den Leerwerten umgehen kann,
</p>
<p>
was typischerweise heit&#223;, da&#223; es verschiedene Betriebsmodi bekommt.
</p>
<p>
</p>
<p>
Das Diff kann dann sp&#228;ter die konkreten Werte f&#252;r die Attribute nachliefern;
</p>
<p>
typischerweise wird es das in einem Populationsdiff sofort als N&#228;chstes machen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1480778348652" ID="ID_1249761108" MODIFIED="1518487921082" TEXT="Vorteil: Diff-Erzeugung und Aufspielen l&#xe4;uft nach Schema-F"/>
<node CREATED="1480778407052" ID="ID_181642617" MODIFIED="1518487921082">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
zwei m&#246;gliche
</p>
<p>
Konsequenzen
</p>
</body>
</html></richcontent>
<node CREATED="1480778420418" ID="ID_1430286640" MODIFIED="1540506791804" TEXT="Problem ignorieren">
<icon BUILTIN="full-2"/>
<node CREATED="1480778499928" ID="ID_1466170472" MODIFIED="1518487921082" TEXT="Felder im Ctor einfach uninitialisiert lassen"/>
<node CREATED="1480778490545" ID="ID_1228109442" MODIFIED="1540506504371" TEXT="darauf hoffen, da&#xdf; das Diff immer komplett alles populiert"/>
<node CREATED="1480778511086" ID="ID_1612105579" MODIFIED="1518487921082" TEXT="keine Checks im Code"/>
<node CREATED="1480778532907" ID="ID_1167492250" MODIFIED="1539382659162">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
funktioniert <i>fast immer</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<i>&quot;was kann denn schon passieren??&quot;</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1540506535667" ID="ID_1048222076" MODIFIED="1540506545488">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und wenn nicht, dann <b>Crash</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1480778451502" ID="ID_1135553012" MODIFIED="1540506795353" TEXT="echt optionale Felder">
<icon BUILTIN="full-3"/>
<node CREATED="1480778622039" ID="ID_1007915114" MODIFIED="1518487921082">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Betriebsart <i>&quot;partiell initialisiert&quot;</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480778652819" ID="ID_1335924975" MODIFIED="1518487921082" TEXT="Checks und Verzweigungen im Code"/>
<node CREATED="1480778689191" ID="ID_45333997" MODIFIED="1539382659175" TEXT="Pflanzt sich auf die Nutzer fort">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
..hier das Widget, das ebenfalls
</p>
<ul>
<li>
nur partiell aufgebaut existieren k&#246;nnen mu&#223;
</li>
<li>
sp&#228;ter sich dynamisch erweitern k&#246;nnen mu&#223;
</li>
<li>
in der Behandlung der UI-Signale ebenfalls checks einbauen mu&#223;
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1480778768988" ID="ID_1385067618" MODIFIED="1539382659180" TEXT="und das alles nur f&#xfc;r....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
einen Fall, der <i>praktisch nie</i>&#160;auftritt
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1480780047561" FOLDED="true" HGAP="88" ID="ID_1993420764" MODIFIED="1540506822429" TEXT="Entscheidung" VSHIFT="16">
<node CREATED="1480780057079" ID="ID_481017202" MODIFIED="1518487921082" TEXT="Analyse">
<node CREATED="1480780061327" ID="ID_628488180" MODIFIED="1539382659192" TEXT="zwei F&#xe4;lle sind sehr &#xe4;hnlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und zwar interessanterweise &#252;ber Kreuz gegliedert
</p>
<ul>
<li>
die Ctor-L&#246;sung (hat aber etwas mehr Umsetzungsaufwand)
</li>
<li>
die &quot;wird schon klappen&quot;-L&#246;sung
</li>
</ul>
</body>
</html></richcontent>
<node CREATED="1480780163369" ID="ID_851065784" MODIFIED="1518487921082" TEXT="wenig Zusatzaufwand"/>
<node CREATED="1480780174552" ID="ID_640476327" MODIFIED="1518487921082" TEXT="funktioniert fast immer"/>
<node CREATED="1480780183319" ID="ID_431465582" MODIFIED="1518487921082" TEXT="&#xfc;ble Konsequenzen wenn nicht"/>
</node>
<node CREATED="1480780140741" ID="ID_1754958261" MODIFIED="1539382659205" TEXT="und ein dritter ist wirklich wasserdicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn alle Objekte <i>wirklich</i>&#160;auf partiell initialisierten Zustand vorbereitet sind,
</p>
<p>
und auch &#252;ber ihre APIs dem Nutzer diese Unterscheidnung mit aufzwingen
</p>
</body>
</html></richcontent>
<node CREATED="1480780253397" ID="ID_1966427410" MODIFIED="1518487921082" TEXT="zum Preis von deutlich Mehraufwand"/>
<node CREATED="1480780260508" ID="ID_1565963038" MODIFIED="1539382659215" TEXT="plus einer korrodierenden Wirkung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...welche darin besteht,
</p>
<p>
da&#223; man &#252;berall, in der Fl&#228;che, sich um Zustandsabh&#246;ngigkeit k&#252;mmern mu&#223;,
</p>
<p>
und deshalb dazu neigt, das Problem jeweils wegzutricksen.
</p>
<p>
</p>
<p>
Es besteht also die gro&#223;e Gefahr, zu &quot;s&#252;ndigen&quot; und
</p>
<p>
heimlich in den &quot;wird schon nix passieren&quot; Fall zu geraten.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480780269867" ID="ID_1571900658" MODIFIED="1518487921082" TEXT="daf&#xfc;r kann nie was passieren"/>
</node>
</node>
<node CREATED="1480780494717" ID="ID_432076484" MODIFIED="1518487921082" TEXT="Bewertung">
<node CREATED="1480780498437" ID="ID_1806301944" MODIFIED="1539382659226" TEXT="nur die Ctor-L&#xf6;sung ist geradlinig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, nur diese L&#246;sung gr&#252;ndet in der Natur der behandelten Sachverhalte.
</p>
<p>
Wenn etwas seinem Wesen nach nicht optional ist, dann wird es auch nicht optional behandelt.
</p>
<p>
Es ist keine weitere Argumentation notwendig.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480780538975" ID="ID_1139883143" MODIFIED="1539382659232" TEXT="nur die &quot;pa&#xdf;t schon&quot;-L&#xf6;sung ist vern&#xfc;nftig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nach allen g&#228;ngigen Prinzipien der instrumentellen Vernunft.
</p>
<p>
KISS
</p>
<p>
YAGNI
</p>
<p>
&quot;fokussiere Dich&quot;
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1480780704849" ID="ID_483861197" MODIFIED="1518487921082" TEXT="Abw&#xe4;gung">
<node CREATED="1480780835319" ID="ID_1263364267" MODIFIED="1540506617751">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
hey, es ist <b>mein Leben</b>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...hab ich mich je anders entschieden?
</p>
<p>
<i>wenn</i>&#160;ich mich &#252;berhaupt entscheiden konnte...
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1540506618429" ID="ID_654526245" MODIFIED="1540506765576" TEXT="w&#xe4;hle die geradlinige L&#xf6;sung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
die L&#246;sung entspricht der inneren Natur der Dinge
</li>
<li>
sie bedeutet zwar (leider) eine zus&#228;tzliche Verpflichtung beim Erzeugen des Diff
</li>
<li>
aber im Fehlerfall scheitern wir halbwegs sauber (Exception, dysfunktionales UI)
</li>
</ul>
</body>
</html></richcontent>
<arrowlink DESTINATION="ID_1156407347" ENDARROW="Default" ENDINCLINATION="57;0;" ID="Arrow_ID_665420852" STARTARROW="None" STARTINCLINATION="11;38;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1480780930115" HGAP="5" ID="ID_1156407347" MODIFIED="1540506801313" TEXT="L&#xf6;sung: per Konstruktor festlegen" VSHIFT="6">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nochmal zusammengefa&#223;t
</p>
<ul>
<li>
immer wenn ein Feld <i>seinem Wesen nach</i>&#160;zwingend gesetzt sein mu&#223; (und aus keinem anderen Grund)
</li>
<li>
dann wird dies per Konstruktor so erzwungen
</li>
<li>
daher mu&#223; dann im Diff bereits im INS-Verb die notwendige Information transportiert werden
</li>
<li>
das hei&#223;t, bei der Diff-Erzeugung mu&#223; man aufpassen und an dieser Stelle bereits einen Record mit den Daten liefern
</li>
</ul>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1156407347" ENDARROW="Default" ENDINCLINATION="57;0;" ID="Arrow_ID_665420852" SOURCE="ID_654526245" STARTARROW="None" STARTINCLINATION="11;38;"/>
<icon BUILTIN="button_ok"/>
<icon BUILTIN="full-1"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_562532566" MODIFIED="1557498707226" TEXT="Layout-Manager">
<linktarget COLOR="#fec680" DESTINATION="ID_562532566" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_130009025" SOURCE="ID_758873433" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1480639469981" ID="ID_983391388" MODIFIED="1557498707226" TEXT="Abstraktionen"/>
<node CREATED="1540647717236" ID="ID_1682094694" MODIFIED="1557498707226" TEXT="Konzept f&#xfc;r Gr&#xf6;&#xdf;en-Steuerung" VGAP="25">
<node CREATED="1540647728418" ID="ID_71764405" MODIFIED="1557498707226" TEXT="grunds&#xe4;tzlich">
<node CREATED="1540647743681" ID="ID_344681852" MODIFIED="1557498707226" TEXT="soweit m&#xf6;glich bei der Automatik bleiben">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1541862056646" ID="ID_262489955" MODIFIED="1557498707226">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Widgets arbeiten <b>stets in Pixeln</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#435e98" CREATED="1540647761611" ID="ID_841316619" MODIFIED="1557498707226" TEXT="Erweiterungs-Punkte">
<arrowlink COLOR="#59699c" DESTINATION="ID_1103556230" ENDARROW="Default" ENDINCLINATION="-876;0;" ID="Arrow_ID_72712594" STARTARROW="None" STARTINCLINATION="-1659;0;"/>
<icon BUILTIN="info"/>
<node CREATED="1540647890477" ID="ID_347383643" MODIFIED="1557498707226" TEXT="direkt die Properties setzen"/>
<node CREATED="1540647897963" ID="ID_155000915" MODIFIED="1557498707226" TEXT="an signal_size_allocate() anh&#xe4;ngen"/>
</node>
<node CREATED="1540647995231" ID="ID_37565869" MODIFIED="1557498707226" TEXT="wir kontrollieren nur die vertikale Ausdehnung"/>
<node CREATED="1540648007237" ID="ID_679717206" MODIFIED="1557498707226" TEXT="der Canvas folgt der Header-Struktur">
<node CREATED="1540648025554" ID="ID_1681608373" MODIFIED="1557498707226" TEXT="diese ist weitgehend automatisch"/>
<node CREATED="1540648036313" ID="ID_372148054" MODIFIED="1557498707226" TEXT="Quer-Verkoppelung schaffen">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541857185478" ID="ID_1038931568" MODIFIED="1557498707226" TEXT="Zeit-Darstellung">
<linktarget COLOR="#2a79c1" DESTINATION="ID_1038931568" ENDARROW="Default" ENDINCLINATION="-511;19;" ID="Arrow_ID_1052516165" SOURCE="ID_1316730142" STARTARROW="None" STARTINCLINATION="-253;-12;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1541857206083" ID="ID_1480494725" MODIFIED="1557498707226" TEXT="Problem-Komplex">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1541857225304" ID="ID_1753842977" MODIFIED="1557498707226" TEXT="&#xdc;bersetzung Zeit -&gt; Pixel"/>
<node CREATED="1541857235471" ID="ID_1096265760" MODIFIED="1557498707226" TEXT="integrieren von Zeitangaben"/>
<node CREATED="1541857252860" ID="ID_298952812" MODIFIED="1557498707226" TEXT="Zeit-Rasterung (Time-Grid)"/>
<node CREATED="1541857273978" ID="ID_10543409" MODIFIED="1557498707226" TEXT="managing the Zoom-Window"/>
</node>
<node CREATED="1541857340976" ID="ID_433103364" MODIFIED="1557498707226" TEXT="Lumiera Time Framework">
<node CREATED="1541857349526" ID="ID_1259099260" MODIFIED="1557498707226" TEXT="bietet Konzept &quot;Grid&quot;"/>
</node>
<node CREATED="1541861495569" ID="ID_1949450244" MODIFIED="1557498707226" TEXT="generische ZoomWindow-Komponente">
<arrowlink COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-519;-1168;" ID="Arrow_ID_1674512697" STARTARROW="None" STARTINCLINATION="490;0;"/>
</node>
<node CREATED="1541857367446" ID="ID_34718193" MODIFIED="1557498707226" TEXT="Anfragen">
<node CREATED="1541857411462" ID="ID_1874282992" MODIFIED="1557498707226" TEXT="Pixel-Intervall -&gt; TimeSpan">
<node CREATED="1541857482489" ID="ID_524756641" MODIFIED="1557498707226" TEXT="timeline custom drawing"/>
</node>
</node>
</node>
</node>
<node CREATED="1480639473324" ID="ID_191170582" MODIFIED="1557498707226" TEXT="eval pass"/>
<node CREATED="1555022703032" ID="ID_13722484" MODIFIED="1557498707226" TEXT="Verdrahtung">
<node CREATED="1555022710839" ID="ID_1166296639" MODIFIED="1557498707226" TEXT="mu&#xdf; in alle Nutzer injiziert werden"/>
<node CREATED="1555022761189" ID="ID_640769952" MODIFIED="1557498707226" TEXT="wie? geht wohl nur direkte Referenz">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es ist hier kein by-Name-Zugriff,
</p>
<p>
weil ein Layout-Manager immer nur im Bereich eines TimelineWidget relevant ist
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555023446038" ID="ID_858959830" MODIFIED="1557498707226" TEXT="clients">
<node CREATED="1555023449597" ID="ID_1228634821" MODIFIED="1557498707226" TEXT="TimelineCanvas">
<node CREATED="1555023483241" ID="ID_753460169" MODIFIED="1557498707226" TEXT="zum Feststellen des zu zeichnenden Bereiches"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_1306244096" MODIFIED="1557498707226" TEXT="Track-Presenter">
<linktarget COLOR="#fec680" DESTINATION="ID_1306244096" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_951723874" SOURCE="ID_1570849604" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1480741594101" ID="ID_1017414696" MODIFIED="1557498707226" TEXT="mit doppeltem Display-Kontext verbinden"/>
<node CREATED="1480741545196" ID="ID_1657879480" MODIFIED="1557498707226" TEXT="TrackWidget">
<node CREATED="1480741552611" ID="ID_1987203186" MODIFIED="1557498707226" TEXT="erzeugen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480741555930" ID="ID_1869427213" MODIFIED="1557498707226">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wie in Kopf <i>und</i>&#160;Rumpf injizieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1540259854597" ID="ID_330440597" MODIFIED="1557498707226" TEXT="Invariante gesucht">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1540259882177" ID="ID_269340322" MODIFIED="1557498707226" TEXT="TrackPresenter braucht....">
<node CREATED="1540259899289" ID="ID_1550133488" MODIFIED="1557498707226" TEXT="einen Head-Slave"/>
<node CREATED="1540259905062" ID="ID_1804783123" MODIFIED="1557498707226" TEXT="einen Body-Slave"/>
</node>
<node CREATED="1540260041187" ID="ID_686871621" MODIFIED="1557498707226" TEXT="Grundstruktur?">
<icon BUILTIN="help"/>
<node CREATED="1540260073971" ID="ID_564056863" MODIFIED="1557498707226" TEXT="TrackPresenter hat DisplayFrame"/>
<node CREATED="1540260094236" ID="ID_439265924" MODIFIED="1557498707226" TEXT="DisplayFrame kann Sub-DisplayFrame erzeugen"/>
<node CREATED="1540260106675" ID="ID_432321502" MODIFIED="1557498707226" TEXT="aus sub-Frame kann man sub-TrackPresenter bauen"/>
</node>
</node>
</node>
<node CREATED="1540346398887" ID="ID_1953592630" MODIFIED="1557498707226" TEXT="DisplayFrame">
<node CREATED="1540346412629" ID="ID_1434445651" MODIFIED="1557498707226">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
abstrahiert den Zugang zum <i>zugeh&#246;rigen Widget</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540346455423" ID="ID_535248075" MODIFIED="1557498707226" TEXT="schafft die invariante Struktur im Verh&#xe4;ltnis zu den Kindern"/>
<node CREATED="1540505441706" HGAP="28" ID="ID_1492670388" MODIFIED="1557498707226" TEXT="Lebenszyklus" VSHIFT="20">
<node CREATED="1540505464975" ID="ID_195276443" MODIFIED="1557498707226" TEXT="DisplayFrame (als Member) an TrackPresenter gebunden"/>
<node CREATED="1540505481022" ID="ID_1566437478" MODIFIED="1557498707226" TEXT="konkrete Widgets leben im DisplayFrame"/>
<node CREATED="1540506987900" ID="ID_1173067540" MODIFIED="1557498707226">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sub-Frame wird f&#252;r <i>unsere</i>&#160;Kinder erzeugt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540507009225" ID="ID_104172694" MODIFIED="1557498707227" TEXT="Kinder werden vor Members zerst&#xf6;rt"/>
<node CREATED="1540507040165" ID="ID_1123333647" MODIFIED="1557498707227">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Fazit</u>: DisplayFrame kann sich auf Parent verlassen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1540511179218" FOLDED="true" ID="ID_1592328868" MODIFIED="1557498707227" TEXT="Problem: Ankerpunkt">
<icon BUILTIN="button_ok"/>
<node CREATED="1540511250489" ID="ID_49278916" MODIFIED="1540511273407" TEXT="wie h&#xe4;ngt man die ganze Struktur auf?"/>
<node CREATED="1540511274366" ID="ID_1134388060" MODIFIED="1540511281241" TEXT="L&#xf6;sungsans&#xe4;tze">
<node CREATED="1540511304602" ID="ID_814037364" MODIFIED="1540512611946" TEXT="halb konstruierter Frame ohne Widgets">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
die Parent/Anker-Widgets werden auf ein Interface reduziert, z.B. Gtk::Container
</li>
<li>
man reicht einen halbfertigen Frame rein, in dem bereits die Anker-Widgets gesetzt sind
</li>
<li>
dann ruft man eine Konstruktor-Funktion auf, die die eigentlichen Widgets erstellt und verdrahtet
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1540511389686" ID="ID_1017315025" MODIFIED="1540512614058" TEXT="Anker-Widgets explizit &#xfc;bergeben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
die Anker-Widgets kommen per Ref auf Interface
</li>
<li>
sie werden explizit an den ctor des Controllers &#252;bergeben
</li>
<li>
dieser verwendet die Referenzen, um in einem Streich den DisplayFrame incl. eigentlicher Widgets zu erzeugen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1540511282493" ID="ID_1902168929" MODIFIED="1540512616361" TEXT="Parent-Frame hat virtuelle Methoden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
der ctor des Controllers bekommt eine Ref. auf den Parent-Frame
</li>
<li>
dieser bietet eine virtuelle Methode, mit der sich die Widgets installieren lassen
</li>
<li>
wenn der Controller den DisplayFrame erzeugt, werden dort unmittelbar die Widgets konstruiert
</li>
<li>
sodann rufen wir die builder-Funktion auf, um sie im Parent-Kontext zu verankern
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="full-3"/>
<node CREATED="1540511879965" ID="ID_1507237353" MODIFIED="1540511884826" TEXT="Varianten denkbar">
<node CREATED="1540511887116" ID="ID_467242392" MODIFIED="1540512180423" TEXT="nicht-virtuelle Methode">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...aber die gesamte Verankerungs-Aktion l&#228;&#223;t sich rein auf Widget-Interface-Ebene machen.
</p>
<p>
D.h. wir rufen den parent-Frame, aber die Implementierung der Methode greift nicht direkt
</p>
<p>
auf die Widgets im Frame zu, sondern delegiert an eine Hilfsfunktion....
</p>
<p>
STOP. Damit ist die virtuelle Methode nur verschoben
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1540512410629" ID="ID_1212514016" MODIFIED="1540512481133" TEXT="generisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der ctor des DisplayFrame nimmt einen generischen Typ (Template),
</p>
<p>
von dem nur erwartet wird, da&#223; er eine &quot;Verankerungs&quot;-Funktion bietet
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540512486974" ID="ID_709169542" MODIFIED="1553910607360" TEXT="Funktor">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der ctor des DisplayFrame bekommt einen Funktor oder Lambda,
</p>
<p>
welchen er aufruft, um seine neu erstellten Widgets zu verankern
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1540588158613" ID="ID_725383313" MODIFIED="1540588172897" TEXT="Funktor ist...">
<node CREATED="1540588173682" ID="ID_1607525948" MODIFIED="1540588180650" TEXT="entweder ein virtueller dispatch"/>
<node CREATED="1540588181550" ID="ID_1634888629" MODIFIED="1540951684741" TEXT="oder de-facto generisch">
<linktarget COLOR="#14409c" DESTINATION="ID_1634888629" ENDARROW="Default" ENDINCLINATION="-255;27;" ID="Arrow_ID_797597310" SOURCE="ID_417702154" STARTARROW="None" STARTINCLINATION="224;-18;"/>
</node>
</node>
</node>
</node>
<node CREATED="1540512596221" ID="ID_417702154" MODIFIED="1540588240683" TEXT="neige der 3. L&#xf6;sung zu">
<arrowlink COLOR="#14409c" DESTINATION="ID_1634888629" ENDARROW="Default" ENDINCLINATION="-255;27;" ID="Arrow_ID_797597310" STARTARROW="None" STARTINCLINATION="224;-18;"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_1999928728" MODIFIED="1557498707227" TEXT="Track-Anzeige">
<linktarget COLOR="#fec680" DESTINATION="ID_1999928728" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_506785204" SOURCE="ID_1131206858" STARTARROW="None" STARTINCLINATION="407;0;"/>
<linktarget COLOR="#7696bb" DESTINATION="ID_1999928728" ENDARROW="Default" ENDINCLINATION="113;285;" ID="Arrow_ID_198017810" SOURCE="ID_1389266781" STARTARROW="None" STARTINCLINATION="-139;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1480607033512" ID="ID_1815699851" MODIFIED="1557498707227" TEXT="Kopf">
<node CREATED="1540684299064" ID="ID_1911781593" MODIFIED="1557498707227" TEXT="Header-Pane">
<node CREATED="1540641296565" HGAP="31" ID="ID_991484939" MODIFIED="1557498707227" TEXT="NavigationWidget" VSHIFT="40">
<arrowlink DESTINATION="ID_1952536945" ENDARROW="Default" ENDINCLINATION="136;-157;" ID="Arrow_ID_1459742640" STARTARROW="None" STARTINCLINATION="112;0;"/>
<node CREATED="1540682850119" HGAP="39" ID="ID_1885212949" MODIFIED="1557498707227" TEXT="ein Grid">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1540641305092" HGAP="50" ID="ID_18552766" MODIFIED="1557498707227" TEXT="PatchbayWidget" VSHIFT="-2">
<arrowlink DESTINATION="ID_151954769" ENDARROW="Default" ENDINCLINATION="263;-88;" ID="Arrow_ID_1923805019" STARTARROW="None" STARTINCLINATION="93;24;"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1540682893097" HGAP="65" ID="ID_419298158" MODIFIED="1557498707227" TEXT="interne Struktur" VSHIFT="11">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1540682901320" ID="ID_1054686680" MODIFIED="1557498707227" TEXT="stacked boxes?">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1540682908088" ID="ID_785207504" MODIFIED="1557498707227" TEXT="table grid?">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1540683803329" ID="ID_290204038" MODIFIED="1557498707227" TEXT="rekursive Struktur">
<icon BUILTIN="forward"/>
<node CREATED="1540683824278" ID="ID_1473337838" MODIFIED="1557498707227" TEXT="ein Grid mit 4 Feldern">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1540683889813" ID="ID_1511067098" MODIFIED="1557498707227" TEXT="2.Quadrant == Placement-Symbol">
<node CREATED="1541095855984" ID="ID_1032237384" MODIFIED="1557498707227" TEXT="verwendet ElementBoxWidget">
<arrowlink COLOR="#f6cca4" DESTINATION="ID_368245484" ENDARROW="Default" ENDINCLINATION="-599;39;" ID="Arrow_ID_1199047781" STARTARROW="None" STARTINCLINATION="-698;-271;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1540683900716" ID="ID_212914080" MODIFIED="1557498707227" TEXT="1.Quadrant == Controls"/>
<node CREATED="1540683916490" ID="ID_191999039" MODIFIED="1557498707227" TEXT="3.Quadrant : leer (Fork)"/>
<node CREATED="1540683829267" ID="ID_828415712" MODIFIED="1557498707227" TEXT="in 4.Quadrant kommt">
<node CREATED="1540683866753" ID="ID_616355214" MODIFIED="1557498707227" TEXT="entweder content control"/>
<node CREATED="1540683879103" ID="ID_96481889" MODIFIED="1557498707227" TEXT="oder ein nested HeaderPane"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1540747470806" HGAP="97" ID="ID_831752558" MODIFIED="1557498707227" TEXT="Frage: Patchbay vs TrackHead?" VSHIFT="5">
<icon BUILTIN="help"/>
<node CREATED="1540747516509" ID="ID_1965076800" MODIFIED="1557498707227" TEXT="ist TrackHeadWidget &#xfc;berfl&#xfc;ssig?">
<arrowlink COLOR="#6ba7db" DESTINATION="ID_415092517" ENDARROW="Default" ENDINCLINATION="-390;0;" ID="Arrow_ID_1346421423" STARTARROW="None" STARTINCLINATION="445;0;"/>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1540747533463" ID="ID_1845120165" MODIFIED="1557498707227" TEXT="dann w&#xe4;re TimelineHeader == PatchbayWidget"/>
<node CREATED="1540747550734" ID="ID_843399235" MODIFIED="1557498707227" TEXT="macht Sinn...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn das Patchbay-Widget mu&#223; diverse Interna des Tracks beachten,
</p>
<p>
so z.B. sein Placement, welches <i>teilweise als Properties</i>&#160;des Track abgebildet wird.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540862631576" ID="ID_136673309" MODIFIED="1557498707227" TEXT="aber: Patchbay ist mehr als ein TrackHead">
<icon BUILTIN="yes"/>
<node CREATED="1540862657930" ID="ID_505897358" MODIFIED="1557498707227" TEXT="das Scrollen nicht vergessen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1540862671211" ID="ID_1297724441" MODIFIED="1557498707227" TEXT="brauche eine Scroll-Pane ohne Scrolbar">
<node CREATED="1540862789523" ID="ID_1163137569" MODIFIED="1557498707227" TEXT="geht das?">
<icon BUILTIN="help"/>
<node CREATED="1540863135984" ID="ID_1095034635" MODIFIED="1557498707227" TEXT="wohl nicht direkt"/>
<node CREATED="1540863146507" ID="ID_1788133857" MODIFIED="1557498707227" TEXT="ScrolledWindow verwendet Gtk::Viewport">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1540863578545" ID="ID_1986597218" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-adjustments-easy.html.en" MODIFIED="1557498707227" TEXT="Tutorial: separate Scrollbar f&#xfc;r TextView"/>
<node CREATED="1540863719920" ID="ID_1675657033" MODIFIED="1557498707227" TEXT="analog: das Adjustment von der BodyPane verwenden"/>
<node CREATED="1540863740331" ID="ID_432547471" MODIFIED="1557498707227" TEXT="und ein (passives) Adjustment f&#xfc;r horizontal"/>
<node COLOR="#338800" CREATED="1540866723618" ID="ID_943818911" MODIFIED="1557498707227" TEXT="sofort im ctor verdrahten">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1540862691920" ID="ID_415092517" MODIFIED="1557498707227" TEXT="das ist dann sinnvollerweise die Patchbay als Ganzes">
<linktarget COLOR="#6ba7db" DESTINATION="ID_415092517" ENDARROW="Default" ENDINCLINATION="-390;0;" ID="Arrow_ID_1346421423" SOURCE="ID_1965076800" STARTARROW="None" STARTINCLINATION="445;0;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1553907064499" HGAP="11" ID="ID_1688412302" MODIFIED="1557498707227" TEXT="Fazit" VSHIFT="5">
<node CREATED="1553907073255" ID="ID_1710444282" MODIFIED="1557498707227" TEXT="Patchbay ist ein Container f&#xfc;r die Track Heads"/>
<node CREATED="1553907087204" ID="ID_752287871" MODIFIED="1557498707227" TEXT="zust&#xe4;ndig f&#xfc;r das Einh&#xe4;ngen und das vertikale scrolling"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1480607035712" ID="ID_1405339006" MODIFIED="1557498707227" TEXT="Rumpf" VGAP="5">
<node CREATED="1544835109183" ID="ID_1598364198" MODIFIED="1557498707227" TEXT="Konzept: RulerTrack">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544849233126" ID="ID_665765482" MODIFIED="1557498707227" TEXT="#1194 Handling of Ruler Tracks">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1544835125485" ID="ID_1915741861" MODIFIED="1557498707227" TEXT="Verallgemeinerung">
<node CREATED="1544835133005" ID="ID_168632162" MODIFIED="1557498707227" TEXT="Time Ruler"/>
<node CREATED="1544835135955" ID="ID_676965041" MODIFIED="1557498707227" TEXT="Overview Ruler"/>
</node>
<node CREATED="1544835146834" ID="ID_1998202502" MODIFIED="1557498707227" TEXT="Konfigurierbar">
<node CREATED="1544835156145" ID="ID_967222646" MODIFIED="1557498707227" TEXT="Content-Anzeige"/>
<node CREATED="1544835160640" ID="ID_498988220" MODIFIED="1557498707227" TEXT="Bereichs-Anzeige"/>
<node CREATED="1544835165903" ID="ID_80922465" MODIFIED="1557498707227" TEXT="Timecode + Ticks">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_80922465" ENDARROW="Default" ENDINCLINATION="343;0;" ID="Arrow_ID_630173444" SOURCE="ID_1619835790" STARTARROW="None" STARTINCLINATION="376;0;"/>
</node>
<node CREATED="1544835172206" ID="ID_429836650" MODIFIED="1557498707227" TEXT="Marker"/>
</node>
<node CREATED="1544837600332" ID="ID_415425563" MODIFIED="1557498707227" TEXT="konkrete Konfig">
<node CREATED="1544837522661" ID="ID_591280489" MODIFIED="1557498707227" TEXT="mehrere Zust&#xe4;nde">
<node CREATED="1544837527828" ID="ID_596254877" MODIFIED="1557498707227" TEXT="collapsed"/>
<node CREATED="1544837530980" ID="ID_1927125856" MODIFIED="1557498707227" TEXT="expanded - Leaf"/>
<node CREATED="1544837543434" ID="ID_450659052" MODIFIED="1557498707227" TEXT="expanded - Fork"/>
</node>
<node CREATED="1544837618776" ID="ID_262509677" MODIFIED="1557498707227" TEXT="wer w&#xe4;hlt Belegung?">
<node CREATED="1544837626783" ID="ID_1328055654" MODIFIED="1557498707227" TEXT="basiert auf Regeln"/>
<node CREATED="1544837630150" ID="ID_1082045785" MODIFIED="1557498707227" TEXT="hat Scope-Logik"/>
<node CREATED="1544837640573" ID="ID_599648265" MODIFIED="1557498707227" TEXT="==&gt; &quot;riecht&quot; nach Placement"/>
<node CREATED="1544837700422" ID="ID_1038765642" MODIFIED="1557498707227" TEXT="Session mu&#xdf; f&#xfc;r jeden Track....">
<icon BUILTIN="yes"/>
<node CREATED="1544837719898" ID="ID_29304851" MODIFIED="1557498707227" TEXT="expanded-config senden"/>
<node CREATED="1544837729313" ID="ID_797684565" MODIFIED="1557498707227" TEXT="collapsed config senden"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1544837659506" ID="ID_1608620186" MODIFIED="1557498707227" TEXT="Fazit: GUI ist passiv!">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1554996492819" ID="ID_1391546845" MODIFIED="1557498707227" TEXT="Konfig laut systematischem Modell">
<arrowlink COLOR="#3e63c5" DESTINATION="ID_433238862" ENDARROW="Default" ENDINCLINATION="-612;-125;" ID="Arrow_ID_1858329997" STARTARROW="None" STARTINCLINATION="-747;0;"/>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1553911718090" ID="ID_612121351" MODIFIED="1557498707227" TEXT="praktische Ausgestalutng">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1553911730196" ID="ID_1967793006" MODIFIED="1557498707227" TEXT="offene Fragen">
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1553911737751" ID="ID_669315030" MODIFIED="1557498707227" TEXT="ist RulerTrack ein Tangible?">
<icon BUILTIN="help"/>
<node CREATED="1553911756429" ID="ID_1273721468" MODIFIED="1557498707227" TEXT="pro">
<node CREATED="1553911764980" ID="ID_258039981" MODIFIED="1557498707227" TEXT="Diff-Binding nach Schema-F"/>
</node>
<node CREATED="1553911796208" ID="ID_1254226888" MODIFIED="1557498707227" TEXT="con">
<node CREATED="1553911798428" ID="ID_1946109008" MODIFIED="1557498707227" TEXT="es bietet nur teilweise die Aktionen eines Tangible"/>
</node>
</node>
</node>
</node>
<node CREATED="1544837985030" HGAP="-90" ID="ID_528262547" MODIFIED="1557498707227" TEXT="Verh&#xe4;ltnis zum Time-Ruler" VSHIFT="87">
<edge STYLE="linear"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1544837991621" ID="ID_1767589633" MODIFIED="1557498707227" TEXT="k&#xfc;hne Idee: zusammenlegen">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1544838014602" ID="ID_1780110896" MODIFIED="1557498707227" TEXT="d.h. Time-Ruler == Ruler vom root-Track"/>
<node CREATED="1544838027901" ID="ID_519696967" MODIFIED="1557498707227" TEXT="Header-Pane: Platz &quot;geschickt&quot; nutzen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1555082395840" ID="ID_104473939" MODIFIED="1557498707227" TEXT="ABER trotzdem separat darzustellen">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1555082433635" ID="ID_1213306272" MODIFIED="1557498707227" TEXT="Time-Ruler &quot;allways on top&quot;"/>
<node CREATED="1555082442705" ID="ID_497245117" MODIFIED="1557498707227">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Unterscheidung <b>verschoben</b>&#160;in die Darstellung
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
anstatt (konventionell) den Time-Ruler separat explizit auszuprogrammieren,
</p>
<p>
bekommen wir nun eine gemeinsame Darstellungs-Mechanik,
</p>
<p>
welche dann aber in zwei getrennten Bereichen jeweils anders parametrisiert
</p>
<p>
zur Anwendung kommt
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#435e98" CREATED="1555082487012" ID="ID_217824628" MODIFIED="1557498707228" TEXT="trotzdem sinnvolles Potential zur Vereinheitlichung">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1544839243971" ID="ID_1000231823" MODIFIED="1557498707228" TEXT="Ausf&#xfc;hrung obliegt der Session"/>
</node>
</node>
<node CREATED="1540641313667" ID="ID_1952536945" MODIFIED="1557498707228" TEXT="Time-Ruler">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1952536945" ENDARROW="Default" ENDINCLINATION="136;-157;" ID="Arrow_ID_1459742640" SOURCE="ID_991484939" STARTARROW="None" STARTINCLINATION="112;0;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544849233126" ID="ID_904348697" MODIFIED="1557498707228" TEXT="#1195 Timecode Ruler">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1554996306756" ID="ID_1619835790" MODIFIED="1557498707228" TEXT="auf spezielle Konfig eines &quot;Ruler-Tracks&quot; zur&#xfc;ckf&#xfc;hren">
<arrowlink DESTINATION="ID_80922465" ENDARROW="Default" ENDINCLINATION="343;0;" ID="Arrow_ID_630173444" STARTARROW="None" STARTINCLINATION="376;0;"/>
</node>
<node CREATED="1555080526516" ID="ID_1733081392" MODIFIED="1557498707228">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: <i><font color="#bb4444">mu&#223; immer sichtbar sein</font></i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1555080572765" ID="ID_577805455" MODIFIED="1557498707228" TEXT="im Detail etwas komplexer...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aber es bleibt bei diesem Prinzip.
</p>
<p>
</p>
<p>
Des Genaueren, es gibt eine jeweils festgesetzte Menge von Elementen
</p>
<p>
am Anfang des Track-Profils, welche immer sichtbar bleiben soll
</p>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_577805455" ENDARROW="Default" ENDINCLINATION="146;-10;" ID="Arrow_ID_228489961" SOURCE="ID_447173098" STARTARROW="Default" STARTINCLINATION="110;0;"/>
</node>
</node>
</node>
<node CREATED="1555082672083" ID="ID_1185653910" MODIFIED="1557498707228" TEXT="BodyCanvasWidget">
<node CREATED="1555082682753" ID="ID_1277383747" MODIFIED="1557498707228" TEXT="verwaltet und organisiert die Struktur"/>
<node CREATED="1555082693273" ID="ID_723726755" MODIFIED="1557498707228" TEXT="hat zwei konkrete TimelineCanvas">
<node CREATED="1555082703199" ID="ID_81861736" MODIFIED="1557498707228" TEXT="oben f&#xfc;r den Time-Ruler"/>
<node CREATED="1555082710728" ID="ID_676334326" MODIFIED="1557498707228" TEXT="unten f&#xfc;r die Track-Struktur"/>
</node>
<node CREATED="1555198475915" ID="ID_216668392" MODIFIED="1557498707228" TEXT="Koordinieren der draw-Aktivit&#xe4;t">
<node CREATED="1555198484257" ID="ID_447173098" MODIFIED="1557498707228" TEXT="Problem: Aufteilung">
<arrowlink DESTINATION="ID_577805455" ENDARROW="Default" ENDINCLINATION="146;-10;" ID="Arrow_ID_228489961" STARTARROW="Default" STARTINCLINATION="110;0;"/>
<node CREATED="1555198495266" ID="ID_118142711" MODIFIED="1557498707228" TEXT="was kommt in den (immer sichtbaren) oberen Teil?"/>
<node CREATED="1555198558887" ID="ID_1718337163" MODIFIED="1557498707228" TEXT="Beide Canvas-Instanzen verwenden das gleiche Koordinatensystem">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1555198633466" ID="ID_780787053" MODIFIED="1557498707228" TEXT="Auf Interpretieren des Struktur-Profils zur&#xfc;ckgef&#xfc;hrt">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555247298877" ID="ID_1739468610" MODIFIED="1557498707228" TEXT="das mu&#xdf; dann aber verallgemeinert wertden">
<icon BUILTIN="yes"/>
<node CREATED="1555247361420" ID="ID_1263829263" MODIFIED="1557498707228" TEXT="warum?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil Verallgemeinern einer einzigen Aktion
</p>
<p>
stets besser ist, als repetitives aufdoppeln und variieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555247377809" ID="ID_281745763" MODIFIED="1557498707228" TEXT="Erwartete Anforderungen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
content renderer
</li>
<li>
vom speziellen Track abh&#228;ngige Bereichsmarkierungen
</li>
<li>
lokale und spezielle Overlays sind zu zeichnen
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555247320686" ID="ID_1896093043" MODIFIED="1557590822696" TEXT="brauche Visitor mit flexiblen Argumenten">
<icon BUILTIN="pencil"/>
<node CREATED="1555247502178" ID="ID_297247554" MODIFIED="1557498707228" TEXT="Anforderung">
<icon BUILTIN="yes"/>
<node CREATED="1555247509182" ID="ID_184476156" MODIFIED="1557498707228" TEXT="funktioniert genauso wie Visitor im Diff, mit Verb-Tokens"/>
<node CREATED="1555247526934" ID="ID_679986589" MODIFIED="1557498707228" TEXT="aber jedes Verb nimmt andere Argumente"/>
<node CREATED="1555247545556" ID="ID_425297916" MODIFIED="1557498707228" TEXT="brauche in-Place Storage (wie ein union)"/>
<node CREATED="1555247559370" ID="ID_1379389656" MODIFIED="1557498707228" TEXT="soll insgesamt typsicher bleiben"/>
<node CREATED="1555247580247" ID="ID_54654021" MODIFIED="1557498707228" TEXT="aber nur 2 Indirektionen (double dispatch)"/>
</node>
<node CREATED="1555247609372" ID="ID_984933888" MODIFIED="1557498707228" TEXT="Konzept/Ansatz">
<icon BUILTIN="idea"/>
<node CREATED="1555247614626" ID="ID_279811814" MODIFIED="1557498707228" TEXT="das Verb-Token mit einem Union-Argument verwenden"/>
<node CREATED="1555247635823" ID="ID_893471557" MODIFIED="1557498707228" TEXT="und dieses Setup in einen Adapter / Builder verpacken"/>
<node CREATED="1555247665396" ID="ID_1210108422" MODIFIED="1557498707228" TEXT="vermutlich werden Lambdas eine Rolle spielen"/>
<node CREATED="1555247678988" ID="ID_1615700205" MODIFIED="1557498707228" TEXT="aber ich m&#xf6;chte Heap-Storage vermeiden"/>
</node>
<node COLOR="#338800" CREATED="1555247704342" FOLDED="true" ID="ID_929740643" MODIFIED="1560172875969" TEXT="Entwurf/Test">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1555247713060" ID="ID_1159666241" MODIFIED="1557590555065" TEXT="proof-of-concept">
<icon BUILTIN="button_ok"/>
<node CREATED="1555247744121" ID="ID_1280520595" MODIFIED="1557498707228" TEXT="ausgehend von Kopie des VerbToken"/>
<node CREATED="1555247757037" ID="ID_1249615365" MODIFIED="1557590532864" TEXT="(optional) vielleicht letztlich in eine L&#xf6;sung verschmelzen?">
<icon BUILTIN="hourglass"/>
<node CREATED="1557590535366" ID="ID_568258701" MODIFIED="1557590538950" TEXT="vermutlich ehr nicht"/>
<node CREATED="1557590539635" ID="ID_1843674392" MODIFIED="1557590549256" TEXT="da PolymorphicValue doch recht komplex ist"/>
</node>
</node>
<node COLOR="#338800" CREATED="1555806526685" ID="ID_192016641" MODIFIED="1557590525234" TEXT="L&#xf6;sungsansatz: PolymorphicValue">
<icon BUILTIN="button_ok"/>
<node CREATED="1555806541914" ID="ID_1260020116" MODIFIED="1557498707228" TEXT="der bietet genau den flexiblen inline-Buffer, den ich hier brauche">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich mit minimalem Admin-Overhead,
</p>
<p>
indem er sich auf die VTable des einzubettenden Typs abst&#252;tzt.
</p>
<p>
</p>
<p>
Die andere Alternative, der OpaqueHolder, verwendet selber nochmal einen zust&#228;zlichen virtuellen Holder,
</p>
<p>
und Variant pa&#223;t auch nicht, da ich ja mit Template-generierten Subklassen arbeite,
</p>
<p>
und daher nicht a priori die Liste aller einzubettenden Varianten kenne
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1555806670026" ID="ID_604641822" MODIFIED="1557590449417" TEXT="Probleme bei der Umsetzung">
<icon BUILTIN="button_ok"/>
<node CREATED="1555807073875" ID="ID_1971528084" MODIFIED="1557498707228" TEXT="std::apply verwenden">
<icon BUILTIN="stop-sign"/>
<node CREATED="1555807086938" ID="ID_354296634" MODIFIED="1557498707228" TEXT="gitbts noch nicht auf Debian-Stretch"/>
<node CREATED="1555807099280" ID="ID_1984270952" MODIFIED="1557498707228" TEXT="nachprogrammieren / extrahieren...?"/>
<node CREATED="1555807110911" ID="ID_1729201379" MODIFIED="1557498707228" TEXT="Ist auch nicht ohne Weiteres anwendbar auf den vorliegenden Fall">
<icon BUILTIN="button_cancel"/>
<node CREATED="1555807137136" ID="ID_1357571620" MODIFIED="1557498707228" TEXT="wir haben ein zus&#xe4;tzliches erstes Argument">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich hier der Visitor, der den Aufruf letztlich emfp&#228;ngt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555807172534" ID="ID_473316032" MODIFIED="1557498707228" TEXT="das m&#xfc;&#xdf;te man dann in das Tupel reinfrickeln"/>
<node CREATED="1555807181534" ID="ID_484250647" MODIFIED="1557498707228" TEXT="und dann auch noch den double-Dispatcher (hier das VerbToken) in einen Funktor wickeln"/>
<node CREATED="1555807203432" ID="ID_1628579018" MODIFIED="1557498707228" TEXT="dann besser direkt ausprogrammieren">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1555806696990" FOLDED="true" ID="ID_1464210384" MODIFIED="1557590459821" TEXT="kann nicht Tuple-Element per std::forward weitergeben">
<icon BUILTIN="button_cancel"/>
<node CREATED="1555806733962" ID="ID_1424612840" MODIFIED="1557498707228" TEXT="Compiler m&#xf6;chte eine RValue-Referenz"/>
<node CREATED="1555806760125" ID="ID_1741677842" MODIFIED="1557498707228" TEXT="workaround: das Tuple selber per std::forward an std::get &#xfc;bergeben">
<icon BUILTIN="button_cancel"/>
<node CREATED="1555806782283" ID="ID_1783286457" MODIFIED="1557498707228" TEXT="das machen andere anscheinend auch so"/>
<node CREATED="1555806792065" ID="ID_1773083646" MODIFIED="1557498707228" TEXT="Beispiel: die Textbook-Implementierung von std::apply"/>
<node CREATED="1555806824441" ID="ID_948993908" MODIFIED="1557498707228" TEXT="Resultat: aus dem std::get f&#xe4;llt eine rvalue-Referenz raus"/>
<node CREATED="1555806920309" ID="ID_1549876372" MODIFIED="1557498707228" TEXT="das k&#xf6;nnte sogar das Standard-Baumuster f&#xfc;r &quot;perfect forwarding&quot; sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn es handelt sich hierbei um einen Konstruktionstrick.
</p>
<p>
Scott Meyers spricht deshalb auch immer von &quot;unverersal references&quot; und unterscheidet
</p>
<p>
diese von einer expliziten RValue-Referenz.
</p>
<p>
</p>
<p>
Demnach w&#228;re das Standard-Baumuster, da&#223; alle Glieder <b>in</b>&#160; der perfect-forwarding-Kette
</p>
<p>
per universal-Reference miteinander verbunden sind. Und im Konkreten fall mu&#223; man
</p>
<p>
das so hintricksen, indem man die std::get-Funktion passend best&#252;ckt...
</p>
<p>
</p>
<p>
Au weia
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1557437798675" ID="ID_474705115" MODIFIED="1557498707228" TEXT="aus letztlich nicht gekl&#xe4;rten Gr&#xfc;nden ist mir das nicht gelungen...">
<arrowlink COLOR="#f05859" DESTINATION="ID_656447545" ENDARROW="Default" ENDINCLINATION="45;-420;" ID="Arrow_ID_1477395313" STARTARROW="None" STARTINCLINATION="649;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555806839235" ID="ID_1636335140" MODIFIED="1557498707228" TEXT="ist der workaround gef&#xe4;hrlich?">
<icon BUILTIN="help"/>
<node CREATED="1555806851177" ID="ID_1212118219" MODIFIED="1557498707228" TEXT="d.h. kommt am Ende nicht doch ein RValue an?"/>
<node CREATED="1555806866887" ID="ID_815971236" MODIFIED="1557498707228" TEXT="auch dann nicht: wenn die Funktion einen RValue verlangt??"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#3a0099" CREATED="1555806884936" ID="ID_1433427722" MODIFIED="1557498707228" TEXT="per Experiment verifizieren">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1555895525635" ID="ID_1402481371" MODIFIED="1557498707228" TEXT="(verwende eine ctor-tracking-Klasse)"/>
<node COLOR="#338800" CREATED="1555895463799" ID="ID_1147400949" MODIFIED="1557498707228" TEXT="Fehler entdeckt: ctor gibt Args per Value an das Tupel">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1555895488721" ID="ID_1447172232" MODIFIED="1557498707228" TEXT="JA! Es passiert eine move-Initialisierung">
<icon BUILTIN="broken-line"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1555947349235" ID="ID_599059144" MODIFIED="1557498707228" TEXT="L&#xf6;sung gesucht....">
<icon BUILTIN="button_ok"/>
<node CREATED="1555947359783" ID="ID_1366291443" MODIFIED="1557498707228" TEXT="noch schlimmer...">
<node CREATED="1555947367949" ID="ID_1145455475" MODIFIED="1557498707228" TEXT="auch die Textbook-Impl von std::apply funktioiniert genauso">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. std::get&lt;idx&gt; (std::forward&lt;TUP&gt; (tuple))
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555947482051" ID="ID_814853878" MODIFIED="1557498707228" TEXT="...und produziert den gleichen Compiler-Fehler">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn ich das Tupel als Referenz anliefere
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555947514403" ID="ID_1459759406" MODIFIED="1557498707228" TEXT="Kann den Fehler isoliert nicht nachstellen">
<icon BUILTIN="forward"/>
<node CREATED="1555947535499" ID="ID_218400480" MODIFIED="1557498707228" TEXT="try.cpp"/>
<node CREATED="1555947538554" ID="ID_1700362760" MODIFIED="1557498707228" TEXT="&quot;sinngem&#xe4;&#xdf;&quot; nachgebaut"/>
<node CREATED="1555947549617" ID="ID_386072993" MODIFIED="1557498707228" TEXT="das compiliert problemlos"/>
<node CREATED="1555947561535" ID="ID_858467762" MODIFIED="1557498707228" TEXT="und macht LValue-Initialisierung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sichtbar wenn man ein Trackr-Objekt
</p>
<p>
als value-Parameter auf der Zielfunktion verwendet.
</p>
<p>
</p>
<p>
Im extrahierten Beispiel wird das LValue-copy-initialisiert
</p>
<p>
wohingegen im realen code, wo auch das std::forward(tuple) dabei ist,
</p>
<p>
der betreffende Wert dann RValue-Initialisiert wird, d.h. dabei das betreffende Tupel-Element konsumiert
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555947661358" ID="ID_917133929" MODIFIED="1557498707228" TEXT="Ich seh den Unterschied nicht">
<icon BUILTIN="smily_bad"/>
<node CREATED="1555947705866" ID="ID_139554682" MODIFIED="1557498707228" TEXT="warum akzeptiert der Compiler die korrekte variante im realen Code nicht??"/>
<node CREATED="1555947747068" ID="ID_1646796994" MODIFIED="1557498707228" TEXT="f&#xfc;r mich sind beide Varianten (try.cpp und verb-visitor.hpp) &#xe4;quivaltent"/>
<node CREATED="1555947795281" ID="ID_1250854173" MODIFIED="1557498707228" TEXT="f&#xfc;r den Compiler anscheinend nicht">
<icon BUILTIN="idea"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1555947814658" ID="ID_1580965808" MODIFIED="1557498707228" TEXT="das k&#xf6;nne ein Ansatzpunkt sein">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1557414354359" ID="ID_961298704" MODIFIED="1557498707228" TEXT="Problem ist die aufgerufene Ziel-Funktion">
<icon BUILTIN="info"/>
<node CREATED="1557414397598" ID="ID_1788944843" MODIFIED="1557498707228" TEXT="der std::apply-Mechanismus funktioniert nur direkt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h er funktioniert nur, wenn man das std::get&lt;idx&gt; (tuple) unmittelbar an den jeweiligen Ziel-Parameter bindet
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1557414442871" ID="ID_501615874" MODIFIED="1557498707228" TEXT="dagegen std::forward w&#xe4;hlt flexibel einen von zwei overloads">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich einen, der einen LValue entgegennimmt
</p>
<p>
und einen, der einen RValue entgegennimmt
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1557414483962" ID="ID_656447545" MODIFIED="1557498707228" TEXT="und dies kann ich hier nicht nachbilden">
<linktarget COLOR="#f05859" DESTINATION="ID_656447545" ENDARROW="Default" ENDINCLINATION="45;-420;" ID="Arrow_ID_1477395313" SOURCE="ID_474705115" STARTARROW="None" STARTINCLINATION="649;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1557414503009" ID="ID_1020774626" MODIFIED="1557498707228" TEXT="hab schon dutzend Varianten versucht"/>
<node CREATED="1557435536324" ID="ID_13398656" MODIFIED="1557498707228" TEXT="Overload-Resolution hilft hier nicht"/>
<node CREATED="1557435548361" ID="ID_1786798505" MODIFIED="1557498707228" TEXT="w&#xfc;rde enable_if brauchen"/>
<node CREATED="1557435559616" ID="ID_17287871" MODIFIED="1557498707228" TEXT="Stop">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
steht in keinem Verh&#228;ltnis zum Zweck
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1557435595988" ID="ID_1773619805" MODIFIED="1557498707228" TEXT="abgebrochen, da unverh&#xe4;ltnism&#xe4;&#xdf;ig">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1557414529997" ID="ID_45981411" MODIFIED="1557498707228" TEXT="m&#xf6;gliche Workarounds...">
<icon BUILTIN="idea"/>
<node CREATED="1557414537652" ID="ID_1792457460" MODIFIED="1557498707229" TEXT="VerbToken k&#xf6;nnte Tuple akzeptieren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1557435467103" ID="ID_1297559972" MODIFIED="1557498707229" TEXT="separation of concerns">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1557414564399" ID="ID_1249046596" MODIFIED="1557498707229" TEXT="VerbToken k&#xf6;nnte den Holder als friend deklarieren">
<icon BUILTIN="forward"/>
<node CREATED="1557414591836" ID="ID_1605277239" MODIFIED="1557498707229" TEXT="dieser w&#xfc;rde dann auf den verb.handler_ zugreifen"/>
<node CREATED="1557414609249" ID="ID_1627303905" MODIFIED="1557498707229" TEXT="und den Aufruf direkt an&apos;s Ziel bringen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1557435436241" ID="ID_1083947599" MODIFIED="1557498707229" TEXT="Alternative: erben">
<icon BUILTIN="idea"/>
<node CREATED="1557437869440" ID="ID_1916606467" MODIFIED="1557498707229" TEXT="das ist elegant"/>
<node CREATED="1557437880426" ID="ID_548782535" MODIFIED="1557498707229" TEXT="und logisch konsistent"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1555807238238" FOLDED="true" ID="ID_383098394" MODIFIED="1557590514367" TEXT="Copy-Support von PolymorphicValue ist &quot;komisch&quot;">
<arrowlink COLOR="#829ebf" DESTINATION="ID_596556632" ENDARROW="Default" ENDINCLINATION="-282;0;" ID="Arrow_ID_1622655110" STARTARROW="None" STARTINCLINATION="-74;193;"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1555807266221" ID="ID_262959695" MODIFIED="1557498707229" TEXT="nach heutigem Stand: unbeholfen implementiert"/>
<node CREATED="1555807285055" ID="ID_1456730365" MODIFIED="1557498707229" TEXT="braucht expliziten Support vom Payload typ"/>
<node CREATED="1555807297726" ID="ID_1905059435" MODIFIED="1557498707229" TEXT="das w&#xe4;re heute gar nicht mehr notwendig"/>
<node CREATED="1555807489204" ID="ID_1385287282" MODIFIED="1557498707229" TEXT="Ausf&#xfc;hrung ist l&#xfc;ckenhaft, und teilweise nicht korrekt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Beispiel: Wenn der Typ selber keinen Support anbietet,
</p>
<p>
dann nehmen wir immer das volle CopySupport-API, und differenzieren nicht
</p>
<p>
mehr nach Typen mit reinem clone-support. Was dann tats&#228;chlich dazu f&#252;hrt,
</p>
<p>
da&#223; der Compiler verucht, den Zuweisungsoperator zu verwernden!
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1555807646555" ID="ID_84342308" MODIFIED="1557498707229" TEXT="CloneValueSupport nicht (korrekt) erkannt">
<icon BUILTIN="button_ok"/>
<node CREATED="1555807666086" ID="ID_1670738915" MODIFIED="1557498707229" TEXT="offensichtlich wird die falsche Trait-Variante gew&#xe4;hlt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich diejenige f&#252;r Typen ohne Support auf dem API.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555807724232" ID="ID_1817680115" MODIFIED="1557498707229" TEXT="und das, obwohl ich CloneValueSupport als Basis verwendet habe"/>
<node CREATED="1557446452899" ID="ID_454930922" MODIFIED="1557498707229" TEXT="META_DETECT_FUNCTION erkennt keine geerbten Methoden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn diese Duck-Detector-Metafunktion bildet den <b>Typ</b>&#160;eines Member-Pointers,
</p>
<p>
und dieser Typ enth&#228;lt explizit den statischen Namen der Klasse, welche die gew&#252;nschte Methode tr&#228;gt.
</p>
<p>
Und wenn man eine Methode blo&#223; erbt, dann existiert diese Methode, statisch, nur auf der Basisklasse.
</p>
<p>
Also ist das sogar das korrekte Verhalten.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1557446482447" ID="ID_835188518" MODIFIED="1557498707229" TEXT="L&#xf6;sung: Duck-Detector f&#xfc;r Methoden-Name">
<node CREATED="1557446494679" ID="ID_1259664145" MODIFIED="1557498707229" TEXT="verzichtet auf Signatur-Check">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. wenn zuf&#228;llig das Interface auch eine Methode CloneInto() enth&#228;lt, aber mit einer unpassenden Signatur
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1557446561925" ID="ID_1267977919" MODIFIED="1557498707229" TEXT="ist ohnehin keine wirkliche Sicherheit"/>
<node CREATED="1557446503084" ID="ID_1518606339" MODIFIED="1557498707229" TEXT="w&#xfc;rde ohnehin sp&#xe4;ter beim Compilieren scheitern"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1557446627092" ID="ID_805659416" MODIFIED="1557498707229" TEXT="mit #1197 hinf&#xe4;llig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil ich dann explizit ein bestimmtes Basis-Interface verlangen werde,
</p>
<p>
n&#228;mlich VirtualCopySupport&lt;IFA&gt;
</p>
<p>
</p>
<p>
das ist auch gut so, zu viel Flexibilit&#228;t schadet (besonders, wenn man sie dann gar nicht unterst&#252;tzt)
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1557446881265" ID="ID_743886485" MODIFIED="1557498707229" TEXT="Folgeproblem: ambiguous base class">
<icon BUILTIN="clanbomber"/>
<node CREATED="1557446902070" ID="ID_1511315997" MODIFIED="1557498707229" TEXT="kommt davon, wenn man mehrfach polyvalue::EmptyBase verwendet">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil n&#228;mlich der Trait, f&#252;r den optimalen Fall, ebenfalls die EmptyBase verwendet, um den Mix-In zu deaktivieren.
</p>
<p>
Leider haben wir dann zweimal die gleiche Basisklasse in beiden Zweigen der multiple inheritance...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1557446924907" ID="ID_1029661613" MODIFIED="1557498707229" TEXT="...was hier absolut naheliegend ist">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich immer dann, wenn man tats&#228;chlich den CopySupport oder CloneSupport als Basis des Interfaces verwendet...
</p>
<p>
(was ich bisher in der Praxis so noch nie gemacht habe)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1557447075623" ID="ID_1422873677" MODIFIED="1557498707229" TEXT="dummerweise kann dann der GCC die EmptyBase nicht wegoptimieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was sich dann in einer Static-Assertion-Failure &#228;u&#223;ert.
</p>
<p>
hab das ganz explizit ausgeknobelt, es fehlt hier genau dieser eine zus&#228;tzliche &quot;Slot&quot;
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#338800" CREATED="1557447159900" ID="ID_691196423" MODIFIED="1557498722522" TEXT="L&#xf6;sung: anderen Namen verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1555807305357" ID="ID_1511870599" MODIFIED="1557498707229" TEXT="Plan: PolymorphicValue &#xfc;berarbeiten">
<arrowlink COLOR="#1a64bc" DESTINATION="ID_596556632" ENDARROW="Default" ENDINCLINATION="-129;0;" ID="Arrow_ID_884404467" STARTARROW="None" STARTINCLINATION="-284;0;"/>
<node CREATED="1555807415718" ID="ID_639233049" MODIFIED="1557498707229" TEXT="mit &quot;VirtualCopySupport&quot; von meiner Variant-Implementierung zusammenf&#xfc;hren"/>
<node CREATED="1555807443642" ID="ID_90620144" MODIFIED="1557498707229" TEXT="sollte selbst&#xe4;ndig erkennen, ob der Zieltyp kopierbar ist"/>
<node CREATED="1555807464657" ID="ID_1089528099" MODIFIED="1557498707229" TEXT="diese meta-Intelligenz sollte komplett in dem Adapter stecken"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1557446611550" ID="ID_596556632" MODIFIED="1557590501784" TEXT="Ticket #1197 : rationalise copy support in PolymorphicValue">
<linktarget COLOR="#829ebf" DESTINATION="ID_596556632" ENDARROW="Default" ENDINCLINATION="-282;0;" ID="Arrow_ID_1622655110" SOURCE="ID_383098394" STARTARROW="None" STARTINCLINATION="-74;193;"/>
<linktarget COLOR="#1a64bc" DESTINATION="ID_596556632" ENDARROW="Default" ENDINCLINATION="-129;0;" ID="Arrow_ID_884404467" SOURCE="ID_1511870599" STARTARROW="None" STARTINCLINATION="-284;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1555807762543" ID="ID_1645640007" MODIFIED="1557498707229" TEXT="Problem: Puffergr&#xf6;&#xdf;e">
<node CREATED="1555807778751" ID="ID_1563586526" MODIFIED="1557498707229" TEXT="PolymorphicValue verlangt, da&#xdf; man die Puffergr&#xf6;&#xdf;e als Template-Argument definiert"/>
<node CREATED="1555807802562" ID="ID_1845631121" MODIFIED="1557498707229" TEXT="hier h&#xe4;ngt diese aber von der Storage f&#xfc;r die Funktionsargumente ab."/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555807833997" ID="ID_1153160392" MODIFIED="1557590273404" TEXT="Idealfall: das m&#xfc;&#xdf;te automatisch funktionieren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1555807861314" ID="ID_352919826" MODIFIED="1557498707229" TEXT="geht das &#xfc;berhaupt?"/>
<node CREATED="1555807866689" ID="ID_1851833268" MODIFIED="1557498707229" TEXT="w&#xfc;rde vermutlich auf ein Builder-Konstrukt hinauslaufen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...etwas analog zu meinem TreeMutator.
</p>
<p>
D.h. man mu&#223; alle verwendeten Signaturen auf dem Receiver
</p>
<p>
erst mal in einem Builder-Konstrukt gewisserma&#223;en &quot;registrieren&quot;, um dann den passenden
</p>
<p>
VerbPack-Typ konstruiert zu bekommen.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555807962932" ID="ID_378229584" MODIFIED="1557498707229" TEXT="bisher hat meine L&#xf6;sung aber grade den einen Vorteil, komplet &quot;ad hoc&quot; zu sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. man erzeugt in einem einzigen Aufruf den VerbPack f&#252;r eine Zielfunktion
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1557590275193" ID="ID_756824768" MODIFIED="1557590280062" TEXT="YAGNI">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1555807845319" ID="ID_1999765895" MODIFIED="1557590260752" TEXT="Halbe L&#xf6;sung: wenigstens eine Hilfsfunktion bereitstellen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1555808026434" ID="ID_1634107778" MODIFIED="1557590425363" TEXT="automatische Konversionen f&#xfc;r konkrete Argumente">
<icon BUILTIN="button_ok"/>
<node CREATED="1555808055328" ID="ID_1683773555" MODIFIED="1557498707229" TEXT="der VerbPack - Konstruktor sollte sich genau so verhalten wie die Zielfunktion">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1555808100082" ID="ID_1008688397" MODIFIED="1557498707229" TEXT="Beispiel: Zielfunktion nimmt einen std::string, gegeben ist ein C-String-Literal"/>
<node CREATED="1555808124882" ID="ID_364451047" MODIFIED="1557498707229" TEXT="aktuell wird exakt der korrekte Typ erwartet"/>
<node CREATED="1555808138474" ID="ID_847234596" MODIFIED="1557590439076" TEXT="Grund: Funktionsweise der Teplate-Argument-Inferenz">
<icon BUILTIN="info"/>
</node>
<node COLOR="#435e98" CREATED="1555808184873" ID="ID_804931772" MODIFIED="1557590291568" TEXT="sinnvoller Workaround">
<icon BUILTIN="help"/>
<node CREATED="1555808201687" ID="ID_191950649" MODIFIED="1557498707229" TEXT="&quot;Zwiebelschalen-Konstrukt&quot;??">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
zwei verschachtelte, delegierende Konstruktoren,
</p>
<p>
von denen der zweite, innere die eigentliche Typinferenz macht
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1557590299574" ID="ID_1634972448" MODIFIED="1557590314138" TEXT="rein zuf&#xe4;llig delegiere ich bereits &#xfc;ber zwei Konstrukturen"/>
<node COLOR="#338800" CREATED="1557590314884" ID="ID_1086686390" MODIFIED="1557590420718" TEXT="also einfach die Argument-Typen vom Funktions-Handler nehmen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
anstatt, wie es die bisherige (naive) implementierung macht,
</p>
<p>
die typename ARGS... auch daf&#252;r zu verwenden, den Handler-Typ zu konstruieren.
</p>
<p>
Mit diesem einfachen Kniff passiert die Konvertierung dann in dem Moment,
</p>
<p>
wo wir die konkreten Argumente in den vorbereiteten Argument-Tupel im Holder schieben
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1555808280478" ID="ID_59896827" MODIFIED="1557590523471" TEXT="Testabdeckung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1557590726512" ID="ID_1345932776" MODIFIED="1557590812617" TEXT="mehrere verschiedene Receiver">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1557590733137" ID="ID_297834334" MODIFIED="1557590812186" TEXT="Kopier-Verhalten im Detail untersucht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...jeodch nicht eigens im Test dokumentiert
</p>
<ul>
<li>
weil das sehr aufwendig w&#228;re und den kompletten Test dominieren w&#252;rde
</li>
<li>
weil die Implementierung (in dieser Hinsicht) letztlich banal ist: Anwenden eines Tupel auf eine Funktion
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1557590794163" ID="ID_497379433" MODIFIED="1557590811601" TEXT="Werte kopiert und verglichen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1557590805129" ID="ID_158433397" MODIFIED="1557590810851" TEXT="ausf&#xfc;hrlich kommentiert">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1555808288856" ID="ID_1931717111" MODIFIED="1557590603605" TEXT="Frage: ist das Design gut?">
<icon BUILTIN="button_ok"/>
<node CREATED="1555808300703" ID="ID_621465643" MODIFIED="1557498707229" TEXT="kann/sollte die L&#xf6;song mehr integriert sein?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sollten z.B. die Konstruktor-Funktionen nicht unmittelbar mit definiert werden?
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555808311417" ID="ID_1932269477" MODIFIED="1557590690950" TEXT="oder ist es grade ein Vorteil, wenn sie ein roher Baustein ist">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil man stets noch einen Layer dar&#252;bersetzt?
</p>
<p>
Wie auch im konkreten Fall das TrackProfile, was dann ein vector&lt;VerbPack&gt; werden w&#252;rde?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#fcda04" DESTINATION="ID_1932269477" ENDARROW="Default" ENDINCLINATION="290;0;" ID="Arrow_ID_742389536" SOURCE="ID_128501904" STARTARROW="None" STARTINCLINATION="187;8;"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1557590616683" ID="ID_128501904" MODIFIED="1557590701982" TEXT="ich halte es jetzt f&#xfc;r gelungen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil ich es geschafft habe,
</p>
<p>
den gesamten Auswahl-Mechanismus in einen einzigen Konstruktur-Aufruf zu packen.
</p>
<p>
Man kann also nach Belieben VerbPacks in allen Varianten bauen,
</p>
<p>
und es obliegt der n&#228;chst h&#246;heren Schicht, dies auch in sinnvollem Rahmen zu tun...
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#fcda04" DESTINATION="ID_1932269477" ENDARROW="Default" ENDINCLINATION="290;0;" ID="Arrow_ID_742389536" STARTARROW="None" STARTINCLINATION="187;8;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1557590586650" ID="ID_1348312855" MODIFIED="1560213524736" TEXT="den (neu gebauten) VerbPack integrieren">
<icon BUILTIN="pencil"/>
<node CREATED="1560175373902" ID="ID_1956293405" MODIFIED="1560175561475" TEXT="bestehendes TrackProfile sinngem&#xe4;&#xdf; umbauen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1560175492578" ID="ID_1159091213" MODIFIED="1560213489122" TEXT="Verb + explizite Storage -&gt; VerbPack">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1560213502726" ID="ID_1476369075" MODIFIED="1560213516539" TEXT="l&#xe4;&#xdf;t sich 1:1 umschreiben"/>
<node COLOR="#338800" CREATED="1560213581507" ID="ID_691911700" MODIFIED="1560213594489" TEXT="habe die Argumente sofort komplett flexibel gemacht">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1560175383722" ID="ID_107500239" MODIFIED="1560213484696" TEXT="Problem: addSlopeUp()">
<icon BUILTIN="button_ok"/>
<node CREATED="1560175410857" ID="ID_1553338375" MODIFIED="1560175429772" TEXT="bisher konnten wir einfach das Argument manipulieren"/>
<node CREATED="1560175430998" ID="ID_125919592" MODIFIED="1560213396570" TEXT="...aber jetzt gibt es nicht mehr &quot;das&quot; Argument">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sondern die Argumente sind in einem Tuple eingewickelt,
</p>
<p>
und befinden sich tief vergraben in der Implementierungsklasse,
</p>
<p>
innerhalb eines PolymorphicValue.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1560213397573" ID="ID_1416770885" MODIFIED="1560213473607" TEXT="und dann mu&#xdf; man eben explizit casten und auspacken!">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist nur technisch und etwas h&#228;slich,
</p>
<p>
aber durchaus sauber (unter der Annahme, da&#223; wir uns unsere Token
</p>
<p>
stets selbst erzeugen und daher auf das korrekte Literal Verla&#223; ist)
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1560175529230" ID="ID_914166338" MODIFIED="1560175635885">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Verh&#228;ltnis zum Inteface <b>Renderer</b>&#160;kl&#228;ren
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#508bd1" DESTINATION="ID_1592949721" ENDARROW="Default" ENDINCLINATION="59;-58;" ID="Arrow_ID_1618633786" STARTARROW="None" STARTINCLINATION="-91;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1560175579123" ID="ID_678068478" MODIFIED="1560175590213" TEXT="in generische draw()-Routine einbinden">
<node CREATED="1560175593361" ID="ID_1592949721" MODIFIED="1560175631513" TEXT="wo kommt der Renderer ins Spiel?">
<linktarget COLOR="#508bd1" DESTINATION="ID_1592949721" ENDARROW="Default" ENDINCLINATION="59;-58;" ID="Arrow_ID_1618633786" SOURCE="ID_914166338" STARTARROW="None" STARTINCLINATION="-91;0;"/>
</node>
<node CREATED="1560175646834" ID="ID_585934033" MODIFIED="1560175663115" TEXT="wo wird entschieden, was in den Ruler-Teil kommt?"/>
</node>
</node>
</node>
</node>
<node CREATED="1555084648375" ID="ID_483631091" MODIFIED="1557498707229" TEXT="organisiert das Struktur-Profil">
<arrowlink COLOR="#2e66db" DESTINATION="ID_1659558780" ENDARROW="Default" ENDINCLINATION="-889;0;" ID="Arrow_ID_1691760775" STARTARROW="None" STARTINCLINATION="828;0;"/>
</node>
</node>
<node CREATED="1540641317386" ID="ID_151954769" MODIFIED="1557498707229" TEXT="Canvas">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_151954769" ENDARROW="Default" ENDINCLINATION="263;-88;" ID="Arrow_ID_1923805019" SOURCE="ID_18552766" STARTARROW="None" STARTINCLINATION="93;24;"/>
<node CREATED="1554480347233" HGAP="-16" ID="ID_1408962662" MODIFIED="1557498707229" VSHIFT="-10">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>grunds&#228;tzlich</u>: <i>es zeichnet der Canvas</i>
</p>
</body>
</html></richcontent>
<edge COLOR="#a07373" STYLE="linear"/>
<icon BUILTIN="yes"/>
<node CREATED="1555082815168" ID="ID_1445154694" MODIFIED="1557498707229" TEXT="er entscheidet aber nicht &#xfc;ber die Struktur"/>
<node CREATED="1555082847183" ID="ID_822850985" MODIFIED="1557498707229" TEXT="sondern bekommt Struktur-Info hereingereicht"/>
</node>
<node CREATED="1540951718734" HGAP="69" ID="ID_179159881" MODIFIED="1557498707229" TEXT="TrackBody" VSHIFT="-42">
<node CREATED="1540951732747" ID="ID_879954288" MODIFIED="1557498707229" TEXT="kein Widget, sondern eine Hilfs-Struktur"/>
<node CREATED="1540951833141" ID="ID_387631457" MODIFIED="1557498707229" TEXT="erledigt f&#xfc;r den Canvas das Zeichnen f&#xfc;r einen Track"/>
<node CREATED="1540951862399" ID="ID_708158546" MODIFIED="1557498707229" TEXT="relative Koordinaten (und sowiso nur vertikal)"/>
<node CREATED="1540951873159" ID="ID_1843757439" MODIFIED="1557498707229" TEXT="kennt aber seine eigene H&#xf6;he"/>
<node CREATED="1540951934151" ID="ID_1702719060" MODIFIED="1557498707229" TEXT="Bestandteile">
<node CREATED="1540951946493" ID="ID_803471574" MODIFIED="1557498707229" TEXT="overview ruler"/>
<node CREATED="1540951953036" ID="ID_1163326543" MODIFIED="1557498707229" TEXT="content area"/>
<node CREATED="1540951987535" ID="ID_1044870207" MODIFIED="1557498707229" TEXT="sub-content"/>
<node CREATED="1540952017027" ID="ID_1004640509" MODIFIED="1557498707229" TEXT="Sequenz von (nested) sub TrackBody"/>
</node>
<node CREATED="1540953620811" ID="ID_421197092" MODIFIED="1557498707229" TEXT="Aufgaben">
<node CREATED="1540953625171" ID="ID_1987245010" MODIFIED="1557498707229" TEXT="sub-TrackBody verwalten"/>
<node CREATED="1540953632393" ID="ID_132647407" MODIFIED="1557498707229" TEXT="gesamt-H&#xf6;he ermitteln"/>
<node CREATED="1540953791364" ID="ID_540126417" MODIFIED="1557498707229" TEXT="vertikale Koordinaten zum Platzieren von Content ermitteln"/>
<node CREATED="1540953642160" ID="ID_1963147841" MODIFIED="1557498707229" TEXT="Hintergrund f&#xfc;r eigenen Bereich zeichnen"/>
<node CREATED="1544839283413" ID="ID_960193981" MODIFIED="1557498707229" TEXT="Ruler-Tracks bauen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544849233126" ID="ID_1576984939" MODIFIED="1557498707229" TEXT="#1193 represent time and overview rulers">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1554995807523" ID="ID_896927472" MODIFIED="1557498707229" TEXT="grunds&#xe4;tzliches Konzept">
<node CREATED="1554995813195" ID="ID_1158334025" MODIFIED="1557498707229" TEXT="sind Modell-Elemente"/>
<node CREATED="1554995818270" ID="ID_753876518" MODIFIED="1557498707229" TEXT="werden in den Track injiziert"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1554995829834" ID="ID_1945074845" MODIFIED="1557498707229" TEXT="teilweise noch unklar">
<icon BUILTIN="broken-line"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554995834875" ID="ID_1119649795" MODIFIED="1557498707229" TEXT="Zusammenspiel mit Expand/Collapse">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1555020163776" ID="ID_1470546162" MODIFIED="1557498707229" TEXT="collapsed == Scope durch Ruler ersetzt"/>
<node CREATED="1555020175102" ID="ID_1798602" MODIFIED="1557498707229">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>das </i>ist ein reiner (pesistent) presentation state
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554995841966" ID="ID_1443277448" MODIFIED="1557498707229" TEXT="genaue Rolle der Session??">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1544839288936" ID="ID_43593052" MODIFIED="1557498707229" TEXT="zwei Ruler-Konfigs in das systematische UI-Modell">
<arrowlink COLOR="#5f84b0" DESTINATION="ID_1083901292" ENDARROW="Default" ENDINCLINATION="-756;-82;" ID="Arrow_ID_1167484185" STARTARROW="None" STARTINCLINATION="-981;0;"/>
<node COLOR="#338800" CREATED="1544849869166" ID="ID_1025477379" MODIFIED="1557498707229" TEXT="Frage: wo ansiedeln?">
<icon BUILTIN="button_ok"/>
<node CREATED="1544849875744" ID="ID_27673928" MODIFIED="1557498707229" TEXT="im TrackPresenter">
<icon BUILTIN="button_cancel"/>
<node CREATED="1553911581890" ID="ID_1856936034" MODIFIED="1557498707229">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das w&#228;re der <i>logisch richtige</i>&#160;Ort
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1553911598855" ID="ID_400583625" MODIFIED="1557498707230" TEXT="aber jede konkrete Aktion m&#xfc;&#xdf;te dann stets durch den Display-Frame durchgreifen"/>
<node CREATED="1553911621023" ID="ID_403549572" MODIFIED="1557498707230" TEXT="daher ist es besser, nur einmal das Binding nach untern durchgreifen zu lassen">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1544849880757" ID="ID_1796042436" MODIFIED="1557498707230" TEXT="direkt im TimelineBody">
<icon BUILTIN="forward"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1560173474830" ID="ID_351544133" MODIFIED="1560173496890" TEXT="sind es &quot;zwei&quot; oder sind es N Konfigs?">
<icon BUILTIN="help"/>
<node COLOR="#ba568c" CREATED="1560173511341" ID="ID_637775069" MODIFIED="1560173529984" TEXT="Monate sp&#xe4;ter...">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1560173498827" ID="ID_553759798" MODIFIED="1560173508018" TEXT="und was meint hier &quot;Konfig&quot;...?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541814972977" HGAP="8" ID="ID_1482433902" MODIFIED="1557498707230" TEXT="offen..." VSHIFT="5">
<icon BUILTIN="bell"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541814988759" ID="ID_327310802" MODIFIED="1557498707230" TEXT="mu&#xdf; der TrackBody seinen Namen kennen?">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1541861473496" ID="ID_457526663" MODIFIED="1557498707230" TEXT="draw">
<node CREATED="1542309666407" ID="ID_1721729181" MODIFIED="1557498707230" TEXT="initial....">
<node CREATED="1542309671333" ID="ID_1283622298" MODIFIED="1557498707230" TEXT="Gr&#xf6;&#xdf;e des leeren Canvas">
<arrowlink COLOR="#60749f" DESTINATION="ID_400560063" ENDARROW="Default" ENDINCLINATION="-46;0;" ID="Arrow_ID_449772156" STARTARROW="None" STARTINCLINATION="-13;18;"/>
<node CREATED="1542309689328" ID="ID_679418178" MODIFIED="1557498707230" TEXT="verwende size-Allocation des ScrolledWindow">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...in dem der Timeline body-canvas n&#228;mlich liegt
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1541861481967" ID="ID_1316730142" MODIFIED="1557498707230" TEXT="Feststellen der Canvas-Position">
<arrowlink COLOR="#2a79c1" DESTINATION="ID_1038931568" ENDARROW="Default" ENDINCLINATION="-511;19;" ID="Arrow_ID_1052516165" STARTARROW="None" STARTINCLINATION="-253;-12;"/>
<node CREATED="1541862243012" ID="ID_400560063" MODIFIED="1557498707230" TEXT="Canvas kennt seine eigene Ausdehnung (in Pixeln)">
<linktarget COLOR="#60749f" DESTINATION="ID_400560063" ENDARROW="Default" ENDINCLINATION="-46;0;" ID="Arrow_ID_449772156" SOURCE="ID_1283622298" STARTARROW="None" STARTINCLINATION="-13;18;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554418097774" ID="ID_49602168" MODIFIED="1557498707230" STYLE="fork" TEXT="TODO in welcher Form?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1541861743088" ID="ID_1696653468" MODIFIED="1557498707230" TEXT="Display-Manager">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1541861768818" ID="ID_1031864478" MODIFIED="1557498707230" TEXT="Zugriff wie?">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541862804070" ID="ID_430268635" MODIFIED="1557498707230" TEXT="Display-Manager == Abstraktion">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541862816104" FOLDED="true" ID="ID_1545586243" MODIFIED="1560173642952" TEXT="lokal injiziert beim Aufbau">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1554475687257" ID="ID_908192712" MODIFIED="1554475728633" TEXT="das hei&#xdf;t: separates Thema">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554475711445" ID="ID_1049987785" MODIFIED="1554475736846" TEXT="im Moment (4/19) egal">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node CREATED="1541862265474" ID="ID_1967442368" MODIFIED="1557498707230" TEXT="Grundfunktion: translate window"/>
<node CREATED="1541862852155" ID="ID_1628726016" MODIFIED="1557498707230" TEXT="Anfragen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1541862862450" ID="ID_1333221051" MODIFIED="1557498707230" TEXT="was ist meine Position und Extension?">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1555024009413" ID="ID_1600874732" MODIFIED="1557498707230" TEXT="welches Pixel-Window mu&#xdf; dargestellt werden">
<linktarget COLOR="#3d4476" DESTINATION="ID_1600874732" ENDARROW="Default" ENDINCLINATION="561;0;" ID="Arrow_ID_1463649935" SOURCE="ID_1781062229" STARTARROW="None" STARTINCLINATION="550;27;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1555027076942" HGAP="38" ID="ID_479062556" MODIFIED="1557498707230" TEXT="wie bekomme ich das heraus?" VSHIFT="39">
<icon BUILTIN="help"/>
</node>
<node CREATED="1555027102243" HGAP="40" ID="ID_855793949" MODIFIED="1557498707230" TEXT="Idee" VSHIFT="5">
<node CREATED="1555027114837" ID="ID_727253754" MODIFIED="1557498707230" TEXT="den TimelineController fragen..?"/>
</node>
</node>
</node>
</node>
<node CREATED="1541861495569" ID="ID_1828075998" MODIFIED="1557498707230" TEXT="Thema: ZoomWindow">
<arrowlink COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-499;-1329;" ID="Arrow_ID_842684168" STARTARROW="None" STARTINCLINATION="490;0;"/>
</node>
</node>
<node CREATED="1542383648143" HGAP="41" ID="ID_718536842" MODIFIED="1557498707230" VSHIFT="-6">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>nicht alles</b>&#160;wird gezeichnet
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1542383666724" ID="ID_1850932291" MODIFIED="1557498707230" TEXT="Clipping-Region">
<node COLOR="#435e98" CREATED="1542383689152" ID="ID_1534655843" MODIFIED="1557498707230" TEXT="wird der on_draw() mitgegeben">
<arrowlink COLOR="#5e86ca" DESTINATION="ID_577859258" ENDARROW="Default" ENDINCLINATION="-1325;0;" ID="Arrow_ID_1966515866" STARTARROW="None" STARTINCLINATION="-1797;81;"/>
<icon BUILTIN="info"/>
<node CREATED="1555021726291" ID="ID_529262560" MODIFIED="1557498707230" TEXT="Entnehmen und Aufbereiten">
<node CREATED="1555021755898" ID="ID_968519712" MODIFIED="1557498707230" TEXT="Cairo liefert double-Koordinaten"/>
<node CREATED="1555021772375" ID="ID_860582416" MODIFIED="1557498707230" TEXT="gdk_cairo_get_clip_rectangle() als Vorlage"/>
</node>
<node CREATED="1555021797428" ID="ID_1566025774" MODIFIED="1557498707230" TEXT="Problem: Fallback">
<node CREATED="1555021809578" ID="ID_1964178964" MODIFIED="1557498707230" TEXT="was wenn die Clip-Region nicht gesetzt ist?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir k&#246;nnen nicht von 0 bis MAXINT zeichnen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1555023959073" ID="ID_118083348" MODIFIED="1557498707230" TEXT="auf Pixel-Window zur&#xfc;ckfallen">
<arrowlink COLOR="#677e9a" DESTINATION="ID_1781062229" ENDARROW="Default" ENDINCLINATION="230;6;" ID="Arrow_ID_733563643" STARTARROW="None" STARTINCLINATION="296;77;"/>
</node>
</node>
</node>
<node CREATED="1542383722599" ID="ID_1927110373" MODIFIED="1557498707230" TEXT="Optimierungs-Potential">
<node CREATED="1542383737043" ID="ID_1858424140" MODIFIED="1557498707230" TEXT="sp&#xe4;ter">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1542383740622" ID="ID_1742615218" MODIFIED="1557498707230" TEXT="z.B. f&#xfc;r Content-Rendering"/>
</node>
</node>
<node CREATED="1542383813145" ID="ID_1027750978" MODIFIED="1557498707230" TEXT="Lumiera display strategy">
<node CREATED="1542383825895" ID="ID_47938908" MODIFIED="1557498707230" TEXT="zweistufige &#xdc;bersetzung in ein Pixel-Fenster">
<node CREATED="1542383840687" ID="ID_1981380274" MODIFIED="1557498707230" TEXT="Stufe-1 == Timespan der Timeline"/>
<node CREATED="1542383859851" ID="ID_892953664" MODIFIED="1557498707230" TEXT="Stufe-2 == gegenw&#xe4;rtig relevanter Ausschnitt">
<arrowlink COLOR="#6f83c4" DESTINATION="ID_557373288" ENDARROW="Default" ENDINCLINATION="84;-18;" ID="Arrow_ID_391816329" STARTARROW="None" STARTINCLINATION="-125;2;"/>
</node>
</node>
<node CREATED="1542383915849" ID="ID_557373288" MODIFIED="1557498707230" TEXT="relevantTimeWindow">
<linktarget COLOR="#6f83c4" DESTINATION="ID_557373288" ENDARROW="Default" ENDINCLINATION="84;-18;" ID="Arrow_ID_391816329" SOURCE="ID_892953664" STARTARROW="None" STARTINCLINATION="-125;2;"/>
<node CREATED="1542384024260" ID="ID_1781062229" MODIFIED="1557498707230" TEXT="festgelegt im DisplayManager">
<arrowlink COLOR="#3d4476" DESTINATION="ID_1600874732" ENDARROW="Default" ENDINCLINATION="561;0;" ID="Arrow_ID_1463649935" STARTARROW="None" STARTINCLINATION="550;27;"/>
<linktarget COLOR="#677e9a" DESTINATION="ID_1781062229" ENDARROW="Default" ENDINCLINATION="230;6;" ID="Arrow_ID_733563643" SOURCE="ID_118083348" STARTARROW="None" STARTINCLINATION="296;77;"/>
</node>
</node>
</node>
</node>
<node CREATED="1554480402297" ID="ID_1456965488" MODIFIED="1557498707230" TEXT="wie?">
<node CREATED="1542388995969" ID="ID_343346390" MODIFIED="1557498707230" TEXT="Ablauf-Plan">
<icon BUILTIN="idea"/>
<node CREATED="1542389054873" ID="ID_1270989660" MODIFIED="1557498707230" TEXT="Ausl&#xf6;ser: draw-Signal an Canvas">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1542389117416" ID="ID_688086253" MODIFIED="1557498707230" TEXT="Canvas an Display-Manager: Draw-Evaluation">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1542389301246" ID="ID_244922384" MODIFIED="1557498707230" TEXT="(ggfs) ZoomWindow neu etablieren">
<icon BUILTIN="full-3"/>
</node>
</node>
<node CREATED="1554480448693" ID="ID_1659558780" MODIFIED="1557498707230" STYLE="fork" TEXT="Struktur-Profil">
<linktarget COLOR="#2e66db" DESTINATION="ID_1659558780" ENDARROW="Default" ENDINCLINATION="-889;0;" ID="Arrow_ID_1691760775" SOURCE="ID_483631091" STARTARROW="None" STARTINCLINATION="828;0;"/>
<icon BUILTIN="forward"/>
<node CREATED="1554480470481" ID="ID_936706731" MODIFIED="1557498707230" TEXT="Canvas bezieht vom Root-Body eine Verb-Sequenz"/>
<node CREATED="1554516114006" ID="ID_1074831376" MODIFIED="1557498707230" TEXT="diese Verb-Sequenz wird rekursiv aufgebaut"/>
<node CREATED="1554516233179" ID="ID_659430585" MODIFIED="1557498707230" TEXT="der draw()-Code interpretiert sie"/>
<node CREATED="1554516127873" ID="ID_134859232" MODIFIED="1557498707230" TEXT="heap-allozierte Liste">
<node CREATED="1554516153981" ID="ID_683878349" MODIFIED="1557498707230" TEXT="Lazy">
<node CREATED="1554516163980" ID="ID_151765359" MODIFIED="1557498707230" TEXT="neu bauen wenn leer"/>
<node CREATED="1554516172112" ID="ID_1550870826" MODIFIED="1557498707230" TEXT="leeren zum Invalidieren"/>
</node>
<node CREATED="1554516191248" ID="ID_379475221" MODIFIED="1557498707230" TEXT="on_draw() ist h&#xe4;ufiger als Struktur&#xe4;nderungen"/>
<node CREATED="1554567390096" ID="ID_611611667" MODIFIED="1557498707230" TEXT="Liste nicht verbergen">
<icon BUILTIN="yes"/>
<node CREATED="1554567399523" ID="ID_139156989" MODIFIED="1557498707230" TEXT="der draw-Code darf durchaus die Liste sehen"/>
<node CREATED="1554567408804" ID="ID_1274839361" MODIFIED="1557498707230" TEXT="ggfs mu&#xdf; er n&#xe4;mlich den Kontext beachten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...zum Beispiel um einen &quot;Wall&quot; auch expressiv zu schattieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1554516243633" ID="ID_386714682" MODIFIED="1557498707230" TEXT="Verben">
<icon BUILTIN="info"/>
<node COLOR="#338800" CREATED="1554516247416" ID="ID_711078188" MODIFIED="1557498707230" TEXT="ruler">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1554516251688" ID="ID_24688004" MODIFIED="1557498707230" TEXT="gap">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1554516257065" ID="ID_389097560" MODIFIED="1557498707230" TEXT="content">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1554516438055" ID="ID_1490793853" MODIFIED="1557498707230" TEXT="open / close">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1554567321239" FOLDED="true" ID="ID_1638157583" MODIFIED="1557498707230" TEXT="prelude / coda">
<icon BUILTIN="button_ok"/>
<node CREATED="1554567338981" ID="ID_1124816442" MODIFIED="1554567365787" TEXT="damit der Display-Code da was Spezielles machen kann..."/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554516547904" ID="ID_229346999" MODIFIED="1557498707230" TEXT="Implementierung">
<icon BUILTIN="pencil"/>
<node CREATED="1554516552951" ID="ID_600745992" MODIFIED="1557498707230" TEXT="Festlegungen">
<node CREATED="1554516555943" ID="ID_1554446719" MODIFIED="1557498707230" TEXT="Argument = vertikal in Pixeln"/>
<node CREATED="1554516578588" ID="ID_520338948" MODIFIED="1557498707230" TEXT="Spannen inklusive Dekoration">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
warum?
</p>
<p>
weil sonst der TrackBody um die Dekoration wissen m&#252;&#223;te,
</p>
<p>
wenn er mit der HeaderPane den ben&#246;tigten Platz aushandelt
</p>
</body>
</html></richcontent>
<node CREATED="1554516626163" ID="ID_1427792739" MODIFIED="1557498707230" TEXT="d.h. der Zeichencode mu&#xdf; seine Dekoration innen einf&#xfc;gen"/>
<node CREATED="1554516850759" ID="ID_361309913" MODIFIED="1557498707230" TEXT="content mu&#xdf; mit ausreichend Padding platziert werden"/>
</node>
</node>
<node COLOR="#338800" CREATED="1554516928332" ID="ID_874621550" MODIFIED="1557498707230" TEXT="Verben definieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1554571992025" ID="ID_1074099376" MODIFIED="1557498707230" TEXT="Anwendung der Verben"/>
<node COLOR="#338800" CREATED="1554516938851" ID="ID_1733864099" MODIFIED="1557498707230" TEXT="Verb-Sequenz speichern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1554516951713" ID="ID_318462518" MODIFIED="1557498707230" TEXT="Verben (rekursiv) generieren">
<node CREATED="1554516977204" ID="ID_305770947" MODIFIED="1557498707230" TEXT="Ruler"/>
<node CREATED="1554516979454" ID="ID_508239889" MODIFIED="1557498707230" TEXT="Gaps handhaben"/>
<node CREATED="1554516984485" ID="ID_351302473" MODIFIED="1557498707230" TEXT="Content">
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1554990830581" ID="ID_1043247821" MODIFIED="1557498707230" TEXT="vorl&#xe4;ufig Konstante addiert">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1554990844745" ID="ID_1673637596" MODIFIED="1557498707230" TEXT="brauche hier Abstimmung mit Layout">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node COLOR="#338800" CREATED="1554990786369" ID="ID_97624142" MODIFIED="1557498707230" TEXT="sub-Tracks">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1554990802429" ID="ID_785342074" MODIFIED="1557498707230" TEXT="sub-Track-Slopes zusammensetzen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1554517013770" ID="ID_1565362810" MODIFIED="1557498707230" TEXT="Verb-Sequenz konsolidieren"/>
<node CREATED="1554517023983" ID="ID_582840262" MODIFIED="1557498707230" TEXT="Verb-Sequenz interpretieren">
<node CREATED="1554517097141" ID="ID_1017084418" MODIFIED="1557498707230" TEXT="&#xdc;bersichts-Ruler handhaben"/>
<node CREATED="1554517044045" ID="ID_520113686" MODIFIED="1557498707230" TEXT="Farben bereitstellen"/>
<node CREATED="1554517048572" ID="ID_389539875" MODIFIED="1557498707230" TEXT="Rampen zeichnen"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_834517953" MODIFIED="1557498707230" TEXT="ClipPresenter">
<linktarget COLOR="#fec680" DESTINATION="ID_834517953" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_483670351" SOURCE="ID_1570849604" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1480741362389" ID="ID_328415412" MODIFIED="1557498707230" TEXT="ClipWidget">
<node CREATED="1480741370347" ID="ID_1275685315" MODIFIED="1557498707230" TEXT="erzeugen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480741374451" ID="ID_1270677756" MODIFIED="1557498707230" TEXT="in Display injizieren">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1480741386769" ID="ID_1808095573" MODIFIED="1557498707230" TEXT="Kinder">
<node CREATED="1480741389777" ID="ID_1548768233" MODIFIED="1557498707230" TEXT="welche kommen in Frage">
<icon BUILTIN="help"/>
</node>
<node CREATED="1480741397880" ID="ID_299590632" MODIFIED="1557498707230" TEXT="Effekte werden als ClipPresenter implementiert">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1480741425668" ID="ID_826648354" MODIFIED="1557498707230" TEXT="Labels werden als eigenes Tangible MarkerWidget implementiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sie verwenden dann ein LabelWidget zur Darstellung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1480741466519" ID="ID_29080454" MODIFIED="1557498707230" TEXT="das werden zwei Collections">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_1240926804" MODIFIED="1557498707230" STYLE="fork" TEXT="Clip-Anzeige">
<linktarget COLOR="#fec680" DESTINATION="ID_1240926804" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_435369727" SOURCE="ID_1131206858" STARTARROW="None" STARTINCLINATION="407;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1541095839946" ID="ID_471098853" MODIFIED="1557498707231" TEXT="Anzeigestil">
<node CREATED="1538940683586" ID="ID_1478100178" MODIFIED="1557498707231" TEXT="placeholder"/>
<node CREATED="1538940686978" ID="ID_1747675588" MODIFIED="1557498707231" TEXT="abridged"/>
<node CREATED="1538940690154" ID="ID_1132412756" MODIFIED="1557498707231" TEXT="collapsed"/>
<node CREATED="1538940692545" ID="ID_1827979765" MODIFIED="1557498707231" TEXT="expanded"/>
</node>
<node CREATED="1541095848871" ID="ID_1480696061" MODIFIED="1557498707231" TEXT="Anzeige-Modi">
<node CREATED="1541095855984" ID="ID_1437927701" MODIFIED="1557498707231" TEXT="verwendet ElementBoxWidget">
<arrowlink COLOR="#f6cca4" DESTINATION="ID_368245484" ENDARROW="Default" ENDINCLINATION="-599;39;" ID="Arrow_ID_703893400" STARTARROW="None" STARTINCLINATION="42;-316;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480607059909" ID="ID_703281238" MODIFIED="1557498707231" TEXT="Control">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1540639047422" ID="ID_945522690" MODIFIED="1557498707231" TEXT="Timeline insgesamt">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638806886" ID="ID_1690989313" MODIFIED="1557498707231" TEXT="bauen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1540639330313" ID="ID_335264895" MODIFIED="1557498707231" TEXT="top-level Population-Diff">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1540639342856" ID="ID_1646839476" MODIFIED="1557498707231" TEXT="ausschlie&#xdf;lich per TimelineWidget-Ctor">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1540639375028" ID="ID_690498169" MODIFIED="1557498707231" TEXT="erzeugt">
<node CREATED="1540639382945" ID="ID_1389266781" MODIFIED="1557498707231" TEXT="Widget-Struktur">
<arrowlink COLOR="#7696bb" DESTINATION="ID_1999928728" ENDARROW="Default" ENDINCLINATION="113;285;" ID="Arrow_ID_198017810" STARTARROW="None" STARTINCLINATION="-139;0;"/>
</node>
<node CREATED="1540639386795" ID="ID_35543915" MODIFIED="1557498707231" TEXT="Layout-Manager"/>
<node CREATED="1540639392170" ID="ID_1944083475" MODIFIED="1557498707231" TEXT="(root)-TrackPresenter"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638810920" ID="ID_481615571" MODIFIED="1557498707231" TEXT="zerst&#xf6;ren">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1540640109628" ID="ID_147809215" MODIFIED="1557498707231" TEXT="TODO: TimelineGui (proxy) mu&#xdf; kaskadieren">
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544135984042" ID="ID_429363053" MODIFIED="1557498707231" TEXT="Grund f&#xfc;r den Fehler im Nexus?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ERR: nexus.hpp:189: worker_3: ~Nexus: Some UI components are still connected to the backbone.
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540640144175" ID="ID_158939327" MODIFIED="1557498707231" TEXT="Zugang via TimelinePanel">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1540639255700" ID="ID_1855001421" MODIFIED="1557498707231" TEXT="Anzeige..">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639285684" ID="ID_1194974667" MODIFIED="1557498707231" TEXT="Scrollen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639289320" ID="ID_1983393978" MODIFIED="1557498707231" TEXT="Rollen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639291974" ID="ID_1116103118" MODIFIED="1557498707231" TEXT="Zoom">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1540638842100" ID="ID_202893866" MODIFIED="1557498707231" TEXT="Track...">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638853648" ID="ID_1229923831" MODIFIED="1557498707231" TEXT="hinzuf&#xfc;gen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638857930" ID="ID_1666790008" MODIFIED="1557498707231" TEXT="l&#xf6;schen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638882639" ID="ID_334962853" MODIFIED="1557498707231" TEXT="verschieben">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638923233" ID="ID_841357096" MODIFIED="1557498707231" TEXT="auf/zuklappen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639232287" ID="ID_294651227" MODIFIED="1557498707231" TEXT="Placement">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1540638984772" ID="ID_166725122" MODIFIED="1557498707231" TEXT="Marker....">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638991848" ID="ID_822413142" MODIFIED="1557498707231" TEXT="platzieren">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540638996751" ID="ID_1431308221" MODIFIED="1557498707231" TEXT="verschieben">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639002174" ID="ID_1757448745" MODIFIED="1557498707231" TEXT="entfernen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1540639065618" ID="ID_619025500" MODIFIED="1557498707231" TEXT="Clip........">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639139572" ID="ID_740288619" MODIFIED="1557498707231" TEXT="einf&#xfc;gen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639160480" ID="ID_1171854695" MODIFIED="1557498707231" TEXT="l&#xf6;schen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1540639189634" ID="ID_836956028" MODIFIED="1557498707231" TEXT="mutieren">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1479434763643" HGAP="48" ID="ID_1572413636" MODIFIED="1557498707231" TEXT="Clip" VSHIFT="32">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1479434774138" ID="ID_912862507" MODIFIED="1557498707231" TEXT="Grundlagen">
<node CREATED="1479434780105" ID="ID_239720378" MODIFIED="1557498707231" TEXT="apperances">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Ein Clip hat verschiedene Erscheinungsformen im UI
</p>
<p>
</p>
<p>
Verwende das als Leitgedanke, um das Layout zu entwickeln
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1479434831825" ID="ID_975727645" MODIFIED="1557498707231" TEXT="abridged form">
<node CREATED="1479434845992" ID="ID_609815513" MODIFIED="1557498707231" TEXT="media bin, collapsed fork"/>
<node CREATED="1479441548335" ID="ID_150470698" MODIFIED="1557498707231" TEXT="icon + ID label"/>
<node CREATED="1479601640961" ID="ID_191706335" MODIFIED="1557498707231" TEXT="Gtk::Frame"/>
</node>
<node CREATED="1479441503085" ID="ID_386209482" MODIFIED="1557498707231" TEXT="compact form">
<node CREATED="1479441530689" ID="ID_1057853337" MODIFIED="1557498707231" TEXT="timeline default"/>
<node CREATED="1479441567268" ID="ID_1413366977" MODIFIED="1557498707231" TEXT="rendered content strip + decorations"/>
<node CREATED="1479601649615" ID="ID_417588278" MODIFIED="1557498707231" TEXT="Gtk::Frame + Gtk::Layout"/>
</node>
<node CREATED="1479441519834" ID="ID_1669486876" MODIFIED="1557498707231" TEXT="expanded form">
<node CREATED="1479441586057" ID="ID_64386373" MODIFIED="1557498707231" TEXT="window with embedded sub-clips"/>
<node CREATED="1479601667734" ID="ID_1877644742" MODIFIED="1557498707231" TEXT="dto, with recursive embedded sub-clips"/>
</node>
</node>
<node CREATED="1479442296443" ID="ID_911884433" MODIFIED="1557498707231" TEXT="graceful display degradation">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1479442310537" ID="ID_1849995398" MODIFIED="1557498707231" TEXT="Fall1: wenigstens 1 pixel"/>
<node CREATED="1479442322359" ID="ID_492785140" MODIFIED="1557498707231" TEXT="Fall2: in diesem Pixel ist content"/>
</node>
</node>
<node CREATED="1480797025150" ID="ID_852148145" MODIFIED="1557498707231" TEXT="verwendet f&#xfc;r">
<node CREATED="1480797029581" ID="ID_1257172627" MODIFIED="1557498707231" TEXT="Clips">
<node CREATED="1480797161164" ID="ID_1187665675" MODIFIED="1557498707231" TEXT="abridged"/>
<node CREATED="1480797166355" ID="ID_1788361951" MODIFIED="1557498707231" TEXT="compact"/>
<node CREATED="1480797170331" ID="ID_174323572" MODIFIED="1557498707231" TEXT="expanded"/>
</node>
<node CREATED="1480797032709" ID="ID_597046922" MODIFIED="1557498707231" TEXT="Spuren im Clip"/>
<node CREATED="1480797036804" ID="ID_418077851" MODIFIED="1557498707231" TEXT="Effekte">
<node CREATED="1480797067392" ID="ID_1213128633" MODIFIED="1557498707231" TEXT="compact"/>
<node CREATED="1480797155052" ID="ID_640502487" MODIFIED="1557498707231" TEXT="abridged"/>
</node>
</node>
<node CREATED="1479601690675" ID="ID_542607961" MODIFIED="1557498707231" TEXT="Struktur">
<icon BUILTIN="pencil"/>
<node CREATED="1479601699057" ID="ID_1130364446" MODIFIED="1557498707231" TEXT="Konflikt mit der UI-Bus-Architektur">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1479601736116" ID="ID_891600328" MODIFIED="1557498707231" TEXT="Bus == Rolle des Controler/Model"/>
<node CREATED="1479601749946" ID="ID_887287956" MODIFIED="1557498707231" TEXT="Widget == View-Rolle"/>
</node>
<node CREATED="1479601765896" ID="ID_1632476975" MODIFIED="1557498707231">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
UI-Bus gilt nur f&#252;r <b>globale Belange</b>
</p>
</body>
</html></richcontent>
<node CREATED="1479601788237" ID="ID_1871715779" MODIFIED="1557498707231" TEXT="wichtige neue Unterscheidung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1479601796075" ID="ID_1177606400" MODIFIED="1557498707231" TEXT="Global == in der Session aufgezeichnet"/>
<node CREATED="1479601807666" ID="ID_1374495669" MODIFIED="1557498707231" TEXT="vs. lokale UI-Mechanik"/>
<node CREATED="1479601828799" ID="ID_1797519191" MODIFIED="1557498707231" TEXT="Ziel: Subsidiarit&#xe4;t f&#xfc;r lokale Belange"/>
</node>
<node CREATED="1479601884288" HGAP="34" ID="ID_1371609613" MODIFIED="1557498707231" TEXT="L&#xf6;sungs-Idee" VSHIFT="18">
<icon BUILTIN="idea"/>
<node CREATED="1479601889567" ID="ID_1123973572" MODIFIED="1557498707231">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
es geht nur um <i>Rollen</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1479601907221" ID="ID_286625648" MODIFIED="1557498707231" TEXT="es ist ein Design-Pattern">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1479601925938" ID="ID_22286545" MODIFIED="1557498707231">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das lokale Element mu&#223; nur als View <i>fungieren</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1479601945839" ID="ID_254470029" MODIFIED="1557498707231" TEXT="Model-View-Presenter">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1479602306718" ID="ID_359464754" MODIFIED="1557498707231" TEXT="ClipPresenter">
<node CREATED="1479602311740" ID="ID_963961994" MODIFIED="1557498707231" TEXT="Mittelsmann"/>
<node CREATED="1479602314676" ID="ID_944757170" MODIFIED="1557498707231" TEXT="steht f&#xfc;r den Clip"/>
<node CREATED="1479602319555" ID="ID_1557047586" MODIFIED="1557498707231" TEXT="steuert ein ClipWidget"/>
<node CREATED="1479602338609" ID="ID_444253818" MODIFIED="1557498707231" TEXT="ClipWidget">
<node CREATED="1479602341777" ID="ID_1610807382" MODIFIED="1557498707231" TEXT="empf&#xe4;ngt DisplayStrategy"/>
<node CREATED="1479602382195" ID="ID_1504834509" MODIFIED="1557498707231">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann sich selbst
</p>
<p>
transformieren
</p>
</body>
</html></richcontent>
<node CREATED="1479602412095" ID="ID_832808487" MODIFIED="1557498707231" TEXT="Frame"/>
<node CREATED="1479602415654" ID="ID_1358720" MODIFIED="1557498707231" TEXT="Frame + Layout"/>
<node CREATED="1479602419134" ID="ID_1788706818" MODIFIED="1557498707231" TEXT="sub-Clips im Layout"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538938500754" ID="ID_715902958" MODIFIED="1557498707231" TEXT="Implementierung">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1476376943985" HGAP="52" ID="ID_1422206856" MODIFIED="1557498707231" TEXT="Viewer" VSHIFT="10">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1480639186172" HGAP="45" ID="ID_838667304" MODIFIED="1557498707231" TEXT="Mixer" VSHIFT="28">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1476376927660" HGAP="35" ID="ID_688318446" MODIFIED="1557498707231" TEXT="Docks" VSHIFT="12">
<node CREATED="1504200504235" ID="ID_125942292" MODIFIED="1557498707231" TEXT="PanelManager mu&#xdf; umgebaut werden">
<arrowlink COLOR="#e1a169" DESTINATION="ID_1249897876" ENDARROW="Default" ENDINCLINATION="-636;0;" ID="Arrow_ID_446871395" STARTARROW="None" STARTINCLINATION="-311;562;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193029907" ID="ID_945788817" MODIFIED="1557498707231" TEXT="#1104 how to instruct actions through panels">
<linktarget COLOR="#b37033" DESTINATION="ID_945788817" ENDARROW="None" ENDINCLINATION="-67;-71;" ID="Arrow_ID_61914" SOURCE="ID_1943521361" STARTARROW="Default" STARTINCLINATION="-618;-18;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1504368481111" ID="ID_1149652836" MODIFIED="1557498707231" TEXT="PanelManager selber verbleibt im top-level window">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1504368500421" ID="ID_184425569" MODIFIED="1557498707231" TEXT="es gibt einen PanelLocator im WindowLocator">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1504368540111" ID="ID_1747666798" MODIFIED="1557498707232" TEXT="es gibt einen ViewLocator im InteractionDirector">
<arrowlink COLOR="#7f97bd" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="-977;81;" ID="Arrow_ID_1627222173" STARTARROW="None" STARTINCLINATION="1159;303;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504200512737" ID="ID_320931452" MODIFIED="1557498707232" TEXT="M&#xfc;llhaufen">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1504200743610" ID="ID_1973994759" MODIFIED="1557498707232" TEXT="vorl&#xe4;ufig....">
<node CREATED="1504200750905" ID="ID_1728645080" MODIFIED="1557498707232" TEXT="gibt es noch eine ZombieTimeline"/>
<node COLOR="#338800" CREATED="1504200758920" FOLDED="true" ID="ID_19179662" MODIFIED="1557498707232" TEXT="hab ich schon mal eine InfoBox dazugebaut">
<linktarget COLOR="#f5dd67" DESTINATION="ID_19179662" ENDARROW="Default" ENDINCLINATION="743;-1563;" ID="Arrow_ID_1195014928" SOURCE="ID_340215113" STARTARROW="None" STARTINCLINATION="-452;605;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1504200878312" ID="ID_1934842950" MODIFIED="1538838347571" TEXT="...f&#xfc;r #1099 DemoGuiRoundtrip">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um mal was im UI anzeigen zu k&#246;nnen
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1504200907356" ID="ID_1939871955" MODIFIED="1538838450291" TEXT="neues Dock">
<icon BUILTIN="button_ok"/>
<node CREATED="1504201024836" ID="ID_541911572" MODIFIED="1518487921083" TEXT="brauche Icon"/>
<node CREATED="1504201506172" ID="ID_739793394" MODIFIED="1518487921083" TEXT="nimm vorerst Asset-Icon">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504201029004" ID="ID_1898190659" MODIFIED="1538838744207" TEXT="als SVG machen...">
<arrowlink COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-459;-144;" ID="Arrow_ID_421953450" STARTARROW="None" STARTINCLINATION="-861;94;"/>
<icon BUILTIN="hourglass"/>
</node>
</node>
<node COLOR="#338800" CREATED="1534523269133" ID="ID_403796438" MODIFIED="1538838457405" TEXT="interne Struktur">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523277547" ID="ID_1662503806" MODIFIED="1538838460701" TEXT="FelerLog-Anzeige">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523283443" ID="ID_329149746" MODIFIED="1534524676311" TEXT="erst bei Bedarf belegen">
<arrowlink COLOR="#7ca8bc" DESTINATION="ID_1941760302" ENDARROW="Default" ENDINCLINATION="-1967;5936;" ID="Arrow_ID_192358692" STARTARROW="None" STARTINCLINATION="670;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534523296448" ID="ID_734584528" MODIFIED="1538838422608" TEXT="zuklappbar">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534523292305" ID="ID_1595061322" MODIFIED="1538838426589" TEXT="Platzhalter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538838427984" ID="ID_1386470288" MODIFIED="1538838432888" TEXT="Buttonts">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1534850747192" ID="ID_109802175" MODIFIED="1538838438202" TEXT="vorl&#xe4;ufig per Grid implementieren">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1504200915915" ID="ID_335470074" MODIFIED="1538838470692" TEXT="sp&#xe4;ter wird das ein nichtmodaler Parameter-Editor">
<arrowlink DESTINATION="ID_1405249171" ENDARROW="Default" ENDINCLINATION="222;-82;" ID="Arrow_ID_1395046288" STARTARROW="None" STARTINCLINATION="644;0;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1504833434094" ID="ID_349655067" MODIFIED="1557498707232">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Docks enthalten <b>Component Views</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#929fdf" DESTINATION="ID_1717772756" ENDARROW="Default" ENDINCLINATION="-34;-71;" ID="Arrow_ID_1343685046" STARTARROW="None" STARTINCLINATION="-79;76;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1538941704952" HGAP="12" ID="ID_429142366" MODIFIED="1557498707232" TEXT="konkrete Panels" VSHIFT="26">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_712786561" MODIFIED="1557498707232" TEXT="Timeline-Panel">
<linktarget COLOR="#fec680" DESTINATION="ID_712786561" ENDARROW="Default" ENDINCLINATION="-1077;-98;" ID="Arrow_ID_433721169" SOURCE="ID_1231562526" STARTARROW="None" STARTINCLINATION="860;206;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1539394757429" ID="ID_376064530" MODIFIED="1557498707232" TEXT="wegr&#xe4;umen des Testcodes">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539394765628" ID="ID_308731527" MODIFIED="1557498707232" TEXT="Widget-Struktur anlegen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539459412979" ID="ID_1273129379" MODIFIED="1557498707232" TEXT="leere Platzhalter-Timeline">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539459428928" ID="ID_1156538064" MODIFIED="1557498707232" TEXT="best&#xfc;cken">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539394779490" ID="ID_1710199928" MODIFIED="1557498707232" TEXT="Verwalten der Tabs">
<icon BUILTIN="flag-yellow"/>
</node>
<node COLOR="#338800" CREATED="1539394670721" ID="ID_1510868551" MODIFIED="1557498707232" TEXT="TimelineWidget &#xfc;bernehmen">
<linktarget COLOR="#a678c8" DESTINATION="ID_1510868551" ENDARROW="Default" ENDINCLINATION="-587;-51;" ID="Arrow_ID_206932394" SOURCE="ID_50363803" STARTARROW="None" STARTINCLINATION="-699;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1539394802679" ID="ID_1716564275" MODIFIED="1557498707232" TEXT="neuen Tab daf&#xfc;r belegen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1539480719942" ID="ID_1686433179" MODIFIED="1557498707232" TEXT="ggfs Platzhalter wegwerfen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1477342616175" HGAP="37" ID="ID_954058801" MODIFIED="1557498707232" TEXT="Workspace" VSHIFT="33">
<node CREATED="1477342624942" FOLDED="true" ID="ID_56920104" MODIFIED="1557498707232" TEXT="ist-Zustand">
<node CREATED="1477342634181" ID="ID_930340610" MODIFIED="1518487921084" TEXT="ein globaler WindowManager">
<node CREATED="1477342640932" ID="ID_950379507" MODIFIED="1518487921084" TEXT="hat Liste von WorkspaceWindow-s"/>
<node CREATED="1477342694237" ID="ID_1913986184" MODIFIED="1518487921084" TEXT="diese deregistrieren sich beim Schlie&#xdf;en"/>
<node CREATED="1477342711442" ID="ID_500847959" MODIFIED="1518487921084" TEXT="wenn letztes Fenster zu, dann Main-&gt;quit"/>
<node CREATED="1477342816853" ID="ID_205499879" MODIFIED="1518487921084" TEXT="steuert Zusand von Menu&gt;Window&gt;CloseWindow">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nur <i>enabled</i>&#160;wenn
</p>
<p>
mehr als ein top-level Fenster offen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1477342868574" ID="ID_679226593" MODIFIED="1518487921084" TEXT="WorkspaceWindow">
<node CREATED="1477342962345" ID="ID_1801410798" MODIFIED="1518487921084" TEXT="verbunden mit">
<node CREATED="1477342985710" ID="ID_1944710826" MODIFIED="1518487921084" TEXT="Project"/>
<node CREATED="1477342971448" ID="ID_1574175266" MODIFIED="1518487921084" TEXT="Controller"/>
</node>
<node CREATED="1477343022529" ID="ID_1585028268" MODIFIED="1518487921084" TEXT="owns">
<node CREATED="1477343030104" ID="ID_350881879" MODIFIED="1518487921084" TEXT="gtk::UiManager">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
A Gtk::UIManager constructs a user interface (menus and toolbars) from one or more UI definitions,
</p>
<p>
which reference actions from one or more action groups.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1477343041295" ID="ID_1874325062" MODIFIED="1518487921084" TEXT="PanelManager">
<node CREATED="1477343244428" ID="ID_513688853" MODIFIED="1518487921084" TEXT="managed die Docks"/>
<node CREATED="1477345531413" ID="ID_1082348568" MODIFIED="1518487921084" TEXT="Liste m&#xf6;glicher Panel-Typen"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1477345852274" HGAP="30" ID="ID_1401392249" MODIFIED="1518487921084" TEXT="Kritik" VSHIFT="15">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1477345882862" ID="ID_1342647727" MODIFIED="1518487921084" TEXT="arbeitet zu viel mit Pointern ohe RAII"/>
<node CREATED="1477345906723" ID="ID_906895860" MODIFIED="1518487921084" TEXT="&quot;poor man&apos;s reflection&quot;"/>
<node CREATED="1477345939063" ID="ID_984848221" MODIFIED="1518487921084">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
realisiert Vererbung <i>zu fu&#223;</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...anstatt eine auf den konkreten Typ getemplatete Subklasse zu verwenden,
</p>
<p>
wird eine &quot;CreatePanelProc&quot; in einen PanelDescriptor eingewickelt.
</p>
<p>
Letzten Endes wird dieser dann per Match auf die Typ-ID ausgew&#228;hlt.
</p>
<p>
AUA!
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1477347390430" HGAP="46" ID="ID_138529757" MODIFIED="1518487921084" TEXT="Panel" VSHIFT="31">
<node CREATED="1477347401045" ID="ID_919458304" MODIFIED="1518487921084" TEXT="Timeline">
<node CREATED="1477347410884" ID="ID_507837490" MODIFIED="1518487921084" TEXT="im Umbau"/>
</node>
<node CREATED="1477347405332" ID="ID_1735199230" MODIFIED="1518487921084" TEXT="Asset"/>
<node CREATED="1477347407324" ID="ID_1325322495" MODIFIED="1518487921084" TEXT="Viewer">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477347416659" ID="ID_1220196828" MODIFIED="1518487921084" TEXT="kaputt">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1477347424858" ID="ID_439722309" MODIFIED="1518487921084" TEXT="wird nicht mehr erzeugt">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1477347448199" ID="ID_432416001" MODIFIED="1518487921084" TEXT="Grund: kein Displayer">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477616970387" HGAP="56" ID="ID_786267715" MODIFIED="1518487921084" TEXT="Problem: Panel clean-up" VSHIFT="40">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1477617009766" ID="ID_205353538" MODIFIED="1518487921084" TEXT="Verdacht: dtor wird nicht aufgerufen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wie komme ich da drauf?
</p>
<p>
Ich wollte untersuchen, ob Gtk::manage( ptr ) korrekt die &#252;bergebenen Objekte aufr&#228;umt.
</p>
<p>
Wie sich nun zeigt, passiert das Aufr&#228;umen im dtor desjenigen Widget, dem das zu managende Objekt als Kind gegeben wurde.
</p>
<p>
Im vorliegenden Fall w&#228;re das der dtor des umschlie&#223;enden ScrolledWindow. Der aber wird <i>offensichtlich nicht aufgerufen,</i>
</p>
<p>
auch nicht im Application-Shutdown!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1477617185582" ID="ID_634277803" MODIFIED="1518487921084" TEXT="PanelManager::createPanels()">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....erzeugt wird das hier:
</p>
<p>
dock_.add_item(timelinePanel-&gt;getDockItem(),Gdl::DOCK_BOTTOM);
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node CREATED="1477343061900" ID="ID_589166101" MODIFIED="1518487921084" TEXT="Statusbar"/>
<node CREATED="1477343071827" ID="ID_369966079" MODIFIED="1518487921084" TEXT="Actions">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Helper to build the menu and for&#160;registering and handling of user action events
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1477344354329" ID="ID_1683945104" MODIFIED="1518487921084" TEXT="createUi()">
<node CREATED="1477344605448" ID="ID_960836253" MODIFIED="1518487921084" TEXT="panelManager_.setupDock();"/>
<node CREATED="1477344610087" ID="ID_844257690" MODIFIED="1518487921084" TEXT="baut auf">
<node CREATED="1477344616486" ID="ID_466606949" MODIFIED="1518487921084" TEXT="Men&#xfc;bar"/>
<node CREATED="1477344619541" ID="ID_1111690482" MODIFIED="1518487921084" TEXT="dockContainer"/>
<node CREATED="1477344659440" ID="ID_1310811438" MODIFIED="1518487921084" TEXT="statusBar"/>
</node>
</node>
</node>
<node CREATED="1477343115357" ID="ID_213954404" MODIFIED="1518487921084" TEXT="Kritik">
<node CREATED="1477343120660" ID="ID_1940152250" MODIFIED="1518487921084" TEXT="Multiplizit&#xe4;t unklar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es sieht so aus, als w&#228;re es &quot;das&quot; WorkspaceWindow
</p>
<p>
aber es kann davon mehrere geben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1477343152288" ID="ID_1267678981" MODIFIED="1518487921084" TEXT="Vermengung von Fenster und Workspace"/>
</node>
</node>
<node CREATED="1477522265208" HGAP="53" ID="ID_41510242" MODIFIED="1557498707232" TEXT="Neuerungen" VSHIFT="28">
<node CREATED="1477522271822" ID="ID_622217667" MODIFIED="1557498707232" TEXT="PanelExperiment">
<arrowlink COLOR="#e0d18d" DESTINATION="ID_340215113" ENDARROW="Default" ENDINCLINATION="-389;5426;" ID="Arrow_ID_1440864098" STARTARROW="None" STARTINCLINATION="-1637;-8191;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1477522330886" ID="ID_1920846276" MODIFIED="1557498707232" TEXT="ScrolledWindow"/>
<node CREATED="1477522340573" ID="ID_168076322" MODIFIED="1557498707232" TEXT="Grid">
<node CREATED="1477523590806" ID="ID_908611386" MODIFIED="1557498707232" TEXT="attach()"/>
<node CREATED="1477523593462" ID="ID_1461366621" MODIFIED="1557498707232" TEXT="attach_next_to()"/>
<node CREATED="1477523578208" ID="ID_738525852" MODIFIED="1557498707232" TEXT="add()"/>
</node>
<node CREATED="1477523550484" ID="ID_1492266905" MODIFIED="1557498707232" TEXT="Box">
<node CREATED="1477523556667" ID="ID_852178687" MODIFIED="1557498707232" TEXT="horizontal / vertikal"/>
<node CREATED="1477523561930" ID="ID_868197404" MODIFIED="1557498707232" TEXT="pack_start() "/>
<node CREATED="1477523573184" ID="ID_1063091132" MODIFIED="1557498707232" TEXT="pack_end()"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1534849790225" HGAP="46" ID="ID_326815949" MODIFIED="1557498707232" TEXT="#1164 investigate docking panel behaviour">
<linktarget COLOR="#a35f7f" DESTINATION="ID_326815949" ENDARROW="Default" ENDINCLINATION="33;189;" ID="Arrow_ID_746548615" SOURCE="ID_1536071305" STARTARROW="None" STARTINCLINATION="246;-229;"/>
<icon BUILTIN="flag-pink"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850081097" ID="ID_264379011" MODIFIED="1557498707232" TEXT="m&#xf6;gliche Schachtelungen">
<icon BUILTIN="full-1"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850106454" ID="ID_1465835366" MODIFIED="1557498707232" TEXT="nebeneinander (Grid)">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850113247" ID="ID_667518060" MODIFIED="1557498707232" TEXT="Tabs">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850159866" ID="ID_1887039635" MODIFIED="1557498707232" TEXT="Teil-Layout programatisch erzeugen / rekonstruieren">
<icon BUILTIN="full-2"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850200900" ID="ID_754628121" MODIFIED="1557498707232" TEXT="programmatische Gr&#xf6;&#xdf;en&#xe4;nderung">
<icon BUILTIN="full-3"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850230072" ID="ID_333353660" MODIFIED="1557498707232" TEXT="size-request">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850238426" ID="ID_1411766694" MODIFIED="1557498707232" TEXT="harte Gr&#xf6;&#xdf;envorgabe">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850256212" ID="ID_761478120" MODIFIED="1557498707232" TEXT="bei mehrfacher Schachtelung">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850278149" ID="ID_348255325" MODIFIED="1557498707232" TEXT="Zusammenspiel mit Persistenz">
<icon BUILTIN="full-4"/>
</node>
</node>
</node>
<node CREATED="1487464476801" ID="ID_1621360845" MODIFIED="1557498707232" TEXT="Umbau">
<node CREATED="1487464480872" ID="ID_830603607" MODIFIED="1557498707232" TEXT="bestehende Strukturen stillegen"/>
<node CREATED="1487464489143" ID="ID_1990719718" MODIFIED="1557498707232" TEXT="noch erhalten als Bezugspunkt"/>
<node CREATED="1487464495494" ID="ID_1238357229" MODIFIED="1557498707232" TEXT="daneben neue Controller-Backbone hochziehen"/>
<node CREATED="1487464505469" ID="ID_707273464" MODIFIED="1557498707232" TEXT="Umbau in neuen top-level">
<arrowlink COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" STARTARROW="None" STARTINCLINATION="1984;197;"/>
</node>
</node>
<node CREATED="1477522287316" ID="ID_1942021610" MODIFIED="1557498707232" TEXT="TimelinePanel"/>
<node COLOR="#338800" CREATED="1502390603674" ID="ID_1926586811" MODIFIED="1557498707232" TEXT="#1102 : build a message display box in the UI">
<linktarget COLOR="#8c8bae" DESTINATION="ID_1926586811" ENDARROW="Default" ENDINCLINATION="1456;47;" ID="Arrow_ID_1593124756" SOURCE="ID_125356908" STARTARROW="None" STARTINCLINATION="-839;779;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1504833474521" HGAP="39" ID="ID_1439141983" MODIFIED="1557498707232" TEXT="Struktur" VSHIFT="10">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1504833487359" ID="ID_1631525475" MODIFIED="1557498707232" TEXT="UI-Frame: Fenster"/>
<node CREATED="1504833498453" ID="ID_815439481" MODIFIED="1557498707232" TEXT="Perspektive"/>
<node CREATED="1504833508516" ID="ID_1973916831" MODIFIED="1557498707232" TEXT="einzelne Panel"/>
<node CREATED="1504833540720" ID="ID_1717772756" MODIFIED="1557498707232" TEXT="Component View">
<linktarget COLOR="#92a9df" DESTINATION="ID_1717772756" ENDARROW="Default" ENDINCLINATION="-1346;-3359;" ID="Arrow_ID_1986148222" SOURCE="ID_583036636" STARTARROW="None" STARTINCLINATION="385;845;"/>
<linktarget COLOR="#929fdf" DESTINATION="ID_1717772756" ENDARROW="Default" ENDINCLINATION="-34;-71;" ID="Arrow_ID_1343685046" SOURCE="ID_349655067" STARTARROW="None" STARTINCLINATION="-79;76;"/>
<node CREATED="1504833565425" ID="ID_529173859" MODIFIED="1557498707232" TEXT="Timeline"/>
<node CREATED="1504833569692" ID="ID_1708962269" MODIFIED="1557498707232" TEXT="Viewer"/>
<node CREATED="1504833572687" ID="ID_57378390" MODIFIED="1557498707232" TEXT="(Asset)Bin"/>
<node CREATED="1504833574246" ID="ID_897436866" MODIFIED="1557498707232" TEXT="Infobox">
<node CREATED="1534523010591" ID="ID_1405249171" MODIFIED="1557498707232" TEXT="Zentrale Informationsanzeigen">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1405249171" ENDARROW="Default" ENDINCLINATION="222;-82;" ID="Arrow_ID_1395046288" SOURCE="ID_335470074" STARTARROW="None" STARTINCLINATION="644;0;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534848989905" ID="ID_1536071305" MODIFIED="1557498707232" TEXT="Anforderungen">
<arrowlink COLOR="#a35f7f" DESTINATION="ID_326815949" ENDARROW="Default" ENDINCLINATION="33;189;" ID="Arrow_ID_746548615" STARTARROW="None" STARTINCLINATION="246;-229;"/>
<icon BUILTIN="yes"/>
<node CREATED="1534849000159" ID="ID_82161143" MODIFIED="1557498707232" TEXT="fest vorgegebener Platz im UI"/>
<node CREATED="1534849057715" ID="ID_1467109522" MODIFIED="1557498707232" TEXT="stets sichbarer Status-Bereich">
<node CREATED="1534849188780" ID="ID_1937021840" MODIFIED="1557498707232" TEXT="sehr kompakt / effizient"/>
<node CREATED="1534849196166" ID="ID_1813708845" MODIFIED="1557498707232" TEXT="enth&#xe4;lt minimale Navi"/>
</node>
<node CREATED="1534849205203" ID="ID_1997665939" MODIFIED="1557498707232" TEXT="darunter">
<node CREATED="1534849381630" ID="ID_1209297989" MODIFIED="1557498707232" TEXT="Paletten-Stacks">
<node CREATED="1534849546781" ID="ID_657722273" MODIFIED="1557498707232" TEXT="zweidimensionale Anordnung"/>
<node CREATED="1534849630348" ID="ID_506310851" MODIFIED="1557498707232" TEXT="Fokus in einer Spalte + Zelle"/>
<node CREATED="1534849646074" ID="ID_1030720361" MODIFIED="1557498707232" TEXT="der Rest wird reduziert (abridged)"/>
</node>
<node CREATED="1534849493068" ID="ID_1029182833" MODIFIED="1557498707232" TEXT="kann sich in Pupup vergr&#xf6;&#xdf;ern"/>
<node CREATED="1534849512730" ID="ID_1444658378" MODIFIED="1557498707232" TEXT="kollabiert bei Fokusverlust"/>
</node>
</node>
<node CREATED="1534850609493" ID="ID_798164713" MODIFIED="1557498707232" TEXT="Belegung">
<node CREATED="1534850615125" ID="ID_1470557953" MODIFIED="1557498707232" TEXT="eindeutiger View-Name"/>
<node CREATED="1534850658265" ID="ID_60455430" MODIFIED="1557498707232" TEXT="Tab == Sub-View oder Fach"/>
</node>
</node>
<node CREATED="1534523024189" ID="ID_215944418" MODIFIED="1557498707232" TEXT="Fehlerlog">
<node CREATED="1534523031493" ID="ID_1146002742" MODIFIED="1557498707232" TEXT="wird bei erstem Bedarf belegt"/>
<node CREATED="1534523042035" ID="ID_1292242862" MODIFIED="1557498707232" TEXT="klappt bei Fehlern auf"/>
</node>
<node CREATED="1534523020334" ID="ID_295859017" MODIFIED="1557498707232" TEXT="Status"/>
</node>
<node CREATED="1504833575700" ID="ID_1470115932" MODIFIED="1557498707232" TEXT="Playcontrol"/>
</node>
</node>
</node>
</node>
<node CREATED="1488423383765" HGAP="339" ID="ID_1046643705" MODIFIED="1557498707232" TEXT="Verhalten" VSHIFT="23">
<node CREATED="1488423418968" ID="ID_1169811882" MODIFIED="1557498707232" TEXT="Lebenszyklus">
<node CREATED="1488423424111" ID="ID_1090980479" MODIFIED="1557498707232" TEXT="Start">
<node COLOR="#338800" CREATED="1531417429342" ID="ID_991918611" MODIFIED="1557498707232" TEXT="als Subsystem">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1531417434195" ID="ID_176564515" MODIFIED="1557498707232" TEXT="Strukturen hochfahren">
<linktarget COLOR="#fee998" DESTINATION="ID_176564515" ENDARROW="Default" ENDINCLINATION="-1211;-7367;" ID="Arrow_ID_157207334" SOURCE="ID_1850773836" STARTARROW="None" STARTINCLINATION="-617;103;"/>
<node CREATED="1531417551148" ID="ID_579526750" MODIFIED="1557498707232" TEXT="UI top-level"/>
<node CREATED="1531417577048" ID="ID_371378063" MODIFIED="1557498707232" TEXT="Rahmen bereitstellen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419217662" ID="ID_745789650" MODIFIED="1557498707232" TEXT="#1147 establish UI start-up sequence">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544238959075" ID="ID_317908194" MODIFIED="1557498707232" TEXT="es gibt noch L&#xfc;cken">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1544238974604" ID="ID_116347689" MODIFIED="1557498707232" TEXT="Exception beim Hochfahren der Backbone">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544240822252" ID="ID_1036837893" MODIFIED="1557498707232" TEXT="#1192 Lumiera hangs on failed GUI start">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544238994154" ID="ID_1878681615" MODIFIED="1557498707232" TEXT="Problem: Fehler-Handler sch&#xfc;tzt nur die Loop selber">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544239461493" ID="ID_1795051800" MODIFIED="1557498707232" TEXT="catch-Block anders anordnen">
<arrowlink COLOR="#e02825" DESTINATION="ID_478753729" ENDARROW="Default" ENDINCLINATION="-3550;0;" ID="Arrow_ID_840138296" STARTARROW="None" STARTINCLINATION="-69;-346;"/>
<linktarget COLOR="#e5221e" DESTINATION="ID_1795051800" ENDARROW="Default" ENDINCLINATION="-43;971;" ID="Arrow_ID_127697886" SOURCE="ID_110235945" STARTARROW="None" STARTINCLINATION="-235;72;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544239713424" ID="ID_632286012" MODIFIED="1557498707232" TEXT="m&#xf6;glichen Race mit Subsystem-Runner pr&#xfc;fen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1544241151268" ID="ID_1182875214" MODIFIED="1557498707232" TEXT="sigTerm ist durch Lock gesch&#xfc;tzt">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1544241162650" ID="ID_830024837" MODIFIED="1557498707232" TEXT="d.h. sigTerm blockt, solange der startup l&#xe4;uft"/>
<node CREATED="1544241230874" ID="ID_24965814" MODIFIED="1557498707232" TEXT="was macht GuiFacade::checkRunningState() ?">
<node CREATED="1544241332932" ID="ID_924360922" MODIFIED="1557498707232" TEXT="pr&#xfc;ft den Facade-ptr"/>
<node CREATED="1544241469845" ID="ID_1172060220" MODIFIED="1557498707232" TEXT="der ist gesetzt, sobald der UI-Thread l&#xe4;uft"/>
<node COLOR="#338800" CREATED="1544241497023" ID="ID_1127634183" MODIFIED="1557498707232" TEXT="das ist also OK">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1544241590705" ID="ID_1914479382" MODIFIED="1557498707232">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
demnach w&#252;rde startup sauber beendet,
</p>
<p>
und unmittelbar danach w&#252;rder der UI-Thread einen
</p>
<p>
emergency-Shutdown initiieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1544241647251" ID="ID_1802228559" MODIFIED="1557498707232" TEXT="sieht soweit sauber aus">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1538265361374" ID="ID_1843835835" MODIFIED="1557498707232" TEXT="Detailierte Analyse">
<arrowlink COLOR="#77c1c5" DESTINATION="ID_226245696" ENDARROW="Default" ENDINCLINATION="-1683;73;" ID="Arrow_ID_532646791" STARTARROW="None" STARTINCLINATION="3001;448;"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1531417583847" ID="ID_1316715960" MODIFIED="1557498707232" TEXT="Dienste starten">
<node CREATED="1531417744657" FOLDED="true" ID="ID_350697541" MODIFIED="1557498707232" TEXT="Inhalts-Konsument">
<arrowlink COLOR="#30327c" DESTINATION="ID_527465217" ENDARROW="Default" ENDINCLINATION="25;-45;" ID="Arrow_ID_1130203410" STARTARROW="None" STARTINCLINATION="-75;21;"/>
<node CREATED="1531588709162" ID="ID_152567143" MODIFIED="1531588724487" TEXT="wann aktivieren?">
<icon BUILTIN="help"/>
<node CREATED="1531588726503" ID="ID_1064852599" MODIFIED="1531588733706" TEXT="mit InteractionDirector?"/>
<node CREATED="1531588734582" ID="ID_1508027862" MODIFIED="1531588750296" TEXT="vor GTK-Loop?"/>
<node CREATED="1531588753044" ID="ID_387089286" MODIFIED="1532788602238" TEXT="in der Loop?">
<arrowlink COLOR="#9d1a41" DESTINATION="ID_1581791639" ENDARROW="Default" ENDINCLINATION="-211;-16;" ID="Arrow_ID_1635616322" STARTARROW="None" STARTINCLINATION="-419;0;"/>
<linktarget COLOR="#8a226e" DESTINATION="ID_387089286" ENDARROW="Default" ENDINCLINATION="300;0;" ID="Arrow_ID_1663921099" SOURCE="ID_262149423" STARTARROW="None" STARTINCLINATION="136;3;"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1531588828738" ID="ID_1453043346" MODIFIED="1531588835780" TEXT="Verhalten">
<node CREATED="1531588837008" ID="ID_803785652" MODIFIED="1531588855466" TEXT="ctor sendet Aktivierungs-Command"/>
<node CREATED="1531588848359" ID="ID_1792032686" MODIFIED="1531588864496" TEXT="dtor sendet deAktivierungs-Command"/>
<node CREATED="1531588867077" ID="ID_291300049" MODIFIED="1531588877210" TEXT="setzt Session voraus">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1531588878587" ID="ID_1315265515" MODIFIED="1531588883734" TEXT="per Subsystem sichergestellt"/>
<node CREATED="1531588884490" ID="ID_1508293978" MODIFIED="1531588894300" TEXT="GUI setzt generell Session voraus"/>
</node>
<node CREATED="1531588911686" ID="ID_666574025" MODIFIED="1531588947853" TEXT="Konsequenzen">
<icon BUILTIN="forward"/>
<node CREATED="1531588919981" ID="ID_1457124086" MODIFIED="1531588926952" TEXT="danach k&#xf6;nnen Diff-Nachrichten ankommen"/>
<node CREATED="1531588927700" ID="ID_1330332232" MODIFIED="1531588932375" TEXT="dazu mu&#xdf; die Loop laufen"/>
<node CREATED="1531588933107" ID="ID_262149423" MODIFIED="1531588977291" TEXT="und die NotificationFacade offen sein">
<arrowlink COLOR="#8a226e" DESTINATION="ID_387089286" ENDARROW="Default" ENDINCLINATION="300;0;" ID="Arrow_ID_1663921099" STARTARROW="None" STARTINCLINATION="136;3;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1531417463128" HGAP="24" ID="ID_1392317817" MODIFIED="1557498707232" TEXT="mit Inhalt beladen" VSHIFT="37">
<linktarget COLOR="#665692" DESTINATION="ID_1392317817" ENDARROW="Default" ENDINCLINATION="-1993;202;" ID="Arrow_ID_609042013" SOURCE="ID_1997153046" STARTARROW="Default" STARTINCLINATION="1943;108;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531417714894" FOLDED="true" ID="ID_527465217" MODIFIED="1557498707233" TEXT="Inhalts-Empfang etablieren">
<linktarget COLOR="#30327c" DESTINATION="ID_527465217" ENDARROW="Default" ENDINCLINATION="25;-45;" ID="Arrow_ID_1130203410" SOURCE="ID_350697541" STARTARROW="None" STARTINCLINATION="-75;21;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531423717866" ID="ID_1400324647" MODIFIED="1531423724074" TEXT="#1150 GUI content connector">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531423582548" ID="ID_751311895" MODIFIED="1533392488074" TEXT="Aktivierungs-Command">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1531423597642" ID="ID_1814328528" MODIFIED="1533395218014" TEXT="definieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1533395230685" ID="ID_556592297" MODIFIED="1533400280528" TEXT="Ausf&#xfc;hrung sicherstellen">
<icon BUILTIN="button_ok"/>
<node CREATED="1533400281627" ID="ID_1248361340" MODIFIED="1533400375591" TEXT="geht noch nicht -- logging-Strategy fehlt">
<icon BUILTIN="stop-sign"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533400377118" ID="ID_1072134705" MODIFIED="1541547696433" TEXT="#211 handling pattern for dispatch">
<arrowlink COLOR="#ca91c2" DESTINATION="ID_1192893155" ENDARROW="Default" ENDINCLINATION="1415;0;" ID="Arrow_ID_207842771" STARTARROW="None" STARTINCLINATION="2581;0;"/>
<icon BUILTIN="hourglass"/>
</node>
<node COLOR="#338800" CREATED="1533400389668" ID="ID_1875748001" MODIFIED="1533400427879" TEXT="vorl&#xe4;ufig: Pr&#xe4;fix test_">
<icon BUILTIN="button_ok"/>
<node CREATED="1533400398059" ID="ID_1419077642" MODIFIED="1533400424027" TEXT="Magie im ProcDispatcher">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533400403290" ID="ID_950948089" MODIFIED="1533400426028" TEXT="f&#xfc;hrt Command unmittelbar aus">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1533400412337" ID="ID_462882830" MODIFIED="1533400420146" TEXT="funktioniert">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533392476019" ID="ID_1798579710" MODIFIED="1533401269006" TEXT="vorl&#xe4;ufige Dummy-Implementierung">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1533401271538" ID="ID_613065826" MODIFIED="1538263724168" TEXT="erst mal nur eine Nachricht als UI-Notification">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1533402513829" ID="ID_1456159316" MODIFIED="1538839303541" TEXT="#1099 DemoGuiRoundtrip">
<arrowlink COLOR="#f0eca5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="881;2029;" ID="Arrow_ID_1736540527" STARTARROW="None" STARTINCLINATION="418;-44;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538839326830" ID="ID_1942975878" MODIFIED="1538839342189" TEXT="jetzt retul&#xe4;r &#xfc;ber die Notification facade">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401303142" ID="ID_1338326263" MODIFIED="1533401327708" TEXT="hart gecodeten initialen Diff hochschicken">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1533403016000" ID="ID_515841398" MODIFIED="1533403026256" TEXT="Diff-Nachrichten wieder verstehen">
<icon BUILTIN="flag-pink"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533403027894" ID="ID_488294111" MODIFIED="1533403133894" TEXT="Diff-Nachricht inline generieren">
<arrowlink COLOR="#e34459" DESTINATION="ID_294556843" ENDARROW="Default" ENDINCLINATION="287;0;" ID="Arrow_ID_1612526412" STARTARROW="None" STARTINCLINATION="190;339;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531423600722" ID="ID_311523916" MODIFIED="1533392474052" TEXT="Implementierung kl&#xe4;ren">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1533401971601" ID="ID_883504437" MODIFIED="1533401978732" TEXT="Service in der Session">
<node CREATED="1533401984272" ID="ID_813978364" MODIFIED="1533401990795" TEXT="Aktivierungs-Status"/>
<node CREATED="1533401991455" ID="ID_1252573502" MODIFIED="1533402001594" TEXT="kann sich &quot;irgendwo&quot; einklinken">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1533403071072" ID="ID_1097229623" MODIFIED="1533403086052" TEXT="Content-Listener">
<arrowlink DESTINATION="ID_1724879903" ENDARROW="Default" ENDINCLINATION="17;-198;" ID="Arrow_ID_275658114" STARTARROW="None" STARTINCLINATION="-79;12;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531423632949" ID="ID_1724879903" MODIFIED="1533403086052" TEXT="Content-Listener">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1724879903" ENDARROW="Default" ENDINCLINATION="17;-198;" ID="Arrow_ID_275658114" SOURCE="ID_1097229623" STARTARROW="None" STARTINCLINATION="-79;12;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401384155" ID="ID_1494781570" MODIFIED="1533403062858" TEXT="#1153 define foundation for live diff updates Session -&gt; UI">
<arrowlink COLOR="#a47f9a" DESTINATION="ID_1106740084" ENDARROW="Default" ENDINCLINATION="2561;-1079;" ID="Arrow_ID_1276188897" STARTARROW="None" STARTINCLINATION="1703;327;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1531423640788" ID="ID_865939750" MODIFIED="1531423650015" TEXT="Ort finden"/>
<node CREATED="1531423650339" ID="ID_583637266" MODIFIED="1531423655294" TEXT="Lebenszyklus kl&#xe4;ren"/>
<node CREATED="1531423734880" ID="ID_1658395629" MODIFIED="1531423739643" TEXT="Verbindungen kl&#xe4;ren"/>
</node>
<node COLOR="#338800" CREATED="1532788529509" ID="ID_390131579" MODIFIED="1533388695623" TEXT="Trigger-Punkt">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1532788547560" ID="ID_1581791639" MODIFIED="1532788625456" TEXT="mu&#xdf; in der GTK-Event-Loop liegen">
<linktarget COLOR="#9d1a41" DESTINATION="ID_1581791639" ENDARROW="Default" ENDINCLINATION="-211;-16;" ID="Arrow_ID_1635616322" SOURCE="ID_387089286" STARTARROW="None" STARTINCLINATION="-419;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1532788645307" FOLDED="true" ID="ID_254810710" MODIFIED="1538871445406" TEXT="Trigger-Technik kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
<node CREATED="1532788681197" FOLDED="true" HGAP="336" ID="ID_32192034" MODIFIED="1538589894276" TEXT="bei GTK selber abschauen" VSHIFT="-52">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
erinnere mich, diverse Mechanismen gesehen zu haben,
</p>
<p>
die erlauben, eine Init-Aktion in die Loop zu schedulen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1532793805646" ID="ID_1917720417" MODIFIED="1532793811649" TEXT="Gtk::Application">
<node CREATED="1532797033134" ID="ID_1310675334" MODIFIED="1532797038441" TEXT="Gio::Application">
<node CREATED="1532797039293" ID="ID_827848177" MODIFIED="1532797041784" TEXT="Basisklasse"/>
<node CREATED="1532797042628" ID="ID_868500366" MODIFIED="1532797129536" TEXT="statisches member: Application_Class">
<icon BUILTIN="idea"/>
<node CREATED="1532797071961" ID="ID_965723020" MODIFIED="1532797076020" TEXT="hat init-Funktionen"/>
<node CREATED="1532797076656" ID="ID_1083316138" MODIFIED="1532797125862">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
betrifft aber <b>nur Framework</b>-Funktionalit&#228;t
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
also kein Initialisieren des Toolkit,
</p>
<p>
sondern Sachen wie verallgemeinerte &quot;Files&quot;, D-Bus-Connection etc etc
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1532794470116" ID="ID_539459561" MODIFIED="1533310145219" TEXT="Fazit">
<linktarget COLOR="#dc217a" DESTINATION="ID_539459561" ENDARROW="Default" ENDINCLINATION="33;201;" ID="Arrow_ID_601982135" SOURCE="ID_1901487140" STARTARROW="None" STARTINCLINATION="-55;-186;"/>
<icon BUILTIN="info"/>
<node CREATED="1532794476795" ID="ID_1999030504" MODIFIED="1532794483438" TEXT="gibt es statische Funktionen?">
<node CREATED="1533310001705" ID="ID_1113571044" MODIFIED="1533310014123" TEXT="nur Application::create(..) -&gt; smart-Ptr"/>
</node>
<node CREATED="1532794485778" ID="ID_86543147" MODIFIED="1532794494804" TEXT="was f&#xfc;r on-start-Callbacks gibt es?">
<node CREATED="1533309934787" ID="ID_768351523" MODIFIED="1533309939685" TEXT="signal_activate()"/>
</node>
<node CREATED="1532794495416" ID="ID_1267822394" MODIFIED="1532794501700" TEXT="wie wird das Fenster angezeigt?">
<node CREATED="1533309900271" ID="ID_1679581564" MODIFIED="1533310081074" TEXT="entweder man macht es selber noch sichtbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
ein Fenster als Solches braucht noch keine Event-Loop
</li>
<li>
ohne ein Fenster macht die event-Loop keinen Sinn
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1533309913133" ID="ID_1543846508" MODIFIED="1533310043556" TEXT="oder man verwendet run(Window&amp;)">
<arrowlink COLOR="#88cecc" DESTINATION="ID_1128899175" ENDARROW="Default" ENDINCLINATION="112;-110;" ID="Arrow_ID_117418578" STARTARROW="None" STARTINCLINATION="-22;73;"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node CREATED="1533252714471" ID="ID_1128899175" MODIFIED="1533310039265" TEXT="Gtk::Application::run( Window&amp;)">
<linktarget COLOR="#88cecc" DESTINATION="ID_1128899175" ENDARROW="Default" ENDINCLINATION="112;-110;" ID="Arrow_ID_117418578" SOURCE="ID_1543846508" STARTARROW="None" STARTINCLINATION="-22;73;"/>
<node CREATED="1533252783548" ID="ID_1476873021" MODIFIED="1533252802635" TEXT="irgendwie hatte ich das in Erinnerung">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1533252737995" ID="ID_763153536" MODIFIED="1533252745030" TEXT="application.cc Zeile 160"/>
<node CREATED="1533252758840" ID="ID_346690959" MODIFIED="1533252777856" TEXT="signal_activate()">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
&#160;&#160;//We cannot add and show the window until the GApplication::activate signal
</p>
<p>
&#160;&#160;//has been emitted, or we will crash because the application has not been
</p>
<p>
&#160;&#160;//registered. (At least if window is an ApplicationWindow.)
</p>
</body>
</html></richcontent>
<node CREATED="1533252809112" ID="ID_394563790" MODIFIED="1533252812836" TEXT="woot?"/>
<node CREATED="1533252813376" ID="ID_1458058904" MODIFIED="1533252820105" TEXT="wer definiert das?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1533252821175" ID="ID_1891535415" MODIFIED="1533253383339" TEXT="Gio::Application ??">
<arrowlink COLOR="#224e99" DESTINATION="ID_28088492" ENDARROW="Default" ENDINCLINATION="37;-48;" ID="Arrow_ID_550550684" STARTARROW="None" STARTINCLINATION="-151;-4;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node CREATED="1533252898732" ID="ID_28088492" MODIFIED="1533253383340" TEXT="Gio::Application::signal_activate()">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
The signal_activate() signal is emitted on the primary instance
</p>
<p>
when an&#160;activation occurs. See g_application_activate().
</p>
</body>
</html></richcontent>
<linktarget COLOR="#224e99" DESTINATION="ID_28088492" ENDARROW="Default" ENDINCLINATION="37;-48;" ID="Arrow_ID_550550684" SOURCE="ID_1891535415" STARTARROW="None" STARTINCLINATION="-151;-4;"/>
<node CREATED="1533252951945" ID="ID_182447520" MODIFIED="1533252955015">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
g_application_activate()
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533301504184" ID="ID_887027939" MODIFIED="1533301509336" TEXT="Fragen">
<icon BUILTIN="help"/>
<node CREATED="1533301510663" ID="ID_494910709" MODIFIED="1533301520633" TEXT="wer ruft das auf?">
<node CREATED="1533309175099" ID="ID_574887736" MODIFIED="1533309275410" TEXT="im Framework nur Application::run(Window&amp;)">
<arrowlink COLOR="#6280a2" DESTINATION="ID_103827073" ENDARROW="Default" ENDINCLINATION="-1131;-99;" ID="Arrow_ID_138401663" STARTARROW="None" STARTINCLINATION="1028;-75;"/>
</node>
<node COLOR="#338800" CREATED="1533309280940" ID="ID_918869201" MODIFIED="1533309368851" TEXT="Stand 8/2018 verifiziert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
suche (case insensitive) nach application_activate
</p>
<ul>
<li>
treffer auf APPLICATION_ACTIVATE in g_application_activate()
</li>
<li>
die Treffer in Gtk::Application
</li>
<li>
diverse false positives mit anderen &quot;Activation&quot;-Signalen, z.B. in Aktionen oder Buttons
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1533301523716" ID="ID_10188406" MODIFIED="1533309824191" TEXT="haben wir eine GApplication?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1533301551049" FOLDED="true" ID="ID_229745628" MODIFIED="1533608416253" TEXT="was ist GApplication in C++?">
<node CREATED="1533309723431" ID="ID_47606560" MODIFIED="1533309729450" TEXT="Gio::Application"/>
</node>
<node CREATED="1533301567374" FOLDED="true" ID="ID_34255114" MODIFIED="1533608416254" TEXT="hatte Gtk::Main das?">
<node CREATED="1533302102181" ID="ID_1070266886" MODIFIED="1533302125340">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Main <b>erbt nicht</b>&#160;von Gio::Application
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533302523445" FOLDED="true" ID="ID_1043113531" MODIFIED="1533608415959" TEXT="init">
<node CREATED="1533303553351" ID="ID_377749143" MODIFIED="1533306139169" TEXT="gtk_init">
<arrowlink COLOR="#87a8bf" DESTINATION="ID_1850885017" ENDARROW="Default" ENDINCLINATION="-195;-45;" ID="Arrow_ID_960670945" STARTARROW="None" STARTINCLINATION="416;0;"/>
</node>
<node CREATED="1533303559495" ID="ID_1106606369" MODIFIED="1533306019466" TEXT="init_gtkmm_nternals">
<arrowlink COLOR="#679cc6" DESTINATION="ID_681479502" ENDARROW="Default" ENDINCLINATION="-182;-16;" ID="Arrow_ID_1451320473" STARTARROW="None" STARTINCLINATION="273;0;"/>
</node>
</node>
</node>
<node CREATED="1533309797149" ID="ID_1211740672" MODIFIED="1533309821531" TEXT="Antwort: wir haben keine">
<icon BUILTIN="forward"/>
</node>
<node COLOR="#435e98" CREATED="1533309804964" ID="ID_6946585" MODIFIED="1533309813851" TEXT="(und das ist gut so)">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533309837472" HGAP="6" ID="ID_1304218174" MODIFIED="1533309870065" TEXT="Fazit: wir m&#xfc;ssen das selber bauen" VSHIFT="5">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1532788727680" FOLDED="true" HGAP="69" ID="ID_889790361" MODIFIED="1538589862471" TEXT="Gtk::Main auf aktuellem Stand" VSHIFT="12">
<linktarget COLOR="#70dcb9" DESTINATION="ID_889790361" ENDARROW="Default" ENDINCLINATION="1308;0;" ID="Arrow_ID_1988524020" SOURCE="ID_1815764983" STARTARROW="Default" STARTINCLINATION="-2084;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1532788737366" ID="ID_1527913663" MODIFIED="1532788745870" TEXT="aktuellen Code bereitlegen in Eclipse">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1532788747909" ID="ID_279791197" MODIFIED="1533608413841" TEXT="wir haben kopierten Code">
<icon BUILTIN="clanbomber"/>
<node CREATED="1532788761699" ID="ID_656345742" MODIFIED="1532788789963" TEXT="in gui::ctrl::ApplicationBase"/>
<node CREATED="1532788794126" ID="ID_552465239" MODIFIED="1532788875600" TEXT="aus Gtk::Main ctor/dtor">
<node CREATED="1532788799958" ID="ID_1260151456" MODIFIED="1532788808416" TEXT="Gtk::Main selber ist deprecated"/>
<node CREATED="1532788809316" ID="ID_1012886969" MODIFIED="1532788822535" TEXT="vorr&#xfc;bergehend aber noch tragbar"/>
<node CREATED="1532788848927" ID="ID_1931062828" MODIFIED="1532788864482" TEXT="Code steckt in Gtk::Main::init_gtk_internals">
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1532789071257" ID="ID_1126586783" MODIFIED="1532789107787" TEXT="Vorsicht: was ist GtkMainConnectionNode?">
<icon BUILTIN="help"/>
<node CREATED="1532789118850" ID="ID_537169683" MODIFIED="1532789136812" TEXT="taucht (neuerdings?) im dtor auf ~GtkMain()"/>
<node CREATED="1532789138896" ID="ID_546791531" MODIFIED="1532789188914" TEXT="deaktiviert an Gtk::Main gebundene Signale">
<icon BUILTIN="info"/>
</node>
<node CREATED="1532789198999" ID="ID_270727305" MODIFIED="1532789228378" TEXT="lt. Kommentar insges. ehr ein Legacy-Feature">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;r Signale, die nicht automatisch detached werden k&#246;nnen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1532789833473" ID="ID_1171567949" MODIFIED="1532789838020" TEXT="relevant f&#xfc;r...">
<node CREATED="1532789860594" FOLDED="true" ID="ID_1189172516" MODIFIED="1533608416255" TEXT="gtk_init_add()">
<icon BUILTIN="button_cancel"/>
<node CREATED="1532791848873" ID="ID_1957619230" MODIFIED="1532791855539" TEXT="@deprecated seit 2010"/>
<node CREATED="1532791856200" ID="ID_278153793" LINK="https://mail.gnome.org/archives/commits-list/2010-October/msg04543.html" MODIFIED="1532791895468" TEXT="wurde schon entfernt">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1532789869240" FOLDED="true" ID="ID_752154716" MODIFIED="1533608416257" TEXT="gtk_key_snooper_install()">
<node CREATED="1532790015889" ID="ID_1497534470" MODIFIED="1532790040367" TEXT="@deprecated: 3.4">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
@deprecated: 3.4: Key snooping should not be done. Events should&#160;&#160;be handled by widgets
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1532790702292" ID="ID_1501770920" MODIFIED="1532790728882" TEXT="GTKmm: KeySnooperSig in main.h / main.cpp">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1532790997780" FOLDED="true" ID="ID_1359312516" MODIFIED="1533608415960" TEXT="ah: KeySnooperSig::connect()">
<icon BUILTIN="forward"/>
<icon BUILTIN="idea"/>
<node CREATED="1532791032935" ID="ID_921226462" MODIFIED="1532791047721" TEXT="installiert eine GtkMainConnectionNode"/>
<node CREATED="1532791048453" ID="ID_1754300511" MODIFIED="1532791066007" TEXT="packt den Deregisrierungs-callback rein"/>
</node>
<node CREATED="1532791334135" ID="ID_669771307" MODIFIED="1532791436936">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wohl <b>einzige verbleibende</b>&#160;Verwendung
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
finde keine andere mehr, bei suche nach GtkMainConnectionNode
</li>
<li>
auch der Kommentar zur Klasse sagt dieses (gtk_init_add wohl nicht mehr!)
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1532794546778" ID="ID_1120787097" MODIFIED="1533303442524" TEXT="GTK::Main nochmal gepr&#xfc;ft">
<linktarget COLOR="#469fa6" DESTINATION="ID_1120787097" ENDARROW="Default" ENDINCLINATION="1826;-6782;" ID="Arrow_ID_433910583" SOURCE="ID_236361713" STARTARROW="None" STARTINCLINATION="821;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1533303793015" ID="ID_1894791438" MODIFIED="1533304526458" TEXT="Infos zu Gtk::Main, Gtk::Application und Gio::Application">
<arrowlink COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-652;20;" ID="Arrow_ID_315633048" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1533304463274" HGAP="91" ID="ID_693983942" MODIFIED="1533304538638" TEXT="Initialisierung" VSHIFT="5">
<node CREATED="1532795620784" ID="ID_1782393731" MODIFIED="1533304483942" TEXT="gtk_init">
<icon BUILTIN="forward"/>
<node CREATED="1532796724776" ID="ID_1145845020" MODIFIED="1532796729971" TEXT="bleibt weiterhin bestehen"/>
<node CREATED="1532796730560" ID="ID_1851309737" MODIFIED="1532796741082" TEXT="wird von jeder Applikations-Klasse aufgerufen"/>
</node>
<node CREATED="1533304499504" ID="ID_1636222563" MODIFIED="1533304499504" TEXT="Main::init_gtkmm_internals">
<node CREATED="1532796682566" ID="ID_591452701" MODIFIED="1532796691801" TEXT="Glib, Gio und Pango initialisieren"/>
<node CREATED="1532796692445" ID="ID_1979586408" MODIFIED="1532796706398" TEXT="Wrapper-Mechanismus f&#xfc;r Gtk+-&quot;Objekte&quot; initialisieren"/>
<node CREATED="1532794561968" FOLDED="true" ID="ID_235365968" MODIFIED="1533608416258" TEXT="ist das zukunfts-fest?">
<icon BUILTIN="button_ok"/>
<node CREATED="1532796634853" ID="ID_375193574" MODIFIED="1532796646840" TEXT="in application.cc gibts die gleiche Funktion">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1532796648307" ID="ID_1796239536" MODIFIED="1532796654824" TEXT="kein Grund zur Sorge">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1533310237105" ID="ID_937500948" MODIFIED="1533310305665" TEXT="sonst nichts...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das ist explizit so gew&#252;nscht
</p>
<ul>
<li>
keine Kommandozeilen-Behandlung
</li>
<li>
keine &quot;Registrierung&quot; jedweder Art
</li>
<li>
keine D-Bus-connection
</li>
<li>
kein Application-Lifecycle
</li>
<li>
folglich auch <b>kein Aktivierungs-Signal</b>
</li>
</ul>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
</node>
<node COLOR="#338800" CREATED="1532797168836" ID="ID_1283695968" MODIFIED="1533325339452" TEXT="diesen Stand dokumentieren...">
<icon BUILTIN="button_ok"/>
<node CREATED="1532797180066" ID="ID_687615166" MODIFIED="1532797192496" TEXT="siehe Ticket #1032">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533218052308" ID="ID_1734927969" MODIFIED="1533218091117" TEXT="neue Kategorie: technical/code base/ GTK">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1533218096245" ID="ID_1901487140" MODIFIED="1533325344852" TEXT="dort Seite startup">
<arrowlink COLOR="#dc217a" DESTINATION="ID_539459561" ENDARROW="Default" ENDINCLINATION="33;201;" ID="Arrow_ID_601982135" STARTARROW="None" STARTINCLINATION="-55;-186;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1533218137447" ID="ID_59387223" MODIFIED="1533218142874" TEXT="lose Notizen dorthin"/>
<node CREATED="1533218147981" ID="ID_1385133985" MODIFIED="1533218153417" TEXT="Main vs Application"/>
<node CREATED="1533218154141" ID="ID_511849124" MODIFIED="1533218165327" TEXT="unser Ansatz"/>
<node CREATED="1533218170914" ID="ID_1610394794" MODIFIED="1533218176629" TEXT="was macht Main?"/>
</node>
</node>
</node>
</node>
<node CREATED="1532793816029" FOLDED="true" ID="ID_519518808" MODIFIED="1538589833848" TEXT="Glib::Dispatcher">
<linktarget COLOR="#c1a9ad" DESTINATION="ID_519518808" ENDARROW="Default" ENDINCLINATION="70;0;" ID="Arrow_ID_985135564" SOURCE="ID_1796116534" STARTARROW="None" STARTINCLINATION="149;-223;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1532793842721" ID="ID_1258451078" MODIFIED="1532793868919" TEXT="schon integriert in unseren UiDispatcher">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1532793854287" ID="ID_1072348424" MODIFIED="1532793872744" TEXT="installiert in dem NotificationService">
<icon BUILTIN="info"/>
</node>
<node CREATED="1533310357440" ID="ID_250151476" MODIFIED="1533310362540" TEXT="kommt nicht in Frage">
<icon BUILTIN="stop-sign"/>
<node CREATED="1533310371726" ID="ID_682159285" MODIFIED="1533310393879" TEXT="signalisiert nur einen Trigger"/>
<node CREATED="1533310381845" ID="ID_833159461" MODIFIED="1533310389328" TEXT="setzt laufende event-Loop voraus"/>
</node>
</node>
<node CREATED="1533310412185" FOLDED="true" ID="ID_968448480" MODIFIED="1538589832097" TEXT="Aktivierungs-Signal">
<icon BUILTIN="button_cancel"/>
<node CREATED="1533310421328" ID="ID_1168151937" MODIFIED="1533310429603" TEXT="Gtk::Application macht das so"/>
<node CREATED="1533310430167" ID="ID_1809941457" MODIFIED="1533310441873" TEXT="setzt eine GApplication (=Gio::Application) voraus"/>
<node CREATED="1533310442557" ID="ID_1182449800" MODIFIED="1533310447656" TEXT="und das wollen wir nicht"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533310502420" ID="ID_1045876919" MODIFIED="1533388596803" TEXT="Glib::SignalTimeout nutzen">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1532788656585" FOLDED="true" ID="ID_99363690" MODIFIED="1538871442164" TEXT="geeignet ansiedeln">
<icon BUILTIN="button_ok"/>
<node CREATED="1532794614249" ID="ID_884179844" MODIFIED="1532794617028" TEXT="Plan">
<node CREATED="1532794617968" ID="ID_1917693631" MODIFIED="1533310766197" TEXT="geeigneten Zugang vom Ctor-Code">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1532794630007" ID="ID_1449747192" MODIFIED="1533310797536" TEXT="dieser installiert unseren Callback">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1532794643461" ID="ID_1862931436" MODIFIED="1532794664726" TEXT="dieser sendet in der Loop das Aktivierungs-Command">
<icon BUILTIN="full-3"/>
</node>
</node>
<node COLOR="#338800" CREATED="1533221103349" ID="ID_1053145038" MODIFIED="1533388653067" TEXT="Anker">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533221107205" ID="ID_1202141905" MODIFIED="1533221141349" TEXT="es mu&#xdf; der InteractionDirector sein">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1533221115139" ID="ID_1655397510" MODIFIED="1533221117607" TEXT="wer sonst?"/>
<node CREATED="1533221118267" ID="ID_517862983" MODIFIED="1533221132317" TEXT="er verk&#xf6;rpert &quot;das Globale&quot;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533221145295" FOLDED="true" ID="ID_45639892" MODIFIED="1538589835488" TEXT="Problem: Zugang zum NotificationService">
<icon BUILTIN="stop-sign"/>
<node CREATED="1533221554888" ID="ID_1545304194" MODIFIED="1533221603239" TEXT="wird explizit erst von UiManager::performMainLoop() installiert">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1533221577485" ID="ID_890031207" MODIFIED="1533221596939" TEXT="Problem f&#xfc;r allen Setup-Code aus InteractionDirector et al">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1533221649380" ID="ID_727991171" MODIFIED="1533221669408">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das ist ein <i>akzidentelles Problem</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1533221681199" ID="ID_979914270" MODIFIED="1533221738765" TEXT="Folge unserer Architektur">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn es ist gradezu der Sinn von Glib::Dispatcher,
</p>
<p>
schon vor der Loop verf&#252;gbar zu sein (?)
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#990000" CREATED="1533221752837" ID="ID_583598881" MODIFIED="1533310555941" TEXT="verifizieren: ist Glib::Dispatcher die richtige Technik">
<icon BUILTIN="stop-sign"/>
<node CREATED="1533310564980" ID="ID_1796116534" MODIFIED="1533310610000" TEXT="ist es nicht...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
nur bei laufender Event-Loop
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#c1a9ad" DESTINATION="ID_519518808" ENDARROW="Default" ENDINCLINATION="70;0;" ID="Arrow_ID_985135564" STARTARROW="None" STARTINCLINATION="149;-223;"/>
</node>
</node>
</node>
<node CREATED="1533223360183" FOLDED="true" ID="ID_1309454354" MODIFIED="1538589813571" TEXT="Idee: weiterer Dispatcher">
<icon BUILTIN="button_cancel"/>
<node CREATED="1533223371534" ID="ID_891597430" MODIFIED="1533310719489" TEXT="UiDispatcher">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1533223377381" ID="ID_1197977205" MODIFIED="1533223383568" TEXT="einfach eine weitere Instanz davon"/>
<node CREATED="1533223384180" ID="ID_141172630" MODIFIED="1533252147479" TEXT="geht das?">
<icon BUILTIN="stop-sign"/>
<node CREATED="1533252148493" ID="ID_535856197" MODIFIED="1533252155392" TEXT="geht nicht">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1533252156737" ID="ID_945337228" MODIFIED="1533252171708" TEXT="Glib::Dispatcher ist nur eine FiFo"/>
<node CREATED="1533252172584" ID="ID_230437417" MODIFIED="1533252187890" TEXT="setzt zwingend voraus, da&#xdf; die Event-Loop schon l&#xe4;uft"/>
</node>
</node>
<node CREATED="1533221770859" FOLDED="true" ID="ID_1962039642" MODIFIED="1538751047556" TEXT="daf&#xfc;r einen dedizierten Service einbauen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1533310637466" ID="ID_1772394299" MODIFIED="1533385333187" TEXT="wo?">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1533221796823" ID="ID_179436166" MODIFIED="1533310650010" TEXT="im UiManager">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533221813285" ID="ID_1627865297" MODIFIED="1533221816584" TEXT="aus logischen Gr&#xfc;nden"/>
<node CREATED="1533221818572" ID="ID_806537689" MODIFIED="1533221826270" TEXT="pa&#xdf;t auch thematisch dort hin"/>
</node>
<node CREATED="1533311253662" ID="ID_704687465" MODIFIED="1533311258358" TEXT="was?">
<icon BUILTIN="help"/>
<node CREATED="1533311314709" ID="ID_277761751" MODIFIED="1533385647446" TEXT="wirklich in der Loop?">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_277761751" ENDARROW="Default" ENDINCLINATION="-48;213;" ID="Arrow_ID_1127398125" SOURCE="ID_748660217" STARTARROW="None" STARTINCLINATION="256;0;"/>
<node CREATED="1533311322220" ID="ID_1614182663" MODIFIED="1533311415466" TEXT="Fenster-aktivieren passiert vor der Loop">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das ist f&#252;r mich eine neue Einsicht.
</p>
<p>
Die Anzeige eines Fensters und die Event-Verarbeitung sind zun&#228;chst einmal unabh&#228;ngig voneinander.
</p>
<p>
Sie sind aber aufeinander angewiesen. Die Events machen das Fenster reaktiv, aber ohne
</p>
<p>
Fenster gibt es gar keine Benutzer-Events.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1533311415455" ID="ID_1211339520" MODIFIED="1533311614570" TEXT="GTK-Aktivierungs-Mechanismus hat andere Gr&#xfc;nde">
<arrowlink COLOR="#949fb4" DESTINATION="ID_1806268533" ENDARROW="Default" ENDINCLINATION="-1845;-608;" ID="Arrow_ID_1146394851" STARTARROW="None" STARTINCLINATION="-474;0;"/>
</node>
<node CREATED="1533311655519" FOLDED="true" ID="ID_946023766" MODIFIED="1533608416260">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber <i>wir</i>&#160;brauchen ein <b>laufendes</b>&#160;UI
</p>
</body>
</html></richcontent>
<node CREATED="1533311682171" ID="ID_1084601430" MODIFIED="1533311693093" TEXT="und zwar f&#xfc;r die Antworten aus Proc-Layer"/>
<node CREATED="1533311693705" ID="ID_152811842" MODIFIED="1533311698877" TEXT="Facade mu&#xdf; offen sein"/>
<node CREATED="1533311707207" ID="ID_364798350" MODIFIED="1533311732464" TEXT="der Glib::Dispatcher darf nicht ins Leere gehen"/>
</node>
</node>
<node CREATED="1533311794860" ID="ID_11666506" MODIFIED="1533311813929" TEXT="ein Command aus der event-Loop heraus">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1533311818120" ID="ID_413505030" MODIFIED="1533325891506" TEXT="Forschung: wie machbar?">
<icon BUILTIN="button_ok"/>
<node CREATED="1533311849484" ID="ID_741726269" MODIFIED="1533311856167" TEXT="Problem: gtk_main blockt"/>
<node CREATED="1533311863586" ID="ID_1275401100" MODIFIED="1533311895161" TEXT="jeder Aufruf davor k&#xf6;nnte zum Race f&#xfc;hren"/>
<node CREATED="1533311922114" ID="ID_542781128" MODIFIED="1533325883642" TEXT="gibt es dazu irgendwelche Doku?">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1533311999743" ID="ID_159524494" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-the-constraints.html.de" MODIFIED="1533312023736" TEXT="GTKmm-Tutorial: multithreaded">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1533312933850" ID="ID_151434027" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-idle-functions.html.en" MODIFIED="1533312947999" TEXT="Idle / Timeout-Beispiel"/>
</node>
<node CREATED="1533312248199" ID="ID_1852545829" MODIFIED="1533314003668" TEXT="was ist mit Glib::SignalIdle und SignalTimeout?">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1533314025414" ID="ID_408671915" MODIFIED="1533385371119" TEXT="Glib::signal_timeout()">
<arrowlink COLOR="#375fa2" DESTINATION="ID_1586631508" ENDARROW="Default" ENDINCLINATION="88;0;" ID="Arrow_ID_258924675" STARTARROW="None" STARTINCLINATION="-87;42;"/>
<icon BUILTIN="forward"/>
<node COLOR="#338800" CREATED="1533314031621" ID="ID_1030647718" MODIFIED="1533314158876" TEXT="das ist wohl die beste L&#xf6;sung">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1533314040716" ID="ID_314344665" MODIFIED="1533314158876" TEXT="f&#xfc;gt eine minimale Karenz-Zeit ein"/>
<node CREATED="1533314084613" ID="ID_1361630751" MODIFIED="1533314158876" TEXT="gut f&#xfc;r die System-Stabilit&#xe4;t">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533385296078" ID="ID_911350305" MODIFIED="1533388643836" TEXT="einfache direkt L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533385305101" ID="ID_1586631508" MODIFIED="1533388506937" TEXT="Glib::signal_timeout() lokal nutzen">
<arrowlink COLOR="#5568a6" DESTINATION="ID_580405745" ENDARROW="Default" ENDINCLINATION="-472;0;" ID="Arrow_ID_244184105" STARTARROW="None" STARTINCLINATION="-2132;-72;"/>
<linktarget COLOR="#375fa2" DESTINATION="ID_1586631508" ENDARROW="Default" ENDINCLINATION="88;0;" ID="Arrow_ID_258924675" SOURCE="ID_408671915" STARTARROW="None" STARTINCLINATION="-87;42;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#435e98" CREATED="1533385573236" ID="ID_220261898" MODIFIED="1533386018084" TEXT="Begr&#xfc;ndung">
<node CREATED="1533385581435" ID="ID_613721842" MODIFIED="1533385589533" TEXT="ich glaube, das bleibt ein Einzelfall"/>
<node CREATED="1533385595528" ID="ID_748660217" MODIFIED="1533385647446" TEXT="es mu&#xdf; wirklich in der Event-Loop laufen">
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_277761751" ENDARROW="Default" ENDINCLINATION="-48;213;" ID="Arrow_ID_1127398125" STARTARROW="None" STARTINCLINATION="256;0;"/>
</node>
<node CREATED="1533385674860" ID="ID_204825661" MODIFIED="1533386007106" TEXT="minimale Verz&#xf6;gerung nach Prgrammstart ist gut">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...dann kann sich das Sytem erst mal <i>beruhigen</i>
</p>
<p>
nach der Lastspitze zum Programmstart, f&#252;r den viel Code geladen werden mu&#223;te.
</p>
<p>
Au&#223;erdem hatten dann die anderen Subsysteme schon Zeit, ihre Grunddatenstrukturen aufzubauen;
</p>
<p>
im Besonderen spekulieren wir darauf, da&#223; die Session-Daten bereits geladen sind,
</p>
<p>
und daher der Diff direkt und kompakt in einem Durchgang emittiert werden kann
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1533385403578" ID="ID_340344973" MODIFIED="1533388551009" TEXT="direkt im InteractionDirector">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1533388656903" ID="ID_1245171257" MODIFIED="1533388664575" TEXT="verdrahtet im ctor">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1533388528345" ID="ID_281702031" MODIFIED="1533388548893" TEXT="Trigger-Zeit">
<icon BUILTIN="forward"/>
<node CREATED="1533388533248" ID="ID_526629253" MODIFIED="1533388538867" TEXT="vorerst fest verdrahtet"/>
<node CREATED="1533388539455" ID="ID_20867821" MODIFIED="1533388544338" TEXT="w&#xe4;hle 100ms"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1533388675213" ID="ID_1893531200" MODIFIED="1533388686365" TEXT="funktioniert">
<icon BUILTIN="button_ok"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531423784657" ID="ID_1434932428" MODIFIED="1557498707233" TEXT="Inhalts-Empfang wieder deaktivieren">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694550601" ID="ID_501539344" MODIFIED="1557498707233" TEXT="re-populate Content">
<linktarget COLOR="#fec680" DESTINATION="ID_501539344" ENDARROW="Default" ENDINCLINATION="-1280;-81;" ID="Arrow_ID_938812574" SOURCE="ID_977311190" STARTARROW="None" STARTINCLINATION="335;22;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1538942086509" ID="ID_1492693885" MODIFIED="1557498707233" TEXT="wenn ein UI-Element f&#xfc;r eine bestehende Entit&#xe4;t wiederaufgebaut wird">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1539134153912" ID="ID_311986051" MODIFIED="1557498707233" TEXT="Grundsatzentscheidung: re-populate">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1539134197011" ID="ID_1798515652" MODIFIED="1557498707233" TEXT="m&#xf6;gliche Modelle">
<icon BUILTIN="idea"/>
<node CREATED="1539134201394" ID="ID_1071210666" MODIFIED="1557498707233" TEXT="UI-Komponente realisiert sich selbst">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
Komponente hat eine interne Struktur-Repr&#228;sentation
</li>
<li>
traversiert diese Struktur-Beschreibung
</li>
<li>
und &#252;bersetzt sie in UI-Widgets
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1539134224759" ID="ID_766070060" MODIFIED="1557498707233" TEXT="Struktur und Realisierung gemeinsam gepusht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
jedes Teilelement wird per Push injiziert
</li>
<li>
es wird in dem Moment sofort und ausschlie&#223;lich als Widget realisiert
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1539134474262" ID="ID_1194066582" MODIFIED="1557498707233" TEXT="Begr&#xfc;ndung">
<icon BUILTIN="yes"/>
<node CREATED="1539134479525" ID="ID_11375493" MODIFIED="1557498707233" TEXT="Selbst-&quot;Verdoppelung&quot; vermeiden"/>
<node CREATED="1539134556931" ID="ID_876466376" MODIFIED="1557498707233" TEXT="Widgets selber sind &quot;die Struktur&quot;"/>
</node>
</node>
<node CREATED="1539134621210" ID="ID_1536657208" MODIFIED="1557498707233" TEXT="Konsequenz: &#xbb;populier-mich&#xab;">
<icon BUILTIN="forward"/>
<node CREATED="1539134702831" ID="ID_250983627" MODIFIED="1557498707233" TEXT="Objekt als leere H&#xfc;lle vorausgesetzt"/>
<node CREATED="1539134713846" ID="ID_1404883972" MODIFIED="1557498707233" TEXT="schickt alle Details und Inhalte als Diff"/>
<node CREATED="1539134733747" ID="ID_353086867" MODIFIED="1557498707233">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Basis: <b>DiffConstituent</b>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
ein selbstbez&#252;glicher substanzloser Strukturkern
</li>
<li>
DiffConstituent -&gt; emanation as diff
</li>
</ul>
</body>
</html></richcontent>
<arrowlink COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-767;-123;" ID="Arrow_ID_156898929" STARTARROW="None" STARTINCLINATION="-1608;-84;"/>
<node CREATED="1539138549468" ID="ID_1203696589" MODIFIED="1557498707233" TEXT="existiert &quot;irgendwo&quot;"/>
<node CREATED="1539138556651" ID="ID_1265568834" MODIFIED="1557498707233" TEXT="per Command ansprechbar"/>
<node CREATED="1539138563657" ID="ID_1727875453" MODIFIED="1557498707233" TEXT="antwortet mit Emanation in Diff-Form"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477784813895" ID="ID_791449946" MODIFIED="1557498707233">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Aufgabe</u>: <i><font color="#821b58" size="4">inject dummy content</font></i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#f9b709" DESTINATION="ID_791449946" ENDARROW="Default" ENDINCLINATION="-842;-559;" ID="Arrow_ID_1347689482" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-81;124;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533403103076" ID="ID_294556843" MODIFIED="1557498707233" TEXT="hart gecodetes Diff im Command erzeugen">
<linktarget COLOR="#e34459" DESTINATION="ID_294556843" ENDARROW="Default" ENDINCLINATION="287;0;" ID="Arrow_ID_1612526412" SOURCE="ID_488294111" STARTARROW="None" STARTINCLINATION="190;339;"/>
<icon BUILTIN="pencil"/>
</node>
<node COLOR="#338800" CREATED="1533403146566" ID="ID_1948086597" MODIFIED="1557498707233" TEXT="Diff-Empfang im InteractionDirector implementieren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533403169195" ID="ID_1916047269" MODIFIED="1557498707233" TEXT="erst mal nur Platzhalter einf&#xfc;gen">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1533403179257" ID="ID_1147163352" MODIFIED="1557498707233" TEXT="noch nicht via ViewLocator platzieren">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1533403199535" ID="ID_1545782665" MODIFIED="1557498707233" TEXT="sonst wird das nie was...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node CREATED="1539270491013" ID="ID_1387553695" MODIFIED="1557498707233" TEXT="Problem der korrekten Diff-Struktur">
<arrowlink COLOR="#d47366" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="713;-263;" ID="Arrow_ID_971172326" STARTARROW="None" STARTINCLINATION="-1999;120;"/>
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1539270491013" ID="ID_19523487" MODIFIED="1557498707233" TEXT="Diff-Fehler-Behandlung">
<arrowlink COLOR="#d47366" DESTINATION="ID_946219609" ENDARROW="Default" ENDINCLINATION="713;-263;" ID="Arrow_ID_1085344706" STARTARROW="Default" STARTINCLINATION="-1999;120;"/>
<icon BUILTIN="flag-pink"/>
<node CREATED="1539388486494" ID="ID_1071396667" MODIFIED="1557498707233" TEXT="was ist sinnvoll?">
<icon BUILTIN="help"/>
<node CREATED="1539388494261" ID="ID_586705343" MODIFIED="1557498707233" TEXT="Applikation runterfahren"/>
<node CREATED="1539388507796" ID="ID_1481564093" MODIFIED="1557498707233" TEXT="Zweig neu populieren"/>
<node CREATED="1539388543735" ID="ID_927207087" MODIFIED="1557498707233" TEXT="Element defekt markieren"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539388552973" ID="ID_559690288" MODIFIED="1557498707233" TEXT="TODO: eigenen Fehler-Handler einbauen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1539388561357" ID="ID_148293105" MODIFIED="1557498707233" TEXT="im Moment wirkt der default-Fehlerhandler">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1539388573371" ID="ID_163915101" MODIFIED="1557498707233" TEXT="im Dispatcher f&#xfc;r den Notification-Service">
<icon BUILTIN="info"/>
</node>
<node CREATED="1539388588153" ID="ID_215543967" MODIFIED="1557498707233" TEXT="und der f&#xe4;hrt die Applikation runter">
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
<node CREATED="1541547600640" ID="ID_787025622" MODIFIED="1557498707233" TEXT="Element-IDs m&#xfc;ssen eindeutig sein">
<arrowlink COLOR="#c9876a" DESTINATION="ID_1850412206" ENDARROW="Default" ENDINCLINATION="49;-155;" ID="Arrow_ID_1571993328" STARTARROW="None" STARTINCLINATION="-11;173;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1541807934354" ID="ID_306409593" MODIFIED="1557498707233" TEXT="jedesmal explizit einen zuf&#xe4;lligen Hash verwenden">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1541807922861" ID="ID_811005250" MODIFIED="1557498707233" TEXT="idi::RandID">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1488423428942" ID="ID_1847992077" MODIFIED="1557498707233" TEXT="Stop"/>
</node>
<node CREATED="1488423436478" ID="ID_1037695008" MODIFIED="1557498707233" TEXT="Einstieg">
<node CREATED="1488423440629" ID="ID_1295897045" MODIFIED="1557498707233" TEXT="in Timeline">
<linktarget COLOR="#8d8ba5" DESTINATION="ID_1295897045" ENDARROW="Default" ENDINCLINATION="296;-456;" ID="Arrow_ID_150397161" SOURCE="ID_839909208" STARTARROW="None" STARTINCLINATION="1056;0;"/>
<node CREATED="1488423569203" ID="ID_1753722831" MODIFIED="1557498707233" TEXT="TimelinePane anzeigen">
<linktarget COLOR="#a1543e" DESTINATION="ID_1753722831" ENDARROW="Default" ENDINCLINATION="1150;-267;" ID="Arrow_ID_912757548" SOURCE="ID_292894978" STARTARROW="None" STARTINCLINATION="496;-77;"/>
</node>
<node CREATED="1488423579514" ID="ID_1433755621" MODIFIED="1557498707233" TEXT="TimelineWidget erzeugen"/>
<node CREATED="1488470479857" ID="ID_978142233" MODIFIED="1557498707233" TEXT="geschieht...">
<node CREATED="1488470484168" ID="ID_1028709294" MODIFIED="1557498707233" TEXT="explizit auf Anforderung (Window-Men&#xfc;)"/>
<node CREATED="1488470499710" ID="ID_1839340183" MODIFIED="1557498707233" TEXT="automatisch durch Laden der Session"/>
</node>
<node CREATED="1488470528522" HGAP="38" ID="ID_141494228" MODIFIED="1557498707233" TEXT="Ablauf" VSHIFT="11">
<node CREATED="1488470538209" ID="ID_1192459841" MODIFIED="1557498707233" TEXT="Controller"/>
<node CREATED="1488470541432" ID="ID_950213497" MODIFIED="1557498707233" TEXT="holt Model-Repr&#xe4;sentation"/>
<node CREATED="1488470548848" ID="ID_1686896502" MODIFIED="1557498707233" TEXT="wei&#xdf; den Ankerpukt / Zielcontainer"/>
<node CREATED="1488470574388" ID="ID_1331046626" MODIFIED="1557498707233" TEXT="erstellt in diesem ein neues Widget"/>
</node>
</node>
<node CREATED="1488423443916" ID="ID_1213960259" MODIFIED="1557498707233" TEXT="in Assets"/>
<node CREATED="1488423446860" ID="ID_1515465474" MODIFIED="1557498707233" TEXT="Viewer"/>
<node CREATED="1488423478536" ID="ID_1039556823" MODIFIED="1557498707233" TEXT="Projekt"/>
<node CREATED="1488423482303" ID="ID_1337577946" MODIFIED="1557498707233" TEXT="Optionen"/>
</node>
<node CREATED="1488423493014" ID="ID_64529473" MODIFIED="1557498707233" TEXT="Navigation"/>
<node CREATED="1488423514355" ID="ID_917891687" MODIFIED="1557498707233" TEXT="Steuerelemente">
<node CREATED="1541858529489" ID="ID_838803024" MODIFIED="1557498707233" TEXT="ZoomWindow">
<linktarget COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-519;-1168;" ID="Arrow_ID_1674512697" SOURCE="ID_1949450244" STARTARROW="None" STARTINCLINATION="490;0;"/>
<linktarget COLOR="#5b5ca1" DESTINATION="ID_838803024" ENDARROW="Default" ENDINCLINATION="-499;-1329;" ID="Arrow_ID_842684168" SOURCE="ID_1828075998" STARTARROW="None" STARTINCLINATION="490;0;"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541858541550" ID="ID_1912142591" MODIFIED="1557498707233" TEXT="generische Abstraktionskomponente">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1541858585095" ID="ID_1823259238" MODIFIED="1557498707233" TEXT="zwei strikt getrennte Dimensionen">
<node CREATED="1541858615893" ID="ID_301185249" MODIFIED="1557498707233" TEXT="Struktur">
<node CREATED="1541858624972" ID="ID_342899879" MODIFIED="1557498707233" TEXT="Ort im Struktur-Graph">
<node CREATED="1541860265441" ID="ID_969408137" MODIFIED="1557498707233" TEXT="topologisch"/>
<node CREATED="1541860270378" ID="ID_927127002" MODIFIED="1557498707233" TEXT="im UI-window">
<node CREATED="1541860297740" ID="ID_185643503" MODIFIED="1557498707233" TEXT="eindimensional (=vertikal)"/>
<node CREATED="1541860305651" ID="ID_485148653" MODIFIED="1557498707233" TEXT="zweidimensional (Y down, X right)"/>
</node>
</node>
<node CREATED="1541858647423" ID="ID_1731335932" MODIFIED="1557498707233" TEXT="Detaillierungsgrad">
<node CREATED="1541860465918" ID="ID_1278123804" MODIFIED="1557498707233" TEXT="topologisch"/>
<node CREATED="1541860469414" ID="ID_801313216" MODIFIED="1557498707233" TEXT="geometrisch">
<node CREATED="1541860476375" ID="ID_837020603" MODIFIED="1557498707233" TEXT="zumeist ausgeschlossen"/>
<node CREATED="1541860508135" ID="ID_1006267067" MODIFIED="1557498707233" TEXT="Ausnahme: Kurven und Graphen"/>
<node CREATED="1541860592548" ID="ID_1610724743" MODIFIED="1557498707233" TEXT="object coord &lt;-&gt; display coord"/>
</node>
</node>
</node>
<node CREATED="1541858620165" ID="ID_946004941" MODIFIED="1557498707233" TEXT="Zeit">
<node CREATED="1541858706787" ID="ID_1161729387" MODIFIED="1557498707233" TEXT="ZoomAnchor">
<node CREATED="1541858712898" ID="ID_156836023" MODIFIED="1557498707233" TEXT="Control-Entity">
<node CREATED="1541859273199" ID="ID_1187678929" MODIFIED="1557498707233" TEXT="edit point"/>
<node CREATED="1541859280000" ID="ID_1932782561" MODIFIED="1557498707233" TEXT="playhead"/>
<node CREATED="1541859284069" ID="ID_299608050" MODIFIED="1557498707233" TEXT="mouse"/>
</node>
<node CREATED="1541859608646" ID="ID_412475230" MODIFIED="1557498707233" TEXT="time translation anchor point">
<node CREATED="1542384728240" ID="ID_538080146" MODIFIED="1557498707233" TEXT="nicht der Nullpunkt derZeitskala"/>
<node CREATED="1542384738364" ID="ID_922112299" MODIFIED="1557498707233" TEXT="sondern der Bezugspunkt f&#xfc;r die &#xdc;bersetzung Zeit -&gt; Pixel"/>
</node>
<node CREATED="1541860174509" ID="ID_983216306" MODIFIED="1557498707233" TEXT="position within window">
<node CREATED="1541860195426" ID="ID_1143510761" MODIFIED="1557498707233" TEXT="relative"/>
<node CREATED="1541860198222" ID="ID_847832000" MODIFIED="1557498707233" TEXT="absolute">
<node CREATED="1544126105472" ID="ID_1636490570" MODIFIED="1557498707233" TEXT="relative-absolute">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
a fixed absolute number of tick&#160;units,
</p>
<p>
where 1 tick unit depends on the current zoom level
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node CREATED="1542384160498" ID="ID_1252241860" MODIFIED="1557498707233" TEXT="TimeWindow">
<node CREATED="1542384165737" ID="ID_705415129" MODIFIED="1557498707233" TEXT="die konkret sichbare TimeSpan"/>
<node CREATED="1542384188438" ID="ID_444895141" MODIFIED="1557498707233" TEXT="stets in realem relativem Zeitma&#xdf;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
real, d.h. in Zeit (Mikroticks) und nicht in Bildschirm-Pixeln
</li>
<li>
relativ, d.h. im Bezug auf die nominelle Zeitskala dieser Timeline;<br />entsprechend der Angabe auf dem Time-Ruler
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1541859633805" ID="ID_304890799" MODIFIED="1557498707233" TEXT="Scale">
<node CREATED="1541859805246" ID="ID_1619845581" MODIFIED="1557498707233" TEXT="temporal extension of one unit"/>
<node CREATED="1542384386446" FOLDED="true" ID="ID_1472241358" MODIFIED="1557498707233" TEXT="minval / maxval or unlimited?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Beachte: nicht verwechseln mit absoluten Angaben.
</p>
<p>
Diese Skala <b>legt &#252;berhaupt nicht</b>&#160;fest, wo ihr Nullpunkt liegt
</p>
<p>
im Bezug auf eine globale absolute Zeitskala (denn das macht das betreffende Placement)
</p>
<p>
</p>
<p>
Theoretisch k&#246;nnte eine Skala auf einer Seite oder auf beiden Seiten limitiert sein....?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1542384604062" ID="ID_900384720" MODIFIED="1542384632672" TEXT="grunds&#xe4;tzlich niemals beschr&#xe4;nkt">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1542384636665" ID="ID_1760262238" MODIFIED="1542384648936" TEXT="Beschr&#xe4;nkungen realisiert Lumiera als Placement">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1541859854902" ID="ID_614778835" MODIFIED="1557498707233" TEXT="display pixels per unit"/>
</node>
</node>
<node CREATED="1541860744327" HGAP="-42" ID="ID_462654912" MODIFIED="1557498707233" TEXT="Bezug / im Verh&#xe4;ltnis zu" VSHIFT="27">
<node CREATED="1541860785369" ID="ID_1062556789" MODIFIED="1557498707233" TEXT="Display Window">
<node CREATED="1541860790726" ID="ID_1447889403" MODIFIED="1557498707233" TEXT="zweidimensional">
<node CREATED="1541860801663" ID="ID_622150499" MODIFIED="1557498707233" TEXT="horizontale Dimension w&#xe4;hlbar">
<node CREATED="1541860828603" ID="ID_111513506" MODIFIED="1557498707233" TEXT="Zeit"/>
<node CREATED="1541860831875" ID="ID_1775831703" MODIFIED="1557498707233" TEXT="Extension"/>
</node>
<node CREATED="1541860818012" FOLDED="true" ID="ID_814200290" MODIFIED="1557498707233" TEXT="vertikale Dimension stets topologisch">
<node CREATED="1544127119809" ID="ID_431805088" MODIFIED="1544127122858" TEXT="nicht immer...."/>
<node CREATED="1544127123803" ID="ID_1360167609" MODIFIED="1544127127665" TEXT="Ausnahme: Kurven"/>
</node>
</node>
<node CREATED="1541859890231" ID="ID_1462660195" MODIFIED="1557498707233" TEXT="window size">
<node CREATED="1541859893555" ID="ID_1561827620" MODIFIED="1557498707233" TEXT="units within window"/>
<node CREATED="1541860100246" ID="ID_1049947511" MODIFIED="1557498707233" TEXT="typically dictated by external constraints"/>
</node>
</node>
<node CREATED="1542384851045" ID="ID_362962483" MODIFIED="1557498707233" TEXT="Display Strategy">
<node CREATED="1542384871403" ID="ID_1092715541" MODIFIED="1557498707233" TEXT="nur ein Ausschnitt der Achse wird gerendert"/>
<node CREATED="1542384880497" ID="ID_82218999" MODIFIED="1557498707234" TEXT="stets mehr als der sichbare Bereich"/>
<node CREATED="1542385000986" ID="ID_1721448517" MODIFIED="1557498707234" TEXT="strategy change">
<node CREATED="1542385006024" ID="ID_58293224" MODIFIED="1557498707234" TEXT="breaking">
<node CREATED="1542385016529" ID="ID_697267034" MODIFIED="1557498707234" TEXT="Pixel-Koordinaten aller Elemente &#xe4;ndern sich"/>
<node CREATED="1542385445821" ID="ID_1078665627" MODIFIED="1557498707234" TEXT="au&#xdf;erdem kommen ggfs neue Elemente hinzu und Elemente fallen weg"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1542385042987" ID="ID_1543492584" MODIFIED="1557498707234" TEXT="Push oder Pull?">
<icon BUILTIN="help"/>
<node CREATED="1542385063860" ID="ID_1262945101" MODIFIED="1557498707234" TEXT="Abw&#xe4;gung">
<node CREATED="1542385081282" ID="ID_342384221" MODIFIED="1557498707234" TEXT="Push">
<node CREATED="1542385084334" ID="ID_194494898" MODIFIED="1557498707234" TEXT="Display-Manager mu&#xdf; alle Elemente kennen"/>
<node CREATED="1542385115962" ID="ID_984451994" MODIFIED="1557498707234" TEXT="Notification-Mechanismus"/>
</node>
<node CREATED="1542385122521" ID="ID_1454454135" MODIFIED="1557498707234" TEXT="Pull">
<node CREATED="1542385155517" ID="ID_609874542" MODIFIED="1557498707234" TEXT="Element mu&#xdf; erkennen k&#xf6;nnen, ob es noch valide ist"/>
<node CREATED="1542385259471" ID="ID_513541561" MODIFIED="1557498707234" TEXT="Element mu&#xdf; sich seine Pixel-Koordinaten abholen"/>
</node>
</node>
</node>
</node>
<node CREATED="1542385008235" ID="ID_713582235" MODIFIED="1557498707234" TEXT="non-breaking">
<node CREATED="1542385321347" ID="ID_1672263647" MODIFIED="1557498707234" TEXT="relevantTimeWindow wird erweitert"/>
<node CREATED="1542385335372" ID="ID_1139488626" MODIFIED="1557498707234" TEXT="aber Pixel-Nullpunkt bleibt gleich"/>
<node CREATED="1542385350195" ID="ID_1892916657" MODIFIED="1557498707234" TEXT="alle Pixel-Koordinaten bleiben g&#xfc;ltig"/>
<node CREATED="1542385433191" ID="ID_823514825" MODIFIED="1557498707234" TEXT="es kommen ggfs neue Elemente hinzu"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1541859255448" ID="ID_1251550945" MODIFIED="1557498707234" TEXT="hat seine eigene Historie"/>
</node>
<node CREATED="1541860963705" ID="ID_13414263" MODIFIED="1557498707234" TEXT="Design">
<node CREATED="1541860967281" ID="ID_1676646773" MODIFIED="1557498707234" TEXT="manipulativ - mutable">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1541860985526" ID="ID_640984391" MODIFIED="1557498707234" TEXT="Struct mit Methoden"/>
<node CREATED="1541861314456" ID="ID_267107783" MODIFIED="1557498707234" TEXT="generisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
nix GTK
</p>
<p>
</p>
<p>
Liegt in unserem gui::model
</p>
<p>
analog zu gui::model::Tangible
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541861007275" ID="ID_411365171" MODIFIED="1557498707234" TEXT="zuweisbar"/>
<node CREATED="1541861061984" HGAP="23" ID="ID_426757987" MODIFIED="1557498707234" TEXT="Anwendung" VSHIFT="10">
<node CREATED="1541861069577" ID="ID_1233713010" MODIFIED="1557498707234" TEXT="wird stets atomar angewendet"/>
<node CREATED="1541861281854" ID="ID_1332627357" MODIFIED="1557498707234" TEXT="wird vom LayoutManager auf Widgets &#xfc;bersetzt"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1448070434915" HGAP="64" ID="ID_257833497" MODIFIED="1557498707234" VSHIFT="7">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
innere
</p>
<p>
Struktur
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#3a8df0" DESTINATION="ID_1618124128" ENDARROW="Default" ENDINCLINATION="-25;-262;" ID="Arrow_ID_539627804" STARTARROW="Default" STARTINCLINATION="-2;35;"/>
<node CREATED="1523019258000" HGAP="-51" ID="ID_974158229" MODIFIED="1557498707234" TEXT="Struktur-Schemata" VSHIFT="-16">
<linktarget COLOR="#4f5d91" DESTINATION="ID_974158229" ENDARROW="Default" ENDINCLINATION="383;-2505;" ID="Arrow_ID_1832380552" SOURCE="ID_48107354" STARTARROW="None" STARTINCLINATION="-597;127;"/>
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1523019333461" ID="ID_631113825" MODIFIED="1557498707234" TEXT="UI-Element - Hierarchie">
<node CREATED="1523019501198" ID="ID_531041967" MODIFIED="1557498707234" TEXT="Systematisches UI-Modell">
<linktarget COLOR="#5f7288" DESTINATION="ID_531041967" ENDARROW="Default" ENDINCLINATION="-964;-27;" ID="Arrow_ID_603305631" SOURCE="ID_790020807" STARTARROW="None" STARTINCLINATION="1678;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1541545653978" ID="ID_1534432315" MODIFIED="1557498707234" TEXT="UI-Element - Identit&#xe4;t">
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541545674669" ID="ID_1585676322" MODIFIED="1557498707234" TEXT="UI-Elemente sind global eindeutig">
<arrowlink COLOR="#7894b4" DESTINATION="ID_189279804" ENDARROW="Default" ENDINCLINATION="272;-358;" ID="Arrow_ID_540125984" STARTARROW="None" STARTINCLINATION="-618;10;"/>
<linktarget COLOR="#6b83a8" DESTINATION="ID_1585676322" ENDARROW="Default" ENDINCLINATION="738;0;" ID="Arrow_ID_174361092" SOURCE="ID_1706134856" STARTARROW="None" STARTINCLINATION="1067;-74;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1541545696185" ID="ID_1907010009" MODIFIED="1557498707234" TEXT="Grund: UI-Bus - Routing">
<icon BUILTIN="info"/>
</node>
<node COLOR="#435e98" CREATED="1541545933006" FOLDED="true" ID="ID_1850412206" MODIFIED="1560172942629" TEXT="t&#xfc;ckisches Problem">
<linktarget COLOR="#c9876a" DESTINATION="ID_1850412206" ENDARROW="Default" ENDINCLINATION="49;-155;" ID="Arrow_ID_1571993328" SOURCE="ID_787025622" STARTARROW="None" STARTINCLINATION="-11;173;"/>
<linktarget COLOR="#c9876a" DESTINATION="ID_1850412206" ENDARROW="Default" ENDINCLINATION="369;179;" ID="Arrow_ID_1229280605" SOURCE="ID_659707505" STARTARROW="None" STARTINCLINATION="586;-203;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1541545944079" ID="ID_1737663580" MODIFIED="1541545963000" TEXT="ein Duplikat ersetzt stillschweigend die Registrierung"/>
<node CREATED="1541545963822" ID="ID_1562348206" MODIFIED="1541546016778" TEXT="Identit&#xe4;t beruht auf EntryID (Hash)"/>
<node CREATED="1541545975779" ID="ID_1748214927" MODIFIED="1541546024401" TEXT="diese(r) wird aber systematisch gebildet"/>
<node CREATED="1541790406153" ID="ID_966273732" MODIFIED="1541790408357" TEXT="relevant in Record&lt;GenNode&gt;">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1541546204541" FOLDED="true" HGAP="30" ID="ID_1625379453" MODIFIED="1553904298790" TEXT="speziell..." VSHIFT="3">
<arrowlink COLOR="#677dde" DESTINATION="ID_1099820897" ENDARROW="Default" ENDINCLINATION="-64;0;" ID="Arrow_ID_791650338" STARTARROW="None" STARTINCLINATION="18;42;"/>
<icon BUILTIN="info"/>
<node CREATED="1541546209896" ID="ID_1049660229" MODIFIED="1541546245931" TEXT="Kind: _CHILD_&lt;typ&gt;.&lt;cnt&gt;">
<node CREATED="1541546489419" ID="ID_282481336" MODIFIED="1541546548022" TEXT="automatisch global eindeutig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil wir einen Mechanismus haben, die &lt;cnt&gt;-Dekoration pro Typ global hochzuz&#228;hlen (treadsafe)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541546556994" ID="ID_35993355" MODIFIED="1541546573135" TEXT="hash-seed: der &lt;typ&gt;-Hash"/>
</node>
<node CREATED="1541546415736" ID="ID_1483102981" MODIFIED="1541546432862" TEXT="Attribut: key">
<node CREATED="1541546579096" ID="ID_728290559" MODIFIED="1541546602798">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: key nur <i>innerhalb</i>&#160;des Objektes eindeutig
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1541547820403" ID="ID_1229228521" MODIFIED="1541775004416" TEXT="L&#xf6;sung: Hash-Chaining">
<icon BUILTIN="button_cancel"/>
<node CREATED="1541547837646" ID="ID_508395323" MODIFIED="1541547854627" TEXT="&#xe4;hnlich wie im Merkle-Tree">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1541547855766" ID="ID_1691211097" MODIFIED="1541547867017" TEXT="Hash des Vaters als seed">
<node CREATED="1541552824556" ID="ID_42859602" MODIFIED="1541552831542" TEXT="geht nicht">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1541552832731" ID="ID_346770424" MODIFIED="1541552877349" TEXT="bricht die Subsidiarit&#xe4;t">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn dann m&#252;&#223;te das Attribut
</p>
<p>
von dem Container (GenNode) wissen, der es zwei Ebenen h&#246;her enth&#228;lt und umschlie&#223;t
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1541774981285" ID="ID_1038144488" MODIFIED="1541774996472" TEXT="ist letzten Endes auch blo&#xdf; random()"/>
</node>
</node>
<node CREATED="1541775187418" ID="ID_1058458763" MODIFIED="1541789739897" TEXT="Frage: Reproduzierbarkeit irrelevant?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es kommt (vielleicht) &#252;berhaupt nicht darauf an,
</p>
<p>
da&#223; der Hash einer Attribut-ID <i>reproduzierbar</i>&#160;ist (auf Basis der symbilschen ID).
</p>
<p>
Der Hash kann genausogut eine Zufallszahl sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1541775381760" ID="ID_681940327" MODIFIED="1541775392922" TEXT="denn: get sucht per Symbol"/>
<node CREATED="1541775428125" ID="ID_1569956089" MODIFIED="1541775485774" TEXT="und: einige Attribute haben notwendig eine extern definierte ID">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...n&#228;mlich diejenigen, die <i>selber </i>Modell-Elemente sind.
</p>
<p>
Und genau diese speziellen Objekt-Attribute sind der Anla&#223;,
</p>
<p>
sich &#252;ber dieses Problem Gedanken zu machen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1541790399905" ID="ID_552609912" MODIFIED="1541790483789">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber: zuf&#228;llige ID macht Objekt-builder <i>stateful</i>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#f63025" DESTINATION="ID_791385927" ENDARROW="Default" ENDINCLINATION="142;6;" ID="Arrow_ID_1321696116" STARTARROW="None" STARTINCLINATION="7;68;"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541790451266" ID="ID_791385927" MODIFIED="1541790474148" TEXT="Problem auf dieser Ebene nicht l&#xf6;sbar">
<linktarget COLOR="#f63025" DESTINATION="ID_791385927" ENDARROW="Default" ENDINCLINATION="142;6;" ID="Arrow_ID_1321696116" SOURCE="ID_552609912" STARTARROW="None" STARTINCLINATION="7;68;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1541790539737" HGAP="19" ID="ID_620633727" MODIFIED="1553904293410" TEXT="explizit zu handhaben" VSHIFT="9">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node COLOR="#435e98" CREATED="1541790564379" ID="ID_1099820897" MODIFIED="1541790869503" TEXT="das Problem l&#xe4;&#xdf;t sich nicht implizit l&#xf6;sen">
<linktarget COLOR="#677dde" DESTINATION="ID_1099820897" ENDARROW="Default" ENDINCLINATION="-64;0;" ID="Arrow_ID_791650338" SOURCE="ID_1625379453" STARTARROW="None" STARTINCLINATION="18;42;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1541790588022" ID="ID_1242220321" MODIFIED="1541790627427" TEXT="Fazit: auf dem ETD-level ignorieren"/>
<node CREATED="1541790631410" ID="ID_1544767080" MODIFIED="1541790641506" TEXT="geh&#xf6;rt in den Domain-level"/>
<node CREATED="1541790656124" ID="ID_279205741" MODIFIED="1541791424072" TEXT="Domain-IDs eindeutig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t.
</p>
<p>
die Konstruktion des Domain-Modelles ist daf&#252;r zust&#228;ndig
</p>
<p>
f&#252;r global eindeutige IDs an den relevanten Stellen zu sorgen
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1541790717726" ID="ID_1884395735" MODIFIED="1541800179010" TEXT="explizites Attribut-Binding">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...dem man eine EntryID geben kann
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1541790780342" ID="ID_683694576" MODIFIED="1541798900109" TEXT="DSL-Syntax">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1541790752619" ID="ID_826540621" MODIFIED="1541798905126" TEXT="in ETD-Objekt-Notation">
<node CREATED="1541791692837" ID="ID_1036110919" MODIFIED="1541791708256" TEXT="set() geht ohnehin schon mit GenNode-Argument">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1541791710149" ID="ID_1280894882" MODIFIED="1541798914030" TEXT="MakeRec().genNode(ID) erm&#xf6;glichen!">
<arrowlink COLOR="#71cbc9" DESTINATION="ID_80733797" ENDARROW="Default" ENDINCLINATION="49;1;" ID="Arrow_ID_237980791" STARTARROW="None" STARTINCLINATION="22;30;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1541790797595" ID="ID_80733797" MODIFIED="1541798902638" TEXT="f&#xfc;r SET / INS Diff-Verben">
<linktarget COLOR="#71cbc9" DESTINATION="ID_80733797" ENDARROW="Default" ENDINCLINATION="49;1;" ID="Arrow_ID_237980791" SOURCE="ID_1280894882" STARTARROW="None" STARTINCLINATION="22;30;"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1523021670034" ID="ID_1102842396" MODIFIED="1557498707234" TEXT="Einstiegspunkte">
<icon BUILTIN="idea"/>
<node CREATED="1523021679960" ID="ID_1386792927" MODIFIED="1557498707234">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;<b>InteractionDirector</b>&#160;(=Model Root)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1538956606744" ID="ID_165150753" MODIFIED="1557498707234" TEXT="erwartete Modell-Struktur">
<linktarget COLOR="#919fc6" DESTINATION="ID_165150753" ENDARROW="Default" ENDINCLINATION="-902;329;" ID="Arrow_ID_651613049" SOURCE="ID_1996849782" STARTARROW="None" STARTINCLINATION="823;93;"/>
<linktarget COLOR="#919fc6" DESTINATION="ID_165150753" ENDARROW="Default" ENDINCLINATION="-641;482;" ID="Arrow_ID_593956858" SOURCE="ID_580392349" STARTARROW="None" STARTINCLINATION="1108;116;"/>
<node CREATED="1538956633404" ID="ID_266268175" MODIFIED="1557498707234" TEXT="Root">
<node CREATED="1538956680006" ID="ID_774059518" MODIFIED="1557498707234" TEXT="TODO Assets?"/>
<node CREATED="1538956635652" ID="ID_410609041" MODIFIED="1557498707234" TEXT="Sequence{Timeline}"/>
</node>
<node CREATED="1538956703435" ID="ID_275497582" MODIFIED="1557498707234" TEXT="Timeline">
<node CREATED="1538956945754" ID="ID_1216887436" MODIFIED="1557498707234" TEXT="&quot;name&quot;"/>
<node CREATED="1538956717369" ID="ID_21520084" MODIFIED="1560172967031" TEXT="&quot;fork&quot; = Track">
<arrowlink DESTINATION="ID_1319425167" ENDARROW="Default" ENDINCLINATION="-1;-52;" ID="Arrow_ID_1260691192" STARTARROW="None" STARTINCLINATION="-79;17;"/>
</node>
<node CREATED="1538956709026" ID="ID_326010297" MODIFIED="1557498707234" TEXT="Sequence{Marker}"/>
</node>
<node CREATED="1538956769298" ID="ID_1319425167" MODIFIED="1560172967031" TEXT="Track">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1319425167" ENDARROW="Default" ENDINCLINATION="-1;-52;" ID="Arrow_ID_1260691192" SOURCE="ID_21520084" STARTARROW="None" STARTINCLINATION="-79;17;"/>
<node CREATED="1538956775249" ID="ID_1811758034" MODIFIED="1557498707234" TEXT="Sequence{Track}">
<node CREATED="1538957049292" ID="ID_1618683787" MODIFIED="1557498707234" TEXT="if typeID = &quot;Fork&quot;"/>
<node CREATED="1544846114433" ID="ID_1306886572" MODIFIED="1557498707234" TEXT="die Sub-Tracks">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1538956796214" ID="ID_337674261" MODIFIED="1557498707234" TEXT="Sequence{Clip}">
<node CREATED="1538957049292" ID="ID_100537539" MODIFIED="1557498707234" TEXT="if typeID = &quot;Clip&quot;"/>
</node>
<node CREATED="1538956802701" ID="ID_840384156" MODIFIED="1557498707234" TEXT="Sequence{Marker}">
<node CREATED="1538957049292" ID="ID_1955645432" MODIFIED="1557498707234" TEXT="if typeID = &quot;Marker&quot;"/>
</node>
<node CREATED="1544839585279" ID="ID_1083901292" MODIFIED="1560173044668" TEXT="Sequence{Ruler}">
<arrowlink DESTINATION="ID_433238862" ENDARROW="Default" ENDINCLINATION="-37;-96;" ID="Arrow_ID_472987279" STARTARROW="None" STARTINCLINATION="-69;14;"/>
<linktarget COLOR="#5f84b0" DESTINATION="ID_1083901292" ENDARROW="Default" ENDINCLINATION="-756;-82;" ID="Arrow_ID_1167484185" SOURCE="ID_43593052" STARTARROW="None" STARTINCLINATION="-981;0;"/>
<node CREATED="1544846037083" ID="ID_667362504" MODIFIED="1557498707234" TEXT="if typeID = &quot;Ruler&quot;"/>
<node CREATED="1544846062288" ID="ID_855083299" MODIFIED="1557498707234" TEXT="storage direkt (nested) im TrackBody"/>
</node>
</node>
<node CREATED="1538956769298" ID="ID_721666986" MODIFIED="1557498707234" TEXT="Clip">
<node CREATED="1538956775249" ID="ID_1108737612" MODIFIED="1557498707234" TEXT="Sequence{Channel}">
<node CREATED="1538957049292" ID="ID_977385993" MODIFIED="1557498707234" TEXT="if typeID = &quot;Channel&quot;"/>
</node>
<node CREATED="1538956796214" ID="ID_698134552" MODIFIED="1557498707234" TEXT="Sequence{Effect}">
<node CREATED="1538957049292" ID="ID_339553268" MODIFIED="1557498707234" TEXT="if typeID = &quot;Effect&quot;"/>
</node>
<node CREATED="1538956802701" ID="ID_1715846940" MODIFIED="1557498707234" TEXT="Sequence{Marker}">
<node CREATED="1538957049292" ID="ID_98299428" MODIFIED="1557498707234" TEXT="if typeID = &quot;Marker&quot;"/>
</node>
</node>
<node CREATED="1544840312839" ID="ID_433238862" MODIFIED="1560173044668" TEXT="Ruler">
<linktarget COLOR="#3e63c5" DESTINATION="ID_433238862" ENDARROW="Default" ENDINCLINATION="-612;-125;" ID="Arrow_ID_1858329997" SOURCE="ID_1391546845" STARTARROW="None" STARTINCLINATION="-747;0;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_433238862" ENDARROW="Default" ENDINCLINATION="-37;-96;" ID="Arrow_ID_472987279" SOURCE="ID_1083901292" STARTARROW="None" STARTINCLINATION="-69;14;"/>
<node CREATED="1544840455429" ID="ID_1283986005" MODIFIED="1557498707234" TEXT="&quot;timecode&quot; = formatID"/>
<node CREATED="1544840496225" ID="ID_230755841" MODIFIED="1557498707234" TEXT="&quot;contentFormat&quot; = formatID (none|pivot|frames|wave|synopsis)"/>
<node CREATED="1544840634822" ID="ID_1138129422" MODIFIED="1557498707234" TEXT="Sequence{Marker.kind}">
<node CREATED="1544840669032" ID="ID_1798049608" MODIFIED="1557498707234" TEXT="what kinds of markers and selections to render"/>
</node>
</node>
<node CREATED="1538957120867" ID="ID_99923131" MODIFIED="1557498707234" TEXT="Marker">
<node CREATED="1538956945754" ID="ID_30162898" MODIFIED="1557498707234" TEXT="&quot;name&quot;"/>
<node CREATED="1538956945754" ID="ID_39934842" MODIFIED="1557498707234" TEXT="&quot;kind&quot; = LOOP|MARK"/>
</node>
<node CREATED="1538956606744" ID="ID_388585037" MODIFIED="1557498707234" TEXT="Placement">
<linktarget COLOR="#919fc6" DESTINATION="ID_388585037" ENDARROW="None" ENDINCLINATION="-682;462;" ID="Arrow_ID_726807054" SOURCE="ID_1483911882" STARTARROW="Default" STARTINCLINATION="638;-81;"/>
</node>
</node>
</node>
<node CREATED="1523019349923" ID="ID_353542665" MODIFIED="1557498707234" TEXT="UI-Koordinaten (UICoord)">
<node CREATED="1523019476817" ID="ID_1756924881" MODIFIED="1557498707234" TEXT="abstrahierte UI-Topologie">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1523021751558" ID="ID_816148300" MODIFIED="1557498707234" TEXT="Einstiegspunkte">
<icon BUILTIN="idea"/>
<node CREATED="1523020094460" ID="ID_950968515" MODIFIED="1557498707234">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;InteractionDirector-&gt;<b>Navigator</b>
</p>
</body>
</html></richcontent>
<node CREATED="1523021779698" ID="ID_1153977477" MODIFIED="1557498707234" TEXT="erforschen der aktuellen Topologie"/>
<node CREATED="1523021791784" ID="ID_1683105699" MODIFIED="1557498707234" TEXT="Navigation von einem Punkt weg"/>
</node>
<node CREATED="1523019770144" ID="ID_385008471" MODIFIED="1557498707234">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;WindowLocator-&gt;<b>UIComponentAccessor</b>
</p>
</body>
</html></richcontent>
<node CREATED="1523021816637" ID="ID_217124542" MODIFIED="1557498707234" TEXT="Element zu gegebenen Koordinaten"/>
</node>
</node>
</node>
<node CREATED="1523019393893" ID="ID_1642953007" MODIFIED="1557498707234" TEXT="Component View">
<node CREATED="1523019457868" ID="ID_1319307429" MODIFIED="1557498707234" TEXT="Menge relevanter Entit&#xe4;ten">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node CREATED="1523021612818" ID="ID_366179512" MODIFIED="1557498707234" TEXT="Per Konvention festgelegt">
<node CREATED="1523022525819" ID="ID_1844877136" MODIFIED="1557498707234" TEXT="ViewSpec-DSL">
<arrowlink COLOR="#6a8499" DESTINATION="ID_1442345755" ENDARROW="Default" ENDINCLINATION="-971;84;" ID="Arrow_ID_1191206769" STARTARROW="None" STARTINCLINATION="502;0;"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1523021634614" ID="ID_1226976079" MODIFIED="1557498707234" TEXT="flacher Namensraum"/>
<node CREATED="1523021642573" ID="ID_488343933" MODIFIED="1557498707234" TEXT="komplett von ihrem Ort abstrahiert"/>
</node>
<node CREATED="1523020082453" ID="ID_1678299024" MODIFIED="1557498707234" TEXT="Einstiegspunkte">
<icon BUILTIN="idea"/>
<node CREATED="1523020094460" ID="ID_970478590" MODIFIED="1557498707234">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;InteractionDirector-&gt;<b>ViewLocator</b>
</p>
</body>
</html></richcontent>
<node CREATED="1523021575831" ID="ID_952406415" MODIFIED="1557498707234" TEXT="findet oder belegt"/>
<node CREATED="1523021593460" ID="ID_565564905" MODIFIED="1557498707234" TEXT="Prinzip: ein St&#xfc;ck vom Typ XYZ"/>
</node>
<node CREATED="1523019770144" ID="ID_435980488" MODIFIED="1557498707234">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;WindowLocator-&gt;<b>UIComponentAccessor</b>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#48678b" DESTINATION="ID_435980488" ENDARROW="Default" ENDINCLINATION="-1768;-2819;" ID="Arrow_ID_689216354" SOURCE="ID_1224438713" STARTARROW="Default" STARTINCLINATION="309;919;"/>
<node CREATED="1523020311838" ID="ID_807452449" MODIFIED="1557498707234" TEXT="Bindeglied">
<node CREATED="1523020317117" ID="ID_1026544092" MODIFIED="1557498707234" TEXT="UI-Koordinaten"/>
<node CREATED="1523020328651" ID="ID_1384216871" MODIFIED="1557498707234" TEXT="Component Views"/>
<node CREATED="1523020334770" ID="ID_446983517" MODIFIED="1557498707235" TEXT="konkrete Widgets"/>
</node>
</node>
</node>
</node>
<node CREATED="1523019409939" ID="ID_13197399" MODIFIED="1557498707235" TEXT="Fenster - Panel - Widget">
<node CREATED="1523019435095" ID="ID_1087922610" MODIFIED="1557498707235" TEXT="die nat&#xfc;rliche Ordnung">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node CREATED="1523019528770" ID="ID_880857626" MODIFIED="1557498707235" TEXT="der real existierende konkrete Inhalt des UI"/>
<node CREATED="1523019583242" ID="ID_1200584395" MODIFIED="1557498707235" TEXT="ein Wildwuchs an nativen Komponenten"/>
<node CREATED="1523019593833" ID="ID_770462134" MODIFIED="1557498707235" TEXT="ausschlie&#xdf;lich an das UI-Toolkit gebunden"/>
<node CREATED="1523019635739" ID="ID_883974404" MODIFIED="1557498707235" TEXT="Einzelfall-Wissen vorausgesetzt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
man mu&#223; die Implementierungs-Details <i>jeder einzelnen Komponente</i>&#160;kennen,
</p>
<p>
um damit &#252;berhaupt etwas anfangen zu k&#246;nnen. Es gibt hier keine schematische Ordnung.
</p>
<p>
Selbst die Frage, ob es sich um ein Blatt handelt, oder um einen inneren Knoten,
</p>
<p>
erfordert bereits Kenntnis der Innereien
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1523019753259" ID="ID_281223690" MODIFIED="1557498707235" TEXT="Einstiegspunkte">
<icon BUILTIN="idea"/>
<node CREATED="1523019770144" ID="ID_253563802" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;<b>WindowLocator</b>
</p>
</body>
</html></richcontent>
<node CREATED="1523019793861" ID="ID_656158432" MODIFIED="1557498707235" TEXT="f&#xfc;r die top-level WorkspaceWindows"/>
<node CREATED="1523019808196" ID="ID_674258018" MODIFIED="1557498707235" TEXT="kann diese erzeugen und zerst&#xf6;ren"/>
</node>
<node CREATED="1523019770144" ID="ID_1782262126" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
(GlobalCtx)-&gt;WindowLocator-&gt;<b>PanelLocator</b>
</p>
</body>
</html></richcontent>
<node CREATED="1523019918268" ID="ID_830201534" MODIFIED="1557498707235" TEXT="Zugang zu einzelnen docking-Panels"/>
<node CREATED="1523019928387" ID="ID_928262089" MODIFIED="1557498707235" TEXT="jedes Fenster hat eignen PanelManager">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1523019972924" ID="ID_1402741681" MODIFIED="1557498707235" TEXT="Grundbausteine">
<node CREATED="1523019978236" ID="ID_103533434" MODIFIED="1557498707235" TEXT="GTK-Container"/>
<node CREATED="1523019982331" ID="ID_533152750" MODIFIED="1557498707235" TEXT="Widget"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1448070545132" HGAP="31" ID="ID_1410368513" MODIFIED="1557498707235" TEXT="Element" VSHIFT="-7">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="idea"/>
<node CREATED="1448070580927" ID="ID_467382299" MODIFIED="1557498707235" TEXT="Auspr&#xe4;gungen" VSHIFT="18">
<node CREATED="1448070554963" ID="ID_579919554" MODIFIED="1557498707235" TEXT="Widget"/>
<node CREATED="1448070559466" ID="ID_182430638" MODIFIED="1557498707235" TEXT="Controller"/>
</node>
<node CREATED="1448070583679" HGAP="69" ID="ID_1248152908" MODIFIED="1557498707235" TEXT="Protokoll" VSHIFT="-1">
<node CREATED="1448078263344" FOLDED="true" ID="ID_1136748666" MODIFIED="1557498707235" TEXT="Verhaltensweisen">
<cloud COLOR="#e0d6ba"/>
<icon BUILTIN="info"/>
<node CREATED="1448078268223" ID="ID_1027574047" MODIFIED="1518487921085" TEXT="Lebenszyklus">
<node CREATED="1448078450375" ID="ID_459686936" MODIFIED="1518487921085" TEXT="zeugen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hei&#223;t: Element registriert sich am UI-Bus
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078473068" ID="ID_510866826" MODIFIED="1518487921085" TEXT="zerst&#xf6;ren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hei&#223;t: Element deregistriert sich am UI-Bus
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1448078308690" ID="ID_185716114" MODIFIED="1518487921085" TEXT="Aktionen">
<node CREATED="1448078344541" ID="ID_1781183546" MODIFIED="1518487921085" TEXT="Subjekt einer Aktion">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ist <i>immer</i>&#160;ein <b>tangible</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078516094" ID="ID_201691188" MODIFIED="1518487921085" TEXT="Commands"/>
<node CREATED="1448078325679" ID="ID_946047770" MODIFIED="1518487921085" TEXT="tweaks"/>
</node>
<node CREATED="1448078330703" ID="ID_1955501343" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
presentation
</p>
<p>
state
</p>
</body>
</html></richcontent>
<node CREATED="1448078381288" ID="ID_1570425925" MODIFIED="1518487921085" TEXT="state mark">
<node CREATED="1448078528725" ID="ID_1776152068" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
vom <i>tangible </i>initiiert
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078554385" ID="ID_181795198" MODIFIED="1518487921085" TEXT="wird zur&#xfc;ckgespielt"/>
<node CREATED="1448078678961" ID="ID_1905336344" MODIFIED="1518487921085" TEXT="Arten">
<node CREATED="1448078682840" ID="ID_1545251839" MODIFIED="1518487921085" TEXT="zoom"/>
<node CREATED="1448078687176" ID="ID_357365613" MODIFIED="1518487921085" TEXT="scroll"/>
<node CREATED="1448078691727" ID="ID_1874307716" MODIFIED="1518487921085" TEXT="expand"/>
<node CREATED="1448078703294" ID="ID_784991533" MODIFIED="1518487921085" TEXT="Form"/>
</node>
</node>
<node CREATED="1448078385504" ID="ID_584410725" MODIFIED="1518487921085" TEXT="feedback">
<node CREATED="1448078569263" ID="ID_906985390" MODIFIED="1518487921085" TEXT="in Fokus bringen"/>
<node CREATED="1448078589997" ID="ID_1779705374" MODIFIED="1518487921085" TEXT="aufblitzen"/>
<node CREATED="1448078604115" ID="ID_666512041" MODIFIED="1518487921085" TEXT="Warn-Nachricht"/>
<node CREATED="1448078622048" ID="ID_1858518915" MODIFIED="1518487921085" TEXT="Fehler"/>
</node>
<node CREATED="1448078416612" ID="ID_1392022084" MODIFIED="1518487921085" TEXT="state reset">
<node CREATED="1448078722483" ID="ID_1661890520" MODIFIED="1518487921085" TEXT="auf default!">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1448078731130" ID="ID_1682515267" MODIFIED="1518487921085" TEXT="collapse / expand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
daf&#252;r gen&#252;gt der normale Reset
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1448078748448" ID="ID_1000763850" MODIFIED="1518487921085" TEXT="Nachrichten l&#xf6;schen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
mark &quot;clearMsg&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078778916" ID="ID_1657108949" MODIFIED="1518487921085" TEXT="Fehler l&#xf6;schen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
mark &quot;clearErr&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078798369" ID="ID_819750758" MODIFIED="1518487921085" TEXT="komplett-Reset">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
mark &quot;reset&quot;
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1448078425594" ID="ID_686619553" MODIFIED="1518487921085" TEXT="Mutation">
<icon BUILTIN="pencil"/>
<node CREATED="1448078811895" ID="ID_1266803050" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Nachricht an <i>irgend ein</i>&#160;Wurzel-Element
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448078835044" ID="ID_358413966" MODIFIED="1518487921085" TEXT="bezieht daraufhin einen Diff"/>
<node CREATED="1448078845419" ID="ID_189415188" MODIFIED="1518487921085" TEXT="wendet diesen rekursiv an"/>
<node CREATED="1448078856722" ID="ID_1770248185" MODIFIED="1518487921085" TEXT="Hinweis: kann Kinder zeugen und zerst&#xf6;ren"/>
</node>
</node>
</node>
<node CREATED="1448658633478" FOLDED="true" HGAP="99" ID="ID_314439240" MODIFIED="1557498707235" TEXT="Design" VSHIFT="13">
<icon BUILTIN="button_ok"/>
<node CREATED="1448658692023" ID="ID_339186676" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
generisch
</p>
<p>
sinnvoll?
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
was haben alle UI-Elemente wirklich gemeinsam?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1448658692023" ID="ID_888978058" MODIFIED="1518487921085" TEXT="generische Commands">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Frage ist, wie generisch ist eigentlich ein Command-Aufruf selber?
</p>
<p>
Macht es daher Sinn, ein generisches API allgemein sichtbar zu machen,
</p>
<p>
oder handelt es sich nur um ein Implementierungsdetail der UI-Bus-Anbindung?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1448659456882" ID="ID_946761955" MODIFIED="1518487921085" TEXT="Notwendig: Command-Name + Varargs"/>
<node CREATED="1451093919426" ID="ID_56876272" MODIFIED="1518487921085" TEXT="generisch impliziert auch zentrale Definition">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1451093994135" ID="ID_1002329025" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...wird sinnvoll im Rahmen von <font color="#8e11a1">InteractionControl</font>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b567c4" DESTINATION="ID_1009169288" ENDARROW="Default" ENDINCLINATION="254;0;" ID="Arrow_ID_200182911" STARTARROW="None" STARTINCLINATION="162;0;"/>
</node>
</node>
<node CREATED="1448659723879" ID="ID_197701429" MODIFIED="1518487921085" TEXT="UI-Grundverhalten">
<node CREATED="1448659735557" ID="ID_1553949303" MODIFIED="1518487921086" TEXT="Falten / Expandieren"/>
<node CREATED="1448659747476" ID="ID_1549415142" MODIFIED="1518487921086" TEXT="Grad der Explizitheit"/>
<node CREATED="1448659757378" ID="ID_1164836827" MODIFIED="1518487921086" TEXT="in Sicht bringen"/>
<node CREATED="1448659780743" ID="ID_1787132400" MODIFIED="1518487921086" TEXT="Fokus-Management"/>
<node CREATED="1448659792782" ID="ID_1547056651" MODIFIED="1518487921086" TEXT="r&#xe4;umliche Navigation"/>
<node CREATED="1448659824337" ID="ID_1734858009" MODIFIED="1518487921086" TEXT="Markierungen"/>
</node>
<node CREATED="1455236472002" FOLDED="true" HGAP="49" ID="ID_952544600" MODIFIED="1535638928899" TEXT="generische Eigenschaften" VSHIFT="15">
<icon BUILTIN="button_cancel"/>
<node CREATED="1455236491432" ID="ID_1268644179" MODIFIED="1518487921086" TEXT="Idee">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1455236501719" HGAP="35" ID="ID_540888754" MODIFIED="1518487921086" TEXT="man k&#xf6;nnte Eigenschaften konfigurieren" VSHIFT="2"/>
<node CREATED="1455236512373" ID="ID_211355731" MODIFIED="1518487921086" TEXT="jede Eigenschaft h&#xe4;tte">
<node CREATED="1455236519677" ID="ID_1698754255" MODIFIED="1518487921086" TEXT="Namen"/>
<node CREATED="1455236522020" ID="ID_404018073" MODIFIED="1518487921086" TEXT="slot"/>
<node CREATED="1455236527443" ID="ID_45035009" MODIFIED="1518487921086" TEXT="passende &#xbb;state mark&#xab;"/>
<node CREATED="1455236537802" ID="ID_1419063243" MODIFIED="1518487921086" TEXT="handler-funktor"/>
<node CREATED="1455236554927" ID="ID_772542993" MODIFIED="1518487921086" TEXT="installiert sich in generischen handler"/>
</node>
<node CREATED="1455236573173" HGAP="72" ID="ID_466911779" MODIFIED="1518487921086" TEXT="Bewertung" VSHIFT="16">
<icon BUILTIN="yes"/>
<node CREATED="1455236781242" ID="ID_674694140" MODIFIED="1518487921086" TEXT="k&#xf6;nnte interessant sein f&#xfc;r Diff"/>
<node CREATED="1455236788424" ID="ID_1507269502" MODIFIED="1518487921086" TEXT="aber gegen das Grundkonzept">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ich wollte explizit kein generisch-introspektives UI,
</p>
<p>
weil das die Tendenz hat, sich zu einem Framework auszuwachsen.
</p>
<p>
F&#252;r die UI-Programmierung mu&#223; man Spaghetticode akzeptieren.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455236851592" ID="ID_1599276883" MODIFIED="1518487921086" TEXT="YAGNI">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1455236869405" ID="ID_1141383110" MODIFIED="1518487921086" TEXT="sp&#xe4;ter">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
</node>
<node CREATED="1541546692289" ID="ID_189279804" MODIFIED="1541546864673">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Identit&#228;t</b>&#160;== Bus-ID
</p>
</body>
</html></richcontent>
<linktarget COLOR="#7894b4" DESTINATION="ID_189279804" ENDARROW="Default" ENDINCLINATION="272;-358;" ID="Arrow_ID_540125984" SOURCE="ID_1585676322" STARTARROW="None" STARTINCLINATION="-618;10;"/>
<node CREATED="1541546715849" ID="ID_503690063" MODIFIED="1541546722489" TEXT="sollte global eindeutig sein"/>
<node CREATED="1541546733765" ID="ID_1010323480" MODIFIED="1541546741208" TEXT="wird per Diff &#xfc;bermittelt"/>
</node>
<node CREATED="1448658696638" ID="ID_1235910089" MODIFIED="1518487921086" TEXT="slots">
<node CREATED="1451177440022" ID="ID_1603816152" MODIFIED="1518487921086" TEXT="expand">
<icon BUILTIN="button_ok"/>
<node CREATED="1451177449405" ID="ID_215708646" MODIFIED="1518487921086" TEXT="zun&#xe4;chst einfach auf/zu"/>
<node CREATED="1451177459667" ID="ID_1151970636" MODIFIED="1518487921086" TEXT="wird m&#xf6;glicherweise eine Enum">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint, eine ENUM von verschiedenen Graden der Aufgeklappt-heit
</p>
<p>
Dann mu&#223;te das allerdigns jeweils f&#252;r alle Elemente sinnvoll sein
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1451177534345" ID="ID_524388510" MODIFIED="1518487921086" TEXT="impl">
<node CREATED="1451177542256" ID="ID_980888532" MODIFIED="1518487921086" TEXT="ruft einen konkreten hook doExpand() auf">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und der mu&#223; vom konkreten Widget implementiert werden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1451177573108" ID="ID_1154342108" MODIFIED="1518487921086" TEXT="wenn dieser true zur&#xfc;ckgibt, ist der Zustand persistent"/>
<node CREATED="1451177584435" ID="ID_1792154974" MODIFIED="1518487921086">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dann wird eine <i>state mark</i>&#160;ausgesendet
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1451177442861" ID="ID_1257047796" MODIFIED="1518487921086" TEXT="reveal">
<icon BUILTIN="smily_bad"/>
<node CREATED="1451177636388" ID="ID_507693817" MODIFIED="1518487921086" TEXT="&quot;bringe dies Element in Sicht&quot;">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1451177626773" ID="ID_612921051" MODIFIED="1518487921086" TEXT="ist das eine gute Idee">
<icon BUILTIN="help"/>
</node>
<node CREATED="1451177659369" ID="ID_928484705" MODIFIED="1518487921086">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
need to <i>bubble up</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1451177719577" ID="ID_1175980404" MODIFIED="1518487921086" TEXT="wie finde ich den Vater..."/>
<node CREATED="1455236368345" ID="ID_1490676072" MODIFIED="1518487921086" TEXT="besser">
<icon BUILTIN="yes"/>
<node CREATED="1455236382183" ID="ID_983670310" MODIFIED="1518487921086" TEXT="Einstiegspunkt: revealYourself"/>
<node CREATED="1455236393861" ID="ID_1638665625" MODIFIED="1518487921086">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
support ist <i>optional</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455236418290" ID="ID_1765760054" MODIFIED="1518487921086" TEXT="dieses ruft parent.reveal(myID)"/>
</node>
</node>
</node>
<node CREATED="1535639028984" FOLDED="true" ID="ID_316446199" MODIFIED="1541545385363" TEXT="hilfs-Abstraktionen">
<linktarget COLOR="#709eaf" DESTINATION="ID_316446199" ENDARROW="Default" ENDINCLINATION="-354;-490;" ID="Arrow_ID_1105268233" SOURCE="ID_447101734" STARTARROW="None" STARTINCLINATION="-3385;0;"/>
<node CREATED="1535639151330" ID="ID_301022990" MODIFIED="1535639159958" TEXT="mix-in">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1535639038857" ID="ID_978884512" MODIFIED="1535639051322" TEXT="erm&#xf6;glichen generische Implementierung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535639052671" ID="ID_1134562624" MODIFIED="1535639073976" TEXT="Expander">
<node CREATED="1535639110104" ID="ID_712715565" MODIFIED="1535639113355" TEXT="bool-Testbar"/>
<node CREATED="1535725570140" ID="ID_39824556" MODIFIED="1535725586590" TEXT="canExpand()"/>
<node CREATED="1535639114727" ID="ID_1791716176" MODIFIED="1535725472597" TEXT="Funktions-Operator(bool expand)"/>
</node>
<node CREATED="1535639174623" ID="ID_1755607605" MODIFIED="1535639177466" TEXT="Revealer">
<node CREATED="1535639368981" ID="ID_220149026" MODIFIED="1535725407546">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nicht</i>&#160;bool-Testbar
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ganz bewu&#223;t verzichten wir darauf,
</p>
<p>
festzustellen, ob ein Kind gegenw&#228;rtig zug&#228;nglich (revealed) ist.
</p>
<p>
Denn dies auf dem API zu exponieren bringt keinen Mehrwehrt.
</p>
<p>
Letztlich ist das ein lokales Detail des Layout-Managers.
</p>
<p>
</p>
<p>
Es ist nicht Sache des client-Codes, auf einem Widget ein anderes Verhalten auszul&#246;sen,
</p>
<p>
wenn es nicht sichtbar ist. Denn Sichtbarkeit geh&#246;rt zur UI-Mechanik und geht den Client nix an
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535725591561" ID="ID_1362809449" MODIFIED="1535725594837" TEXT="canReveal()"/>
<node CREATED="1535639517897" ID="ID_1175119585" MODIFIED="1535725607419" TEXT="Funktions-Operator(void) == reveal"/>
<node CREATED="1535640911061" ID="ID_777387548" MODIFIED="1535725678665" TEXT="reveal(canvasX,canvasY) auf dem Layout-Manager"/>
</node>
<node CREATED="1535640932722" FOLDED="true" ID="ID_1411372901" MODIFIED="1535723883504" TEXT="NavScope">
<icon BUILTIN="button_cancel"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1535654864507" ID="ID_976171939" MODIFIED="1535654872624" TEXT="erst mal nur so eine Idee....">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1535654895926" ID="ID_518978388" MODIFIED="1535655662803" TEXT="zwei Fliegen mit einer Klappe">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1535654884104" ID="ID_1335278492" MODIFIED="1535654995472" TEXT="k&#xf6;nnte f&#xfc;r den ViewLocator n&#xfc;tzlich sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn dort fehlt noch die konkrete Implementierung,
</p>
<p>
welche die Monaden-Baum-Repr&#228;sentation schlie&#223;lich
</p>
<p>
auf konkrete Widgets abbildet. Das ist viel Arbeit, und es lie&#223;e sich vereinfachen,
</p>
<p>
wenn f&#252;r gewisse Knoten erkannt werden kann, da&#223; sie einen NavScope darstellen;
</p>
<p>
denn dann g&#228;be es eine Implementierung &quot;von der Stange&quot;
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1535723854290" ID="ID_333598922" MODIFIED="1535723874600" TEXT="f&#xe4;llt aus diesem Thema heraus">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1535655039395" FOLDED="true" ID="ID_1646511082" MODIFIED="1535725225038" TEXT="Diskussion">
<icon BUILTIN="button_ok"/>
<node CREATED="1535655065175" ID="ID_702941818" MODIFIED="1535655069235" TEXT="Symmetrie?">
<node CREATED="1535655118800" ID="ID_1058761508" MODIFIED="1535655127308" TEXT="Expander ist nur pro Komponente">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1535655136902" ID="ID_126171743" MODIFIED="1535655170274" TEXT="Wunsch: Mix-ins in NavScope-Interface kombinieren">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535723351533" ID="ID_909635517" MODIFIED="1535723375219">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber die Operationen sind <i>der Sache nach</i>&#160;nicht symmetrisch
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1535725181176" ID="ID_1947404851" MODIFIED="1535725210681" TEXT="ins Kind verlagert lassen sie sich jedoch symmetrisieren">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1535655069967" FOLDED="true" ID="ID_340217269" MODIFIED="1535725176627" TEXT="Expander und Revealer als Proxy?">
<icon BUILTIN="stop-sign"/>
<node CREATED="1535655293760" ID="ID_1318206385" MODIFIED="1535655302082" TEXT="Syntax?">
<node CREATED="1535655199741" ID="ID_942388081" MODIFIED="1535655235119" TEXT="scope.getExpander(ID).expand(false)">
<icon BUILTIN="help"/>
</node>
<node CREATED="1535655252694" ID="ID_1462365996" MODIFIED="1535655259251" TEXT="scope.canExpand(ID)">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1535655285938" ID="ID_1449182402" MODIFIED="1535655292365" TEXT="oder">
<node CREATED="1535655304095" ID="ID_482365383" MODIFIED="1535655319455" TEXT="scope.expand(ID, true)">
<icon BUILTIN="help"/>
</node>
<node CREATED="1535655363543" ID="ID_1383221002" MODIFIED="1535655385497" TEXT="scope.canReveal(ID)">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1535655400386" ID="ID_1267051500" MODIFIED="1535655402638" TEXT="Storage">
<node CREATED="1535655416192" ID="ID_1700423924" MODIFIED="1535721537469" TEXT="value: Funktor">
<icon BUILTIN="full-1"/>
<node CREATED="1535655437493" ID="ID_949368248" MODIFIED="1535655450647" TEXT="kopierbar"/>
<node CREATED="1535655452419" ID="ID_338667405" MODIFIED="1535655462678" TEXT="besteht nur aus std::function"/>
<node CREATED="1535655501013" ID="ID_822333393" MODIFIED="1535655513719" TEXT="wird direkt im verwendenden Widget gespeichert"/>
<node CREATED="1535722990637" ID="ID_1278252704" MODIFIED="1535723000688" TEXT="aber es gibt verdeckte Heap-Allokationen"/>
<node CREATED="1535655479976" ID="ID_1685363954" MODIFIED="1535655485792" TEXT="Gefahr: dangling references">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1535655427943" ID="ID_1559607876" MODIFIED="1535721543060" TEXT="ref: Proxy-Objekt">
<icon BUILTIN="full-2"/>
<node CREATED="1535655553598" ID="ID_714380046" MODIFIED="1535655564832" TEXT="nicht-kopierbar"/>
<node CREATED="1535655565420" ID="ID_1503255611" MODIFIED="1535655575607" TEXT="ist eine konkrete Subklasse"/>
<node CREATED="1535655576843" ID="ID_1432131188" MODIFIED="1535655585397" TEXT="storage...">
<node CREATED="1535655586265" ID="ID_267652544" MODIFIED="1535655612409" TEXT="entweder inline, aber mit vector&lt;function&gt;"/>
<node CREATED="1535655613518" ID="ID_146906659" MODIFIED="1535655634423" TEXT="direkt auf dem Heap, mit expliziter konkreter Impl"/>
</node>
</node>
</node>
<node CREATED="1535724509562" ID="ID_833385943" MODIFIED="1535724515909" TEXT="Implementierungs-Modell">
<node CREATED="1535724523160" FOLDED="true" ID="ID_1440345421" MODIFIED="1535725153382" TEXT="Parent-Container f&#xfc;hrt Index">
<icon BUILTIN="full-1"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1535724838670" ID="ID_1787800884" MODIFIED="1535724867702" TEXT="das Kind wird dort per ID registriert"/>
<node CREATED="1535724882528" ID="ID_1169954047" MODIFIED="1535724888883" TEXT="per ID bekommt man einen...">
<node CREATED="1535724890399" ID="ID_1544051424" MODIFIED="1535724893410" TEXT="Expander-Proxy"/>
<node CREATED="1535724894022" ID="ID_91331753" MODIFIED="1535724897842" TEXT="Revealer-Proxy"/>
</node>
<node CREATED="1535724910940" ID="ID_1389683609" MODIFIED="1535724922199" TEXT="das Kind h&#xe4;lt eine Referenz auf seinen Parent"/>
</node>
<node CREATED="1535724555244" ID="ID_336857888" MODIFIED="1535724635442" TEXT="Parent-Container konfiguriert Funktor in das Kind">
<icon BUILTIN="full-2"/>
<icon BUILTIN="forward"/>
<node CREATED="1535724936297" ID="ID_947922423" MODIFIED="1535724966529" TEXT="die default-Impl des Kindes enth&#xe4;lt Storage f&#xfc;r diese Funktoren"/>
<node CREATED="1535724976291" ID="ID_1742203413" MODIFIED="1535724996837" TEXT="beim Einbinden in einen Container verdrahtet dieser die Funktoren"/>
<node CREATED="1535724997873" ID="ID_493457848" MODIFIED="1535725010507" TEXT="und aktiviert damit ggfs die F&#xe4;higkeit Expand/Reveal"/>
<node CREATED="1535725011710" ID="ID_206250793" MODIFIED="1535725020409" TEXT="das Kind kennt seinen Parent nicht"/>
</node>
<node CREATED="1535724570738" FOLDED="true" ID="ID_1785171345" MODIFIED="1535725155045" TEXT="Funktor ist in Mix-in im Kind gespeichert">
<icon BUILTIN="full-3"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1535725026621" ID="ID_1063803104" MODIFIED="1535725041437" TEXT="Erweiterung zur L&#xf6;sung">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1535725048130" ID="ID_1987768737" MODIFIED="1535725075314" TEXT="die Funktor-Storage wird in das Kind als Mix-in eingebaut"/>
<node CREATED="1535725076142" ID="ID_904760905" MODIFIED="1535725093936" TEXT="dieser Mix-In &#xfc;berschreibt auch die default-NOP-Implementierung"/>
<node CREATED="1535725100803" ID="ID_1869635653" MODIFIED="1535725113085" TEXT="man k&#xf6;nnte auf Typ-Ebene Capabilities pr&#xfc;fen"/>
<node CREATED="1535725117080" ID="ID_417282292" MODIFIED="1535725140662" TEXT="diese L&#xf6;sung erscheit cool, aber im Moment &#xfc;bertrieben">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1535722960729" FOLDED="true" ID="ID_303674498" MODIFIED="1535725812302" TEXT="Abw&#xe4;gung">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1535723619257" ID="ID_1146060205" MODIFIED="1535723638348" TEXT="Ich folge dem appeal der Funktor-L&#xf6;sung">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1535723641150" ID="ID_945428972" MODIFIED="1535723664351" TEXT="die beiden F&#xe4;lle werden symmetrisch gemacht..."/>
<node CREATED="1535723665347" ID="ID_243620982" MODIFIED="1535723693571" TEXT="...indem sie als Funktor direkt in das Widget verlagert sind"/>
<node CREATED="1535723705158" ID="ID_1284580377" MODIFIED="1535723721479" TEXT="das API reveal(ID) auf dem Parent entf&#xe4;llt ersatzlos"/>
<node CREATED="1535723722763" ID="ID_751870134" MODIFIED="1535723735461" TEXT="das Herstellen der Funktoren wird ein Implementierungs-Detail"/>
<node CREATED="1535725684749" ID="ID_711293491" MODIFIED="1535725797751" TEXT="bubble-Up pasiert somit nur noch implizit">
<node CREATED="1535725711241" ID="ID_1059426307" MODIFIED="1535725743161" TEXT="sofern der Parent-Container seinen eigenen Revealer aufrufen kann"/>
<node CREATED="1535725744085" ID="ID_1761380382" MODIFIED="1535725770365" TEXT="dagegen das reveal(canvasX,canvasY) wird explizit auf den Layout-Manager verschoben"/>
<node CREATED="1535725771305" ID="ID_988494427" MODIFIED="1535725789821" TEXT="...welcher somit explizit an geeigneter Stelle verdrahtet sein mu&#xdf;">
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1535723783155" ID="ID_1961294443" MODIFIED="1535725808284" TEXT="Konsequenz: die Idee mit den Mix-ins gebe ich auf">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1535723904043" HGAP="12" ID="ID_878787948" MODIFIED="1535725871700" TEXT="Struktur">
<icon BUILTIN="info"/>
<node CREATED="1535723916153" ID="ID_91381589" MODIFIED="1535723927220" TEXT="Tangible bekommt einen Expander und einen Revealer"/>
<node CREATED="1535723930631" ID="ID_1166620864" MODIFIED="1535723955464" TEXT="default-konstruiert sind diese Funktionen deaktiviert"/>
<node CREATED="1535723958404" ID="ID_1293339775" MODIFIED="1535723973358" TEXT="es gibt hierf&#xfc;r ein Konfigurations-API">
<node CREATED="1535723978137" ID="ID_1758020852" MODIFIED="1535724000466" TEXT="installExpander(lambda, lambda)"/>
<node CREATED="1535723987360" ID="ID_1134664898" MODIFIED="1535723995651" TEXT="installRevealer(lambda)"/>
</node>
<node CREATED="1535724283280" ID="ID_316168549" MODIFIED="1535724371580" TEXT="ein Container-Parent hat die Pflicht, diese Funktoren ggfs zu installieren">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1535724349855" ID="ID_782260645" MODIFIED="1535724369173" TEXT="aus einer Hierarchie herausgenommene Widgets sind unverz&#xfc;glich zu zerst&#xf6;ren">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537499427673" ID="ID_1035982675" MODIFIED="1537499435729" TEXT="#1162 helper abstractions for generic widgets">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1455421282030" HGAP="54" ID="ID_1448430954" MODIFIED="1518487921086" TEXT="state mark" VSHIFT="12">
<icon BUILTIN="button_ok"/>
<node CREATED="1455421310603" ID="ID_1677758546" MODIFIED="1518487921086" TEXT="slots und markXX sind aufgedoppelt"/>
<node CREATED="1455421372274" ID="ID_956411027" MODIFIED="1518487921086" TEXT="Implementierung mu&#xdf; emittieren">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1455421336808" ID="ID_520325590" MODIFIED="1518487921086" TEXT="wenn eine &#xc4;nderung relevant f&#xfc;r Persistenz"/>
<node CREATED="1455421392032" ID="ID_969248847" MODIFIED="1518487921086" TEXT="die doXXX() - Funktion gibt true zur&#xfc;ck"/>
<node CREATED="1455421407646" ID="ID_480078096" MODIFIED="1518487921086" TEXT="dann erledigt die slot / mark-Funktion das"/>
</node>
<node CREATED="1455421435698" ID="ID_799737882" MODIFIED="1518487921086" TEXT="PresentationStateManager sammelt einfach">
<icon BUILTIN="button_ok"/>
<node CREATED="1455421453040" ID="ID_1195489674" MODIFIED="1518487921086" TEXT="pro Element (=ID)"/>
<node CREATED="1455421460671" ID="ID_1160333722" MODIFIED="1518487921086" TEXT="pro &quot;property&quot; == ID-sym der state mark - Nachricht"/>
</node>
<node CREATED="1455421490643" ID="ID_256291546" MODIFIED="1518487921086" TEXT="L&#xf6;sch / Reset-Nachrichten">
<icon BUILTIN="idea"/>
<node CREATED="1455421507505" ID="ID_1382752422" MODIFIED="1518487921086" TEXT="sind auszusenden, wenn tats&#xe4;chlich gel&#xf6;scht wurde">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1455421520087" ID="ID_1219279890" MODIFIED="1518487921086" TEXT="werden vom PresentationStateManager speziell behandelt"/>
</node>
<node CREATED="1455421537717" ID="ID_562890111" MODIFIED="1518487921086" TEXT="k&#xf6;nnen per Broadcast verbreitet werden">
<node CREATED="1455421549347" ID="ID_744479545" MODIFIED="1518487921086" TEXT="separates UI-Bus API"/>
<node CREATED="1455421557026" ID="ID_655863988" MODIFIED="1518487921086">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nach Broadcast von &quot;reset&quot;
</p>
<p>
sollte logischerweise der PresentationStateManager leer sein
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ist er aber nicht notwendig,
</p>
<p>
denn er kann Zustand von nicht mehr existierenden Elementen aufgezeichnet haben.
</p>
<p>
Nur Elemente, die im Moment angeschlossen sind, bekommen die &quot;reset&quot;-Nachricht mit;
</p>
<p>
sofern sie tats&#228;chlich abweichenden Zustand haben, sollten sie sich resetten
</p>
<p>
und eine state mark &quot;reset&quot; zur&#252;ckschicken...
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1455422030995" FOLDED="true" HGAP="35" ID="ID_1455265273" MODIFIED="1533684837443" TEXT="mutation" VSHIFT="7">
<icon BUILTIN="button_ok"/>
<node CREATED="1455666294927" ID="ID_373207685" MODIFIED="1518487921086" TEXT="Ausgangspunkt">
<node CREATED="1455666301630" ID="ID_933452284" MODIFIED="1518487921086" TEXT="Element-Protokoll steht"/>
<node CREATED="1455666310701" ID="ID_571166725" MODIFIED="1518487921086" TEXT="Bus-Semantik steht"/>
<node CREATED="1455666315061" ID="ID_1650938256" MODIFIED="1518487921086" TEXT="Konzept f&#xfc;r Tree-Mutator steht"/>
<node CREATED="1455666330652" ID="ID_654052510" MODIFIED="1518487921086" TEXT="Tree-Diff-Applikator ist implementiert"/>
<node CREATED="1455666351784" ID="ID_1889806972" MODIFIED="1518487921086" TEXT="Entscheidung f&#xfc;r 2-Phasiges Diff-Update ist gefallen"/>
</node>
<node CREATED="1455668350028" HGAP="43" ID="ID_1853535891" MODIFIED="1518487921086" TEXT="Ablauf" VSHIFT="5">
<node CREATED="1455668396398" ID="ID_1627727409" MODIFIED="1518487921086" TEXT="Diff-Nachricht kommt via UI-Bus">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1455668411867" ID="ID_1932196729" MODIFIED="1518487921086" TEXT="UI-Element baut Tree-Mutator &quot;auf sich selbst&quot;">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1455668689495" ID="ID_1046261411" MODIFIED="1518487921086" TEXT="UI-Element setzt Tree-Diff-Applikator auf diesen an">
<icon BUILTIN="full-3"/>
</node>
</node>
<node CREATED="1455668897947" HGAP="211" ID="ID_1897861223" MODIFIED="1533684811285" TEXT="Konsequenzen" VSHIFT="23">
<node CREATED="1455668923175" ID="ID_1183550957" MODIFIED="1472219338326" TEXT="brauche passendes UI-Bus API">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....so harmlos hat alles angefangen
</p>
<p>
</p>
<p>
Denn das hei&#223;t, ich mu&#223; konkret ausarbeiten,
</p>
<p>
<i>wie</i>&#160;man einen Diff gegen eine opaque Implementierungs-Datenstruktur aufspielt.
</p>
<p>
Und ich mu&#223; das in einem Test zumindest emulieren k&#246;nnen!
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1455668935142" FOLDED="true" ID="ID_1274632216" MODIFIED="1533684781468">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mu&#223; DiffApplicationStrategy
</p>
<p>
<i>noch einmal</i>&#160;implementieren
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das mag &#252;berraschen --
</p>
<p>
ist aber im Sinne des Erfinders
</p>
<ul>
<li>
DiffApplicationStrategy war von Anfang an als technisches Binding konzipiert
</li>
<li>
es ist besser, die gleiche Semantik der Sprache X-mal herunterzucoden
</li>
<li>
cleverer Code-re-Use zahlt sich i.d.R. nicht aus
</li>
</ul>
</body>
</html></richcontent>
<node CREATED="1455669272760" ID="ID_837691598" MODIFIED="1512926191890" TEXT="Call-Stack ist der Prozessor-Stack (Rekursion)">
<icon BUILTIN="button_cancel"/>
<node CREATED="1455899000582" ID="ID_1404453203" MODIFIED="1455899086452" TEXT="sorry, geht nicht">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1455899005885" ID="ID_1920318464" MODIFIED="1512926191891" TEXT="denn sonst mu&#xdf; ich">
<icon BUILTIN="idea"/>
<node CREATED="1455899015220" ID="ID_1476900463" MODIFIED="1455899023991" TEXT="entweder die Anwendung komplett neu schreiben"/>
<node CREATED="1455899024459" ID="ID_1562031965" MODIFIED="1455899033805" TEXT="oder den DiffApplicator umbauen"/>
<node CREATED="1455899034129" ID="ID_1505454112" MODIFIED="1455899053610" TEXT="und das reicht bis in die Diff-Verben..."/>
<node CREATED="1455899054575" ID="ID_1973501142" MODIFIED="1455899068441" TEXT="die dann rekursiv vom Diff-Typ abh&#xe4;ngig werden"/>
<node CREATED="1455899068941" ID="ID_604248716" MODIFIED="1455899072752" TEXT="NEE DANKE"/>
</node>
</node>
<node CREATED="1455669266289" ID="ID_476883926" MODIFIED="1455899233976" TEXT="mu&#xdf; ebenfalls expliziten Stack verwenden">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1455899121277" ID="ID_1897194874" MODIFIED="1512926191891" TEXT="eigentlich ist das ganze Copy-n-Paste">
<icon BUILTIN="button_ok"/>
<node CREATED="1455899176175" ID="ID_589009361" MODIFIED="1455899183929" TEXT="gef&#xfc;hlsm&#xe4;&#xdf;ig: hier kein Problem"/>
<node CREATED="1455899184397" ID="ID_933775328" MODIFIED="1455899191320" TEXT="denn die Implementierung ist gekoppelt"/>
<node CREATED="1455899191836" ID="ID_1325546784" MODIFIED="1455899200983" TEXT="mu&#xdf; gekoppelt sein, wg. Effizienz"/>
<node CREATED="1455899201435" ID="ID_1353317149" MODIFIED="1455899210798" TEXT="eine Abstraktion hat hier keinen Mehrwert"/>
<node CREATED="1455899211338" ID="ID_1152596163" MODIFIED="1455899216645" TEXT="und ist &#xfc;berall sonst eine B&#xfc;rde"/>
</node>
<node CREATED="1472829783619" HGAP="28" ID="ID_1015946734" MODIFIED="1472829805342" TEXT="am Ende ist das die sch&#xf6;nere Implementierung geworden" VSHIFT="5">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1455669004941" FOLDED="true" ID="ID_853385575" MODIFIED="1533684782805">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dies setzt volle Implementierung
</p>
<p>
des Tree-Mutators voraus
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der schwierigste Teil, das Mutieren von Attributen,
</p>
<p>
ist jedoch schon prototypisch implementiert
</p>
</body>
</html></richcontent>
<node CREATED="1455899288247" ID="ID_635341866" MODIFIED="1512926191892" TEXT="Tree-Mutator hat echte (Assignment)-Mutation">
<icon BUILTIN="info"/>
<node CREATED="1455899303981" ID="ID_1584621992" MODIFIED="1455899333910" TEXT="pa&#xdf;t nicht auf die Semantik vom Diff">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1455899315092" ID="ID_1911158046" MODIFIED="1455899330748" TEXT="dann eben passend machen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1455899321418" ID="ID_802682081" MODIFIED="1455899337153" TEXT="Diff bekommt ein SET verb">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1455669313986" ID="ID_1730130372" MODIFIED="1512926191893" TEXT="brauche generiischen Rahmen">
<node CREATED="1455669322561" ID="ID_1968219875" MODIFIED="1455669325957" TEXT="f&#xfc;r skip"/>
<node CREATED="1455669326400" ID="ID_646237490" MODIFIED="1455669330996" TEXT="f&#xfc;r ins / del"/>
<node CREATED="1455669331448" ID="ID_1852578403" MODIFIED="1455669333036" TEXT="f&#xfc;r find"/>
</node>
</node>
<node COLOR="#ad014c" CREATED="1455669200945" HGAP="85" ID="ID_880765624" MODIFIED="1515978217415" TEXT="Design-Fragen" VSHIFT="-14">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#4e1527" CREATED="1458408700205" ID="ID_685778920" MODIFIED="1512926191894" TEXT="Grundansatz">
<font NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="yes"/>
<node CREATED="1458408708004" ID="ID_239878029" MODIFIED="1458408717247" TEXT="Abstraktion / Adapter"/>
<node CREATED="1458408717739" ID="ID_579166238" MODIFIED="1458408726086" TEXT="(virtuelles) Interface"/>
<node CREATED="1458408730841" ID="ID_356597537" MODIFIED="1458408739164" TEXT="konkretes Binding"/>
<node CREATED="1458408742408" ID="ID_1733136177" MODIFIED="1512926191895" TEXT="Binding-Technik">
<node CREATED="1458408757478" ID="ID_1718466382" MODIFIED="1458408786501" TEXT="Mutator wird in jeweiliger Impl erzeugt"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#221c4f" CREATED="1458408790457" FOLDED="true" ID="ID_1892865523" MODIFIED="1533684770264" STYLE="fork" TEXT="Polymorphie vs. Funktoren">
<icon BUILTIN="button_ok"/>
<node CREATED="1458408878574" ID="ID_1190262572" MODIFIED="1512926191896" TEXT="Abw&#xe4;gung">
<icon BUILTIN="info"/>
<node CREATED="1458408895756" ID="ID_1422093195" MODIFIED="1533608413859" TEXT="polymorph">
<node CREATED="1458408909594" ID="ID_447360746" MODIFIED="1458409828754">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Mutator verwendet einen <i>Binder</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458408965770" ID="ID_1892856741" MODIFIED="1458409828754" TEXT="jeweiliger Client implementiert den Binder"/>
<node CREATED="1458409675740" ID="ID_1319191337" MODIFIED="1458409828754" TEXT="Implementierung direkt durch Typsystem geleitet">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1458408946813" ID="ID_86057383" MODIFIED="1458409828754" TEXT="Indirektion, virtuelle Funktionen">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1458409155585" ID="ID_1985086830" MODIFIED="1458409828754" TEXT="Client mu&#xdf; explizit instantiieren und verbinden">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1458409202946" ID="ID_162172192" MODIFIED="1458409828754" TEXT="f&#xfc;r jede Anwendungssituation eine neue Binder-Klasse"/>
<node CREATED="1458409270353" ID="ID_114384372" MODIFIED="1458409828754" TEXT="plus f&#xfc;r jedes Anwendungs-Grundmuster eine Mutator-Implementierung"/>
</node>
<node CREATED="1458408904802" ID="ID_1569962545" MODIFIED="1533608413860" TEXT="generisch">
<node CREATED="1458409289263" ID="ID_1520752432" MODIFIED="1458409828754" TEXT="konkreter Mutator wird aus Bausteinen zusammengestellt"/>
<node CREATED="1458409313524" ID="ID_90057804" MODIFIED="1458409828754" TEXT="diese Bausteine verwenden Funktoren und Lambdas"/>
<node CREATED="1458409343504" ID="ID_1243373098" MODIFIED="1458409828754" TEXT="Mutator-Instantiierung und Lamdas im gleichen Scope"/>
<node CREATED="1458409357886" ID="ID_102579030" MODIFIED="1458409828754" TEXT="Bindung implizit, Inlining f&#xfc;r Lambdas"/>
<node CREATED="1458409636857" ID="ID_410838714" MODIFIED="1458409828754" TEXT="Typ/Signaturfehler werden (erst) im generischen Code bemerkt">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1458409384661" ID="ID_599058435" MODIFIED="1458409828754" TEXT="f&#xfc;r jede Anwendungssituation eine neue Mutator-Implementierung"/>
<node CREATED="1458409554491" ID="ID_1516498705" MODIFIED="1458409828754" TEXT="aber auch Builder-Zwischenstufen m&#xfc;sen als Funktionen instantiiert werden">
<icon BUILTIN="clanbomber"/>
</node>
</node>
</node>
<node CREATED="1458408881773" ID="ID_649871974" MODIFIED="1512926191899" TEXT="Entscheidung">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#010101" CREATED="1458409428796" ID="ID_1590872717" MODIFIED="1458409828754" TEXT="generisch">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1458409480646" ID="ID_239846348" MODIFIED="1458409828754" TEXT="weniger Indirektion"/>
<node CREATED="1458409499547" ID="ID_734782069" MODIFIED="1458409828755" TEXT="geringf&#xfc;gig weniger Code-bloat"/>
<node CREATED="1458409506778" ID="ID_1696279423" MODIFIED="1458409828755" TEXT="bessere Chancen auf Inlining"/>
<node CREATED="1458409586672" ID="ID_902822558" MODIFIED="1533608413860" TEXT="Client-Code">
<node CREATED="1458409608924" ID="ID_1425639317" MODIFIED="1458409828755" TEXT="kompakter"/>
<node CREATED="1458409611484" ID="ID_1386932549" MODIFIED="1458409828755" TEXT="expliziter"/>
<node CREATED="1458409616980" ID="ID_1067167042" MODIFIED="1458409828755" TEXT="weniger technisch"/>
<node CREATED="1458409622475" ID="ID_858066487" MODIFIED="1458409828755" TEXT="lesbarer"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1455669221255" ID="ID_1712552545" MODIFIED="1512926191900" TEXT="Repr&#xe4;sentation der &quot;aktuellen Position&quot;">
<node CREATED="1472829837156" ID="ID_1214532087" MODIFIED="1472829843934" TEXT="implizit lassen"/>
<node CREATED="1472829844387" ID="ID_1395134655" MODIFIED="1472829852134" TEXT="auf Implementierungs-Ebene verlagern"/>
<node CREATED="1472829853242" ID="ID_562014580" MODIFIED="1472829913272" TEXT="in jedem Layer / f&#xfc;r jeden Typ gesondert">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_562014580" ENDARROW="Default" ENDINCLINATION="451;-8;" ID="Arrow_ID_543974195" SOURCE="ID_631826706" STARTARROW="None" STARTINCLINATION="322;-32;"/>
</node>
</node>
<node CREATED="1455669345167" ID="ID_310849010" MODIFIED="1455669353721" TEXT="generischen Rahmen f&#xfc;r Mut-Operationen"/>
<node CREATED="1455669238213" ID="ID_731780565" MODIFIED="1512926191900" TEXT="Einleiten der Rekursion">
<node CREATED="1455842313629" ID="ID_179960248" MODIFIED="1455842321264" TEXT="ich h&#xe4;tte es gern echt-rekursiv"/>
<node CREATED="1455842321828" ID="ID_1622068738" MODIFIED="1455842336974" TEXT="widerspricht aber unserem DiffApplicator"/>
</node>
<node CREATED="1455833678448" HGAP="47" ID="ID_1439118587" MODIFIED="1533684825451" TEXT="Probleme" VSHIFT="16">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1455833736586" ID="ID_1233162987" MODIFIED="1525124215054" TEXT="Analyse: Feld vs Attribut">
<icon BUILTIN="info"/>
<node CREATED="1455834007278" ID="ID_196347476" MODIFIED="1512926191903" TEXT="Feld">
<node CREATED="1455834060110" ID="ID_1872959165" MODIFIED="1455834067177" TEXT="ist da per Struktur"/>
<node CREATED="1455834067837" ID="ID_944456076" MODIFIED="1455834075400" TEXT="hat immer einen Wert"/>
</node>
<node CREATED="1455834010264" ID="ID_1604005834" MODIFIED="1512926191903" TEXT="Attribut">
<node CREATED="1455834109112" ID="ID_879864381" MODIFIED="1455834119178" TEXT="wird per Key angesprochen"/>
<node CREATED="1455834121926" ID="ID_504132661" MODIFIED="1455834189337" TEXT="kann abwesend sein"/>
</node>
<node CREATED="1455834013389" ID="ID_133168935" MODIFIED="1512926191904" TEXT="Widerspr&#xfc;che">
<node CREATED="1455834227528" ID="ID_1606302361" MODIFIED="1455834231179" TEXT="Feld hinzuf&#xfc;gen"/>
<node CREATED="1455834231647" ID="ID_1275813367" MODIFIED="1455834236914" TEXT="Feld l&#xf6;schen"/>
<node CREATED="1455834237999" ID="ID_254859574" MODIFIED="1455834251313" TEXT="Feld suchen"/>
<node CREATED="1455834400273" ID="ID_54362263" MODIFIED="1455834403925" TEXT="Zuweisung"/>
<node CREATED="1455834252068" ID="ID_1918373755" MODIFIED="1455834285644" TEXT="Ordnung"/>
</node>
</node>
<node CREATED="1455833774965" ID="ID_677756898" MODIFIED="1512926191904" TEXT="&#xc4;ndern wider die Natur">
<node CREATED="1455898722195" ID="ID_1299759861" MODIFIED="1455898728644" TEXT="Problem delegieren..."/>
<node CREATED="1455898713124" ID="ID_1862448261" MODIFIED="1455898720143" TEXT="ignorieren bzw. scheitern lassen"/>
</node>
<node CREATED="1455833858794" ID="ID_483179827" MODIFIED="1512926191904" TEXT="zus&#xe4;tzliche Ordnungsstruktur">
<node CREATED="1455898689479" ID="ID_1223705901" MODIFIED="1455898696898" TEXT="Attribut: ignorieren"/>
<node CREATED="1455898698670" ID="ID_1532643598" MODIFIED="1455898705001" TEXT="Kind: delegieren"/>
</node>
<node CREATED="1455842653928" FOLDED="true" ID="ID_1996966445" MODIFIED="1533684757737">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Diff kennt keine <i>Zuweisung</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1455842674973" ID="ID_1910702757" MODIFIED="1455842682008" TEXT="L&#xf6;schen + Neueinf&#xfc;gen"/>
<node CREATED="1455842682524" ID="ID_1597781391" MODIFIED="1455842710444" TEXT="unn&#xf6;tiger Aufwand (Allokation)"/>
<node CREATED="1455842711008" ID="ID_1470911011" MODIFIED="1455842721083" TEXT="f&#xfc;hrt zu &quot;Flackern&quot; im UI"/>
<node CREATED="1455843001833" HGAP="46" ID="ID_617738816" MODIFIED="1512926191905" TEXT="L&#xf6;sungen" VSHIFT="16">
<icon BUILTIN="idea"/>
<node CREATED="1455843011048" ID="ID_1280199494" MODIFIED="1512926191905" TEXT="Spezialvereinbarung">
<icon BUILTIN="button_cancel"/>
<node CREATED="1455843048699" ID="ID_1949875245" MODIFIED="1455843054766" TEXT="Einf&#xfc;gen des gleichen Attributes"/>
<node CREATED="1455843055122" ID="ID_880285017" MODIFIED="1455843061285" TEXT="geht nur unmittelbar danach"/>
<node CREATED="1455843061633" ID="ID_1466937234" MODIFIED="1455843065597" TEXT="geht nur mit Attributen"/>
</node>
<node CREATED="1455843068672" ID="ID_695348733" MODIFIED="1512926191906" TEXT="neues Verb">
<icon BUILTIN="button_ok"/>
<node CREATED="1455843074288" ID="ID_251586851" MODIFIED="1455843077987" TEXT="SET"/>
<node CREATED="1455843120961" ID="ID_1340712241" MODIFIED="1455843131556" TEXT="setzt Element-Identit&#xe4;t voraus"/>
<node CREATED="1455843134111" ID="ID_1830155209" MODIFIED="1455843174534" TEXT="funkioniert (theoretisch) auch bei Kindern"/>
<node CREATED="1455843262862" ID="ID_779223103" MODIFIED="1533608413862" TEXT="Frage: Auto-PICK">
<icon BUILTIN="help"/>
<node CREATED="1455843317119" ID="ID_755404987" MODIFIED="1455895650565" TEXT="Ja: aber was dann mit Umordnungen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1455843336405" FOLDED="true" ID="ID_1210482014" MODIFIED="1533608416261">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Nein
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1455895664140" ID="ID_639070488" MODIFIED="1455895669295">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber was dann wenn out-of-order
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1455895670603" FOLDED="true" ID="ID_1629566976" MODIFIED="1533608415963" TEXT="out-of-order">
<icon BUILTIN="yes"/>
<node CREATED="1455895687377" ID="ID_742953981" MODIFIED="1455895691763" TEXT="wird unterst&#xfc;tzt"/>
<node CREATED="1455895692304" ID="ID_1361195241" MODIFIED="1455895769838" TEXT="denn: analog zu mut-emu">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1455895701215" ID="ID_1720750220" MODIFIED="1455895710033" TEXT="erm&#xf6;glicht Postfix-Order"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1455913713933" FOLDED="true" ID="ID_155948375" MODIFIED="1533684828048" TEXT="getypte Kinder">
<icon BUILTIN="help"/>
<node CREATED="1455913726963" ID="ID_514338534" MODIFIED="1512926191909" TEXT="kommt es vor">
<icon BUILTIN="help"/>
<node CREATED="1455926476893" ID="ID_1938999393" MODIFIED="1455926499782" TEXT="ja"/>
<node CREATED="1455926509185" ID="ID_784567614" MODIFIED="1455926521747" TEXT="in der Filter-Pipe"/>
<node CREATED="1455926675370" ID="ID_572508223" MODIFIED="1512926191909" TEXT="&#xbb;Zwei-Listen-Modell&#xab;">
<node CREATED="1455926709229" ID="ID_272389445" MODIFIED="1455926710513" TEXT="f&#xfc;r generischen Diff"/>
<node CREATED="1455926710981" ID="ID_1449723679" MODIFIED="1455926717032" TEXT="m&#xf6;gliche Vereinheitlichung"/>
<node CREATED="1455926717452" ID="ID_1884046427" MODIFIED="1455926728191" TEXT="generisch, nicht polymorph"/>
</node>
</node>
<node CREATED="1455913731723" ID="ID_1269232747" MODIFIED="1512926191910" TEXT="Problem umgehen">
<icon BUILTIN="help"/>
<node CREATED="1455926525990" ID="ID_1102781575" MODIFIED="1455926538168" TEXT="w&#xe4;re m&#xf6;glich"/>
<node CREATED="1455926539204" ID="ID_650449853" MODIFIED="1455926543144" TEXT="Polymorphismus"/>
</node>
<node CREATED="1455913800081" ID="ID_552808081" MODIFIED="1512926191910" TEXT="Typ-Info transportieren">
<icon BUILTIN="help"/>
<node CREATED="1455926589909" ID="ID_1341677743" MODIFIED="1455926610247" TEXT="Form der ID"/>
<node CREATED="1455926610931" ID="ID_1390833573" MODIFIED="1455926615310" TEXT="Pr&#xe4;fix in der ID"/>
<node CREATED="1455926617866" ID="ID_1667737141" MODIFIED="1455926631308" TEXT="Typ-Feld in geschachteltem Record"/>
<node CREATED="1455926632320" ID="ID_1323008809" MODIFIED="1455926641491" TEXT="Typ der Payload -&gt; Visitor"/>
</node>
<node CREATED="1455913759727" HGAP="43" ID="ID_1318158783" MODIFIED="1512926191911" TEXT="Modell">
<node CREATED="1455913778429" ID="ID_884750408" MODIFIED="1512926191911" TEXT="sub-Collections">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
eindeutig &#252;berlegen
</p>
<ul>
<li>
faktorisiert sauber
</li>
<li>
Zustand delegiert auf die jeweilige Kinder-Sammlung
</li>
<li>
diese wird damit auch zum generischen Element
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1455913847683" ID="ID_1829117976" MODIFIED="1455913860029" TEXT="es gibt effektiv mehrere Kinder-Sammlungen"/>
<node CREATED="1455913860594" ID="ID_631826706" MODIFIED="1472829913272" TEXT="wir verwalten intern f&#xfc;r jede eine Position">
<arrowlink DESTINATION="ID_562014580" ENDARROW="Default" ENDINCLINATION="451;-8;" ID="Arrow_ID_543974195" STARTARROW="None" STARTINCLINATION="322;-32;"/>
</node>
<node CREATED="1455913877183" ID="ID_1295733719" MODIFIED="1455913906711" TEXT="forwarding by type"/>
</node>
<node CREATED="1455913785555" ID="ID_1777441123" MODIFIED="1512926191912" TEXT="transparenter Filter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
schlechter....
</p>
<ul>
<li>
sammelt viel technische Komplexit&#228;t auf top-level
</li>
<li>
wir m&#252;ssen eine meta-Repr&#228;sentation aufbauen
</li>
<li>
wir m&#252;ssen Adapter zentral generieren, anstatt uns vom Installieren von Closures treiben zu lassen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1455913912323" ID="ID_1775410993" MODIFIED="1455913922605" TEXT="es gibt nominell nur eine Kinder-Folge"/>
<node CREATED="1455913924857" ID="ID_505406246" MODIFIED="1455913935019" TEXT="wir m&#xfc;ssen die intern repr&#xe4;sentieren"/>
<node CREATED="1455913938287" ID="ID_749740013" MODIFIED="1533608413864" TEXT="passenden Adapter">
<node CREATED="1455913959452" ID="ID_1132015088" MODIFIED="1455913969855" TEXT="erst beim Zugriff"/>
<node CREATED="1455913970443" ID="ID_164083502" MODIFIED="1455913995371" TEXT="jeweils Typ feststellen"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#3a3785" CREATED="1455927009621" FOLDED="true" HGAP="148" ID="ID_153254427" MODIFIED="1533684744810" STYLE="fork" TEXT="&#xbb;generic tree diff&#xab;" VSHIFT="22">
<cloud COLOR="#edd8ba"/>
<font NAME="SansSerif" SIZE="15"/>
<node CREATED="1455927154554" ID="ID_1055035778" MODIFIED="1502453320550" TEXT="Prinzip">
<node CREATED="1455927162321" ID="ID_285833614" MODIFIED="1455927166972" TEXT="chained adapters"/>
<node CREATED="1455927169432" ID="ID_1685554012" MODIFIED="1455927207911" TEXT="inline closures"/>
<node CREATED="1455927216698" ID="ID_817434960" MODIFIED="1455927225756" TEXT="selector predicate"/>
</node>
<node CREATED="1455927270458" ID="ID_1471647972" MODIFIED="1502453310933" TEXT="Struktur">
<node CREATED="1455927276314" ID="ID_1425598677" MODIFIED="1525124215064" TEXT="Diff-verben">
<cloud COLOR="#fce9c0"/>
<font NAME="SansSerif" SIZE="16"/>
<node CREATED="1455927329507" ID="ID_949976479" MODIFIED="1512926191917" TEXT="pick">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927396505" ID="ID_54934717" MODIFIED="1455927399733" TEXT="verify"/>
<node CREATED="1455927413191" ID="ID_1313233235" MODIFIED="1455982912941" TEXT="accept_src"/>
<node CREATED="1455927425726" ID="ID_1010708624" MODIFIED="1455982690058" TEXT="next_src"/>
</node>
<node CREATED="1455927334882" ID="ID_724923414" MODIFIED="1512926191918" TEXT="ins">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927474671" ID="ID_739710454" MODIFIED="1455982918963" TEXT="inject"/>
</node>
<node CREATED="1455927341473" ID="ID_573257215" MODIFIED="1512926191918" TEXT="del">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927479054" ID="ID_93562485" MODIFIED="1455927482234" TEXT="verify"/>
<node CREATED="1455927483301" ID="ID_1149563805" MODIFIED="1470522011715" TEXT="skipSrc"/>
</node>
<node CREATED="1455927346728" ID="ID_1236186762" MODIFIED="1512926191918" TEXT="find">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927510666" ID="ID_968873842" MODIFIED="1455927514101" TEXT="locate_src"/>
<node CREATED="1455927522081" ID="ID_476699106" MODIFIED="1455982923915" TEXT="accept_src"/>
</node>
<node CREATED="1455927354239" ID="ID_501366037" MODIFIED="1512926191918" TEXT="skip">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1470522026709" ID="ID_967937679" MODIFIED="1470522029792" TEXT="skipSrc"/>
<node CREATED="1470522030780" ID="ID_628304064" MODIFIED="1470522072842" TEXT="Problem: welcher Layer?">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1455927357415" ID="ID_1730455685" MODIFIED="1512926191919" TEXT="after">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927556300" ID="ID_476640075" MODIFIED="1512926191919" TEXT="while not">
<node CREATED="1455927560940" ID="ID_1275606051" MODIFIED="1455982930194" TEXT="accept_src"/>
<node CREATED="1455982708749" ID="ID_355029700" MODIFIED="1455982708749" TEXT="next_src"/>
</node>
<node CREATED="1455927589560" ID="ID_1967720214" MODIFIED="1512926191919" TEXT="_ATTRIB_">
<node CREATED="1455927596055" ID="ID_829661861" MODIFIED="1455927600866" TEXT="attrib -&gt; end"/>
</node>
<node CREATED="1455927603566" ID="ID_604132662" MODIFIED="1512926191920" TEXT="_END_">
<node CREATED="1455927607621" ID="ID_948240245" MODIFIED="1455927610465" TEXT="all -&gt; end"/>
</node>
</node>
<node CREATED="1455927360398" ID="ID_1123321103" MODIFIED="1512926191920" TEXT="set">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927661046" ID="ID_608131093" MODIFIED="1512926191920" TEXT="if not verify">
<node CREATED="1455927681491" ID="ID_1621577646" MODIFIED="1455927694621" TEXT="locate_target"/>
</node>
<node CREATED="1455927697105" ID="ID_1909489348" MODIFIED="1455927701684" TEXT="verify"/>
<node CREATED="1455927702465" ID="ID_321172748" MODIFIED="1455927704244" TEXT="assign"/>
</node>
<node CREATED="1455927363102" ID="ID_1117221392" MODIFIED="1512926191921" TEXT="mut">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927714615" ID="ID_958571239" MODIFIED="1512926191921" TEXT="if not verify">
<node CREATED="1455927718574" ID="ID_1870238884" MODIFIED="1455927721586" TEXT="locate_target"/>
</node>
<node CREATED="1455927724238" ID="ID_664459993" MODIFIED="1455927734345" TEXT="verify"/>
<node CREATED="1455927736084" ID="ID_1788904482" MODIFIED="1512926191921" TEXT="push">
<node CREATED="1455927739355" ID="ID_1160724761" MODIFIED="1455927741512" TEXT="mutator"/>
</node>
</node>
<node CREATED="1455927365094" ID="ID_1567754459" MODIFIED="1512926191921" TEXT="emu">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927745131" ID="ID_1000032658" MODIFIED="1455927749590" TEXT="verify_end"/>
<node CREATED="1455927750490" ID="ID_1746587224" MODIFIED="1455927752838" TEXT="pop"/>
</node>
<node CREATED="1455927337321" ID="ID_1622487857" MODIFIED="1512926191921" TEXT="CTOR">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455927444275" ID="ID_643592318" MODIFIED="1512926191922" TEXT="push">
<node CREATED="1455927462641" ID="ID_14883638" MODIFIED="1455927465084" TEXT="mutator"/>
</node>
</node>
</node>
<node CREATED="1455927276314" HGAP="91" ID="ID_1209647803" MODIFIED="1525124215074" VSHIFT="-3">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Primitive
</p>
<p>
<font size="2">(impl-ops)</font>
</p>
</body>
</html></richcontent>
<cloud COLOR="#fce9c0"/>
<font NAME="SansSerif" SIZE="16"/>
<node CREATED="1455982947867" ID="ID_1339677569" MODIFIED="1512926191924" TEXT="injectNew">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455982969073" ID="ID_1885889112" MODIFIED="1455982974332" TEXT="inject new content"/>
<node CREATED="1457047512175" ID="ID_1126383522" MODIFIED="1457047519426" TEXT="at implicit &quot;current&quot; position"/>
</node>
<node CREATED="1455927425726" ID="ID_1776437339" MODIFIED="1512926191925" TEXT="hasSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928216420" ID="ID_662720483" MODIFIED="1464117064570" TEXT="further src elements available"/>
<node CREATED="1470527053136" ID="ID_1383280265" MODIFIED="1470527075712">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
of questionable use
</p>
<p>
with multiple layers
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1455927396505" ID="ID_392033275" MODIFIED="1512926191926" TEXT="matchSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928268589" ID="ID_97473072" MODIFIED="1512926191926" TEXT="ID comparison">
<node CREATED="1455928524530" ID="ID_545057240" MODIFIED="1457120284424" TEXT="implicit next pos"/>
<node CREATED="1455928530738" ID="ID_1035043901" MODIFIED="1455928533677" TEXT="ID"/>
</node>
<node CREATED="1470778603801" ID="ID_1808045935" MODIFIED="1472219338431" TEXT="needed to implement the `del` verb">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
since skipSrc performs both the `del` and the `skip` verb, it can not perform the match itself...
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1455927425726" ID="ID_1759686725" MODIFIED="1512926191926" TEXT="skipSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1470527086660" ID="ID_13765501" MODIFIED="1470527097135" TEXT="guarded by selector">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1470772440180" ID="ID_1241607377" MODIFIED="1472219338440" TEXT="can not match by itself">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...because it is also used to discard garbage after a findSrc operation.
</p>
<p>
Thus we need to avoid touching the actual data in the src sequence, because this might lead to SEGFAULT.
</p>
<p>
</p>
<p>
For this reason, the implementation of the `del` verb has to invoke matchSrc explicitly beforehand,
</p>
<p>
and this is the very reason `matchSrc` exists. Moreover, `matchSrc` must be written such
</p>
<p>
as to ensure to invoke the Selector before performing a local match. And skipSrc has to
</p>
<p>
proceed in precisely the same way. Thus, if the selector denies responsibility, we'll delegate
</p>
<p>
to the next lower layer in both cases, and the result and behaviour depends on this next lower layer solely
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455928216420" ID="ID_1581600385" MODIFIED="1470778395226" TEXT="thus just advance source position"/>
</node>
<node CREATED="1455927413191" ID="ID_1624797970" MODIFIED="1512926191927" TEXT="acceptSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1470527086660" ID="ID_410793564" MODIFIED="1470772489007" TEXT="guarded by selector">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1470772440180" ID="ID_836603881" MODIFIED="1470772503839" TEXT="verify match with next src position"/>
<node CREATED="1455928275316" ID="ID_702364156" MODIFIED="1512926191928">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
then <i>move</i>&#160;into target
</p>
</body>
</html></richcontent>
<node CREATED="1455928537273" ID="ID_1036724915" MODIFIED="1457120296935" TEXT="implicit next pos"/>
</node>
</node>
<node CREATED="1455928166683" ID="ID_238485247" MODIFIED="1512926191929" TEXT="accept_until">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928383765" ID="ID_522592769" MODIFIED="1455928389737" TEXT="accept until condition is met"/>
<node CREATED="1457231714541" ID="ID_1234563594" MODIFIED="1457231725704" TEXT="ID spec"/>
<node CREATED="1472829929343" ID="ID_797835614" MODIFIED="1472829944881" TEXT="special handling for Ref::END / Ref::ATTRIBS"/>
<node CREATED="1457231524839" ID="ID_1492447432" MODIFIED="1472219338456" TEXT="needs to establish responsible target beforehand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
since, on interface level, we're pretending that this mutator <i>is a single collection like thing,</i>
</p>
<p>
while in fact the implementation might bind to several opaque target structures.
</p>
<p>
Thus, internally we'll have a <b>selector</b>&#160;to determine which onion layer is responsible for
</p>
<p>
handling an element as designated by the argument. It is then the responsibility
</p>
<p>
of this specific onion layer to accept forward until meeting this element.
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1457231727259" ID="ID_1318527107" MODIFIED="1472219338462">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#e72d0e">warning:</font>&#160;messed-up state in case of failure
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
this is (probably) the only operation which entirely messes up the mutator state
</p>
<p>
when the designated target does not exist. The assumption is that a diff application front-end
</p>
<p>
will check the bool return value and throw an exception in that case
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1455927413191" ID="ID_94560199" MODIFIED="1512926191930" TEXT="findSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1461946965569" ID="ID_803034273" MODIFIED="1461946980872" TEXT="locate designated src element"/>
<node CREATED="1455928275316" ID="ID_1937317223" MODIFIED="1512926191930">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>move</i>&#160;into target
</p>
</body>
</html></richcontent>
<node CREATED="1455928537273" ID="ID_1177385447" MODIFIED="1457120296935" TEXT="implicit next pos"/>
</node>
</node>
<node CREATED="1455928184504" ID="ID_836844042" MODIFIED="1512926191931" TEXT="assignElm">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928393788" ID="ID_403756991" MODIFIED="1512926191931" TEXT="locate target">
<node CREATED="1457190206827" ID="ID_1711690131" MODIFIED="1457190220485" TEXT="allready accepted element"/>
<node CREATED="1457190227089" ID="ID_1094585247" MODIFIED="1457190234435" TEXT="find by ID comparison"/>
<node CREATED="1457190235191" ID="ID_926146761" MODIFIED="1457190240027" TEXT="try current element first"/>
</node>
<node CREATED="1455928403931" ID="ID_1750063931" MODIFIED="1512926191931" TEXT="assign payload">
<node CREATED="1455928586506" ID="ID_1163700862" MODIFIED="1457190259104" TEXT="implicit Type context"/>
<node CREATED="1455928612239" ID="ID_588352525" MODIFIED="1455928619186" TEXT="embedded target data"/>
</node>
</node>
<node CREATED="1455928189695" ID="ID_1319966604" MODIFIED="1512926191932" TEXT="mutateChild">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1457190279001" ID="ID_1000897100" MODIFIED="1512926191932" TEXT="locate target">
<node CREATED="1457190288624" ID="ID_1258290029" MODIFIED="1457190296115" TEXT="same as in &apos;assignElm&apos;"/>
</node>
<node CREATED="1455928415161" ID="ID_1664558338" MODIFIED="1512926191932" TEXT="fabricate mutator">
<node CREATED="1457190370846" ID="ID_1146518798" MODIFIED="1457190374749" TEXT="suitable for target"/>
<node CREATED="1455928625269" ID="ID_1880024064" MODIFIED="1457190388167" TEXT="open / init mutator"/>
</node>
<node CREATED="1457190320444" ID="ID_1835423331" MODIFIED="1512926191933" TEXT="place into provided buffer">
<node CREATED="1457190396170" ID="ID_275107868" MODIFIED="1457190419158">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>throw </i>when
</p>
<p>
insufficent space
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1464113688645" ID="ID_954516697" MODIFIED="1512926191934" STYLE="fork" TEXT="completeScope">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1464113727192" ID="ID_357369611" MODIFIED="1464113739514" TEXT="pr&#xfc;ft, ob alles eingel&#xf6;st wurde"/>
<node CREATED="1464113740005" ID="ID_1649881726" MODIFIED="1464113748425" TEXT="em&#xf6;glicht Aufr&#xe4;um-Arbeiten"/>
<node CREATED="1464113754412" ID="ID_1095488369" MODIFIED="1472219338490" TEXT="kann NOP implementiert werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...in F&#228;llen, in denen der konkrete onion-layer
</p>
<p>
&#252;berhaupt nicht im Stande ist, das zu beurteilen.
</p>
<p>
Wichtigster solcher Fall ist die <b>Bindung auf Objekt-Felder</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#e5500c" CREATED="1461946693701" ID="ID_36720859" MODIFIED="1512926191934" STYLE="fork" TEXT="meta-Operationen">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928193863" ID="ID_1750104896" MODIFIED="1512926191935" TEXT="CTOR">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928427432" ID="ID_1760631999" MODIFIED="1461946914155" TEXT="take ownership of existing contents"/>
<node CREATED="1461946885292" ID="ID_1743121055" MODIFIED="1461946907948" TEXT="move them into source buffer"/>
</node>
<node CREATED="1455928193863" ID="ID_545402083" MODIFIED="1512926191935" TEXT="open_subScope">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928427432" ID="ID_1189452497" MODIFIED="1455928435275" TEXT="push mutator on stack"/>
<node CREATED="1457190622236" ID="ID_1347446227" MODIFIED="1461946862429">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
invoke <b>mutateChild</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1455928198718" ID="ID_1546579792" MODIFIED="1512926191936" TEXT="close_subScope">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928440366" ID="ID_33734026" MODIFIED="1457190669578" TEXT="just pop mutator"/>
<node CREATED="1457190670069" ID="ID_242879400" MODIFIED="1472219338544" TEXT="abandon mutator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<b>NOTE</b>: mutator need to be written in such a way
</p>
<p>
to be just discarded when done with the alterations.
</p>
<p>
That is, the mutator<i>&#160;must not</i>&#160;incorporate the target data, rather it is expected
</p>
<p>
to construct the new target data efficiently in place.
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1457190826145" ID="ID_1342883622" MODIFIED="1457190834604" TEXT="return to previous mutator"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#85212c" CREATED="1455928782528" HGAP="-171" ID="ID_1300146872" MODIFIED="1533684815449" TEXT="kritische Aufgaben" VSHIFT="-207">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1455928917782" HGAP="40" ID="ID_812598653" MODIFIED="1512926191937" TEXT="failure Policy" VSHIFT="-11">
<font NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="idea"/>
<node CREATED="1455928937683" ID="ID_784708305" MODIFIED="1455928953041" TEXT="ignorieren">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1455928949346" ID="ID_1044467237" MODIFIED="1455928955415" TEXT="scheitern">
<icon BUILTIN="full-2"/>
</node>
</node>
<node CREATED="1455928800670" HGAP="83" ID="ID_1116973935" MODIFIED="1512926191937" TEXT="selector predicate" VSHIFT="-5">
<node CREATED="1455928838865" ID="ID_1505861137" MODIFIED="1455928845027" TEXT="konfigurierbarer Typ-Check"/>
<node CREATED="1455928846048" ID="ID_1278060510" MODIFIED="1455928856146" TEXT="TypCheck nur einmal"/>
<node CREATED="1455928856870" ID="ID_806857541" MODIFIED="1455928878335" TEXT="ggfs Sequenz von ID-Checks"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1455928805717" FOLDED="true" HGAP="76" ID="ID_496821508" MODIFIED="1533684736220" TEXT="mutator allocation" VSHIFT="-1">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1455930962188" ID="ID_1435085503" MODIFIED="1455930970295" TEXT="konkreter Mutator-Typ"/>
<node CREATED="1455930971027" ID="ID_1070880241" MODIFIED="1455930980789" TEXT="ist in jedem Einzelfall anders"/>
<node CREATED="1455931008750" ID="ID_643730154" MODIFIED="1455931124521" TEXT="Mutator enth&#xe4;lt Closures">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Mutator enth&#228;lt die Bindung auf die konkreten Daten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455930997303" ID="ID_1710972681" MODIFIED="1455931003962" TEXT="kann erhebliche Gr&#xf6;&#xdf;e haben"/>
<node CREATED="1455931025595" ID="ID_1695885971" MODIFIED="1455931100164" TEXT="ist a priori nicht bekannt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
stellt sich u.U erst w&#228;hrend der Verarbeitung heraus:
</p>
<p>
bei &quot;offenen Datenstrukturen&quot; entscheided jeder Typ selber,
</p>
<p>
welchen Mutator er erzeugt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456011474920" HGAP="-25" ID="ID_1292432889" MODIFIED="1525124215078" TEXT="L&#xf6;sungsans&#xe4;tze" VSHIFT="28">
<icon BUILTIN="idea"/>
<node CREATED="1456011490414" ID="ID_215912114" MODIFIED="1512926191940" TEXT="doch rekursiv">
<icon BUILTIN="button_cancel"/>
<node CREATED="1456011497525" ID="ID_165091928" MODIFIED="1456011507880" TEXT="elegant"/>
<node CREATED="1456011508731" ID="ID_1951843758" MODIFIED="1456011513711" TEXT="Allokation nebenbei"/>
<node CREATED="1456011591427" ID="ID_167337651" MODIFIED="1512926191941">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber:&#160;Aufrufprinzip
</p>
</body>
</html></richcontent>
<node CREATED="1456011595024" ID="ID_1268079925" MODIFIED="1456011598819" TEXT="mu&#xdf; konsumieren"/>
<node CREATED="1456011599455" ID="ID_862262812" MODIFIED="1456011634435">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Verb mu&#223; den
</p>
<p>
Diff bekommen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456011647057" ID="ID_905672765" MODIFIED="1456011652964" TEXT="verwirrendes API"/>
<node CREATED="1456011653904" ID="ID_1199841076" MODIFIED="1456011656396" TEXT="komplexe Typen"/>
<node CREATED="1456011660495" ID="ID_118747856" MODIFIED="1456011661939" TEXT="njet"/>
</node>
</node>
<node CREATED="1456011666486" ID="ID_1076199754" MODIFIED="1512926191941" TEXT="Interpreter konsumiert">
<icon BUILTIN="button_cancel"/>
<node CREATED="1456011676086" ID="ID_1849622483" MODIFIED="1456011688340">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und delegiert iterativ
</p>
<p>
an die Verben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456011689043" ID="ID_1674393396" MODIFIED="1456011698214" TEXT="mu&#xdf; Verben untersuchen"/>
<node CREATED="1456011698970" ID="ID_845834851" MODIFIED="1456011717387" TEXT="aktiv in Rekursion einsteigen"/>
<node CREATED="1456011717951" ID="ID_1167483025" MODIFIED="1456011722666" TEXT="auch verwirrend"/>
</node>
<node CREATED="1456011734253" ID="ID_478177524" MODIFIED="1512926191942" TEXT="doch beim Stack bleiben">
<icon BUILTIN="help"/>
<node CREATED="1456011910869" ID="ID_182841484" MODIFIED="1456429740520" TEXT="kleineres &#xdc;bel">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1456011918381" ID="ID_54237513" MODIFIED="1456011991777" TEXT="Rolle des Mutators">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1456012543585" HGAP="26" ID="ID_1774389094" MODIFIED="1512926191942" TEXT="Struktur-Ideen" VSHIFT="20">
<node CREATED="1456012563942" ID="ID_842130823" MODIFIED="1456012570081" TEXT="Referenz zum Mutator"/>
<node CREATED="1456012572045" ID="ID_340104657" MODIFIED="1456012577752" TEXT="Mutator ist smart-ptr"/>
<node CREATED="1456012578868" ID="ID_1107535684" MODIFIED="1456012585103" TEXT="Frontend-Backend"/>
<node CREATED="1456012585835" ID="ID_1377280414" MODIFIED="1456012605260" TEXT="Mutator im Inline-Puffer"/>
<node CREATED="1456012665681" ID="ID_227844194" MODIFIED="1456012704695" TEXT="Gr&#xf6;&#xdf;e initial festlegen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn in dem Moment, wo wir den top-level TreeMutator erzeugen,
</p>
<p>
k&#246;nnen wir rekursiv abfragen, wie gro&#223; alle m&#246;glichen Kind-Mutatoren werden k&#246;nnen
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#d8bba4" CREATED="1456011994442" FOLDED="true" HGAP="68" ID="ID_343687995" MODIFIED="1533684723794" TEXT="zur Entscheidung..." VSHIFT="37">
<edge COLOR="#93766f"/>
<arrowlink COLOR="#b10046" DESTINATION="ID_820279076" ENDARROW="Default" ENDINCLINATION="14;-46;" ID="Arrow_ID_103087571" STARTARROW="None" STARTINCLINATION="-137;-20;"/>
<font NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="idea"/>
<node CREATED="1456012846185" ID="ID_714953132" MODIFIED="1512926191944" TEXT="was ist der Mutator">
<icon BUILTIN="help"/>
<node CREATED="1456012035837" ID="ID_180428099" MODIFIED="1456012039389" TEXT="Container"/>
<node CREATED="1456184290492" ID="ID_1860454535" MODIFIED="1456184298524" TEXT="Strategy"/>
<node CREATED="1456012028134" ID="ID_820709337" MODIFIED="1456012031953" TEXT="Adapter"/>
<node CREATED="1456012033085" ID="ID_755204065" MODIFIED="1456012034841" TEXT="Puffer"/>
</node>
<node CREATED="1456012859031" ID="ID_1120123290" MODIFIED="1512926191944" TEXT="wer erzeugt den Mutator">
<icon BUILTIN="help"/>
<node CREATED="1456013036967" ID="ID_1719719197" MODIFIED="1456013042330" TEXT="der Applikator"/>
<node CREATED="1456013043038" ID="ID_1263902491" MODIFIED="1456013047497" TEXT="die Zieldatenstruktur"/>
</node>
<node CREATED="1456013049909" HGAP="107" ID="ID_1581320145" MODIFIED="1512926191945" TEXT="Anwendungs-F&#xe4;lle" VSHIFT="29">
<cloud COLOR="#d6c6a5"/>
<font NAME="SansSerif" SIZE="16"/>
<node CREATED="1456013057420" ID="ID_1458089109" MODIFIED="1512926191945" TEXT="externe Datenstruktur">
<node CREATED="1456013290573" ID="ID_802953483" MODIFIED="1456013297208" TEXT="hat beliebig Platz"/>
<node CREATED="1456013298084" ID="ID_117703425" MODIFIED="1456013305071" TEXT="Closures in der Impl-Klasse"/>
<node CREATED="1456013306186" ID="ID_1397201984" MODIFIED="1456013330235" TEXT="effizient nur ohne Trennung"/>
<node CREATED="1456013359452" ID="ID_675424172" MODIFIED="1456013364783" TEXT="braucht Hilfe beim Lebenszyklus"/>
<node CREATED="1456013368426" ID="ID_1906604960" MODIFIED="1456013373717" TEXT="k&#xf6;nnte Puffer selber allozieren"/>
</node>
<node CREATED="1456013068179" ID="ID_774826163" MODIFIED="1512926191945" TEXT="Rec&lt;GenNode&gt;">
<node CREATED="1456013114140" ID="ID_1057946691" MODIFIED="1456013123199" TEXT="hat keinen extra Platz"/>
<node CREATED="1456013123739" ID="ID_1081025245" MODIFIED="1456013132837" TEXT="Tick: in RecMutator umdeuten"/>
<node CREATED="1456013133386" ID="ID_1417100176" MODIFIED="1456013138077" TEXT="Puffer mu&#xdf; woanders leben"/>
<node CREATED="1456013149327" ID="ID_687443349" MODIFIED="1456013168385" TEXT="Impl-Collection in Puffer verschieben"/>
</node>
<node CREATED="1456013063011" ID="ID_908970422" MODIFIED="1512926191946" TEXT="Collection">
<node CREATED="1456013202760" ID="ID_1619699608" MODIFIED="1456013218586" TEXT="hat keinen extra Platz"/>
<node CREATED="1456013219750" ID="ID_1766379648" MODIFIED="1456013227785" TEXT="kann &#xfc;berhaupt nicht helfen"/>
<node CREATED="1456013231117" ID="ID_1899116139" MODIFIED="1456013238279" TEXT="Puffer mu&#xdf; woanders leben"/>
<node CREATED="1456013239820" ID="ID_1794944692" MODIFIED="1456013244911" TEXT="wieder Verschiebe-Trick"/>
</node>
</node>
<node CREATED="1456184583336" HGAP="125" ID="ID_1225582084" MODIFIED="1512926191947" TEXT="weitere Beobachtungen" VSHIFT="36">
<icon BUILTIN="forward"/>
<node CREATED="1456184689466" ID="ID_1635861686" MODIFIED="1512926191947" TEXT="externe Struktur == Ausnahme">
<node CREATED="1456184725333" ID="ID_646480978" MODIFIED="1456184735783" TEXT="unterst&#xfc;tzt keine Umordnung"/>
<node CREATED="1456184736827" ID="ID_171431775" MODIFIED="1456184746398" TEXT="unterst&#xfc;tzt kein Hinzuf&#xfc;gen"/>
<node CREATED="1456184746946" ID="ID_1768153345" MODIFIED="1456184756780" TEXT="L&#xf6;schen wird uminterpretiert"/>
</node>
<node CREATED="1456184697944" ID="ID_1904390217" MODIFIED="1512926191947" TEXT="Mutator und subMutator">
<node CREATED="1456184816553" ID="ID_1019484567" MODIFIED="1456184832218" TEXT="getypte Kinder -&gt; subMutator"/>
<node CREATED="1456184833446" ID="ID_1632860381" MODIFIED="1456184864038" TEXT="subMutator f&#xfc;r subCollection"/>
<node CREATED="1461881226351" ID="ID_211513452" MODIFIED="1461881233506" TEXT="subMutator == &quot;onon layer&quot;"/>
<node CREATED="1456184892870" ID="ID_1216247694" MODIFIED="1456184905433" TEXT="Rec&lt;GenNode&gt; -&gt; zwei subCollections"/>
</node>
<node CREATED="1456186634006" ID="ID_310265994" MODIFIED="1512926191948" TEXT="Profil des Mutators">
<node CREATED="1456186654411" ID="ID_1341247857" MODIFIED="1456186678780" TEXT="Erzeugen geht schnell">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
nur Zuweisung einiger Referenzen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456186688671" ID="ID_1110994752" MODIFIED="1512926191948" TEXT="Allokation">
<node CREATED="1456186753094" ID="ID_653529641" MODIFIED="1456186771647" TEXT="Gr&#xf6;&#xdf;enordnung der Zieldatenstruktur"/>
<node CREATED="1456186772163" ID="ID_1555284305" MODIFIED="1456186779750" TEXT="im Collection-Fall kann man durchreichen"/>
</node>
<node CREATED="1456186797568" ID="ID_1773938090" MODIFIED="1456186809890" TEXT="ausschlie&#xdf;lich an die Diff-Anwendung gekoppelt"/>
<node CREATED="1456186915112" ID="ID_1560470636" MODIFIED="1512926191948" TEXT="Gr&#xf6;&#xdf;e duch Binde-Voragang bestimmt">
<node CREATED="1456186933998" ID="ID_528314478" MODIFIED="1533608413864" TEXT="Zahl der subMutatoren">
<node CREATED="1456187166294" ID="ID_1282142171" MODIFIED="1456187174186" TEXT="ein Vector pro Collection"/>
<node CREATED="1456416605491" ID="ID_1722541208" MODIFIED="1456416614478" TEXT="eigentlicher Content wird durchgereicht"/>
</node>
<node CREATED="1456186946508" ID="ID_335779075" MODIFIED="1533608413865" TEXT="Zahl der Einzelbindungen">
<node CREATED="1456187264346" ID="ID_81725454" MODIFIED="1456187278539" TEXT="ein Slot pro Binding-Layer"/>
<node CREATED="1456187279408" FOLDED="true" ID="ID_954788495" MODIFIED="1533608416263" TEXT="Attribut-Map">
<node CREATED="1456187295550" ID="ID_534521654" MODIFIED="1456187329981" TEXT="Setter und Getter"/>
<node CREATED="1456187330641" ID="ID_1069743778" MODIFIED="1456187335684" TEXT="zwei Slots pro Attribut"/>
<node CREATED="1456416534525" ID="ID_1195638113" MODIFIED="1456416573868" TEXT="+Storage f&#xfc;r den Key">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....denn der liegt (mind) einmal vor,
</p>
<p>
eingebettet in ein Selektor-Pr&#228;dikat,
</p>
<p>
welches bestimmt, ob dieses Attribut angesprochen wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456187338288" ID="ID_1194536240" MODIFIED="1456187339692" TEXT="Heap"/>
</node>
</node>
</node>
</node>
<node CREATED="1456437116514" ID="ID_1766577674" MODIFIED="1512926191950" TEXT="Reflexion">
<cloud COLOR="#d2c2d9"/>
<node CREATED="1456187434491" ID="ID_860365577" MODIFIED="1456437137837" TEXT="alles ekelhaft">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1456187447618" ID="ID_1318283286" MODIFIED="1456187459568" TEXT="Sackgasse">
<icon BUILTIN="help"/>
</node>
<node CREATED="1456424184807" ID="ID_770700785" MODIFIED="1525124215095" TEXT="Alternativen">
<icon BUILTIN="help"/>
<node CREATED="1456424237672" ID="ID_811857290" MODIFIED="1456424410221" TEXT="zu Fu&#xdf; programmieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
was man konventionellerweise auch macht.
</p>
<p>
Ich verstehe nun, warum. Es ist der <i>vern&#252;nftigste</i>&#160;Weg.
</p>
<p>
</p>
<p>
Leider scheidet das aber f&#252;r uns hier genau aus,
</p>
<p>
denn das gesamte Projekt entstand, aufgrund der inh&#228;renten Limitierungen
</p>
<p>
der &quot;vern&#252;nftigen&quot; (=pragmatischen) L&#246;sung.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456424257381" ID="ID_740973686" MODIFIED="1456424577215" TEXT="introspektive Datenstruktur">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
dieser Ansatz l&#246;st tats&#228;chlich das Problem,
</p>
<p>
aber zu dem Preis, da&#223; er die Strukturen von innen her zersetzt.
</p>
<p>
Auf lange Sicht wird das System wuchern wie ein Krebsgeschw&#252;hr,
</p>
<p>
und man kann das nur mit Disziplin eind&#228;mmen, was <i>realistisch gesprochen</i>&#160;meint,
</p>
<p>
da&#223; es vergeblich ist. Einen Kampf gegen das Menschliche, Allzumenschliche kann man nicht gewinnen.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456424962239" ID="ID_933613304" MODIFIED="1533608413866" TEXT="einseitige Fernsteuerung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist die schlankeste L&#246;sung, die &#228;sthetisch befriedigt.
</p>
<p>
Sie hat aber das Problem, da&#223; dadurch die Kollaboration im Kern ausgel&#246;scht wird.
</p>
<p>
Wir haben eine Seite, die absolute Macht hat, und einen &quot;Partner&quot;, der tats&#228;chlich nur ferngesteuert ist.
</p>
<p>
Wir m&#252;ssen daf&#252;r auf die Subsidiarit&#228;t verzichten, und damit auf die M&#246;glichkeit zur Entkoppelung.
</p>
<p>
Dazu kommt, da&#223; die notwendige Fern-Wirkung stets eine zus&#228;tzliche Last bedeutet.
</p>
<p>
Denn wir m&#252;ssen auf Umst&#228;nde und Strukturen einwirken, die von dem Ort, an dem die
</p>
<p>
Steuerung stattfindet, entfernt ist, entfernt in einen anderen Kontext.
</p>
</body>
</html></richcontent>
<node CREATED="1456425646332" ID="ID_897964875" MODIFIED="1456425651999" TEXT="oberfl&#xe4;chengetrieben"/>
<node CREATED="1456425652683" ID="ID_437402611" MODIFIED="1456425656575" TEXT="zentralgesteuert"/>
</node>
<node CREATED="1456424295296" ID="ID_791299475" MODIFIED="1533608413867" TEXT="DOM + Attribution">
<icon BUILTIN="idea"/>
<node CREATED="1456424627860" ID="ID_1294496825" MODIFIED="1456424632247" TEXT="keine Alternative"/>
<node CREATED="1456424632907" ID="ID_1566098600" MODIFIED="1456424642598" TEXT="denn genau das machen wir hier"/>
<node CREATED="1456437181070" FOLDED="true" HGAP="23" ID="ID_1066542027" MODIFIED="1533608416265" STYLE="bubble" TEXT="Analyse" VSHIFT="44">
<font BOLD="true" NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="info"/>
<node CREATED="1456424664015" FOLDED="true" ID="ID_1032924247" MODIFIED="1533608415965" TEXT="Problem: Zusatz-Kosten">
<node CREATED="1456424675173" ID="ID_1585536570" MODIFIED="1456437520768" TEXT="...f&#xfc;r das &quot;+&quot;"/>
<node CREATED="1456424695123" ID="ID_331589423" MODIFIED="1456437520769" TEXT="also die Bindung"/>
<node CREATED="1456424722039" FOLDED="true" ID="ID_1926017913" MODIFIED="1533608415647" TEXT="notwendige Kosten">
<node CREATED="1456424725927" ID="ID_1322872728" MODIFIED="1456437520769" TEXT="denn das DOM ist rein"/>
<node CREATED="1456424730022" ID="ID_282791744" MODIFIED="1456437520769" TEXT="hat also keinen Platz f&#xfc;r explizite Eigenschaften"/>
<node CREATED="1456424765113" ID="ID_1716539711" MODIFIED="1456437520770">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und nur letztere sind <i>tangibel</i>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1456425913664" FOLDED="true" HGAP="28" ID="ID_1929919601" MODIFIED="1533608415967" TEXT="notwendig" VSHIFT="-1">
<node CREATED="1456426041626" FOLDED="true" ID="ID_101262346" MODIFIED="1533608415649" TEXT="Duplikation">
<node CREATED="1456425918071" ID="ID_18884187" MODIFIED="1456437520772" TEXT="DOM-IDs am Binde-Punkt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
um den Binde- bzw. Ankn&#252;pfungs-Punkt in den real-Daten &#252;berhaupt zu finden,
</p>
<p>
m&#252;ssen IDs aus dem DOM innerhalb der real-Daten nochmal wiederholt, also redundant vorliegen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456425930718" ID="ID_1301765327" MODIFIED="1456437520772" TEXT="real-Daten im DOM">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
damit das DOM ein echtes DOM ist, mu&#223; es die relevanten real-Daten duplizieren,
</p>
<p>
um sie in einem abstrahierten Kontext zug&#228;nglich zu machen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456426052973" ID="ID_239653128" MODIFIED="1456437520772" TEXT="Binde-Daten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
noch zus&#228;tzlich zur genannten Duplikation mu&#223;
</p>
<p>
die Abblidung der Strukturen aufeinander
</p>
<p>
an irgend einer Stelle repr&#228;sentiert werden.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456426322482" ID="ID_1330880148" MODIFIED="1456437520773" TEXT="irreduzibel">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
man kann versuchen, die beiden Elemente der Duplikation aufzul&#246;sen.
</p>
<p>
Allerdings gibt es daf&#252;r &#252;berhaupt nur zwei m&#246;gliche Richtungen.
</p>
<ul>
<li>
man l&#246;st die Parallel-Strukturen auf
</li>
<li>
man ersetzt das DOM durch reine Bindungs-Strukturen
</li>
</ul>
<p>
Beide Ans&#228;tze laufen aber auf eine der schon genanten, anderen Alternativen hinaus.
</p>
<p>
Wenn man die Parallel-Strukturen beseitigt, enden wir bei irgend einer Form von Fernsteuerung.
</p>
<p>
Wenn man die Modell-Natur aus dem DOM entfernt, das hei&#223;t, dort nur noch reine<br />Binde-Strukturen speichert, dann endet man bei einer Form von Introspektion. Entweder,
</p>
<p>
das R&#252;ckgrat und die Navigation verbleibt bei dieser Introspektion; dann haben wir eines
</p>
<p>
der typischen Objekt-Systeme. Oder die Binde-Daten werden zu einem reinen Anhang
</p>
<p>
an eine selbst&#228;ndig bestehende Datenstruktur; dann enden wir bei klassischer Introspektion.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456428989206" FOLDED="true" HGAP="28" ID="ID_1999101531" MODIFIED="1533608415970" TEXT="Ma&#xdf;stab" VSHIFT="17">
<node CREATED="1456429002332" FOLDED="true" ID="ID_294696563" MODIFIED="1533608415651" TEXT="Trennung">
<node CREATED="1456429013283" ID="ID_462304497" MODIFIED="1456437520773" TEXT="abstrakt"/>
<node CREATED="1456429016050" ID="ID_403266218" MODIFIED="1456437520774" TEXT="tangibel"/>
</node>
<node CREATED="1456429046358" FOLDED="true" ID="ID_327619080" MODIFIED="1533608415654" TEXT="Fokussierung innerhalb">
<node CREATED="1456429106894" ID="ID_345392088" MODIFIED="1456437520774" TEXT="Belange des UI"/>
<node CREATED="1456429110702" ID="ID_1531485619" MODIFIED="1456437520774" TEXT="Notwendigkeiten des Edit-Vorganges"/>
<node CREATED="1456429159559" ID="ID_4036488" MODIFIED="1456437520774" TEXT="nach der inh&#xe4;renten Form suchen"/>
</node>
<node CREATED="1456429053206" ID="ID_643637016" MODIFIED="1456437520774" TEXT="wenig &#xdc;berlapp"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1456423477045" HGAP="146" ID="ID_1294023197" MODIFIED="1512926191957" TEXT="Stand der &#xdc;berlegungen" VSHIFT="11">
<icon BUILTIN="forward"/>
<node CREATED="1456423615274" ID="ID_40789197" MODIFIED="1512926191958" TEXT="Performance">
<node CREATED="1456423617763" ID="ID_524247634" MODIFIED="1456423622197" TEXT="wird von der Allokation bestimmt"/>
<node CREATED="1456423642687" ID="ID_1252228590" MODIFIED="1456423660940">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
reflektiert die Zahl der <i>Struktur</i>-Element
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456423661669" ID="ID_1064355256" MODIFIED="1456423805328" TEXT="Collections sind au&#xdf;en vor">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen:
</p>
<p>
f&#252;r die habe ich bereits eine effiziente Implementierung,
</p>
<p>
die darauf beruht, den Content beiseite zu schieben.
</p>
<p>
Ich brauche also nur ein Container-Frontend (z.B. einen Vector ohne Inhalt) zus&#228;tzlich,
</p>
<p>
um den verschobenen Inhalt erst mal aufzunehmen.
</p>
<p>
Also z&#228;hlen Kinder-Collections nur als <i>ein </i>Strukturelement.
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456423839637" ID="ID_1087136823" MODIFIED="1512926191958" TEXT="Platzbedarf">
<node CREATED="1456423848028" ID="ID_212325084" MODIFIED="1456423851935" TEXT="ist signifikant"/>
<node CREATED="1456423860130" ID="ID_1592353572" MODIFIED="1456423872404" TEXT="Gr&#xf6;&#xdf;enordnung der Ziel-Struktur (ohne Collections)"/>
<node CREATED="1456423883159" ID="ID_229501623" MODIFIED="1456423918662" TEXT="permanentes Vorhalten in der Ziel-Datenstruktur ist keine gute Idee"/>
<node CREATED="1456423940695" ID="ID_301596165" MODIFIED="1456423963088" TEXT="Platz wird ausschlie&#xdf;lich zur Diff-Anwendung gebraucht"/>
<node CREATED="1456423964572" ID="ID_1023557891" MODIFIED="1456423986445" TEXT="Stack-Struktur ist sinnvoll"/>
<node CREATED="1456424025228" ID="ID_1821511383" MODIFIED="1456424051133" TEXT="Kacheln, blockweise"/>
</node>
<node CREATED="1456428753110" ID="ID_900159058" MODIFIED="1512926191959" TEXT="Struktur">
<node CREATED="1456428763108" ID="ID_158540274" MODIFIED="1456428768063" TEXT="Frontend-Backend"/>
<node CREATED="1456428768579" ID="ID_1251866964" MODIFIED="1456428772654" TEXT="aber das Backend ist inline"/>
<node CREATED="1456428774171" ID="ID_745180197" MODIFIED="1456428896734" TEXT="Puffergr&#xf6;&#xdf;e initial festlegen"/>
<node CREATED="1456429302212" ID="ID_377071784" MODIFIED="1456429313666">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
rekursiv,
</p>
<p>
duch Bindung bestimmt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456429330129" ID="ID_1923625809" MODIFIED="1512926191960" TEXT="technische Probleme">
<node CREATED="1456429337736" ID="ID_398416910" MODIFIED="1456429344154" TEXT="runtime - compiletime"/>
<node CREATED="1456429403455" ID="ID_166294730" MODIFIED="1456429408386" TEXT="Festlegen der Binde-Struktur"/>
<node CREATED="1456429465015" ID="ID_1980478069" MODIFIED="1456429476745" TEXT="&#xdc;bersetzen in eine Typ-Spezifikation"/>
<node CREATED="1456429488492" ID="ID_393439057" MODIFIED="1456429496150" TEXT="aus dem Typ eine Gr&#xf6;&#xdf;e ableiten"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1456430088803" HGAP="54" ID="ID_481518617" MODIFIED="1533684808984" TEXT="L&#xf6;sung" VSHIFT="19">
<icon BUILTIN="idea"/>
<node CREATED="1456430099658" ID="ID_820279076" MODIFIED="1512926191960" TEXT="Entscheidung">
<linktarget COLOR="#b10046" DESTINATION="ID_820279076" ENDARROW="Default" ENDINCLINATION="14;-46;" ID="Arrow_ID_103087571" SOURCE="ID_343687995" STARTARROW="None" STARTINCLINATION="-137;-20;"/>
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1456430153555" ID="ID_1609974475" MODIFIED="1456430170074" TEXT="es ist wesentlich"/>
<node CREATED="1456430115696" ID="ID_546849410" MODIFIED="1456430120227" TEXT="es ist notwendig"/>
<node CREATED="1456430109105" ID="ID_366046751" MODIFIED="1456430172153" TEXT="es ist machbar"/>
</node>
<node CREATED="1456430178935" HGAP="22" ID="ID_1069025314" MODIFIED="1512926191961" TEXT="der Weg..." VSHIFT="5">
<node CREATED="1456430183863" ID="ID_464613085" MODIFIED="1456430193433" TEXT="expliziter Stack"/>
<node CREATED="1456430194117" ID="ID_943734591" MODIFIED="1456430211847" TEXT="enth&#xe4;lt Front-End"/>
<node CREATED="1456430212811" ID="ID_90339221" MODIFIED="1456430233644" TEXT="und Backend in Puffer"/>
<node CREATED="1456430234656" ID="ID_1583269810" MODIFIED="1456430240155" TEXT="der Puffer ist eingebettet"/>
<node CREATED="1456430240887" ID="ID_1308625708" MODIFIED="1512926191961" TEXT="Grundmuster der Bindung">
<node CREATED="1456430374141" ID="ID_1551177855" MODIFIED="1456430398830" TEXT="Collection + Element-Konstruktur"/>
<node CREATED="1456430440196" ID="ID_1922438930" MODIFIED="1456430445551" TEXT="Attribut-Map als Getter/Setter"/>
<node CREATED="1456430515186" ID="ID_831818012" MODIFIED="1456430519166" TEXT="Rec&lt;GenNode&gt;"/>
</node>
<node CREATED="1457120439360" ID="ID_1972741688" MODIFIED="1487275490699" TEXT="ID match ist Aufgabe der Implementierung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist der wesentliche Kniff,
</p>
<p>
durch den das Problem mit der &quot;absrakten, opaquen&quot; Position entsch&#228;rft wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456430363599" ID="ID_1608232847" MODIFIED="1456505525321" TEXT="erlaube typ-gefilterte Kinder"/>
</node>
</node>
<node COLOR="#338800" CREATED="1456506101544" HGAP="165" ID="ID_133511037" MODIFIED="1525124215112" TEXT="Implementierung" VSHIFT="42">
<icon BUILTIN="button_ok"/>
<node CREATED="1456506128581" HGAP="-12" ID="ID_322289358" MODIFIED="1525124215117" TEXT="Abw&#xe4;gungen" VSHIFT="184">
<node CREATED="1456506135028" HGAP="29" ID="ID_470489868" MODIFIED="1512926191965" TEXT="Indirektionen" VSHIFT="-5">
<node CREATED="1456506145826" ID="ID_759825167" MODIFIED="1461888854079" TEXT="kosten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
Diff-Anwendung wird massiv und in der Breite stattfinden
</li>
<li>
sie wird als Reaktion auf UI-Events auftreten
</li>
<li>
sie dient dazu, andere UI-Operationen einzusparen
</li>
<li>
also mu&#223; speziell das Traversieren bis an den Anwendungsort bedacht werden
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1456506151065" ID="ID_496007561" MODIFIED="1461888854085" TEXT="bisher nur drei">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. die bis jetzt geschriebene TreeApplikator-Implementierung
</p>
<p>
ist erstaunlich leichtgewichtig. Zu den zwei Indirektionien der Sprache
</p>
<p>
kommt nur entweder ein weiterer aus der GenNode bzw stattedessen ein dynamic cast hinzu.
</p>
<p>
Alles andere steckt in dem <b>expliziten Mutator-Typ </b>
</p>
<p>
&#160;-- das gibt einen wichtigen Hinweis --
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456506160472" ID="ID_1269579163" MODIFIED="1461888854089" TEXT="zwei sind das Minimum">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da wir eine verb-basierte Sprache implementieren,
</p>
<p>
also einen double-dispatch haben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456506385130" ID="ID_660502308" MODIFIED="1512926191966" TEXT="f&#xfc;r generische Zieldaten">
<node CREATED="1456506446002" ID="ID_485732185" MODIFIED="1456506470075" TEXT="kommt eine Indirektion hinzu"/>
<node CREATED="1456506471159" ID="ID_1228778249" MODIFIED="1512926191966" TEXT="es sei denn...">
<node CREATED="1456506475686" ID="ID_388141973" MODIFIED="1456506487232" TEXT="man tauscht jeweils den Sprach-Interpreter aus"/>
<node CREATED="1456506487796" ID="ID_24089490" MODIFIED="1456506499239" TEXT="das setzt aber rekursives Konsumieren des Diff voraus"/>
<node CREATED="1456506500187" ID="ID_438927454" MODIFIED="1456506511565" TEXT="und das zwingt uns, den Typ des Diff explizit zu machen"/>
<node CREATED="1456506512721" ID="ID_1007093555" MODIFIED="1461888854100" TEXT="der nicht-explizite Typ ist im Moment von Vorteil....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil wir den Anwendungs-Kontext noch &#252;berhaupt nicht kennen.
</p>
<p>
Man k&#246;nnte also sp&#228;ter, wenn das ganze System &quot;steht&quot;,
</p>
<p>
das Diff-System noch einmal reimplementieren, dann mit einem vorgegebenen Diff-Typ
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456506607428" HGAP="31" ID="ID_448113584" MODIFIED="1456506627511" VSHIFT="8">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Beschlu&#223;: <i>akzeptiert</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1456506647447" HGAP="32" ID="ID_399090389" MODIFIED="1512926191967" TEXT="Zielvorgabe: weitere vermeiden" VSHIFT="12">
<node CREATED="1456506661421" ID="ID_593167689" MODIFIED="1456506689357" TEXT="d.h. nur entweder front-end oder back-end sind virtuell"/>
<node CREATED="1456506689834" ID="ID_1393928517" MODIFIED="1456506713270">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
im Sinn von &quot;polymorpic value&quot; ist <b>das Backend virtuell</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1456506719949" ID="ID_326439598" MODIFIED="1456506725568" TEXT="keine virtuellen Iteratoren"/>
<node CREATED="1456506726060" ID="ID_999652076" MODIFIED="1456506738455" TEXT="Front-End mu&#xdf; Typedefs bereitstellen"/>
<node CREATED="1456506740323" ID="ID_1961807979" MODIFIED="1456506747838" TEXT="elaboriertes Typkonstrukt notwendig"/>
<node CREATED="1456506749234" ID="ID_957942327" MODIFIED="1461888854111" TEXT="zumindest f&#xfc;r jeden Compund-Zieltyp ein eigener Interpreter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....wenngleich auch dieser aus einem Template generiert wird
</p>
<p>
(will sagen, es ist nicht sofort offensichtlich, da&#223; wir jeweils einen Interpreter generieren)
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1457038737878" HGAP="44" ID="ID_643190842" MODIFIED="1512926191968" TEXT="Abstraktions-Grad">
<node CREATED="1457119812475" ID="ID_1862440484" MODIFIED="1457119817575" TEXT="Elemente bleiben opaque"/>
<node CREATED="1457119818091" ID="ID_1097779694" MODIFIED="1512926191969">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wir <i>verzichten</i>&#160;auf Introspektion der Elemente
</p>
</body>
</html></richcontent>
<node CREATED="1457119990420" ID="ID_1521035606" MODIFIED="1457120011276" TEXT="...denn die m&#xfc;&#xdf;te die jeweilige Implementierung erbringen"/>
<node CREATED="1457120011721" ID="ID_23476594" MODIFIED="1457120024027" TEXT="und das w&#xfc;rde das &#xdc;bel der Introspektion &#xfc;berall hineindr&#xfc;cken"/>
<node CREATED="1457120026343" ID="ID_156752160" MODIFIED="1457120043288" TEXT="Nachteil: keine klare Fehlerdiagnose m&#xf6;glich"/>
<node CREATED="1457120043925" ID="ID_1878678132" MODIFIED="1512926191970" TEXT="ist akzeptierbar...">
<node CREATED="1457120079542" ID="ID_1809509099" MODIFIED="1457120079542">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
denn genau zu diesem Zweck haben wir die &quot;External Tree Description&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1457120084135" ID="ID_633070963" MODIFIED="1457120093706" TEXT="auf diese sollte ein Diff zuerst angewendet werden"/>
<node CREATED="1457120094302" ID="ID_1409151619" MODIFIED="1457120105488" TEXT="und diese bietet Introspektion und klare Diagnose"/>
<node CREATED="1457120105908" ID="ID_1245554045" MODIFIED="1457120131741" TEXT="Annahme ist also, da&#xdf; ein Diff auf real-Datenstrukturen per Konstruktion erfolgreich ist"/>
<node CREATED="1457120134297" ID="ID_1098514912" MODIFIED="1457120154250" TEXT="und ein Fehler dabei ist zwingenderweise ein Fehler in der Programmlogik"/>
</node>
</node>
<node CREATED="1457119844767" ID="ID_1648334868" MODIFIED="1457119861265" TEXT="wir bieten nur einen Match auf die Diff-Spec"/>
<node CREATED="1457119876899" ID="ID_362462955" MODIFIED="1457119902755" TEXT="Mutations-Primitive bieten bool Erfolgs-Check"/>
<node CREATED="1457119903391" ID="ID_1244810870" MODIFIED="1457119909602" TEXT="aber keine Exceptions"/>
</node>
</node>
<node CREATED="1456506821808" ID="ID_1852134358" MODIFIED="1512926191970" TEXT="Typ-Konstrukt">
<node CREATED="1461879209050" ID="ID_983143410" MODIFIED="1461879267131" TEXT="Kernproblem: wie gro&#xdf; mu&#xdf; der Buffer sein?">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1461879239310" ID="ID_866573163" MODIFIED="1461879260051" TEXT="wie bekomme ich diese Info von nicht a priori bekannten Typen">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1456523437616" HGAP="34" ID="ID_410606899" MODIFIED="1512926191970" TEXT="Manipulations-Interface" VSHIFT="6">
<node COLOR="#338800" CREATED="1456523455997" FOLDED="true" ID="ID_1416114013" MODIFIED="1533684705230" TEXT="Design l&#xf6;sen">
<icon BUILTIN="button_ok"/>
<node CREATED="1456523507910" ID="ID_429333479" MODIFIED="1456523518005" TEXT="Henne oder Ei?"/>
<node CREATED="1456523471851" ID="ID_1273540009" MODIFIED="1456523485597" TEXT="komm nicht vom Fleck"/>
<node CREATED="1456523487089" ID="ID_1139978684" MODIFIED="1456523501995" TEXT="zirkul&#xe4;re Bez&#xfc;ge im Design"/>
<node CREATED="1456523522693" ID="ID_625051251" MODIFIED="1512926191971" TEXT="abstrakter Entwurf">
<arrowlink COLOR="#6b77a6" DESTINATION="ID_728198359" ENDARROW="Default" ENDINCLINATION="-116;0;" ID="Arrow_ID_340427685" STARTARROW="None" STARTINCLINATION="-819;487;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1456523558304" ID="ID_1843819253" MODIFIED="1456523564050" TEXT="baue einen Dummy">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1456523569111" ID="ID_1173914226" MODIFIED="1456523580721" TEXT="...als eine Spezialisierung des Adapters"/>
<node CREATED="1456523593731" ID="ID_126624039" MODIFIED="1456528188767" TEXT="Interface ohne reale Daten"/>
<node CREATED="1456528076005" ID="ID_1973839094" MODIFIED="1512926191972" TEXT="Diagnose">
<node CREATED="1456528119297" ID="ID_37448528" MODIFIED="1456528119297" TEXT="hat ein EventLog eingebaut"/>
<node CREATED="1456528148107" ID="ID_626507029" MODIFIED="1456528165925" TEXT="protokolliert Schatten-Kinder-Liste"/>
<node CREATED="1456528167440" ID="ID_1984138384" MODIFIED="1472219338598" TEXT="transparenter Dekorator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h,
</p>
<p>
kann zus&#228;tzlich zu einem anderen Adaptor
</p>
<p>
in die Mutator-Dekorator-Kette geh&#228;ngt werden
</p>
<p>
und protokolliert somit &quot;nebenbei&quot; was an Anforderungen an ihm vorbeigeht
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1456523612849" ID="ID_729852941" MODIFIED="1456523625883" TEXT="Test zum Aufbau des Interfaces"/>
</node>
</node>
<node CREATED="1456528418823" FOLDED="true" HGAP="30" ID="ID_1372068793" MODIFIED="1533684696827" TEXT="Bestandteile" VSHIFT="-1">
<icon BUILTIN="info"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1456528424246" ID="ID_472044094" MODIFIED="1515978023897" STYLE="fork" TEXT="Selektor">
<linktarget COLOR="#7caed5" DESTINATION="ID_472044094" ENDARROW="Default" ENDINCLINATION="466;133;" ID="Arrow_ID_1253352795" SOURCE="ID_1406395599" STARTARROW="None" STARTINCLINATION="681;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1457741609884" ID="ID_1827838196" MODIFIED="1512926191973" TEXT="bin ich zust&#xe4;ndig?">
<node CREATED="1458094312266" ID="ID_233521483" MODIFIED="1458094316157" TEXT="isApplicable"/>
<node CREATED="1458094316697" ID="ID_839136400" MODIFIED="1512926191974" TEXT="Festlegung:">
<icon BUILTIN="yes"/>
<node CREATED="1458094327095" ID="ID_306307671" MODIFIED="1458094334354" TEXT="nur auf Basis der spec"/>
<node CREATED="1458094334991" ID="ID_903070750" MODIFIED="1458094343401" TEXT="ohne Daten-Introspektion"/>
</node>
<node CREATED="1458094507048" ID="ID_1012976053" MODIFIED="1512926191974" TEXT="Problem">
<node CREATED="1458094510463" ID="ID_812427058" MODIFIED="1533608413874" TEXT="Spec bietet wenig Anhaltspunkte">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
streng genommen ist es nur erlaubt, das ID-Symbol auszuwerten
</p>
</body>
</html></richcontent>
<node CREATED="1458094562800" ID="ID_184244927" MODIFIED="1458094568467" TEXT="ID-Symbol"/>
<node CREATED="1458094569128" ID="ID_743935773" MODIFIED="1458094579369" TEXT="attribute / child"/>
</node>
<node CREATED="1458094599835" HGAP="24" ID="ID_1161622136" MODIFIED="1533608413876" TEXT="Zugang zum Payload-Typ" VSHIFT="10">
<icon BUILTIN="help"/>
<node CREATED="1458094616417" ID="ID_1013344827" MODIFIED="1458094632012" TEXT="Introspection / Switch-on-Type">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1458094634167" ID="ID_1794163270" MODIFIED="1458094672710">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Visitor bedeutet <b>zwei</b>&#160;Indirektionen
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das ist nicht akzeptabel f&#252;r ein reines Selektor-Pr&#228;dikat!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458094716364" FOLDED="true" ID="ID_1749838430" MODIFIED="1533608416269" TEXT="eingeschr&#xe4;nkt auf Objekt-Typ">
<icon BUILTIN="help"/>
<node CREATED="1458094735673" ID="ID_1089998465" MODIFIED="1458094743492" TEXT="Semantischer Typ"/>
<node CREATED="1458094743960" ID="ID_1642238646" MODIFIED="1458094767704" TEXT="vs. Typisierung in der Sprache"/>
<node CREATED="1458094769365" ID="ID_855557799" MODIFIED="1458094773848" TEXT="pattern match"/>
<node CREATED="1458094823973" ID="ID_726480550" MODIFIED="1458094841971">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
denkbar nur bei Sub-<i>Objekten</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458094850490" ID="ID_39407126" MODIFIED="1458094856797" TEXT="d.h. bei Record-Daten"/>
<node CREATED="1458094864424" ID="ID_746601299" MODIFIED="1458094872787" TEXT="Record hat ein (semantisches) Typfeld"/>
<node CREATED="1458094922024" ID="ID_1616971769" MODIFIED="1458094954604">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
gilt f&#252;r <i>alle</i>&#160;praktischen Anwendungen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458094956636" ID="ID_1820565901" MODIFIED="1458095165033" TEXT="denn nur Objekt-Kinder machen Sinn">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....auch wenn man zehnmal meinen k&#246;nnte,
</p>
<p>
Kinder eines reinen Wert-Typs w&#228;ren sinnvoll --
</p>
<p>
sie sind es nicht!
</p>
<p>
Jede sinnvolle <i>Entit&#228;t</i>&#160;hat mehr als ein Attribut<i>! </i>
</p>
<p>
denn es macht keinen Sinn, Entit&#228;ten und reine Wert-Elemente
</p>
<p>
auf der gleichen Ebene in der gleichen Sammlung zu mischen.
</p>
<p>
</p>
<p>
D.h., entweder man hat ein Objekt, das als Kinder z.B. eine Liste von Strings hat,
</p>
<p>
oder man hat eine Entit&#228;t, die z.b. zwei getypte Objekt-Kinder-Sammlungen hat,
</p>
<p>
wie z.B: eine Spur mit Labels und Clips
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458095217737" FOLDED="true" ID="ID_824115387" MODIFIED="1533608415976" TEXT="um das zu unterst&#xfc;tzen...">
<icon BUILTIN="idea"/>
<node CREATED="1458095230175" ID="ID_995706334" MODIFIED="1458095239258" TEXT="m&#xfc;&#xdf;te DataCap helfen"/>
<node CREATED="1458095367701" ID="ID_1549321280" MODIFIED="1458095376400" TEXT="es g&#xe4;be dann einen Bottom-Wert"/>
<node CREATED="1458095240158" ID="ID_1884817792" MODIFIED="1458095284084" TEXT="Introspektions-Verbot etwas aufgeweicht"/>
<node CREATED="1458095304886" ID="ID_395248655" MODIFIED="1458095318800" TEXT="dieser Gebrauch ist aber mit dem Objekt-Typfeld schon angelegt"/>
<node CREATED="1458095320692" ID="ID_1203007776" MODIFIED="1458095332942" TEXT="die Bedeutung wird vom Client privat definiert"/>
<node CREATED="1458095409800" ID="ID_227738227" MODIFIED="1458095442503" TEXT="ebenso wird aber auch die Bedeutung der ETD lokal definiert"/>
<node CREATED="1458095443115" ID="ID_586715428" MODIFIED="1458095455459" TEXT="erscheint mir plausibel und vertretbar">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1461881999377" ID="ID_1469132046" MODIFIED="1461882004217" TEXT="so implementiert">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1458095528224" ID="ID_109058224" MODIFIED="1512926191979" TEXT="falls nein...">
<node CREATED="1458095540807" ID="ID_225712554" MODIFIED="1458095553929" TEXT="&#xfc;bernimmt der n&#xe4;chste Onion-Layer"/>
<node CREATED="1458095554548" ID="ID_1745271000" MODIFIED="1458095566303" TEXT="scheitert am Ende die Diff-Anwendung"/>
<node CREATED="1458095567123" ID="ID_1135449086" MODIFIED="1533608413880" TEXT="das kann nicht sein">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1458095599015" ID="ID_1548761670" MODIFIED="1458095611129" TEXT="denn Struktur wird per Diff aufgebaut"/>
<node CREATED="1458095611645" ID="ID_1917053068" MODIFIED="1458095623023" TEXT="und Diff wird von einer konsistenten Struktur generiert"/>
<node CREATED="1458095623563" ID="ID_1563236319" MODIFIED="1458095636789" TEXT="wenngleich es sich auch um eine funktionale Struktur handeln kann..."/>
<node CREATED="1458095660150" ID="ID_329824783" MODIFIED="1458095668777" TEXT="wir sind nicht tolerant bei der Diff-Anwendung"/>
<node CREATED="1458095669437" ID="ID_650500191" MODIFIED="1458095672801" TEXT="und das ist gut so."/>
</node>
</node>
</node>
<node CREATED="1457741617655" ID="ID_1664250793" MODIFIED="1512926191980" TEXT="was ist ein &quot;match&quot;?">
<node CREATED="1458094392679" ID="ID_238187527" MODIFIED="1460755241888">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&quot;target <i>matches</i>&#160;spec&quot;
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1458094428506" ID="ID_1753032814" MODIFIED="1458094435693" TEXT="darf Annahmen &#xfc;ber den Typ der Spec machen"/>
<node CREATED="1458094397350" ID="ID_1185807177" MODIFIED="1458094427326" TEXT="darf in die Payload der Spec schauen"/>
<node CREATED="1458094437249" ID="ID_1125952135" MODIFIED="1458094463529" TEXT="darf Methoden des Datenobjekts aufrufen"/>
</node>
</node>
<node CREATED="1457038643034" ID="ID_1057400532" MODIFIED="1515978009310" TEXT="abstrakte Position">
<node CREATED="1460755065016" ID="ID_935271147" MODIFIED="1460755138704" TEXT="wird niemals direkt repr&#xe4;sentiert">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1460755072903" ID="ID_1650064575" MODIFIED="1460755130181">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber existiert <i>nominell </i>und kontext-abh&#228;ngig
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1460755080894" ID="ID_107894920" MODIFIED="1460755106150" TEXT="und faktisch unabh&#xe4;ngig in jedem &#xbb;onion layer&#xab;"/>
</node>
<node CREATED="1457038527402" HGAP="16" ID="ID_1909805079" MODIFIED="1512926191982" TEXT="Mutations-Primitive" VSHIFT="7">
<node CREATED="1457038788583" ID="ID_131880970" MODIFIED="1457038801193" TEXT="einheitlich benannt"/>
<node CREATED="1457038801733" ID="ID_428479460" MODIFIED="1457038805816" TEXT="auf mehreren Ebenen"/>
<node CREATED="1457119943698" ID="ID_370768211" MODIFIED="1512926191982" TEXT="Fehlerbehandlung">
<node CREATED="1457119949785" ID="ID_658419110" MODIFIED="1457119953012" TEXT="Match-Check"/>
<node CREATED="1457119953384" ID="ID_1688941824" MODIFIED="1457119957324" TEXT="aber keine Exception"/>
<node CREATED="1457119959408" ID="ID_275413703" MODIFIED="1457119961803" TEXT="sondern NOP"/>
</node>
</node>
<node CREATED="1457227228502" ID="ID_845299775" MODIFIED="1512926191983" TEXT="sub-Mutator">
<node CREATED="1457227237269" ID="ID_1175871622" MODIFIED="1457227296340" TEXT="wird &#xfc;ber ein Handle implantiert">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1457227248779" ID="ID_1765753442" MODIFIED="1457227279155" TEXT="Implementierungs-Schicht kennt Typ"/>
<node CREATED="1457227279703" ID="ID_347493370" MODIFIED="1457227288610" TEXT="aber Tree-Mutator &#xfc;bernimmt ownership"/>
</node>
</node>
</node>
<node CREATED="1456528462585" HGAP="48" ID="ID_1770521063" MODIFIED="1512926191983" TEXT="Elemente" VSHIFT="21">
<node CREATED="1456528472016" ID="ID_315938795" MODIFIED="1456528476211" TEXT="bleiben abstrakt"/>
<node CREATED="1456528477415" ID="ID_1931717091" MODIFIED="1512926191984" TEXT="abstrakte &quot;Position&quot;">
<node CREATED="1456533135345" ID="ID_1775378899" MODIFIED="1465428629652" TEXT="Problem: wem geh&#xf6;rt diese Position?">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1456533146055" ID="ID_312959811" MODIFIED="1456533213989" TEXT="mu&#xdf; stets &#xfc;ber API klar gemacht werden">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1456533166197" ID="ID_1000253494" MODIFIED="1456533204589" TEXT="der Selektor entscheidet, wer gemeint ist">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1456528485326" ID="ID_1764970284" MODIFIED="1512926191984" TEXT="getypte Kinder">
<node CREATED="1456528491109" ID="ID_1550088866" MODIFIED="1456528504567" TEXT="auf Einzelfall-Basis"/>
<node CREATED="1456528505395" ID="ID_1091163328" MODIFIED="1456528519117" TEXT="wer per Selektor zust&#xe4;ndig ist"/>
<node CREATED="1456528539799" ID="ID_1658968937" MODIFIED="1456528550465" TEXT="Typisierung ergibt sich als Effekt"/>
<node CREATED="1456528551029" ID="ID_193586898" MODIFIED="1465428643785" TEXT="Typisierung wird nicht eigens repr&#xe4;sentiert">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1457232376244" HGAP="29" ID="ID_1914581822" MODIFIED="1525124215136" TEXT="onion layer" VSHIFT="26">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das sind die konkreten Implementierungen
</p>
<p>
f&#252;r spezifische Arten von Bindings
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1457232408368" FOLDED="true" HGAP="29" ID="ID_1068782263" MODIFIED="1533684619595" TEXT="TestWireTap / TestMutationTarget" VSHIFT="-6">
<icon BUILTIN="full-1"/>
<node CREATED="1457232426238" ID="ID_728198359" MODIFIED="1457232567024" TEXT="brauche ich, um das API zu entwickeln">
<linktarget COLOR="#6b77a6" DESTINATION="ID_728198359" ENDARROW="Default" ENDINCLINATION="-116;0;" ID="Arrow_ID_340427685" SOURCE="ID_625051251" STARTARROW="None" STARTINCLINATION="-819;487;"/>
</node>
<node CREATED="1457232433157" ID="ID_1606470322" MODIFIED="1457232443415" TEXT="ggfs sp&#xe4;ter n&#xfc;tzlich zur Diagnose"/>
<node CREATED="1457232444075" ID="ID_442780922" MODIFIED="1457232459765" TEXT="soll stets &#xfc;ber andere, konkrete Mutation-Layer gelegt werden"/>
<node CREATED="1457232579073" ID="ID_280491578" MODIFIED="1512926191986" TEXT="Grenzen">
<node CREATED="1457232582704" ID="ID_1594229064" MODIFIED="1457232590595" TEXT="protokolliert nur String-Repr&#xe4;sentation"/>
<node CREATED="1457232591087" ID="ID_119032593" MODIFIED="1472219338677">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann <i>niemals </i>geschachtelte sub-Mutatoren modellieren
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ja wirklich, das w&#228;re nicht sinnvoll!!!!!
</p>
<p>
auch wenn man meinen k&#246;nnte, es geht.
</p>
<p>
Grund ist n&#228;mlich, es kann jeweils nur ein Onion-Layer f&#252;r ein gegebenes Element &quot;zust&#228;ndig&quot; sein.
</p>
<p>
Und aus Gr&#252;nden der logischen Konsistenz darf dieser Diagnose-Layer niemals f&#252;r ein Element zust&#228;ndig sein,
</p>
<p>
denn sonst w&#252;rde er es f&#252;r darunter liegende Layer verschatten.
</p>
</body>
</html></richcontent>
<icon BUILTIN="closed"/>
</node>
</node>
</node>
<node CREATED="1457232734636" FOLDED="true" ID="ID_1873945047" MODIFIED="1533684617605" TEXT="STL Collection">
<icon BUILTIN="full-2"/>
<node CREATED="1458175823858" ID="ID_438044714" MODIFIED="1512926191990" TEXT="Design-Grundlagen">
<node CREATED="1457741673001" ID="ID_1873415490" MODIFIED="1512926191990" TEXT="konkrete Beispiele">
<icon BUILTIN="info"/>
<node CREATED="1457741683687" ID="ID_1222762304" MODIFIED="1457741691409" TEXT="Timelines"/>
<node CREATED="1457741691837" ID="ID_1487568890" MODIFIED="1457741697832" TEXT="Tracks"/>
<node CREATED="1457741753006" ID="ID_303387812" MODIFIED="1457742102003" TEXT="Clips / Effekte / Marken"/>
<node CREATED="1457741809422" ID="ID_1428407098" MODIFIED="1457741815657" TEXT="Effekte / Transitions"/>
</node>
<node CREATED="1457742434714" ID="ID_587627505" MODIFIED="1457742717208">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#10233; <i>immer</i>&#160;Mitwirkung des Elements
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1457742547067" HGAP="33" ID="ID_410938096" MODIFIED="1512926191991" TEXT="Selector explizit bauen" VSHIFT="7">
<icon BUILTIN="yes"/>
<node CREATED="1457742554722" ID="ID_1406395599" MODIFIED="1469918265250" TEXT="Selector-Interface">
<arrowlink COLOR="#7caed5" DESTINATION="ID_472044094" ENDARROW="Default" ENDINCLINATION="466;133;" ID="Arrow_ID_1253352795" STARTARROW="None" STARTINCLINATION="681;0;"/>
</node>
<node CREATED="1457742626368" ID="ID_1910692241" MODIFIED="1512926191991" TEXT="2.Ausdrucks-Ebene">
<node CREATED="1457742639703" ID="ID_1065867780" MODIFIED="1457742645826" TEXT="neben der Identit&#xe4;t"/>
<node CREATED="1457742646366" ID="ID_1533568989" MODIFIED="1533608413881" TEXT="logische Typisierung">
<node CREATED="1457742667947" ID="ID_1640657752" MODIFIED="1457742677734" TEXT="entweder anhand Payload-Typ"/>
<node CREATED="1457742678185" ID="ID_1211029199" MODIFIED="1457742684533" TEXT="oder versteckt in der ID"/>
</node>
</node>
</node>
</node>
<node CREATED="1458175861176" FOLDED="true" HGAP="33" ID="ID_44294405" MODIFIED="1533684553508" TEXT="Design-Anforderungen">
<node CREATED="1458175880034" ID="ID_995745627" MODIFIED="1512926191992" TEXT="gegeben ist eine STL-Collection">
<node CREATED="1458175892400" ID="ID_1308086929" MODIFIED="1458175904674" TEXT="allgemeinstes STL-Container-Interface"/>
<node CREATED="1458175905766" ID="ID_446727516" MODIFIED="1458175919817" TEXT="Wert-Typ per typedef abgreifen"/>
</node>
<node CREATED="1455927276314" HGAP="91" ID="ID_1959700641" MODIFIED="1525124215145" TEXT="brauche zus&#xe4;tzliche Operationen" VSHIFT="-3">
<cloud COLOR="#fce9c0"/>
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node CREATED="1458175942866" ID="ID_181058597" MODIFIED="1512926191994" TEXT="match">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177113846" ID="ID_320488998" MODIFIED="1458177953094" TEXT="stellt fest, ob das Ziel pa&#xdf;t"/>
<node CREATED="1458177136475" ID="ID_1352800435" MODIFIED="1458177953094" TEXT="greift auf eine ID des Zieles zur&#xfc;ck"/>
<node CREATED="1458177147897" ID="ID_1632332105" MODIFIED="1458177953094" TEXT="mu&#xdf; daher in der Regel bereitgestellt werden"/>
<node CREATED="1458177166543" ID="ID_1266232529" MODIFIED="1533608413881" TEXT="Ersatz">
<icon BUILTIN="idea"/>
<node CREATED="1458177169406" ID="ID_1194870730" MODIFIED="1458177953094" TEXT="content-Match"/>
<node CREATED="1458177173574" ID="ID_1636541063" MODIFIED="1458177953094" TEXT="Konsequenz: man kann keine Assignements machen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil beim Assignment die Spec (=GenNode) eben
</p>
<p>
zwar die ID des Zieles, aber den neu zuzuweisenden Wert enth&#228;lt.
</p>
<p>
Also wird sich das Ziel nicht anhand des neuen Wertes finden lassen,
</p>
<p>
weil es eben grade noch nicht diesen neuen Wert tr&#228;gt.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458177198643" ID="ID_1228381833" MODIFIED="1458177953094" TEXT="Konsequenz: Suche kann das falsche Resultat erwischen"/>
</node>
</node>
<node CREATED="1458175960615" ID="ID_499742122" MODIFIED="1512926191995" TEXT="ctor">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177315803" ID="ID_1282762906" MODIFIED="1458177953094" TEXT="konstruiert aus der Spec ein neues Element"/>
<node CREATED="1458177335632" ID="ID_430010657" MODIFIED="1458177953094" TEXT="mu&#xdf; typischerweise die Interna des Zieles kennen"/>
<node CREATED="1458177347622" ID="ID_1041373197" MODIFIED="1533608413881" TEXT="Ersatz">
<icon BUILTIN="idea"/>
<node CREATED="1458177489444" ID="ID_1024908643" MODIFIED="1458177953094" TEXT="unterstelle Payload == Zieltyp"/>
<node CREATED="1458177572865" ID="ID_1483034601" MODIFIED="1458177953094" TEXT="Konstruktor auf dem Ziel, der eine GenNode nimmt"/>
</node>
</node>
<node CREATED="1458175991795" ID="ID_437650849" MODIFIED="1512926191995" TEXT="optional...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458176002762" ID="ID_442473703" MODIFIED="1533608413882" TEXT="selector">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177605869" ID="ID_262186866" MODIFIED="1458177953094" TEXT="bestimmt ob die Spec f&#xfc;r diesen Binding-Layer &#xfc;berhaupt relevant ist"/>
<node CREATED="1458177631409" ID="ID_1877742460" MODIFIED="1458177953094" TEXT="erlaubt das Filtern mit mehreren Bindings"/>
<node CREATED="1458177642144" FOLDED="true" ID="ID_310751196" MODIFIED="1533608416271" TEXT="Ersatz">
<icon BUILTIN="idea"/>
<node CREATED="1458177646671" ID="ID_1707674287" MODIFIED="1458177953094" TEXT="kein Selector"/>
<node CREATED="1458177652662" ID="ID_1067744704" MODIFIED="1458177953094" TEXT="es kann dann also nur ein Binding geben"/>
<node CREATED="1458177664868" ID="ID_935075867" MODIFIED="1458177953094" TEXT="das ist aber auch der h&#xe4;ufigste Fall"/>
</node>
</node>
<node CREATED="1458176008025" ID="ID_1099350141" MODIFIED="1533608413883" TEXT="setter">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177697657" ID="ID_1388855448" MODIFIED="1458177953095" TEXT="erlaubt Zuweisung"/>
<node CREATED="1458177712798" ID="ID_1708999099" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
<node CREATED="1458177735635" FOLDED="true" ID="ID_197038069" MODIFIED="1533608416273" TEXT="Ersatz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1458177738499" ID="ID_1474971428" MODIFIED="1458177953095" TEXT="keiner"/>
<node CREATED="1458177741155" ID="ID_1784046352" MODIFIED="1458177953095" TEXT="dann gibt&apos;s eben keine Zuweisung"/>
<node CREATED="1458177749233" ID="ID_873905001" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei sub-Scopes"/>
<node CREATED="1458177803730" ID="ID_674080114" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei immutable values"/>
</node>
</node>
<node CREATED="1458176018087" ID="ID_1978664300" MODIFIED="1533608413884" TEXT="mutator">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177821712" ID="ID_152424824" MODIFIED="1458177953095" TEXT="baut einen sub-Mutator f&#xfc;r einen nested scope"/>
<node CREATED="1458177851988" ID="ID_307170712" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
<node CREATED="1458177857939" FOLDED="true" ID="ID_233644864" MODIFIED="1533608416274" TEXT="Ersatz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1458177861162" ID="ID_240936470" MODIFIED="1458177953095" TEXT="keiner"/>
<node CREATED="1458177863506" ID="ID_1403138553" MODIFIED="1458177953095" TEXT="dann gibts eben keine Behandlung von nested scopse"/>
<node CREATED="1458177874760" ID="ID_1050027667" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei primitive values"/>
</node>
</node>
</node>
</node>
<node CREATED="1458176048564" ID="ID_173428941" MODIFIED="1512926191998" TEXT="Flexibilit&#xe4;t">
<node CREATED="1458176054154" ID="ID_1379937028" MODIFIED="1458176076851" TEXT="so wenig typ-Feslegung wie m&#xf6;glich"/>
<node CREATED="1458176077368" ID="ID_1730540256" MODIFIED="1458176092658" TEXT="fallback bei fehlendern Operationen"/>
<node CREATED="1458176093958" ID="ID_801042454" MODIFIED="1512926191999" TEXT="Argument: &quot;dann halt nicht&quot;">
<node CREATED="1458176117266" ID="ID_1479654896" MODIFIED="1458176127813" TEXT="es ist so wie es ist"/>
<node CREATED="1458176128352" ID="ID_1366947640" MODIFIED="1458176139563" TEXT="die Gegenseite wei&#xdf; schon was sie will"/>
<node CREATED="1458176252336" ID="ID_1554344013" MODIFIED="1533608413885" TEXT="ich bin, also bin ich konsistent">
<node CREATED="1458176267382" ID="ID_427126071" MODIFIED="1458176296319" TEXT="konsistent ist, was der diff erzeugt"/>
<node CREATED="1458176297282" ID="ID_336107495" MODIFIED="1458176305981" TEXT="alles wird per diff erzeugt"/>
<node CREATED="1458176306593" ID="ID_666376142" MODIFIED="1458176314868" TEXT="also ist alles, was existiert, auch konsistent"/>
</node>
<node CREATED="1458176787953" ID="ID_1610561572" MODIFIED="1533608413887" TEXT="sinnvoll gew&#xe4;hlt">
<node CREATED="1458176794848" ID="ID_1399218405" MODIFIED="1458176810370" TEXT="native datenstruktur ist so gew&#xe4;hlt, da&#xdf; sie ihren Zweck erf&#xfc;llt"/>
<node CREATED="1458176883836" ID="ID_1357445271" MODIFIED="1458176899324">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
generische Repr&#228;sentaton ist so gew&#228;hlt,
</p>
<p>
da&#223; sich alle relevanten Eigenschaften darstellen lassen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458176911161" FOLDED="true" ID="ID_1565618197" MODIFIED="1533608416275">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn also ein Teil der diff-Funkttionalit&#228;t nicht verf&#252;gbar ist,
</p>
<p>
dann wird es wohl so sein, da&#223; sie auch nicht gebraucht wird
</p>
</body>
</html></richcontent>
<node CREATED="1458176947972" ID="ID_1901451299" MODIFIED="1458176965869" TEXT="Beispiel: primitive Werte sind eben kein sub-Scope"/>
<node CREATED="1458176966665" ID="ID_1292201640" MODIFIED="1458176981459" TEXT="Beispiel: immutable elements sind eben nicht zuweisbar"/>
</node>
</node>
</node>
<node CREATED="1458176998437" ID="ID_425451497" MODIFIED="1460752973198" TEXT="keine unn&#xf6;tigen Einschr&#xe4;nkungen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
zwar erscheint es nicht sonderlich sinnvoll,
</p>
<p>
als target auch eine Menge von primitiven Werten zuzulassen.
</p>
<p>
</p>
<p>
Es gibt aber auch keinen wirklichen Grund, dies zu verbieten,
</p>
<p>
sofern es gelingt, die Funktionalit&#228;t gutm&#252;tig zu degradieren.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1458178113697" HGAP="46" ID="ID_186668887" MODIFIED="1512926192002" TEXT="Design-Schlu&#xdf;folgerungen" VSHIFT="-5">
<node CREATED="1458178126159" ID="ID_1322433318" MODIFIED="1458178131587" TEXT="Rahmenklasse + Closures"/>
<node CREATED="1458178133078" ID="ID_278002579" MODIFIED="1458851636692" TEXT="Closures mit der Ersatz-Impl vorbelegen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1458178150916" ID="ID_1020570949" MODIFIED="1458178174848" TEXT="Problem: komplexe Konstruktion">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1458178165322" ID="ID_963054881" MODIFIED="1512926192002" TEXT="L&#xf6;sung: nested DSL">
<icon BUILTIN="idea"/>
<node CREATED="1458178203821" ID="ID_785912532" MODIFIED="1458178222190" TEXT="die Top-Level Builder-Funktion erwartet das volle Binding"/>
<node CREATED="1458178223723" ID="ID_798018180" MODIFIED="1458178247755" TEXT="es gibt eine freie Funktion, die einen nested Builder f&#xfc;r das Binding liefert"/>
</node>
</node>
<node COLOR="#338800" CREATED="1458178288690" FOLDED="true" ID="ID_562189277" MODIFIED="1533684562806" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1458178298328" ID="ID_1964300614" MODIFIED="1512926192003" TEXT="Builder">
<node CREATED="1458325962991" ID="ID_1955400674" MODIFIED="1460753004725" TEXT="Typ-Definitionen schwierig anzuschreiben">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1458325973486" ID="ID_1711903796" MODIFIED="1458325992405" TEXT="Code ziemlich redundant und undurchsichtig">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1458326045724" ID="ID_338749301" MODIFIED="1472498604875" TEXT="Typ-Check erst sehr sp&#xe4;t">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen,
</p>
<p>
da sind mehrere Layer an praktisch ungebundenem Template-Code dazwischen,
</p>
<p>
so da&#223; zu bef&#252;rchten steht, da&#223; ein unpassendes Lambda erst weit entfernt
</p>
<p>
eine wom&#246;glich irref&#252;hrende Meldung generiert
</p>
</body>
</html></richcontent>
<arrowlink DESTINATION="ID_428365633" ENDARROW="Default" ENDINCLINATION="176;0;" ID="Arrow_ID_1501436647" STARTARROW="None" STARTINCLINATION="176;0;"/>
</node>
<node CREATED="1472498654730" ID="ID_1869339299" MODIFIED="1472498676884" TEXT="gel&#xf6;st durch static_assert">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1458178300984" ID="ID_1152672899" MODIFIED="1512926192004" TEXT="Binding-Layer">
<node CREATED="1458850722203" ID="ID_1565475995" MODIFIED="1512926192004" TEXT="Fehler bei fehlender Funktionalit&#xe4;t">
<node CREATED="1458850733769" ID="ID_764229197" MODIFIED="1458850744620" TEXT="kein Setter"/>
<node CREATED="1458850746184" ID="ID_105803291" MODIFIED="1458850752370" TEXT="kein Mutator"/>
</node>
<node CREATED="1458850782747" ID="ID_1019140953" MODIFIED="1458850793430" TEXT="Umgang mit fehlendem Selector"/>
<node CREATED="1458934854051" ID="ID_898160956" MODIFIED="1512926192004" TEXT="Binding st&#xe4;rker abschlie&#xdf;en">
<node CREATED="1458934863225" ID="ID_843139682" MODIFIED="1458934897237" TEXT="contentBuffer k&#xf6;nnte privat sein">
<icon BUILTIN="help"/>
</node>
<node CREATED="1458934878911" ID="ID_986928457" MODIFIED="1458934893132" TEXT="welche Iteratoren m&#xfc;ssen exponiert werden">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1460762013033" ID="ID_758721262" MODIFIED="1512926192005" TEXT="Mutation">
<node CREATED="1460762015777" ID="ID_59179895" MODIFIED="1533608413888">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
erfordert <i>wirklich</i>&#160;Kooperation
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1460762025520" ID="ID_955853878" MODIFIED="1460762032675" TEXT="zwischen dem gesendeten Diff"/>
<node CREATED="1460762033119" ID="ID_863964003" MODIFIED="1460762045704" TEXT="und der empfangenden Implementierungs-Datenstruktur"/>
</node>
<node CREATED="1460762065371" ID="ID_698989532" MODIFIED="1533608413889" TEXT="brauche wohl &quot;Introspection light&quot;">
<icon BUILTIN="smily_bad"/>
<node CREATED="1460762101046" ID="ID_1593562435" MODIFIED="1460762111448" TEXT="damit ich einen Sub-Scope vorbereiten kann"/>
<node CREATED="1460762111924" ID="ID_125430023" MODIFIED="1460762120759" TEXT="in separater privater Datenstrukcur"/>
<node CREATED="1460762121259" ID="ID_1558869553" MODIFIED="1460762308964" TEXT="ist aber nur rein hier im Test ein Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir verwenden hier als &quot;private&quot; Datenstruktur
</p>
<p>
eine etwas komische Collection von Strings,
</p>
<p>
in die wir die String-Repr&#228;sentation der Spec-Payload schreiben.
</p>
<p>
</p>
<p>
In der Praxis dagegen w&#252;rde man wirklich einen privaten Datentyp verwenden,
</p>
<p>
und dann auch voraussetzen, da&#223; man <i>nur</i>&#160;Kinder dieses Typs (oder zuweisungskompatibel) bekommt.
</p>
<p>
</p>
<p>
Mein Poblem hier ist, da&#223; ich in dieser Demonstrations-Datenstruktur keine nested scopes repr&#228;sentieren kann.
</p>
<p>
Aber hey!, es ist meine private Datenstruktur -- also kann ich einfach eine Map von nested scopes
</p>
<p>
daneben auf die gr&#252;ne Wiese stellen. Ist ja nur ein Test :-D
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1460762330487" ID="ID_914518092" MODIFIED="1460762395843" TEXT="Nein! Schwein gehabt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...dankenswerterweise hat der subscript-Operator von std::Map
</p>
<p>
die nette Eigenschaft, beim ersten Zugriff auf einen neuen Key
</p>
<p>
dessen payload per default-konstruktor zu erzeugen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node CREATED="1458868836883" ID="ID_717368167" MODIFIED="1512926192006" TEXT="Beobachtungen">
<node CREATED="1458868852849" ID="ID_1641586585" MODIFIED="1458869076689" TEXT="Sonderbarer &quot;this&quot;-Typ">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Builder in der nested DSL generiert einen sonderbar falschen &quot;this&quot;-Typ,
</p>
<p>
genauer gesagt, eine TYPID die falsch ist.
</p>
<p>
Und zwar kommt es da zum &quot;&#220;bersprechen&quot; von einem Typ-Parameter in den anderen.
</p>
<p>
Im Besonderen hab ich beobachtet, da&#223;, wenn man auf den 3.Typparameter ein Lambda gibt,
</p>
<p>
dann auf dem 4. oder 5. Typparameter der bisherige /alte Typ des 3.Typparameters auftaucht,
</p>
<p>
u.U auch eingeschachtelt als ein Argument.
</p>
<p>
</p>
<p>
Habe mich aber davon &#252;berzeugt, da&#223; die eigentlichen Typ-Parameter in Ordnung sind.
</p>
<p>
Und zwar habe ich das verifiziert
</p>
<ul>
<li>
durch Ausgeben der Typen im Konstruktor (mithilfe meiner typeStr&lt;TY&gt;()
</li>
<li>
durch Einbauen einer Static-Assertion mit Signatur-Match
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1458850516270" ID="ID_263851499" MODIFIED="1512926192006" TEXT="Test">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1458850521270" ID="ID_534213210" MODIFIED="1512926192007" TEXT="F&#xe4;lle">
<arrowlink COLOR="#639ad5" DESTINATION="ID_1333254858" ENDARROW="Default" ENDINCLINATION="1091;0;" ID="Arrow_ID_709688381" STARTARROW="None" STARTINCLINATION="1150;185;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1458850526133" ID="ID_55717538" MODIFIED="1458850550109" TEXT="Binden an Sammlung aus Primitiven"/>
<node CREATED="1458850550705" ID="ID_1923906009" MODIFIED="1458850572315" TEXT="Binden an Sammlung aus Spezialtypen"/>
</node>
<node CREATED="1458850656668" ID="ID_307163685" MODIFIED="1512926192007" TEXT="Defaults">
<node CREATED="1458850660523" ID="ID_326530451" MODIFIED="1460753283653" TEXT="GenNode-vertr&#xe4;glicher Payload-Typ">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist:
</p>
<p>
die native Datenstruktur ist eine Collection von Elementen,
</p>
<p>
welche ohne Weiteres direkt in eine GenNode gepackt werden k&#246;nnten. Denn dann l&#228;&#223;t
</p>
<p>
sich eine einfache Default-Implementierung des Matchers angeben
</p>
<p>
</p>
<p>
Typisches Beispiel: eine STL-Collection von Strings.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458850672705" ID="ID_1240263288" MODIFIED="1458850675197" TEXT="kein Setter"/>
<node CREATED="1458850675641" ID="ID_736176562" MODIFIED="1458850678564" TEXT="kein Mutator"/>
</node>
</node>
</node>
</node>
<node CREATED="1457232752458" FOLDED="true" ID="ID_1490646673" MODIFIED="1533684616156" TEXT="Attribute">
<icon BUILTIN="full-3"/>
<node CREATED="1458175823858" ID="ID_1785794072" MODIFIED="1512926192010" TEXT="Design-Grundlagen">
<node CREATED="1461882686190" ID="ID_233456976" MODIFIED="1472219338718" TEXT="von praktischer Notwendigkeit getrieben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir integrieren Attribute nicht, weil es so sch&#246;n symmetrisch ist,
</p>
<p>
sondern weil sie essentiell zum Wesen von Objekten geh&#246;ren.
</p>
<p>
Wenn wir &#196;nderungen an Objekt-Strukturen als Diff erfassen wollen,
</p>
<p>
dann <i>m&#252;ssen</i>&#160;Attribute irgendwie sinnvoll integriert sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1457741673001" ID="ID_1826667029" MODIFIED="1512926192010" TEXT="konkrete Beispiele">
<icon BUILTIN="info"/>
<node CREATED="1457741683687" ID="ID_1529941512" MODIFIED="1461888218005" TEXT="Position eines Clips"/>
<node CREATED="1461888218521" ID="ID_1211555549" MODIFIED="1461888222508" TEXT="L&#xe4;nge eines Clips"/>
<node CREATED="1461888223024" ID="ID_854712901" MODIFIED="1461888302874" TEXT="Typ eines Markers"/>
<node CREATED="1461888304126" ID="ID_854691640" MODIFIED="1461888305362" TEXT="..."/>
</node>
<node CREATED="1457742434714" ID="ID_1230374921" MODIFIED="1461888342584">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#10233; <i>immer</i>&#160;in der Klasse verankert
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1457742434714" ID="ID_261686106" MODIFIED="1461888407600">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#10233; es geht eigentlich <i>nur</i>&#160;um den Wert des Attributes
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1458175861176" FOLDED="true" HGAP="39" ID="ID_887227300" MODIFIED="1533684569244" TEXT="Design-Anforderungen" VSHIFT="7">
<node CREATED="1458175880034" ID="ID_163174135" MODIFIED="1512926192012" TEXT="...ein Objekt hat schon ein bestimmtes Feld">
<node CREATED="1458175892400" ID="ID_640596624" MODIFIED="1461888660658" TEXT="Typ"/>
<node CREATED="1461888661462" ID="ID_1138175982" MODIFIED="1461888668033" TEXT="default-Wert"/>
<node CREATED="1458175905766" ID="ID_1595003935" MODIFIED="1461888693671">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
manche Felder sind <i>optional</i>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1461888779999" ID="ID_1274350149" MODIFIED="1512926192012" TEXT="innerer Widerspruch">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1461888830680" ID="ID_812148839" MODIFIED="1461888837867" TEXT="Feld vs Attribut"/>
<node CREATED="1461888838455" ID="ID_1919503899" MODIFIED="1461888848953" TEXT="das Diff dr&#xfc;ckt sich in Attributen aus"/>
<node CREATED="1461888982036" ID="ID_864479720" MODIFIED="1512926192013" TEXT="Umgang mit den Diskrepanzen">
<icon BUILTIN="help"/>
<node CREATED="1461889012008" ID="ID_1889833023" MODIFIED="1533608413889" TEXT="Einf&#xfc;gen eines Attributes">
<node CREATED="1461889021646" ID="ID_1936260059" MODIFIED="1461889026273" TEXT="wo das Feld schon da ist"/>
<node CREATED="1461889026813" ID="ID_1307987216" MODIFIED="1461889040368" TEXT="wo es kein korrespondierendes Feld gibt"/>
</node>
<node CREATED="1461889146846" ID="ID_354158582" MODIFIED="1461889152792" TEXT="L&#xf6;schen eines Attributes"/>
<node CREATED="1461889107939" ID="ID_1744229690" MODIFIED="1461889133891" TEXT="Umordnen von Attributen"/>
</node>
<node CREATED="1461889187336" ID="ID_829644660" MODIFIED="1512926192015" TEXT="Leitgedanke">
<font NAME="SansSerif" SIZE="15"/>
<node CREATED="1461889203662" ID="ID_1763333007" MODIFIED="1461889243250" TEXT="&#xbb;auf GenNode und Objekt gleicherma&#xdf;en anwendbar&#xab;">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1461889253087" ID="ID_1128320234" MODIFIED="1533608413908" TEXT="das hei&#xdf;t...">
<font NAME="SansSerif" SIZE="11"/>
<node CREATED="1461889261806" ID="ID_1855892827" MODIFIED="1461889621538" TEXT="wende Diff auf GenNode an">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1461889282580" ID="ID_1159487501" MODIFIED="1461889621538" TEXT="wende gleichen Diff auf gebundenes Objekt an">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1461889296634" ID="ID_1774882278" MODIFIED="1461889621537" TEXT="Ergebnis mu&#xdf; semantisch &#xe4;quivalent sein">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1461889399932" ID="ID_1052073468" MODIFIED="1461889621534">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
unter der Ma&#223;gabe,
</p>
<p>
wie ETD ein Objekt rep&#228;sentiert
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1461889470866" FOLDED="true" ID="ID_404525574" MODIFIED="1533608416277" TEXT="operational">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1461889474402" ID="ID_1211544465" MODIFIED="1463672686487" TEXT="alle Informationen, die die Anwendung nicht nutzt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
&quot;Anwendung&quot; : meint das Anwenden eines Diffs auf ein Ziel-Objekt
</p>
<p>
&quot;nicht nutzen&quot; : meint ignorieren und verwerfen der Information
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461889550072" ID="ID_48030760" MODIFIED="1461889558442" TEXT="d&#xfc;rfen nur Zustands-&#xc4;nderungen bewirken"/>
<node CREATED="1461889558983" ID="ID_1489246908" MODIFIED="1461889796278" TEXT="welche keinen Einflu&#xdf; auf nachfolgende Diffs haben">
<arrowlink COLOR="#be5b66" DESTINATION="ID_781150142" ENDARROW="Default" ENDINCLINATION="28;-28;" ID="Arrow_ID_30022331" STARTARROW="None" STARTINCLINATION="13;20;"/>
</node>
</node>
</node>
<node CREATED="1461889656194" HGAP="73" ID="ID_781150142" MODIFIED="1533608413909" TEXT="ist das &#xfc;berhaupt m&#xf6;glich" VSHIFT="23">
<linktarget COLOR="#be5b66" DESTINATION="ID_781150142" ENDARROW="Default" ENDINCLINATION="28;-28;" ID="Arrow_ID_30022331" SOURCE="ID_1489246908" STARTARROW="None" STARTINCLINATION="13;20;"/>
<icon BUILTIN="help"/>
<node CREATED="1461889858863" ID="ID_1367853310" MODIFIED="1461889937247" TEXT="sicher nicht bidirektional">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
meint: ETD -&gt; Objekt und dann sp&#228;ter Objekt -&gt; ETD
</p>
<p>
</p>
<p>
warum?
</p>
<p>
Weil sich in der ETD die Reihenfolge &#228;ndern kann,
</p>
<p>
und aber das Aufspielen eines Diffs auf beiden Seiten
</p>
<p>
zwingend die gleiche Reihenfolge erfordert!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461890009355" ID="ID_1808149320" MODIFIED="1475506883423" TEXT="aber ETD als Zwischenstufe ist m&#xf6;glich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Objekt -&gt; ETD -&gt; Objekt
</p>
<p>
</p>
<p>
warum?
</p>
<p>
weil das Quellobjekt keinen Diff erzeugen wird,
</p>
<p>
der sich letztlich nicht auf das Zielobjekt aufspielen l&#228;&#223;t
</p>
</body>
</html></richcontent>
<linktarget COLOR="#807bce" DESTINATION="ID_1808149320" ENDARROW="Default" ENDINCLINATION="671;0;" ID="Arrow_ID_1677374853" SOURCE="ID_1767038604" STARTARROW="Default" STARTINCLINATION="994;0;"/>
</node>
<node CREATED="1461890240148" FOLDED="true" ID="ID_1409253452" MODIFIED="1533608416278" TEXT="Schutzmechanismen">
<node CREATED="1461890266377" ID="ID_513997188" MODIFIED="1461890283701">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
abweisen, was das Kriterium <i>sicher verletzt</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461890289662" ID="ID_1663916739" MODIFIED="1461890307247" TEXT="Einf&#xfc;gen eines Feldes, das die Klasse nicht kennt"/>
<node CREATED="1461891798533" ID="ID_748156171" MODIFIED="1461891807616" TEXT="explizites Umordnen (per seek)"/>
</node>
</node>
</node>
</node>
<node CREATED="1461892011913" HGAP="227" ID="ID_1407170666" MODIFIED="1525124215165" TEXT="Verhaltensmuster" VSHIFT="11">
<node CREATED="1461892073089" ID="ID_883084327" MODIFIED="1512926192020" TEXT="default vs mandatory">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<b>mandatory</b>&#160;: Wert mu&#223; per Konstruktor gegeben sein
</p>
<p>
<b>default</b>&#160;: es gibt einen ausgezeichneten Standardwert
</p>
</body>
</html></richcontent>
<node CREATED="1461892285965" ID="ID_440312526" MODIFIED="1533608413911" TEXT="mandatory ">
<node CREATED="1461892303666" ID="ID_1486672593" MODIFIED="1461892312404" TEXT="Problem der Konstruktor-Repr&#xe4;sentation"/>
<node CREATED="1461892313049" ID="ID_683528850" MODIFIED="1461892394247" TEXT="einziger Ausweg: komplette ETD-Repr&#xe4;sentation als Wert senden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, in dem ins-Verb ist dann ein komplettes Objekt enthalten,
</p>
<p>
nicht nur eine leere Record-H&#252;lle, die nachfolgend populiert werden kann (aber nicht mu&#223;)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461892430466" ID="ID_1727811732" MODIFIED="1461892440092" TEXT="ein mandatory-Feld darf nicht gel&#xf6;scht werden"/>
</node>
<node CREATED="1461892444727" ID="ID_1828810203" MODIFIED="1533608413912" TEXT="default">
<node CREATED="1461892490881" FOLDED="true" ID="ID_577669206" MODIFIED="1533608416279" TEXT="es gibt zwei Grade">
<node CREATED="1461892496377" ID="ID_1216553390" MODIFIED="1461892579692" TEXT="minder">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Konstruktor bef&#252;llt das Feld halt irgendwie.
</p>
<p>
Ab dem Punkt verh&#228;lt es sich aber wie ein normales (mandatory) Feld
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461892554377" ID="ID_1564116180" MODIFIED="1461892615511" TEXT="vollwertig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das Objekt selber kann erkennen, ob das Feld sich im &quot;default-Zustand&quot; befindet
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1461892641949" ID="ID_600125030" MODIFIED="1461892653415" TEXT="Einf&#xfc;gen == vom Default-Wert abweichen"/>
<node CREATED="1461892654148" ID="ID_1086408965" MODIFIED="1461892662590" TEXT="L&#xf6;schen == zum Default-Wert zur&#xfc;ckkehren"/>
</node>
</node>
<node CREATED="1461966988471" ID="ID_751317533" MODIFIED="1512926192022" TEXT="pr&#xfc;fen vs ignorieren">
<node CREATED="1461967012164" ID="ID_1380142317" MODIFIED="1533608413912" TEXT="pr&#xfc;fen">
<icon BUILTIN="forward"/>
<node CREATED="1461967015883" ID="ID_1980878581" MODIFIED="1461967028022" TEXT="ben&#xf6;tigt zus&#xe4;tzliche Mechanismen"/>
<node CREATED="1461967028489" ID="ID_1694830814" MODIFIED="1461967042164" TEXT="verifiziert Validit&#xe4;t der Diff-Nachricht"/>
</node>
<node CREATED="1461967044480" ID="ID_810828038" MODIFIED="1533608413913" TEXT="ignorieren">
<icon BUILTIN="button_cancel"/>
<node CREATED="1461967051095" ID="ID_328050724" MODIFIED="1461967056946" TEXT="wendet an, was anwendbar ist"/>
<node CREATED="1461967057462" ID="ID_437076290" MODIFIED="1461967068248" TEXT="alles andere &quot;durchwinken&quot;"/>
</node>
<node COLOR="#990000" CREATED="1461967003141" HGAP="29" ID="ID_1805886948" MODIFIED="1533608413916" TEXT="Design-Entscheidung" VSHIFT="19">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1461967143851" ID="ID_1596604972" MODIFIED="1461967245047">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ohne Pr&#252;fen ist <b>emptySrc</b>&#160;nicht implementierbar
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil es f&#252;r <b>emptySrc</b>&#160;keine neutrale Antwort gibt.
</p>
<p>
Denn dieses Pr&#228;dikat wird von der typischen Implementierung des Diff-Applikators
</p>
<p>
in beiden Richtungen verwendet, also sowohl Pr&#252;fung auf empty (&quot;expect no further elements&quot;),
</p>
<p>
alsauch der Check, da&#223; &#252;berhaupt noch Quellelemente anstehen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461967247093" ID="ID_366726823" MODIFIED="1461967294701">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
d.h., man kann nur <i>global auf Pr&#252;fung verzichten&#160;</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461967274577" ID="ID_1824726078" MODIFIED="1461967310565">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und da habe ich mich bereits <i><font color="#d3204b">dagegen entschieden</font></i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461967364397" ID="ID_381561226" MODIFIED="1461967379991" TEXT="Pr&#xfc;fung erfordert eine Flag f&#xfc;r jedes bekannte Feld"/>
<node CREATED="1461967384579" ID="ID_1805227176" MODIFIED="1461967401644" TEXT="diese Flag wird gesetzt, sobald der Diff das Feld &quot;ber&#xfc;hrt&quot;"/>
<node CREATED="1461967428061" FOLDED="true" ID="ID_766802419" MODIFIED="1533608416280" TEXT="au&#xdf;erdem gibt es noch zwei triviale Basis-Checks">
<node CREATED="1461967451610" ID="ID_798276463" MODIFIED="1461967462700" TEXT="ist bekannter Attributsname"/>
<node CREATED="1461967463264" ID="ID_1109004010" MODIFIED="1461967487243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Feld unterst&#252;tzt <b>default</b>-Wert
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1475506680125" HGAP="58" ID="ID_1865970661" MODIFIED="1533608413932" TEXT="Variante" VSHIFT="13">
<node CREATED="1475506691595" ID="ID_69735021" MODIFIED="1475506704861" TEXT="emptySrc -&gt; hasSrc"/>
<node CREATED="1475506705641" ID="ID_409132685" MODIFIED="1475506735169" TEXT="und den nicht implementierbaren Fall tolerieren"/>
<node CREATED="1475506735949" ID="ID_1814707193" MODIFIED="1475506746633" TEXT="im &#xdc;brigen: stets pr&#xfc;fen und scheitern">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1475506753523" HGAP="34" ID="ID_845946083" MODIFIED="1475506765947" TEXT="so umgesetzt" VSHIFT="10">
<font NAME="SansSerif" SIZE="10"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1455927276314" HGAP="100" ID="ID_98863612" MODIFIED="1525124215178" TEXT="Spezifikation" VSHIFT="18">
<cloud COLOR="#fce9c0"/>
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node CREATED="1461946125744" HGAP="55" ID="ID_1970709109" MODIFIED="1512926192031">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Auslegung der
</p>
<p>
<font size="5">Primitiven</font>
</p>
</body>
</html></richcontent>
<node CREATED="1455927425726" ID="ID_1774195026" MODIFIED="1533608413934" TEXT="hasSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928216420" ID="ID_259184763" MODIFIED="1464116966043" TEXT="can not sensibly be implemented">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1464116995888" ID="ID_892348638" MODIFIED="1464117033135" TEXT="always returns true">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1464116967676" ID="ID_1396378266" MODIFIED="1464117025435">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
rationale: object fields are hard wired,
</p>
<p>
thus always available
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1455927425726" ID="ID_950488526" MODIFIED="1533608413934" TEXT="skipSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="closed"/>
<node CREATED="1464212421708" ID="ID_260959353" MODIFIED="1464212429644" TEXT="prohibited, raise error"/>
<node CREATED="1455928216420" ID="ID_1837102790" MODIFIED="1464212390729" TEXT="reset to default">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1461964714068" ID="ID_1261372831" MODIFIED="1463690748989" TEXT="mandatory fields raise error">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1455927396505" ID="ID_1033919055" MODIFIED="1533608413935" TEXT="matchSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455928268589" ID="ID_954747330" MODIFIED="1461964779839" TEXT="ID comparison to field known by name"/>
</node>
<node CREATED="1455982947867" ID="ID_348226285" MODIFIED="1533608413935" TEXT="injectNew">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1455982969073" ID="ID_1599013380" MODIFIED="1463675987940" TEXT="set known field&apos;s contents"/>
<node CREATED="1457047512175" ID="ID_45133594" MODIFIED="1464212464658" TEXT="mandatory fields raise error">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1461964818054" ID="ID_1444647202" MODIFIED="1461964825281" TEXT="unknown fields raise error"/>
</node>
<node CREATED="1455927413191" ID="ID_131020445" MODIFIED="1533608413935" TEXT="acceptSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1464212476461" ID="ID_503509206" MODIFIED="1464212481606" TEXT="NOP"/>
<node CREATED="1461964863217" ID="ID_274118585" MODIFIED="1464212474879" TEXT="mark known field as mentioned">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1455928166683" ID="ID_1715452226" MODIFIED="1533608413938" TEXT="accept_until">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1455928383765" ID="ID_1566496401" MODIFIED="1461965340133" TEXT="nicht implementierbar">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1457231714541" ID="ID_1922580473" MODIFIED="1465428399592" TEXT="fraglich: mu&#xdf; vielleicht aus der Sprache entfernt werden">
<arrowlink COLOR="#592379" DESTINATION="ID_693317592" ENDARROW="Default" ENDINCLINATION="577;0;" ID="Arrow_ID_1115282938" STARTARROW="Default" STARTINCLINATION="1205;231;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1463675830732" FOLDED="true" ID="ID_1893171223" MODIFIED="1533608416282">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Einschr&#228;nkung:&#160;<b>accept_until END</b>
</p>
</body>
</html></richcontent>
<node CREATED="1463675866200" ID="ID_410463345" MODIFIED="1463675944546" TEXT="ist implementierbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...n&#228;mlich indem alle Attribute als &quot;ber&#252;hrt&quot; und akzeptiert markiert werden.
</p>
<p>
Somit k&#246;nnten sofort Zuweisungen als N&#228;chstes passieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463675872239" ID="ID_467354174" MODIFIED="1463675882809" TEXT="ist sehr sinnvoll"/>
<node CREATED="1463675883853" ID="ID_178701147" MODIFIED="1464212598924" TEXT="k&#xf6;nnte sogar Standardfall sein">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1464212588886" ID="ID_1883145154" MODIFIED="1464212594754" TEXT="ist effektiv NOP">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1455927413191" ID="ID_216877268" MODIFIED="1533608413939" TEXT="findSrc">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="closed"/>
<node CREATED="1461946965569" ID="ID_229931358" MODIFIED="1461963646230" TEXT="Umordnen wird nicht unterst&#xfc;tzt"/>
<node CREATED="1461963648481" ID="ID_1893776707" MODIFIED="1461963654996" TEXT="l&#xf6;st einen Logik-Fehler aus"/>
</node>
<node CREATED="1455928184504" ID="ID_850800360" MODIFIED="1533608413940" TEXT="assignElm">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1461963697714" ID="ID_1619863394" MODIFIED="1461963707499" TEXT="Setter aufrufen"/>
<node CREATED="1461963686556" ID="ID_662132890" MODIFIED="1461963697214" TEXT="namentlich bekanntes Feld"/>
<node CREATED="1461963708449" ID="ID_1854747377" MODIFIED="1461963718804" TEXT="nicht bekannte Felder l&#xf6;sen Fehler aus"/>
</node>
<node CREATED="1455928189695" ID="ID_1575249106" MODIFIED="1533608413941" TEXT="mutateChild">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1461963754651" ID="ID_843075689" MODIFIED="1461963776115">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
analog wie&#160;<b>assignElm</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461963748604" ID="ID_465316362" MODIFIED="1461963753895" TEXT="namentlich bekanntes Feld"/>
<node CREATED="1461963777440" ID="ID_207528376" MODIFIED="1461963787443" TEXT="aber nicht Setter, sondern Mutator bauen"/>
</node>
<node CREATED="1464113688645" ID="ID_1227423402" MODIFIED="1533608413942" STYLE="fork" TEXT="completeScope">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1464113727192" ID="ID_656884609" MODIFIED="1464113954773" TEXT="hier NOP implementiert"/>
<node CREATED="1464113740005" ID="ID_1570177974" MODIFIED="1464114004153">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, es findet <b>keine Verifikation</b>&#160;statt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1455928193863" ID="ID_579601999" MODIFIED="1533608413943" TEXT="CTOR">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1461946885292" ID="ID_319452226" MODIFIED="1461965407132" TEXT="mark all known fields as not yet mentioned"/>
<node COLOR="#e5500c" CREATED="1461946693701" ID="ID_583693798" MODIFIED="1461965425322" STYLE="fork" TEXT="meta-Operation">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node CREATED="1461946112906" HGAP="14" ID="ID_388598327" MODIFIED="1512926192037" VSHIFT="21">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
zu bindende
</p>
<p>
<font size="4">Operationen</font>
</p>
</body>
</html></richcontent>
<node CREATED="1458175991795" ID="ID_1544297658" MODIFIED="1533608413943" TEXT="fest eingebaut...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458175942866" FOLDED="true" ID="ID_321386709" MODIFIED="1533608416283" TEXT="match">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177113846" ID="ID_885225658" MODIFIED="1461966728693" TEXT="pr&#xfc;ft ID-Name der Spec gegen Feldname des Zieles"/>
</node>
<node CREATED="1458176002762" FOLDED="true" ID="ID_233019425" MODIFIED="1533608416284" TEXT="selector">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177605869" ID="ID_1275056489" MODIFIED="1461966119517" TEXT="ein default-Selector ist automatisch stets konfiguriert"/>
<node CREATED="1461966120082" ID="ID_92075200" MODIFIED="1461966665670" TEXT="default ist Pr&#xfc;fen, ob die Spec ein Attribut bezeichnet"/>
</node>
</node>
<node CREATED="1458175991795" ID="ID_998867093" MODIFIED="1533608413946" TEXT="optional...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458176008025" FOLDED="true" ID="ID_384595680" MODIFIED="1533608416285" TEXT="setter">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177697657" ID="ID_1292886690" MODIFIED="1458177953095" TEXT="erlaubt Zuweisung"/>
<node CREATED="1458177712798" ID="ID_1904681311" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
<node CREATED="1458177735635" FOLDED="true" ID="ID_88342940" MODIFIED="1533608415979" TEXT="Ersatz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1458177738499" ID="ID_738570524" MODIFIED="1458177953095" TEXT="keiner"/>
<node CREATED="1458177741155" ID="ID_504602301" MODIFIED="1458177953095" TEXT="dann gibt&apos;s eben keine Zuweisung"/>
<node CREATED="1458177749233" ID="ID_1737530420" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei sub-Scopes"/>
<node CREATED="1458177803730" ID="ID_1570261235" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei immutable values"/>
</node>
</node>
<node CREATED="1458176018087" FOLDED="true" ID="ID_280816523" MODIFIED="1533608416287" TEXT="mutator">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1458177821712" ID="ID_850096330" MODIFIED="1458177953095" TEXT="baut einen sub-Mutator f&#xfc;r einen nested scope"/>
<node CREATED="1458177851988" ID="ID_835071729" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
<node CREATED="1458177857939" FOLDED="true" ID="ID_1231660130" MODIFIED="1533608415981" TEXT="Ersatz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1458177861162" ID="ID_1234972537" MODIFIED="1458177953095" TEXT="keiner"/>
<node CREATED="1458177863506" ID="ID_668640033" MODIFIED="1463690716478" TEXT="dann gibts eben keine Behandlung von nested scopes"/>
<node CREATED="1458177874760" ID="ID_98241568" MODIFIED="1458177953095" TEXT="auch nicht n&#xf6;tig bei primitive values"/>
</node>
</node>
<node CREATED="1463687547746" FOLDED="true" ID="ID_241762171" MODIFIED="1533608416289" TEXT="defaulter">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1463687553569" ID="ID_695577132" MODIFIED="1463687602782" TEXT="veranla&#xdf;t R&#xfc;ckkehr zum default-Zustand"/>
<node CREATED="1463687629319" ID="ID_613393149" MODIFIED="1463687644409" TEXT="erfordert explizite Unterst&#xfc;tzung durch das Zielobjekt"/>
<node CREATED="1463687644973" ID="ID_1677329552" MODIFIED="1463687741843" TEXT="fragw&#xfc;rdig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sieht nach Ober-engineering aus,
</p>
<p>
zumal das erhebliche Statefulness bewirkt
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1463687649812" FOLDED="true" ID="ID_450096384" MODIFIED="1533608415983" TEXT="Ersatz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1463687668218" ID="ID_205365114" MODIFIED="1463687670469" TEXT="keiner"/>
<node CREATED="1463687672649" ID="ID_244442064" MODIFIED="1463687689779" TEXT="dann kann eben nur gebunden werden"/>
<node CREATED="1463687865175" ID="ID_1290398590" MODIFIED="1463687869987" TEXT="normalerweise verzichtbar"/>
</node>
</node>
<node CREATED="1458175960615" FOLDED="true" ID="ID_806805692" MODIFIED="1533608416291" TEXT="ctor">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1461966391478" ID="ID_110542982" MODIFIED="1461966404134" TEXT="wird dem Setter vorgeschaltet"/>
<node CREATED="1458177315803" ID="ID_1572942300" MODIFIED="1458177953094" TEXT="konstruiert aus der Spec ein neues Element"/>
<node CREATED="1461966815950" ID="ID_156023396" MODIFIED="1461966831208" TEXT="notwendig bei Attribut-Werten, die tats&#xe4;chlich Objekte sind"/>
<node CREATED="1458177335632" ID="ID_1991494041" MODIFIED="1458177953094" TEXT="mu&#xdf; typischerweise die Interna des Zieles kennen"/>
<node CREATED="1458177347622" FOLDED="true" ID="ID_1000370922" MODIFIED="1533608415984" TEXT="Ersatz">
<icon BUILTIN="idea"/>
<node CREATED="1458177489444" ID="ID_1463500618" MODIFIED="1461966901007">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
unterstelle Ziel als <i>konstruierbar</i>&#160;aus Payload
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1463691200369" ID="ID_542600281" MODIFIED="1463691259602" TEXT="&#xfc;berfl&#xfc;ssiges Konzept">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
da effektiv bereits der Setter diese Funktionalit&#228;t enthalten kann und mu&#223;,
</p>
<p>
denn der Setter nimmt eine GenNode
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1458176048564" HGAP="-11" ID="ID_1811113811" MODIFIED="1512926192045" TEXT="Variationen" VSHIFT="4">
<node CREATED="1464117242535" ID="ID_1487426510" MODIFIED="1512926192045" TEXT="Binden auf eine klassische struct">
<node CREATED="1464117391859" ID="ID_1783492476" MODIFIED="1464117396430" TEXT="Setter weisen einfach zu"/>
<node CREATED="1464117397026" ID="ID_1635700062" MODIFIED="1464117404773" TEXT="bereits die Neuanlage mu&#xdf; alles populieren"/>
</node>
<node CREATED="1464117250262" ID="ID_1846973342" MODIFIED="1512926192046" TEXT="Binden auf ein Objekt mit Initialisierungs-Semantik">
<node CREATED="1464117412896" ID="ID_1405299167" MODIFIED="1464117450662" TEXT="Erzeugungs-Diff mu&#xdf; mit den Anforderungen des Konstruktors harmonieren"/>
<node CREATED="1464117487974" ID="ID_1923901911" MODIFIED="1464117499776" TEXT="R&#xfc;ckkehr zum Default wird nicht unterst&#xfc;tzt / abgebildet"/>
</node>
<node CREATED="1464117317517" ID="ID_1395959611" MODIFIED="1512926192046" TEXT="Binden auf &quot;konzeptionelle&quot; Properties">
<node CREATED="1464117513722" ID="ID_101207705" MODIFIED="1464117537611" TEXT="der &quot;Key&quot; ist nur eine ID, um speziellen Zugriffsmechanismus auszul&#xf6;sen"/>
<node CREATED="1464117553885" ID="ID_1617675711" MODIFIED="1464117567271" TEXT="u.U ist man &#xfc;berhaupt nur an sub-Mutation interessiert"/>
</node>
</node>
</node>
<node CREATED="1458178113697" FOLDED="true" HGAP="61" ID="ID_38103760" MODIFIED="1533684598672" TEXT="Design-Schlu&#xdf;folgerungen" VSHIFT="48">
<node CREATED="1463687362843" FOLDED="true" HGAP="116" ID="ID_775516687" MODIFIED="1533684596547" TEXT="Eingrenzung" VSHIFT="-28">
<node CREATED="1463687373889" ID="ID_155516876" MODIFIED="1512926192049" TEXT="Art von Attributen">
<node CREATED="1463687402462" ID="ID_1119981147" MODIFIED="1533608413953" TEXT="Objekt-Feld">
<icon BUILTIN="forward"/>
<node CREATED="1463689795357" ID="ID_1774256004" MODIFIED="1463689801592" TEXT="kann nur zugewiesen werden"/>
<node CREATED="1463689912853" FOLDED="true" ID="ID_592726515" MODIFIED="1533608416292">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>injectNew</b>&#160;tolerieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1463690238314" ID="ID_1366435072" MODIFIED="1463690270664" TEXT="eigentlich redundant">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....man k&#246;nnte genausogut auch beim ersten Mal zuweisen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463690487032" ID="ID_1618528789" MODIFIED="1463690595034" TEXT="Aber: isomorph zu GenNode">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn die Diff-Anwendung auf GenNode unterst&#252;tzt Zuweisung
</p>
<p>
ausschlie&#223;lich bei schon existierenden Elementen. Demnach mu&#223; dort auch jedes Attribut
</p>
<ul>
<li>
entweder schon mit dem Konstruktor mit gegeben worden sein
</li>
<li>
oder vorher einmal explizit eingef&#252;gt
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1463687408597" ID="ID_783243290" MODIFIED="1533608413954" TEXT="optional Property">
<icon BUILTIN="stop-sign"/>
<node CREATED="1463688083594" ID="ID_1885891636" MODIFIED="1463688087910" TEXT="fragw&#xfc;rdiger Nutzen"/>
<node CREATED="1463688088457" ID="ID_1722180442" MODIFIED="1463688100116" TEXT="mutet &quot;theoretisch&quot; an"/>
<node CREATED="1463688147802" FOLDED="true" ID="ID_1259353240" MODIFIED="1533608416294" TEXT="Alternative">
<node CREATED="1463688157472" ID="ID_1130562584" MODIFIED="1463688173746" TEXT="auf &quot;mindere defaults&quot; setzen"/>
<node CREATED="1463688215752" ID="ID_1340272500" MODIFIED="1463688230896" TEXT="kann man einfach mitlaufen lassen"/>
<node CREATED="1463688184269" ID="ID_1652024004" MODIFIED="1463688193863" TEXT="immer m&#xf6;gliche Degradierung des Konzepts"/>
<node CREATED="1463688232550" FOLDED="true" ID="ID_1079102386" MODIFIED="1533608415985" TEXT="fehlende Funktionalit&#xe4;t ersetzbar">
<icon BUILTIN="idea"/>
<node CREATED="1463688247980" ID="ID_720310622" MODIFIED="1463688253639" TEXT="durch komplettes Neukonstruieren"/>
<node CREATED="1463688254251" ID="ID_1166606306" MODIFIED="1463688262902" TEXT="durch eine explizite Reset-Methode"/>
</node>
</node>
</node>
<node CREATED="1463687451791" ID="ID_682582613" MODIFIED="1533608413956" TEXT="Attribut-Map">
<icon BUILTIN="button_cancel"/>
<node CREATED="1463687461925" ID="ID_39763189" MODIFIED="1463687496231" TEXT="hier ausgeschlossen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1463687466573" ID="ID_1853473792" MODIFIED="1475507021278" TEXT="implementierbar auf Basis des Collection-Binding">
<linktarget COLOR="#9f96d9" DESTINATION="ID_1853473792" ENDARROW="Default" ENDINCLINATION="41;-121;" ID="Arrow_ID_503281678" SOURCE="ID_1112268061" STARTARROW="Default" STARTINCLINATION="1873;0;"/>
</node>
<node CREATED="1463687484338" ID="ID_1009085517" MODIFIED="1463687491613" TEXT="k&#xf6;nnte f&#xfc;r GenNode relevant sein"/>
</node>
</node>
<node CREATED="1463691267608" ID="ID_1554269824" MODIFIED="1512926192052" TEXT="Typisierung">
<node CREATED="1463691273431" ID="ID_1711015726" MODIFIED="1463691276947" TEXT="pro Attribut"/>
<node CREATED="1463691277726" ID="ID_716698874" MODIFIED="1533608413957" TEXT="implizit">
<node CREATED="1463691290845" ID="ID_1981578828" MODIFIED="1464226408020" TEXT="das Setter-lambda nimmt einen Wert"/>
<node CREATED="1464226412567" FOLDED="true" ID="ID_1195950141" MODIFIED="1533608416295" TEXT="der Wert-Typ mu&#xdf; einer der GenNode-Payload-Typen sein">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1464227158027" ID="ID_262712037" MODIFIED="1464227176058" TEXT="TODO: dies zur compile-Zeit pr&#xfc;fen">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1463691359988" ID="ID_139397516" MODIFIED="1464226506135" TEXT="der Setter mu&#xdf; jedwede weitere Konvertierung in andere Typen selber machen"/>
<node CREATED="1464226461041" ID="ID_401616087" MODIFIED="1464226487843" TEXT="die Implementierung greift auf den passenden GenNode-Payload zu"/>
<node CREATED="1463691372258" ID="ID_1648677750" MODIFIED="1463691550094" TEXT="alle Typkonvertierungs-Fragen auf client abgew&#xe4;lzt"/>
<node CREATED="1463691552514" ID="ID_1882798051" MODIFIED="1463691645252" TEXT="das ist gut so">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir vermeiden dadurch Komplexit&#228;t.
</p>
<p>
Der gesendete Diff mu&#223; einfach passen!
</p>
<p>
Genau deshalb haben wir auch in GenNode verschiedene Varianten des gleichen Grundtyps,
</p>
<p>
damit wir nicht in die ganzen Ungewissheiten der widening conversions laufen!
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node CREATED="1463691680849" ID="ID_909001007" MODIFIED="1512926192054" TEXT="Striktheit">
<node CREATED="1463691716821" ID="ID_414439233" MODIFIED="1463691724243" TEXT="soweit einfach zu gew&#xe4;hrleisten">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1463691725515" ID="ID_947499289" MODIFIED="1463691741484" TEXT="d.h. soweit nicht zus&#xe4;tzlicher State notwendig ist"/>
<node CREATED="1463691767421" ID="ID_993508973" MODIFIED="1463691780901" TEXT="Flexibilit&#xe4;t mu&#xdf; stets praktisch gerechtfertigt sein">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1463691793010" ID="ID_1079571503" MODIFIED="1512926192056" TEXT="F&#xe4;lle">
<node CREATED="1463691796825" ID="ID_1459507376" MODIFIED="1463691928935" TEXT="Setter">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. der Attributwert hat Wertsemantik und wird einfach zugewiesen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463691804696" ID="ID_1039735883" MODIFIED="1463692035179" TEXT="Mutator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. der Attributwert ist ein Objekt und damit ein nested Scope
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463691807824" ID="ID_175488317" MODIFIED="1463691814860" TEXT="keine Mischformen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1463692054415" ID="ID_1755055624" MODIFIED="1533608413958">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: <i>immutable values</i>
</p>
</body>
</html></richcontent>
<node CREATED="1463692505987" ID="ID_113919280" MODIFIED="1463692515040" TEXT="wirklich ein Problem?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1463692519993" ID="ID_1177616097" MODIFIED="1463692550512" TEXT="Diff handelt ohnehin nur von ver&#xe4;nderbaren Dingen"/>
<node CREATED="1463692663853" FOLDED="true" ID="ID_953408463" MODIFIED="1533608416296" TEXT="Aber: wie &#xe4;ndert man die L&#xe4;nge eins Clips im UI?">
<node CREATED="1463695438538" ID="ID_744412186" MODIFIED="1463695450620" TEXT="indem man sich auf ein Pr&#xe4;sentations-Grid bezieht"/>
<node CREATED="1463695454504" ID="ID_945765975" MODIFIED="1463695469602" TEXT="und folglich nur Grid-Punkt-Koordinaten &#xe4;ndert"/>
<node CREATED="1463695472134" ID="ID_852324151" MODIFIED="1463695494714" TEXT="die eigentlichen Time-Entit&#xe4;ten leben in der Session, nicht im UI">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1463695573392" FOLDED="true" ID="ID_1066626880" MODIFIED="1533608416298" TEXT="im &#xdc;brigen: Problem des client-Codes">
<node CREATED="1463695588814" ID="ID_1661716485" MODIFIED="1463695605096" TEXT="man kann einen time::Mutator erzeugen"/>
<node CREATED="1463695605708" ID="ID_480704465" MODIFIED="1463695620401" TEXT="es gibt vorgefertigte EmbeddedMutators">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1463695633144" ID="ID_1677066412" MODIFIED="1463695657196">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das alles passiert dann <i>im</i>&#160;Lambda
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463695640231" ID="ID_176647136" MODIFIED="1463695645090" TEXT="und ist somit nicht unser Problem"/>
</node>
</node>
<node CREATED="1463849505993" HGAP="42" ID="ID_493843802" MODIFIED="1533608413963" VSHIFT="25">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Dilemma:&#160;<i>defaultable fields</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1463849536789" FOLDED="true" ID="ID_864537854" MODIFIED="1533608416299" TEXT="ich m&#xf6;chte sie unterst&#xfc;tzen">
<node CREATED="1463849545196" ID="ID_1187170275" MODIFIED="1463849547316" TEXT="warum">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1463849556474" ID="ID_73579891" MODIFIED="1463849682530" TEXT="Unterst&#xfc;tzung mu&#xdf; konsistent sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....mit der ETD,
</p>
<p>
bzw der Anwendung des selben Diffs auf eine GenNode-Struktur.
</p>
<p>
</p>
<p>
Konsequenz: wenn ein feld <i>defaulted</i>&#160;war, und nun explizit gesetzt wird,
</p>
<p>
mu&#223; dies als INS geschehen, denn eine Zuweisung an nicht aufgef&#252;hrtes Element ist verboten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463849716869" ID="ID_712482848" MODIFIED="1463849742347" TEXT="in der Bindung auf ein Objekt habe ich aber keine Attribut-Menge">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1463849761127" ID="ID_865585394" MODIFIED="1463849778956">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
folglich ein Problem,
</p>
<p>
zu erkennen, wenn wir fertig sind
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1463849986345" FOLDED="true" ID="ID_1305704801" MODIFIED="1533608416301" TEXT="genauer...">
<node CREATED="1463850017285" ID="ID_656883117" MODIFIED="1463850033879" TEXT="wenn ein feld zwar gebunden ist"/>
<node CREATED="1463850034699" ID="ID_1531134347" MODIFIED="1463850053756" TEXT="aber bisher keinen Wert bekommen hat"/>
<node CREATED="1463850060359" ID="ID_1083372309" MODIFIED="1463850081800" TEXT="dann darf der Diff es auch nicht per pick auff&#xfc;hren"/>
<node CREATED="1463850086044" ID="ID_1096436471" MODIFIED="1463850099574" TEXT="wenn dann alle mandatory fields behandelt sind"/>
<node CREATED="1463850100634" ID="ID_1329120598" MODIFIED="1463850243005" TEXT="glauben wir, wir sind noch nicht fertig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....weil das defaultable field noch nicht vom Diff ber&#252;hrt wurde.
</p>
<p>
Aber es ist kein optional field, d.h. wir haben keine Flag, die es als &quot;defaulted&quot; kennzeichnet
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1463850138853" FOLDED="true" ID="ID_1262990387" MODIFIED="1533608416302" TEXT="also ist das Grundproblem">
<icon BUILTIN="idea"/>
<node CREATED="1463850144180" ID="ID_103581818" MODIFIED="1463850157454" TEXT="da&#xdf; der TreeMutator global stateless ist"/>
<node CREATED="1463850163257" ID="ID_1219321798" MODIFIED="1463850171716" TEXT="denn er wird immer wieder neu konstruiert"/>
<node CREATED="1463850280082" ID="ID_1381914386" MODIFIED="1463850294324">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sung: <b>alles immer explizit</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1463934907474" FOLDED="true" ID="ID_761652333" MODIFIED="1533608416304" TEXT="Auswege">
<node CREATED="1463934969522" FOLDED="true" ID="ID_960243774" MODIFIED="1533608415986" TEXT="keine optional fields">
<node COLOR="#a0345c" CREATED="1463937048979" ID="ID_861548194" MODIFIED="1463937120794" TEXT="widerspricht den Anforderungen">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1463935105351" FOLDED="true" ID="ID_1357485921" MODIFIED="1533608415988" TEXT="Protokoll-Auflagen">
<node CREATED="1463935116670" ID="ID_1375491306" MODIFIED="1463935125304" TEXT="nach dem ersten Durchgang mu&#xdf; alles gebunden sein"/>
<node CREATED="1463935126461" ID="ID_774412987" MODIFIED="1463935247552" TEXT="wenn ungebundene optionals, stets Abschlie&#xdf;en mit &quot;after END&quot;"/>
<node COLOR="#a0345c" CREATED="1463937146214" ID="ID_1154054760" MODIFIED="1463937452255" TEXT="attraktiv, aber unehrlich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
diese L&#246;sung war zun&#228;chst mein Favorit.
</p>
<p>
Sie erscheint sehr elegant, weil man im TreeMutator <i>&#252;berhaupt nichts</i>&#160;daf&#252;r tun mu&#223;.
</p>
<p>
Und die Zusatz-Forderung, da&#223; dann eben das Diff richtig gesendet werden mu&#223;,
</p>
<p>
erscheint &quot;geschenkt&quot;, da wir ohnehin zun&#228;chst einmal die Diffs explizit im Code erzeugen.
</p>
<p>
</p>
<p>
Aber, nach l&#228;ngerer &#220;berlegung wurde mir der Ansatz mehr und mehr zweifelhaft.
</p>
<p>
Das ist die Art von Verkoppelungen, hier die implizite Annahme einer bestimmten Implementierung,
</p>
<p>
die ein System unerkl&#228;rbar und schwer wartbar machen. Das ist die Art von &quot;Features&quot;,
</p>
<p>
f&#252;r die man sich nach einiger Zeit entschuldigen mu&#223;.
</p>
<p>
</p>
<p>
Und noch schlimmer: eigentlich l&#228;uft dieser Ansatz darauf hinaus, die Konsistenzpr&#252;fung
</p>
<p>
am Ende zu deaktivieren. Nur wir machen das nicht explizit, sondern durch die Hintert&#252;r.
</p>
<p>
Also dann besser klar und ehrlich!
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1463934995110" FOLDED="true" ID="ID_1084188576" MODIFIED="1533608415990" TEXT="dem Mutator sagen, was optional ist">
<node CREATED="1463935368308" ID="ID_1008223435" MODIFIED="1463935375919" TEXT="was grunds&#xe4;tzlich optional sein kann"/>
<node CREATED="1463935377123" ID="ID_970486772" MODIFIED="1463935387005" TEXT="was aktuell nicht gebunden ist"/>
<node COLOR="#a0345c" CREATED="1463937178689" ID="ID_1161021042" MODIFIED="1463937550363" TEXT="Over-Engineering / L&#xf6;sung eines nicht vorhandenen Problems">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn unter dem Strich w&#252;rden wir hiermit volle Unterst&#252;tzung f&#252;r opitonale Attribute einf&#252;hren,
</p>
<p>
also eine Attribut-Semantik auf eine Feld-Semantik draufpflanzen.
</p>
<p>
Aber in der vorausgegangenen Analyse habe ich mich schon davon &#252;berzeugt,
</p>
<p>
da&#223; wir keine Attribut-Semantik brauchen. Und wenn doch, dann bietet das Diff-System
</p>
<p>
immer noch die M&#246;glichkeit, die Attribute explizit als Sammlung darzustellen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1463935030953" ID="ID_540672245" MODIFIED="1463938073583">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auf die <i>empty</i>-Pr&#252;fung am Ende verzichten
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#f36478" DESTINATION="ID_1554206938" ENDARROW="Default" ENDINCLINATION="181;0;" ID="Arrow_ID_389060908" STARTARROW="None" STARTINCLINATION="181;0;"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1463937883299" HGAP="85" ID="ID_271104970" MODIFIED="1533608413968" TEXT="Konsequenzen" VSHIFT="26">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1463937922318" FOLDED="true" ID="ID_74130402" MODIFIED="1533608416307" TEXT="isEmpty">
<node CREATED="1463937972255" ID="ID_1554206938" MODIFIED="1463938146376" TEXT="mu&#xdf; umdefiniert werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn in den meisten, wichtigsten F&#228;llen get es um einen non-empty-check,
</p>
<p>
bevor ein anderes Verifikations-Pr&#228;dikat angewendet wird.
</p>
</body>
</html></richcontent>
<linktarget COLOR="#f36478" DESTINATION="ID_1554206938" ENDARROW="Default" ENDINCLINATION="181;0;" ID="Arrow_ID_389060908" SOURCE="ID_540672245" STARTARROW="None" STARTINCLINATION="181;0;"/>
</node>
<node CREATED="1463937980222" ID="ID_1669470430" MODIFIED="1463937986216" TEXT="kann nicht mehr negativ gepr&#xfc;ft werden"/>
<node CREATED="1463937988180" ID="ID_1353983852" MODIFIED="1463938000454" TEXT="das gilt leider f&#xfc;r alle Bindings"/>
<node CREATED="1464212233893" ID="ID_1520677416" MODIFIED="1464212254420" TEXT="umdrehen in: hasSrc">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1463938033527" FOLDED="true" ID="ID_165279544" MODIFIED="1533608415993" TEXT="neue Primitive: completeScope">
<icon BUILTIN="button_ok"/>
<node CREATED="1464113590258" ID="ID_1613216716" MODIFIED="1464113600260" TEXT="auch ein hook f&#xfc;r Aufr&#xe4;um-Arbeiten"/>
<node CREATED="1464113600897" ID="ID_1783943539" MODIFIED="1464113642335" TEXT="return true -- wenn alles sauber ist"/>
<node CREATED="1464113642899" ID="ID_468050192" MODIFIED="1464113648966" TEXT="kann NOP implementiert werden"/>
</node>
</node>
<node CREATED="1464114047781" FOLDED="true" ID="ID_669832549" MODIFIED="1533608416308" TEXT="reduzierte Verifikation">
<icon BUILTIN="yes"/>
<node CREATED="1464114078672" ID="ID_72653804" MODIFIED="1464114085171" TEXT="nicht bekannte Felder werden erkannt"/>
<node CREATED="1464114086111" ID="ID_518116356" MODIFIED="1464114139188" TEXT="der Versuch von Umordnungen wird erkannt"/>
<node COLOR="#990000" CREATED="1464114156574" ID="ID_408810628" MODIFIED="1464114190655" TEXT="fehlende Angaben werden nicht bemerkt"/>
</node>
</node>
</node>
</node>
<node CREATED="1461897111747" HGAP="79" ID="ID_1690728106" MODIFIED="1512926192064" TEXT="Ein Attribut oder viele Attribute" VSHIFT="17">
<icon BUILTIN="help"/>
<node CREATED="1463696053440" ID="ID_564525411" MODIFIED="1464226693401" TEXT="Standardfall: eine kleine Zahl von Attributen ">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1463696031715" ID="ID_1300041378" MODIFIED="1464226781810" TEXT="&quot;ein Attribut&quot; ist aber der nat&#xfc;rliche Basisfall f&#xfc;r die Implementierung"/>
<node CREATED="1463695809296" ID="ID_780490723" MODIFIED="1464226736308" TEXT="problematisch sind Selektor und (ignorierte) Reihenfolge">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1464226806914" HGAP="25" ID="ID_1103913128" MODIFIED="1512926192065" TEXT="Selector" VSHIFT="5">
<icon BUILTIN="button_cancel"/>
<node CREATED="1464226813953" ID="ID_29622528" MODIFIED="1464226834307" TEXT="fest verdrahtet: istAttribut"/>
<node CREATED="1464226834831" ID="ID_585845912" MODIFIED="1464226848617" TEXT="Verzicht auf einen konfigurierbaren Selector"/>
<node CREATED="1464226849277" ID="ID_449408444" MODIFIED="1464226870862" TEXT="im Zweifelsfall: anderen &#xbb;onion-Layer&#xab; verwenden"/>
<node CREATED="1464226871930" ID="ID_569490118" MODIFIED="1464226897116" TEXT="gut zur Reduktion der Komplexit&#xe4;t">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1461894614295" ID="ID_1919790561" MODIFIED="1512926192065" TEXT="Attribut-Glieder">
<node CREATED="1461894619054" ID="ID_1860006379" MODIFIED="1512926192066" TEXT="implementieren die API-Primitive">
<node CREATED="1461894676063" ID="ID_1773874682" MODIFIED="1461894678714" TEXT="durch Aktion"/>
<node CREATED="1461894679190" ID="ID_1990110249" MODIFIED="1461894683857" TEXT="durch Ignorieren"/>
<node CREATED="1461894684326" ID="ID_744174163" MODIFIED="1461894692888" TEXT="als Fehler"/>
</node>
<node CREATED="1461894634029" ID="ID_1447610701" MODIFIED="1464226938524" TEXT="f&#xfc;gen sich nat&#xfc;rlich durch Layering zusammen"/>
<node CREATED="1461894666248" ID="ID_1972218753" MODIFIED="1464226987286" TEXT="Setter / Mutator durch Template-Spezialisierung"/>
<node CREATED="1464226992090" ID="ID_632987149" MODIFIED="1512926192066" TEXT="lineare Suche">
<icon BUILTIN="button_ok"/>
<node CREATED="1464227021205" ID="ID_1138709182" MODIFIED="1464227032960" TEXT="akzeptabel f&#xfc;r &lt; 30 Attribute"/>
<node CREATED="1464227042771" ID="ID_1594139733" MODIFIED="1464227114093" TEXT="vermeidet heap-basierte Collection">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
jedwede &quot;bessere&quot; Implementierung mu&#223; zwingend einen Container verwenden,
</p>
<p>
der dann die Lambdas f&#252;r die einzelnen Setter auf den Heap legt.
</p>
<p>
Das ist hier tats&#228;chlich viel schlechter, als das bischen lineare Suche
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1464227213180" FOLDED="true" HGAP="29" ID="ID_691018374" MODIFIED="1533684574690" TEXT="Implementierung" VSHIFT="66">
<icon BUILTIN="button_ok"/>
<node CREATED="1464227218795" ID="ID_1100206442" MODIFIED="1512926192068" TEXT="ist grunds&#xe4;tzlich &quot;schon da&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....durch meinen allerersten Draft,
</p>
<p>
f&#252;r den ich damals gezwungen war, die GenNode zu erfinden :)
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1464227273572" ID="ID_1669070695" MODIFIED="1465428151809" TEXT="TODO: alten Testfall anpassen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1464227285562" ID="ID_908196685" MODIFIED="1465428159480" TEXT="TODO: Setter aus erstem Entwurf vom TreeMutator-API entfernen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1464227227610" ID="ID_392179794" MODIFIED="1464227235981" TEXT="aber: alle Primitive durchimplementieren"/>
<node COLOR="#338800" CREATED="1464386998240" ID="ID_1575821815" MODIFIED="1512926192069" TEXT="key: EntryID">
<icon BUILTIN="button_ok"/>
<node CREATED="1464396284551" ID="ID_608089097" MODIFIED="1512926192069" TEXT="Problem: sanitise">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1464396756424" ID="ID_1262469672" MODIFIED="1464397132659" TEXT="nur US-ASCII">
<icon BUILTIN="info"/>
</node>
<node CREATED="1464396761967" ID="ID_290057129" MODIFIED="1464397146966" TEXT="erweiterte Zeichen bedingen Locale">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1464396769974" ID="ID_1758045716" MODIFIED="1533608413970" TEXT="und welche dann??">
<node CREATED="1464396835581" ID="ID_1451158687" MODIFIED="1464396859658" TEXT="System-Locale: Recipe for Desaster"/>
<node CREATED="1464396793123" ID="ID_1031603106" MODIFIED="1464396815972" TEXT="en_US.UTF-8"/>
<node CREATED="1464396816696" ID="ID_75103205" MODIFIED="1464396866584" TEXT="Einschr&#xe4;nkung nicht sinnvoll zu begr&#xfc;nden">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1464396320922" ID="ID_1981813349" MODIFIED="1512926192070" TEXT="GenNode umgeht das (bewu&#xdf;t)">
<node CREATED="1464396885391" ID="ID_1510453315" MODIFIED="1464397164031" TEXT="Begr&#xfc;ndung: interne Schnittstelle">
<icon BUILTIN="info"/>
</node>
<node CREATED="1464396899252" ID="ID_1555498938" MODIFIED="1464396964843" TEXT="verwendet bereits valide Symbole">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1464396908371" ID="ID_487257918" MODIFIED="1464397170109" TEXT="vermeidet den Performance overhead">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1464397008078" ID="ID_1403561457" MODIFIED="1464397019505" TEXT="soll sich symmetrisch verhalten">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1464397020996" ID="ID_1333087135" MODIFIED="1512926192070" TEXT="L&#xf6;sung: Variante f&#xfc;r EntryID">
<icon BUILTIN="idea"/>
<node CREATED="1464397032747" ID="ID_1595458691" MODIFIED="1464397057946" TEXT="f&#xfc;r interne Schnittstellen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gleiches Argument...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1464397039834" ID="ID_1349501863" MODIFIED="1464397115277" TEXT="verwendet Symbol-Datentyp">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit unterstellen wir, da&#223; sp&#228;ter eine Symbol-Tabelle aufgebaut wird.
</p>
<p>
Dann kann man sich immer noch &#252;berlegen, ob man dann <i>an dieser Stelle</i>&#160;bereinigt
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1464387004423" ID="ID_1076928743" MODIFIED="1512926192071" TEXT="Fehlerbehandlung">
<node CREATED="1464387034539" ID="ID_1580200225" MODIFIED="1512926192071" TEXT="injectNew">
<icon BUILTIN="button_ok"/>
<node CREATED="1464387043146" ID="ID_1075443725" MODIFIED="1465045655821" TEXT="API erweitern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1464387046769" ID="ID_1282279036" MODIFIED="1465045658691" TEXT="R&#xfc;ckgabewert">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1464387055632" ID="ID_381742708" MODIFIED="1465045661504" TEXT="andere Layer fragen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1464387071669" ID="ID_1152000090" MODIFIED="1512926192072" TEXT="skip">
<icon BUILTIN="button_cancel"/>
<node CREATED="1464387092091" ID="ID_534085817" MODIFIED="1464387095959" TEXT="hat kein Argument"/>
<node CREATED="1464387096498" ID="ID_1113073682" MODIFIED="1464387158085" TEXT="kann daher Selektor nicht ausf&#xfc;hren">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1464387102850" ID="ID_1022478410" MODIFIED="1464387148396" TEXT="Fehlererkennung nicht m&#xf6;glich">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1464386771270" ID="ID_1279882649" MODIFIED="1512926192072" TEXT="setter vs mutator">
<node CREATED="1464386870265" ID="ID_1326576761" MODIFIED="1464387168773" TEXT="Metaprogrammierung"/>
<node CREATED="1464386878983" ID="ID_19052291" MODIFIED="1464386887354" TEXT="Code selber mu&#xdf; es implizit wissen"/>
<node CREATED="1464386904676" ID="ID_1844234642" MODIFIED="1512926192073" TEXT="entweder-oder">
<icon BUILTIN="help"/>
<node CREATED="1464386910099" ID="ID_127180278" MODIFIED="1464386913750" TEXT="nicht notwendig"/>
<node CREATED="1464386929745" ID="ID_1833671444" MODIFIED="1464386936708" TEXT="es greift der Layer, der es kann"/>
</node>
<node CREATED="1464483482949" HGAP="32" ID="ID_597384200" MODIFIED="1512926192073" TEXT="Code-Struktur" VSHIFT="15">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1464483497524" ID="ID_206433048" MODIFIED="1464483503639" TEXT="Basisklasse + Overlay"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1464483504155" ID="ID_565058375" MODIFIED="1533608413971" TEXT="unsch&#xf6;n und verwirrend">
<node CREATED="1464483533863" ID="ID_1813082482" MODIFIED="1464483617082" TEXT="mehrfach geschachtelte Typdefinitionen">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1464483544429" ID="ID_467553331" MODIFIED="1464483659487" TEXT="Problem mit der EntryID">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
in einem Fall kann man sie aus der Closure abgreifen
</p>
<p>
im anderen Fall mu&#223; es doch der Client leisten.
</p>
<p>
Keine klare Linie
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1464483601318" ID="ID_1275035047" MODIFIED="1464483610226" TEXT="gibt es &#xfc;berhaupt eine Alternative">
<icon BUILTIN="help"/>
</node>
<node CREATED="1465041597680" FOLDED="true" ID="ID_31475692" MODIFIED="1533608416310" TEXT="Abw&#xe4;gung">
<node CREATED="1465040677452" ID="ID_1313751992" MODIFIED="1465040776226" TEXT="OK: Klassen sind geschnitten nach Belang">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t, es gibt nur minimale, themantische &#220;berlappung.
</p>
<p>
Also ist die Verwendung von Vererbung hier sogar die <i>beste</i>&#160;L&#246;sung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1465040780654" ID="ID_73964489" MODIFIED="1465040812722">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Geschachtelte Typdefs lassen sich vermeiden:
</p>
<p>
BareEntryID speichern!
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1465040890735" ID="ID_19731522" MODIFIED="1465041541616" TEXT="API f&#xfc;r die ID ist ein Dilemma">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t, wie rum man es auch aufl&#246;st, wird die L&#246;sung auf einer Seite schlechter
</p>
<ul>
<li>
wenn wir f&#252;r den Payload-Typ einen Typ-Parameter nehmen, bl&#228;hen wir den Standard-Fall (Setter) auf
</li>
<li>
andererseits <i>ist es unbstreitbar einfach so,</i>&#160;da&#223; f&#252;r den Mutator-Builder die Typisierung komplett implizit ist, das mu&#223; die Closure mit sich&#160;selbst ausmachen, einfach indem in der Closure ein geschachtelter TreeMutator konstruiert wird, der eben mit diesem impliziten Kind-Typ umgehen kann.
</li>
<li>
wenn wir stattdessen nur einen Key-String speichern, wird zum Einen die Match-Pr&#252;fung aufwendiger (Stringvergleich statt Vergleich von Hashes), und au&#223;erdem wird ein Typ-Mismatch nicht mehr auf der Ebene der Verb-Anwendung entdeckt und entsprechend gekennzeichnet, sondern wir hoffen, da&#223; es dann innerhalb der Closure zu einem Fehlzugriff auf die Payload der GenNode kommt. Noch schlimmer im Mutator-Fall, da sind wir dann schon im geschachtelten Scope und hoffen, da&#223; dann der eingeschachtelte Mutator irgendwo auf Widerspruch l&#228;uft.
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1465041611663" ID="ID_1925576169" MODIFIED="1465041702243" TEXT="man kann auf DSL-Ebene mehrere Alternativen anbieten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...gedacht f&#252;r verschiedene UseCases.
</p>
<ul>
<li>
Fall 1: String-Key und der Typ mu&#223; irgendwie implizit/explizit gegeben sein
</li>
<li>
Fall2: GenNodeID
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1465139405203" ID="ID_103737978" MODIFIED="1465139492329" TEXT="...hey, der Typ ist implizit klar! es ist immer Rec">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...die offensichtlichsten Dinge &#252;bersieht man nur zu leicht!!!!!
</p>
<p>
Da es ein nested scope ist, ist es immer ein Objekt,
</p>
<p>
also repr&#228;sentiert als Rec&lt;GenNode&gt;
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1457232746179" FOLDED="true" ID="ID_1793680066" MODIFIED="1533684614788" TEXT="Rec&lt;GenNode&gt;" VSHIFT="11">
<icon BUILTIN="full-4"/>
<node CREATED="1464305377785" ID="ID_396910166" MODIFIED="1512926192076" TEXT="Vor&#xfc;berlegungen">
<node CREATED="1464305417066" ID="ID_1059660516" MODIFIED="1512926192077" TEXT="w&#xfc;nschenswert">
<icon BUILTIN="help"/>
<node CREATED="1464305708891" ID="ID_1184917831" MODIFIED="1512926192077" TEXT="Vorteile">
<node CREATED="1464305431944" ID="ID_426248387" MODIFIED="1464305641440" TEXT="den RecordContentMutator loswerden"/>
<node CREATED="1464305660018" ID="ID_255650962" MODIFIED="1464305687458" TEXT="die speziellen Regeln f&#xfc;r Attribute / Kinder loswerden"/>
</node>
<node CREATED="1464305712115" ID="ID_1789861154" MODIFIED="1512926192078" TEXT="Nachteile">
<node CREATED="1464305722209" ID="ID_375643343" MODIFIED="1464305733108" TEXT="man braucht immer einen TreeMutator"/>
<node CREATED="1464305735032" ID="ID_800203572" MODIFIED="1464305745786" TEXT="das ist sehr komplexer Code"/>
<node CREATED="1464305756189" ID="ID_696233984" MODIFIED="1464305766735" TEXT="zus&#xe4;tzliche Indirektion / VTable"/>
<node CREATED="1464305800207" ID="ID_1296045436" MODIFIED="1464305818736" TEXT="das &quot;Backdoor&quot; in Record::Mutator bleibt bestehen"/>
</node>
<node CREATED="1464305842833" ID="ID_365028607" MODIFIED="1525124215201" TEXT="Abw&#xe4;gung">
<node CREATED="1464305847001" ID="ID_845708071" MODIFIED="1533608413973" TEXT="Aufwand">
<node CREATED="1464305850440" FOLDED="true" ID="ID_592160280" MODIFIED="1533608416311" TEXT="dedizierte Impl">
<node CREATED="1464305871806" ID="ID_1200803242" MODIFIED="1464305874249" TEXT="ein Stack"/>
<node CREATED="1464306044598" FOLDED="true" ID="ID_780490719" MODIFIED="1533608415994" TEXT="pro Stackframe">
<node CREATED="1464305896754" ID="ID_569905839" MODIFIED="1464305908965" TEXT="ref Rec::Mutator"/>
<node CREATED="1464305910520" FOLDED="true" ID="ID_1883294095" MODIFIED="1533608415656" TEXT="Puffer: RecordContentMutator">
<node CREATED="1464305921943" ID="ID_1412580517" MODIFIED="1464305927370" TEXT="Vector Attribute"/>
<node CREATED="1464305927910" ID="ID_1641635660" MODIFIED="1464305933817" TEXT="Vector Kinder"/>
<node CREATED="1464305989422" ID="ID_614946430" MODIFIED="1464305994825" TEXT="ein vector::iterator"/>
</node>
</node>
</node>
<node CREATED="1464305854040" FOLDED="true" ID="ID_1876525606" MODIFIED="1533608416312" TEXT="per TreeMutator">
<node CREATED="1464305876237" ID="ID_633615671" MODIFIED="1464305878376" TEXT="ein Stack"/>
<node CREATED="1464306061588" FOLDED="true" ID="ID_735374750" MODIFIED="1533608415995" TEXT="pro Stackframe">
<node CREATED="1472781610135" FOLDED="true" ID="ID_150002810" MODIFIED="1533608415659">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>zwei </i>Bindings
</p>
</body>
</html></richcontent>
<node CREATED="1472781728046" ID="ID_1910688935" MODIFIED="1472781744825" TEXT="ref Quell-Vector"/>
<node CREATED="1472781629036" ID="ID_1614778599" MODIFIED="1472781751975" TEXT="Puffer: Vector GenNode"/>
<node CREATED="1472781648571" ID="ID_1190592868" MODIFIED="1472781677753" TEXT="ein zugeh&#xf6;riger Iterator"/>
</node>
</node>
</node>
</node>
<node CREATED="1472781868035" HGAP="40" ID="ID_195135751" MODIFIED="1533608413976" TEXT="Unterschied minimal" VSHIFT="-3">
<node CREATED="1472781885352" ID="ID_327255109" MODIFIED="1472781888836" TEXT="zwei Iteratoren"/>
<node CREATED="1472781889328" ID="ID_1298906038" MODIFIED="1472781899051" TEXT="zwei Quell-Referenzen"/>
</node>
</node>
</node>
<node CREATED="1472653531806" HGAP="76" ID="ID_1466924103" MODIFIED="1512926192083" TEXT="Ansatz" VSHIFT="-10">
<node CREATED="1472653541019" ID="ID_1910363821" MODIFIED="1472653569512">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>zwei</i>&#160;Collection-Bindings
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1472653548905" ID="ID_56400821" MODIFIED="1472653553124" TEXT="speziell konfiguriert"/>
<node CREATED="1472654905416" ID="ID_729856704" MODIFIED="1472654910067" TEXT="minimaler Code"/>
</node>
</node>
<node COLOR="#338800" CREATED="1464305382975" FOLDED="true" ID="ID_1038582300" MODIFIED="1533684605783" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1457742036967" ID="ID_980619979" MODIFIED="1512926192084" TEXT="Attribute">
<node CREATED="1472781560508" ID="ID_1534877939" MODIFIED="1472781584718" TEXT="Selector: isNamed"/>
<node CREATED="1472930964666" ID="ID_1394229571" MODIFIED="1473014470867" TEXT="Behandlung f&#xfc;r Typ-Feld"/>
</node>
<node CREATED="1457742040782" ID="ID_613087606" MODIFIED="1457742042442" TEXT="Kinder"/>
<node CREATED="1472781922380" ID="ID_506316487" MODIFIED="1512926192085" TEXT="Problem: rekursiver Mutator">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1472781942185" ID="ID_882829469" MODIFIED="1472781946644" TEXT="rein code-technisches Problem"/>
<node CREATED="1472781957063" ID="ID_1617563820" MODIFIED="1472781964177" TEXT="durch forward-decl aufzul&#xf6;sen"/>
<node CREATED="1472781977156" ID="ID_1731364667" MODIFIED="1472782008196" TEXT="erfordert Umbau der Code-Struktur">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1472930979111" ID="ID_1629990314" MODIFIED="1512926192086" TEXT="Problem: Typ-Feld">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1472931031568" ID="ID_1634653912" MODIFIED="1512926192087" TEXT="Kompromi&#xdf; in GenNode">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1472931061612" ID="ID_1482076461" MODIFIED="1472931066111" TEXT="halbherziges Design"/>
<node CREATED="1472931066635" ID="ID_1488685471" MODIFIED="1472931074166" TEXT="wollte nicht wirklich Metadaten einf&#xfc;hren"/>
<node CREATED="1472931074754" ID="ID_1078549727" MODIFIED="1472931083789" TEXT="hab&apos;s daher dann fest verdrahtet"/>
<node CREATED="1472931084281" ID="ID_358955160" MODIFIED="1472931095987" TEXT="erlaube &quot;Abk&#xfc;rzung&quot; &#xfc;ber das Typ-Attribut"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1472931096647" ID="ID_1730961697" MODIFIED="1472931185935" TEXT="aber nicht wirklich konsequent...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...diese Abk&#252;rzung ist nur auf den Konstruktur aufgepflanzt,
</p>
<p>
nicht aber in der eigentlichen Implementierung verankert.
</p>
<p>
Das wollte ich nicht, weil ich l&#228;ngerfristig doch davon ausgehe,
</p>
<p>
da&#223; es einfach einen Metadaten-Scope gibt
</p>
<p>
</p>
<p>
Die Inkonsequenz nun ist, da&#223; im Rec::Mutator keine Magie daf&#252;r vorgesehen ist
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1472931195618" ID="ID_1075996120" MODIFIED="1512926192087" TEXT="aber Meta-Attribut f&#xfc;r Diff">
<node CREATED="1472931234165" ID="ID_160523779" MODIFIED="1472931239279" TEXT="geht nicht anders"/>
<node CREATED="1472931241027" ID="ID_1519973794" MODIFIED="1472931247263" TEXT="direkte Folge des Objekt-Modells"/>
<node CREATED="1472931391998" ID="ID_1361356376" MODIFIED="1533608413977" TEXT="betrifft">
<node CREATED="1472931395526" ID="ID_1159599973" MODIFIED="1472931403393" TEXT="ins(type = X)"/>
<node CREATED="1472931404525" FOLDED="true" ID="ID_1215961897" MODIFIED="1533608416313" TEXT="set(type = X)">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1472931416323" ID="ID_1856124935" MODIFIED="1472931434577" TEXT="AUA: bisher &#xfc;bersehen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node CREATED="1472931275575" ID="ID_158751268" MODIFIED="1512926192088" TEXT="Collection-Binding">
<node CREATED="1472931287229" ID="ID_1702269467" MODIFIED="1472931308630" TEXT="klinkt sich unterhalb vom Mutator ein"/>
<node CREATED="1472931309122" ID="ID_632255284" MODIFIED="1472931324740" TEXT="umgeht den Mutator"/>
<node CREATED="1472931326512" ID="ID_150253618" MODIFIED="1472931332867" TEXT="arbeitet direkt auf den Collections"/>
<node CREATED="1472931333975" ID="ID_330064662" MODIFIED="1472931342433" TEXT="reicht Werte unbetrachtet 1:1 durch"/>
</node>
<node CREATED="1472931711315" ID="ID_1747250133" MODIFIED="1512926192089" TEXT="L&#xf6;sung">
<icon BUILTIN="idea"/>
<node CREATED="1472931716482" ID="ID_1328626801" MODIFIED="1472931798657" TEXT="Lambdas nicht ausreichend">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...mit den Lambdas kann ich nur die Sicht auf die Werte steuern,
</p>
<p>
nicht aber das eigentliche Verhalten des Bindings.
</p>
<p>
</p>
<p>
Denn die Lambdas haben keinen Zugriff auf die Ziel-Datenstruktur!
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1472931806958" ID="ID_321203237" MODIFIED="1472931822190" TEXT="m&#xfc;&#xdf;te Binding-Operationen anpassen">
<icon BUILTIN="smily_bad"/>
</node>
<node COLOR="#338800" CREATED="1472931829467" ID="ID_383672039" MODIFIED="1533608413978" STYLE="fork" TEXT="Dekorator">
<icon BUILTIN="button_ok"/>
<node CREATED="1472934618917" ID="ID_1010335466" MODIFIED="1472934744607" TEXT="legt sich um den &#xe4;u&#xdf;eren Collection-Binding-Layer"/>
<node CREATED="1472934635426" ID="ID_610715894" MODIFIED="1472934744607" TEXT="greift bei der injectNew und assignElm-Operation ein"/>
<node CREATED="1472934671013" ID="ID_1605900118" MODIFIED="1472934744607" TEXT="braucht Zugang zum Rec::Mutator">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1472934695226" ID="ID_247894372" MODIFIED="1472934744607" TEXT="Code wird schwer lesbar"/>
<node CREATED="1472934710032" FOLDED="true" ID="ID_1233852840" MODIFIED="1533608416314" TEXT="umformulieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1473014547678" ID="ID_1566443628" MODIFIED="1473014763323" TEXT="geht nur bedingt">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1473014552677" ID="ID_1444718355" MODIFIED="1473014759258" TEXT="Problem ist der Builder">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wir wollen mehrfach geschichtete TreeMutator-Subklassen,
</p>
<p>
aber tats&#228;chlich liefert jeder DSL-Aufruf einen Builder&lt;TreeMutator&lt;...&gt;&gt;.
</p>
<p>
Die normalen DSL-Aufrufe sind eben genau so gestrickt, da&#223; jeweils der oberste Builder entfernt wird,
</p>
<p>
ein neuer Layer dar&#252;bergebaut und das Ganze wieder in einen Builder eingewickelt wird.
</p>
<p>
</p>
<p>
Dadurch ist es schwer bis unm&#246;glich (wg. den Lambdas), den resultierenden Typ anzuschreiben.
</p>
<p>
Daher bin ich zwingend auf Wrapper-Funktionen angewiesen, die diesen resultierenden Typ
</p>
<p>
vom konkreten Aufruf wieder &quot;abgreifen&quot;. Ich kann daher nicht die DSL-Notation verwenden,
</p>
<p>
um den Dekorator f&#252;r die Behandlung des Typ-Feldes einzubringen.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1472782025318" ID="ID_387350632" MODIFIED="1512926192091" TEXT="Standard-Lambdas f&#xfc;r GenNode">
<node CREATED="1472782055217" ID="ID_1053081307" MODIFIED="1472782069243" TEXT="Selector -&gt; ID-Vergleich"/>
<node CREATED="1472782069784" ID="ID_893616200" MODIFIED="1472782075874" TEXT="Constructor -&gt; copy"/>
<node CREATED="1472782077062" ID="ID_1012433129" MODIFIED="1472782092512" TEXT="Setter -&gt; assign DataCap"/>
<node CREATED="1472782093956" ID="ID_1200489627" MODIFIED="1472782120696">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Mut -&gt; <font color="#e43e2a">Rekursion</font>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1472830089042" ID="ID_1759032781" MODIFIED="1512926192092" TEXT="until after Ref::ATTRIBS">
<node CREATED="1472830107591" ID="ID_1479915312" MODIFIED="1472830118609" TEXT="mu&#xdf; Semantik im TreeMutator API korrigieren"/>
<node CREATED="1472830131284" ID="ID_1581714242" MODIFIED="1472830153132" TEXT="Problem: nur die Implementierung wei&#xdf;, was ein &quot;Attribut&quot; ist"/>
<node CREATED="1472830122757" ID="ID_937476321" MODIFIED="1472830129487" TEXT="brauche Unterst&#xfc;tzung vom Selector"/>
<node CREATED="1472830164119" ID="ID_1323583081" MODIFIED="1512926192093" TEXT="L&#xf6;sungsansatz">
<node CREATED="1472830177221" ID="ID_422155652" MODIFIED="1472830181729" TEXT="wie Ref::END"/>
<node CREATED="1472830182101" ID="ID_275162903" MODIFIED="1472830195511" TEXT="aber nur einige Layer reagieren darauf"/>
<node CREATED="1472830199203" ID="ID_35560751" MODIFIED="1533608413978" TEXT="default-return mu&#xdf; true sein">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1472830226455" ID="ID_1975724782" MODIFIED="1472830232658" TEXT="aber nat&#xfc;rlich nur wenn leer..."/>
<node CREATED="1472830286462" ID="ID_1170732286" MODIFIED="1472830298035" TEXT="Einsicht: END und ATTRIBS k&#xf6;nnen nicht scheitern">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1472830304844" ID="ID_354507274" MODIFIED="1472840380057" TEXT="...es geht nur um das Layer-Chaining"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#4a273f" CREATED="1461882151581" HGAP="29" ID="ID_710057839" MODIFIED="1512926192094" TEXT="Selector integrieren" VSHIFT="23">
<icon BUILTIN="button_ok"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1461967533959" ID="ID_1476036864" MODIFIED="1468761946715" TEXT="korrekte logische Verkettung"/>
<node CREATED="1461967541166" ID="ID_1033772766" MODIFIED="1468761946715" TEXT="mu&#xdf; von jeder Primitive unterst&#xfc;tzt werden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1461967571042" ID="ID_186074377" MODIFIED="1512926192095">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Problem</b><font color="#4e094b">: partielle Ordnung</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1461967744747" ID="ID_1012577830" MODIFIED="1468761946715" TEXT="Diff setzt totale Ordnung voraus"/>
<node CREATED="1461967765080" ID="ID_1011855147" MODIFIED="1468761946715" TEXT="verletzt durch &#xbb;onion-layer&#xab;"/>
<node CREATED="1461967839110" ID="ID_571996411" MODIFIED="1512926192095" TEXT="Relevanz">
<icon BUILTIN="help"/>
<node CREATED="1461967850797" ID="ID_1981205783" MODIFIED="1468761946715" TEXT="bei Einzelschritt irrelevant"/>
<node CREATED="1461967876521" ID="ID_1804785019" MODIFIED="1512926192096" TEXT="zwingend bei &quot;AFTER&quot;-Verb">
<node CREATED="1461967962814" ID="ID_1667097505" MODIFIED="1472219338757" TEXT="weil das Zwischenschritte &#xfc;berspringt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t,
</p>
<p>
das AFTER-Verb wird &#252;bersetzt in ein skip_until,
</p>
<p>
und das l&#228;uft dann entweder in jedem Layer
</p>
<p>
oder nur in dem Layer, der auf die Spec pa&#223;t.
</p>
<p>
In jedem Fall ger&#228;t dadurch die relative Verzahnung der Elemente untereinander aus dem Takt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1461967992042" ID="ID_9552950" MODIFIED="1468761946715" TEXT="nur ein Ausweg..."/>
<node CREATED="1461968004720" ID="ID_1333404241" MODIFIED="1472219338765" TEXT="Ordnung der onion-layer verbindlich machen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t also, es wird stets der zuerst gebundene Layer komplett durchgespult,
</p>
<p>
gefolgt dann von dem n&#228;chsten Layer.
</p>
<p>
</p>
<p>
Die Konsequenz ist, da&#223; es keine Mischung der Typen geben kann.
</p>
<p>
Es m&#252;ssen immer zwingend alle Elemente eines Typs von einem Layer behandelt werden
</p>
<p>
und diese Elemente m&#252;ssen geschlossen hintereinander in der Reihenfolge liegen
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1465428839332" FOLDED="true" ID="ID_909803930" MODIFIED="1533684673395" TEXT="Diff-Anwendung" VSHIFT="36">
<icon BUILTIN="button_ok"/>
<node CREATED="1465428850946" ID="ID_1085608480" MODIFIED="1512926192098">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auf Basis des neu geschaffenen <b>TreeMutator</b>s
</p>
</body>
</html></richcontent>
<node CREATED="1465664755169" FOLDED="true" ID="ID_132124444" MODIFIED="1533684649305" TEXT="Modus der Anwendung">
<node CREATED="1465664762944" ID="ID_1254081914" MODIFIED="1465665479208" TEXT="DiffApplicator&lt;TreeMutator&gt;">
<icon BUILTIN="help"/>
</node>
<node CREATED="1465664777398" ID="ID_872861883" MODIFIED="1472219338777" TEXT="Automatismen sind denkbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....man k&#246;nnte sp&#228;ter geeignete Automatismen schaffen,
</p>
<p>
die sich diesen TreeMutator beschaffen
</p>
<ul>
<li>
indem erkannt wird, da&#223; das eigentliche Zielobjekt ein bestimmtes API bietet
</li>
<li>
indem andere relevante Eigenschaften des Zielobjekts erkannt werden
</li>
</ul>
</body>
</html></richcontent>
<arrowlink COLOR="#994062" DESTINATION="ID_1139754084" ENDARROW="Default" ENDINCLINATION="1028;0;" ID="Arrow_ID_10673972" STARTARROW="None" STARTINCLINATION="978;42;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1465665483456" ID="ID_1329468559" MODIFIED="1512926192099" TEXT="Problem: konkreter Mutator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das so h&#228;ufig in C++ auftretende Problem:
</p>
<p>
wie baue und verwalte ich eine konkrete Implementierung,
</p>
<p>
ohne gleich ein ganzes Management-Framework einf&#252;hren zu m&#252;ssen.
</p>
<p>
Letzten Endes lief&#160;&#160;das auch in diesem Fall auf inline-Storage hinaus...
</p>
</body>
</html></richcontent>
<node CREATED="1465665492727" ID="ID_743684748" MODIFIED="1465665500210" TEXT="mu&#xdf; vom Target gebaut werden"/>
<node CREATED="1465665500830" ID="ID_937213383" MODIFIED="1465665561681" TEXT="Typ nicht bekannt">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1465665511580" ID="ID_611347489" MODIFIED="1465665556325" TEXT="soll auf Stack top-Level ">
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1465665579587" ID="ID_786565560" MODIFIED="1525124215211" TEXT="problematisch">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1465665594969" ID="ID_1072421347" MODIFIED="1533608413979" TEXT="unbekannte Gr&#xf6;&#xdf;e">
<node CREATED="1465665884698" ID="ID_418230667" MODIFIED="1465665893757" TEXT="default-Bufferg&#xf6;&#xdf;e vorlegen"/>
<node CREATED="1465665894273" ID="ID_970277186" MODIFIED="1465665901124" TEXT="Gr&#xf6;&#xdf;e proben und anpassen"/>
<node CREATED="1465665901640" ID="ID_650164559" MODIFIED="1465665920298" TEXT="Gr&#xf6;&#xdf;e f&#xfc;r &quot;bekannte&quot; Targets statisch hinterlegen"/>
<node CREATED="1465852237233" FOLDED="true" HGAP="27" ID="ID_699424989" MODIFIED="1533608416316" TEXT="Beschlu&#xdf;" VSHIFT="12">
<icon BUILTIN="yes"/>
<node CREATED="1465852248487" ID="ID_1402619250" MODIFIED="1465852255154" TEXT="zun&#xe4;chst die einfachste L&#xf6;sung"/>
<node CREATED="1465852255694" ID="ID_462293433" MODIFIED="1472122166677" TEXT="statisch (fest) festlegen"/>
<node CREATED="1465852268252" ID="ID_329653886" MODIFIED="1465852274743" TEXT="ggfs. noch nach Zieltyp differenziert"/>
<node CREATED="1465852275859" ID="ID_394082851" MODIFIED="1465852288510" TEXT="dynamisch / Lernen als M&#xf6;glichkeit vorsehen"/>
</node>
</node>
<node CREATED="1465665614990" ID="ID_1851089586" MODIFIED="1533608413980" TEXT="verwirrendes API">
<node CREATED="1465665980686" ID="ID_1537039073" MODIFIED="1465665991232" TEXT="Anwendung sollte selbstevident sein"/>
<node CREATED="1465666009690" FOLDED="true" ID="ID_1006664389" MODIFIED="1533608416317" TEXT="Typ-Signatur sollte den Weg weisen">
<node CREATED="1465674483754" ID="ID_155190959" MODIFIED="1465674558135" TEXT="sehe nur eine L&#xf6;sung">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1465674488874" ID="ID_625451231" MODIFIED="1465674563848" TEXT="Mutator-Builder-Funktion">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1465674529460" ID="ID_845292312" MODIFIED="1465674571112" TEXT="pflanzt in ein gegebenes Buff-Handle">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1465665993012" ID="ID_1531461875" MODIFIED="1465666003750" TEXT="keine komplexen &quot;Riten&quot;"/>
<node CREATED="1465666524573" FOLDED="true" HGAP="30" ID="ID_462712191" MODIFIED="1533608416319" TEXT="Schlu&#xdf;folgerung" VSHIFT="18">
<icon BUILTIN="yes"/>
<node CREATED="1465666541419" ID="ID_1090547868" MODIFIED="1465666552293" TEXT="entweder ein festes Interface"/>
<node CREATED="1465666552842" ID="ID_1518882587" MODIFIED="1465666574594" TEXT="oder &#xfc;ber Metaprogrammierung / Spezialisierung"/>
<node CREATED="1468761997202" FOLDED="true" ID="ID_1870085622" MODIFIED="1533608415997" TEXT="kombinierte L&#xf6;sung">
<icon BUILTIN="idea"/>
<node CREATED="1468762009304" ID="ID_1554371522" MODIFIED="1468762018314" TEXT="Interface DiffMutable"/>
<node CREATED="1468762031701" FOLDED="true" ID="ID_48737788" MODIFIED="1533608415664" TEXT="Meta-Adapter">
<linktarget COLOR="#503382" DESTINATION="ID_48737788" ENDARROW="Default" ENDINCLINATION="8;131;" ID="Arrow_ID_579805576" SOURCE="ID_887400042" STARTARROW="None" STARTINCLINATION="535;0;"/>
<node CREATED="1468762052858" ID="ID_494010261" MODIFIED="1468762066764" TEXT="synthetisiert dieses Interface"/>
<node CREATED="1468762067383" ID="ID_484867304" MODIFIED="1468762075059" TEXT="erkennt passende Methoden"/>
<node CREATED="1468762075671" FOLDED="true" ID="ID_52899390" MODIFIED="1525124215517" TEXT="Problem: Storage">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1468762092660" ID="ID_361660092" MODIFIED="1468762097264" TEXT="Adapter oder Lambda"/>
<node CREATED="1468762097684" ID="ID_1049198962" MODIFIED="1468762107374" TEXT="mu&#xdf; l&#xe4;nger leben als der Adapter"/>
<node CREATED="1468762118913" ID="ID_1064755787" MODIFIED="1468762128867" TEXT="L&#xf6;sung: Wert / Reftyp per Spezialisierung"/>
<node CREATED="1468762138318" ID="ID_1261183393" MODIFIED="1472219338878" TEXT="Restrisiko bleibt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....da&#223; ein unbedarfter client diesen Trick &#252;bershieht
</p>
<p>
und daher den R&#252;ckgabewert wegwirft.
</p>
<p>
</p>
<p>
Argument: we soweit einsteigt, die Metaprogramming-L&#246;sung zu nutzen,
</p>
<p>
sollte auch intelligent genug sein, die API-Doc zu lesen.
</p>
<p>
</p>
<p>
Standard == Interface DiffMutable implementieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1469121877371" FOLDED="true" HGAP="38" ID="ID_1718572301" MODIFIED="1525124215518" TEXT="freie funktion" VSHIFT="16">
<icon BUILTIN="yes"/>
<node CREATED="1469121882782" ID="ID_1873664189" MODIFIED="1469121933463" TEXT="keine Spezialisierung notwendig">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1469121890060" ID="ID_985582322" MODIFIED="1469121930007">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Client soll direkt <b>mutatorBinding</b>&#160;bieten
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1469544027620" HGAP="38" ID="ID_1475348824" MODIFIED="1533608413984" TEXT="Storage-Probleme" VSHIFT="11">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1469544055624" FOLDED="true" ID="ID_390940604" MODIFIED="1533608416320" TEXT="Beobachtung: Template-bloat">
<icon BUILTIN="stop-sign"/>
<node CREATED="1469544072709" ID="ID_16055877" MODIFIED="1469544083016" TEXT="Ursache: wir generieren die Klasse jedesmal neu"/>
<node CREATED="1469544084220" ID="ID_1247343007" MODIFIED="1469544104909" TEXT="...obwohl keinerlei Bezug zum Target-Typ vorliegt">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1469544123271" ID="ID_1703312587" MODIFIED="1469544133675" TEXT="Funktionalit&#xe4;t ist zu 90% generisch">
<icon BUILTIN="info"/>
</node>
<node CREATED="1469544171176" ID="ID_887400042" MODIFIED="1469544253263">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nicht</i>&#160;generisch: <b><font color="#923977">mutatorBinding</font></b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#503382" DESTINATION="ID_48737788" ENDARROW="Default" ENDINCLINATION="8;131;" ID="Arrow_ID_579805576" STARTARROW="None" STARTINCLINATION="535;0;"/>
</node>
</node>
<node CREATED="1469544264955" FOLDED="true" HGAP="35" ID="ID_366424331" MODIFIED="1533608416323" VSHIFT="16">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sungsversuch: <b>extern template</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1469544293574" ID="ID_947583528" MODIFIED="1469544318455" TEXT="Template bereits in Lumiera-Lib vor-generieren">
<icon BUILTIN="info"/>
</node>
<node CREATED="1469544337408" ID="ID_1646108569" MODIFIED="1469544349252" TEXT="nur ctor ist nochmals ge-Templated">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1469544323331" FOLDED="true" ID="ID_1924059831" MODIFIED="1533608415999" TEXT="flexibler Teil verbleibt in ctor">
<icon BUILTIN="forward"/>
<node CREATED="1469544368180" ID="ID_989521105" MODIFIED="1469544377687" TEXT="hier kann das mutatorBinding stattfinden"/>
<node CREATED="1469544385882" ID="ID_82786122" MODIFIED="1469544397396" TEXT="...in Abh&#xe4;ngigkeit vom konkreten Zieltyp"/>
<node CREATED="1469544400544" ID="ID_1789924824" MODIFIED="1469544413058" TEXT="Resultat ist ein TreeMutator im internen Puffer"/>
</node>
<node CREATED="1469544471294" FOLDED="true" ID="ID_1306807662" MODIFIED="1533608416003" TEXT="Problem-1: Puffer-Gr&#xf6;&#xdf;e">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1469544519439" ID="ID_1173588510" MODIFIED="1469544535057" TEXT="Plan: Heuristik + Traits"/>
<node CREATED="1469544536309" ID="ID_579318822" MODIFIED="1469544546951" TEXT="h&#xe4;ngt von konkretem Zieltyp ab"/>
<node CREATED="1469544547731" ID="ID_1296389584" MODIFIED="1469544596453" TEXT="kann nicht im generischen Teil stecken">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1469544575808" ID="ID_259226539" MODIFIED="1469544599880" TEXT="Problem: vom generischen Teil ansprechen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1469544601444" ID="ID_1593190605" MODIFIED="1469544616515" TEXT="L&#xf6;sung: weitere Indirektion">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1469544618738" ID="ID_324293110" MODIFIED="1472122283229" TEXT="vertretbar, da nur beim Scope-Wechsel....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...im Klartext: diesen Zugriff von der generischen Implementierung
</p>
<p>
auf den eingebauten Stack-Mechanismus ben&#246;tigen wir nur...
</p>
<ul>
<li>
einmal zu Beginn, bei der Konstruktion
</li>
<li>
wenn wir in einen geschachtelten Scope eintreten
</li>
<li>
wenn wir einen Solchen verlassen
</li>
</ul>
<p>
Zwar sind indirekte Calls aufwendiger, aber letzten Endes auch wieder nicht soooo aufwendig,
</p>
<p>
da&#223; sie uns im gegebenen Kontext umbringen...
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1469544496907" FOLDED="true" ID="ID_447935464" MODIFIED="1533608416006" TEXT="Problem-2: re-Initialisierung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1469544831244" ID="ID_756911810" MODIFIED="1469544838662" TEXT="bestehendes Protokoll">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1469544839795" ID="ID_1308746305" MODIFIED="1469544858420" TEXT="Diff-Applikator kan beliebige Folge von Diffs akzeptieren"/>
<node CREATED="1469544859392" ID="ID_325998286" MODIFIED="1469544964778">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>intern:</i>&#160;eingebaute <b>initDiffApplication()</b>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wird automatisch vor Konsumieren eines Diff aufgerufen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1469544965890" ID="ID_443152890" MODIFIED="1469545023179">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Widerspruch:</i>&#160;TreeMutator ist <b>Wegwerf</b>-Objekt
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node COLOR="#f61b01" CREATED="1469545033584" ID="ID_578930155" MODIFIED="1469545058652" TEXT="Abbruch">
<icon BUILTIN="button_cancel"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
<node CREATED="1469545080826" FOLDED="true" HGAP="41" ID="ID_268789302" MODIFIED="1533608416325" VSHIFT="17">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sungsversuch: <b>doppelte H&#252;lle</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1469545168798" FOLDED="true" ID="ID_511952630" MODIFIED="1533608416009" TEXT="Architektur">
<node CREATED="1469545173893" ID="ID_1815808987" MODIFIED="1469545190599" TEXT="opaque: Kern == TreeMutator"/>
<node CREATED="1469545191899" ID="ID_1298718461" MODIFIED="1469545206853" TEXT="generisch: TreeMutator-Bindung"/>
<node CREATED="1469545208440" ID="ID_796164740" MODIFIED="1469545246870" TEXT="dediziert: Typ-Adapter"/>
</node>
<node CREATED="1469545401582" FOLDED="true" ID="ID_1145081121" MODIFIED="1533608416012" TEXT="konkrete Folgen...">
<node CREATED="1469545417579" ID="ID_474776082" MODIFIED="1469545427486" TEXT="alle virtuellen Methoden im generischen Teil"/>
<node CREATED="1469545428289" FOLDED="true" ID="ID_1077900797" MODIFIED="1533608415665" TEXT="generischer Teil verwendet nur Interfaces">
<node CREATED="1469545452406" ID="ID_369878659" MODIFIED="1469545455778" TEXT="TreeMutator"/>
<node CREATED="1469545456549" ID="ID_676404790" MODIFIED="1469545459401" TEXT="ScopeManager"/>
</node>
<node CREATED="1469545522445" FOLDED="true" ID="ID_1752356251" MODIFIED="1533608415669" TEXT="ScopeManager">
<node CREATED="1469545526380" ID="ID_141570709" MODIFIED="1469545535550" TEXT="Imp. wird per Zieltyp generiert"/>
<node CREATED="1469545536139" ID="ID_423387515" MODIFIED="1469545543750" TEXT="lebt in opaquem Buffer"/>
<node CREATED="1469545546209" ID="ID_229490952" MODIFIED="1469545561067" TEXT="enth&#xe4;lt Stack,"/>
<node CREATED="1469545562151" ID="ID_1390916085" MODIFIED="1469545568130" TEXT="mit passender Puffergr&#xf6;&#xdf;e"/>
</node>
<node CREATED="1469545592171" FOLDED="true" ID="ID_1826413238" MODIFIED="1533608415688" TEXT="dedizierter Applikator">
<icon BUILTIN="idea"/>
<node CREATED="1469545598922" ID="ID_815414440" MODIFIED="1469545609733" TEXT="h&#xe4;llt Referenz auf Zielobjekt"/>
<node CREATED="1469545611177" ID="ID_410214862" MODIFIED="1469545670672">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann daher <b>TreeMutator</b>&#160;konstruieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1469545641644" ID="ID_1811640827" MODIFIED="1469545662506">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...und zwar per <b>mutatorBinding</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1469545691349" ID="ID_239269579" MODIFIED="1469545705980">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
implementiert somit <b>initDiffApplication()</b>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1469545778873" FOLDED="true" HGAP="37" ID="ID_263708712" MODIFIED="1533608416015" VSHIFT="53">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
TODO: <font color="#010101">Namensgebung</font>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#7c4b8e" DESTINATION="ID_263708712" ENDARROW="Default" ENDINCLINATION="-438;877;" ID="Arrow_ID_774958535" SOURCE="ID_660087752" STARTARROW="Default" STARTINCLINATION="2134;135;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1469545959160" ID="ID_826999251" MODIFIED="1469545961076" TEXT="DiffApplicationStrategy&lt;DiffMutable&gt;"/>
<node CREATED="1469545962192" ID="ID_1539721850" MODIFIED="1469545971051" TEXT="feste explizite Spezialisierung"/>
<node CREATED="1469545972470" ID="ID_996523023" MODIFIED="1469545983800" TEXT="in non-Template-Basisklasse verwandeln"/>
<node CREATED="1469545990956" ID="ID_543764775" MODIFIED="1469546010389" TEXT="oder zumindest in Trait-Template + enable_if"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1465855369239" ID="ID_1875145732" MODIFIED="1525124215221" STYLE="fork" TEXT="Architektur">
<icon BUILTIN="button_ok"/>
<node CREATED="1465855402346" ID="ID_390477158" MODIFIED="1512926192122" TEXT="Grundgedanke">
<node CREATED="1465855407129" ID="ID_1269101170" MODIFIED="1472219324297" TEXT="Trennung von DiffInterpreter und TreeMutator"/>
<node CREATED="1465855418880" ID="ID_118862910" MODIFIED="1472219324297" TEXT="ersterer wird auf Basis von letzterem implementiert"/>
<node CREATED="1465855507380" ID="ID_63018388" MODIFIED="1472219324297">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
TreeMutator-<i>Binding</i>&#160;mu&#223; opaque bleiben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1465855561877" ID="ID_1466552960" MODIFIED="1512926192123">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Buffer-Gr&#246;&#223;en-Management <i>vorsehen</i>
</p>
</body>
</html></richcontent>
<node CREATED="1465855596992" ID="ID_1925577989" MODIFIED="1472219324298" TEXT="passiert im Scope des Ctors"/>
<node CREATED="1465855605879" ID="ID_961922886" MODIFIED="1472219324298" TEXT="bzw. im Scope des MUT-Verbs"/>
<node CREATED="1465855641898" ID="ID_1420998207" MODIFIED="1472219338902" TEXT="Heuristik + Versuch&amp;Irrtum">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t
</p>
<ul>
<li>
ein sinnvoller Startwert wird heuristisch vorgegeben
</li>
<li>
wenn die Allokation scheitert, die Exception fangen und die tats&#228;chlich ben&#246;tigte Gr&#246;&#223;e merken
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1465855653265" ID="ID_1093267368" MODIFIED="1472219324298" TEXT="konfigurieren und lernen"/>
</node>
<node CREATED="1465855576187" ID="ID_1820859855" MODIFIED="1472219324298" TEXT="zun&#xe4;chst jedoch primitiv implementieren"/>
</node>
<node CREATED="1465856069657" ID="ID_1074974681" MODIFIED="1512926192123" TEXT="Struktur">
<node CREATED="1465856074888" ID="ID_63334235" MODIFIED="1472219324298" TEXT="TreeMutator == PImpl"/>
<node CREATED="1465856092638" ID="ID_587610953" MODIFIED="1472219324298" TEXT="BufferManager : opaque aber inline"/>
</node>
</node>
<node CREATED="1465864106739" FOLDED="true" ID="ID_1139754084" MODIFIED="1533684660318" TEXT="Zugang zum Mutator-Binding">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t:
</p>
<p>
gegeben ein syntaktisch sinnvoller top-level-Aufruf (&quot;wende das Diff an&quot;)
</p>
<p>
-- wie bzw. von wem bekommen wir dann ein Binding, das einen passenden TreeMutator konstruiert?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#994062" DESTINATION="ID_1139754084" ENDARROW="Default" ENDINCLINATION="1028;0;" ID="Arrow_ID_10673972" SOURCE="ID_872861883" STARTARROW="None" STARTINCLINATION="978;42;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1465864167187" ID="ID_1126324374" MODIFIED="1465864171974" TEXT="Aufruf: freie Funktion"/>
<node CREATED="1465864172514" ID="ID_523639016" MODIFIED="1465864180668" TEXT="delegiert auf Template"/>
<node CREATED="1465864181193" ID="ID_214760095" MODIFIED="1465864192611" TEXT="explizite / regelbasierte Spezialisierung"/>
<node CREATED="1465864193607" ID="ID_910823091" MODIFIED="1512926192124" TEXT="Problem: Storage f&#xfc;r die Closure">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1465864217628" ID="ID_234805162" MODIFIED="1465864228510" TEXT="typischerweise sind alles transiente Objekte"/>
<node CREATED="1465864229170" ID="ID_1100042937" MODIFIED="1465864240501" TEXT="also mu&#xdf; die Closure als Wert-Objekt rausgegeben werden"/>
<node CREATED="1472495487478" ID="ID_57266631" MODIFIED="1512926192125" TEXT="L&#xf6;sung...">
<node CREATED="1472495496574" ID="ID_618531871" MODIFIED="1472495510056" TEXT="auto typed return value"/>
<node CREATED="1472495510531" ID="ID_1366125392" MODIFIED="1472495513703" TEXT="keep in local scope"/>
<node CREATED="1472495514203" ID="ID_1694911368" MODIFIED="1472495529197" TEXT="tightly integrate into ctor of DiffAplicator"/>
</node>
<node CREATED="1465864247152" ID="ID_1684145985" MODIFIED="1512926192125" TEXT="gesucht: elegantes API">
<node CREATED="1472494557762" ID="ID_1916007342" MODIFIED="1472494575309" TEXT="DiffAplicator&lt;TargetTyp&gt;">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1472494413960" ID="ID_1460674703" MODIFIED="1472494571740" TEXT="Erweiterungspunkt f&#xfc;r ADL..."/>
<node CREATED="1472494432219" ID="ID_1801329518" MODIFIED="1472494446981" TEXT="...wird vom ctor des Diff-Applikators verwendet"/>
<node CREATED="1472494466926" ID="ID_1882750560" MODIFIED="1472494484296" TEXT="...und der wiederum greift nur"/>
<node CREATED="1472494485388" ID="ID_1744987934" MODIFIED="1472494501141" TEXT="...wenn TreeDiffTraits definiert sind"/>
<node CREATED="1472494501778" ID="ID_300920526" MODIFIED="1472494506323" TEXT="not too bad">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1465860736044" FOLDED="true" ID="ID_40337378" MODIFIED="1533684662875" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1472121965308" ID="ID_292673963" MODIFIED="1472121974646" TEXT="Verb delegiert an Mutator-Primitive"/>
<node CREATED="1472121976018" ID="ID_421028989" MODIFIED="1472121995995" TEXT="Fehlerbehandlung anhand R&#xfc;ckgabewert dieser"/>
<node CREATED="1472122015157" ID="ID_151735071" MODIFIED="1472122038334" TEXT="sinnvolle interne Fehler-Funktionen aufbauen"/>
<node CREATED="1472141026525" ID="ID_671819323" MODIFIED="1512926192127" TEXT="Scope-Wechsel">
<icon BUILTIN="button_ok"/>
<node CREATED="1472172154624" ID="ID_602990638" MODIFIED="1512926192127" TEXT="Zugang zum erzeugten Mutator....">
<node CREATED="1472172310187" ID="ID_148408930" MODIFIED="1472172362034" TEXT="via buffer-Handle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
erscheint mir die am wenigsten &#252;berraschende L&#246;sung.
</p>
<p>
und zwar per handle.get()
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1472172348526" ID="ID_1671229453" MODIFIED="1533608413996" TEXT="m&#xf6;gliche Alternativen">
<node CREATED="1472172364204" ID="ID_261496162" MODIFIED="1472172467939" TEXT="Closure gibt TreeMutator&amp; zur&#xfc;ck">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
erscheint mir fehleranf&#228;llig und irref&#252;hrend f&#252;r den Nutzer der Schnittstelle.
</p>
<p>
Denn er mu&#223; zwar das Objekt in das Handle platzieren, dann aber auch noch einen Pointer zur&#252;ckgeben,
</p>
<p>
der dann auch noch NULL sein kann, zum Signalisieren von Fehlern.
</p>
<p>
Ich empfinde das als schlechten Stil
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1472172467934" ID="ID_1258020411" MODIFIED="1472172562992" TEXT="ScopeManager-Interface erweitern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
naja, das w&#228;re billig, aber auch wieder beliebig.
</p>
<p>
Es macht keinen Sinn vom API-Design her, sondern man m&#252;&#223;te es halt machen,
</p>
<p>
weil die Implementierung den Zeiger auf den geschachtelen sub-Mutator umsetzen mu&#223;.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node CREATED="1472172586703" ID="ID_608960091" MODIFIED="1512926192128" TEXT="pr&#xfc;fen">
<node CREATED="1472172593710" ID="ID_1915451499" MODIFIED="1472172608024" TEXT="geschachtelter Scope mu&#xdf; beim Verlassen komplett abgearbeitet sein"/>
<node CREATED="1472172608636" ID="ID_1263541514" MODIFIED="1472172634020" TEXT="wir steigen niemals &#xfc;ber den root-Scope hinaus auf"/>
</node>
<node CREATED="1472172651974" ID="ID_807127372" MODIFIED="1512926192130" TEXT="ins-Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1472172658349" ID="ID_997769381" MODIFIED="1472172806077">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
die Diff-Sprache verlangt,
</p>
<p>
da&#223; vor dem &#214;ffnen des geschachtelten Scopes
</p>
<p>
dieser zumindest einmal per ins &quot;angelegt&quot; wurde.
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1472172711846" ID="ID_146912736" MODIFIED="1472172809794" TEXT="wir haben es hier mit objektwertigen Attributen zu tun">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1472172723853" ID="ID_1560317945" MODIFIED="1472172732503" TEXT="das ist ein sonderbarer Grenzfall"/>
<node CREATED="1472172733307" ID="ID_26853749" MODIFIED="1472172753564" TEXT="man wird die normalerweise auf Impl-Ebene erzeugen"/>
<node CREATED="1472172754136" ID="ID_297078058" MODIFIED="1472172765458" TEXT="ein INS hat dann nichts sinnvolles zu tun"/>
<node CREATED="1472172772494" ID="ID_337827865" MODIFIED="1472172795138" TEXT="default-Implementierung absorbiert das INS stillschweigend">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node CREATED="1465860740971" ID="ID_1662787747" MODIFIED="1512926192131" TEXT="Unit-Test">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1662787747" ENDARROW="Default" ENDINCLINATION="114;0;" ID="Arrow_ID_1608349913" SOURCE="ID_1209021141" STARTARROW="None" STARTINCLINATION="114;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1472122365079" ID="ID_1033283113" MODIFIED="1512926192131" TEXT="Aussagekr&#xe4;ftiges Beispiel-Diff">
<node CREATED="1472122379548" ID="ID_270981817" MODIFIED="1472122384864" TEXT="sollte alle Features vorf&#xfc;hren"/>
<node CREATED="1472122385380" ID="ID_773660909" MODIFIED="1472122391943" TEXT="sollte wichtige Grenzf&#xe4;lle aktivieren"/>
<node CREATED="1472122394387" ID="ID_1262619176" MODIFIED="1472122409477" TEXT="sollte keine sinnlosen Operationen verlangen"/>
</node>
<node CREATED="1472122416040" ID="ID_644657664" MODIFIED="1472122576120" TEXT="Analog zu den Primitiven in TreeDiffBinding_test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das ist ein Versuch, den Code f&#252;r den Leser verst&#228;ndlich zu halten.
</p>
<p>
Die Idee ist, da&#223; es einen high-level Unit-Test gibt, der die gesamte Diff-Anwendung durchspielt
</p>
<p>
und dazu passend einen low-level Unit-Test, der analog die gleichen Operationen macht,
</p>
<p>
allerdings direkt auf dem TreeDiff-Interface durch Aufruf der passenden Primitiv-Operaionen.
</p>
<p>
Letztere m&#252;ssen f&#252;r jede Art von &quot;onion-layer&quot; (konkretes Binding) erneut implementiert
</p>
<p>
und daher auch jeweils eigens per Unit-Test abgedeckt werden.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1472122581698" ID="ID_1932054966" MODIFIED="1472122688070" TEXT="sehr komplexes Binding auf privaten Datentyp">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist hier sinnvoll. Das Binding sollte komplexer sein,
</p>
<p>
als in der Praxis auftretende Bindings. Warum? Weil letztere immer etwas einseitg sind
</p>
<p>
und damit Abk&#252;rzungen im Code-Pfad ausn&#252;tzen. Die Gefahr schlummert aber im Zusammenspiel
</p>
<p>
der konkreten Bindings mit mehreren &quot;onion layers&quot;!
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1465428871136" ID="ID_1015843161" MODIFIED="1512926192131" TEXT="integration mehrerer Bindungs-Layer">
<node CREATED="1469918339329" ID="ID_1427674245" MODIFIED="1469918349660" TEXT="DiffVirtualisedApplication_test"/>
<node CREATED="1469918356432" ID="ID_55400098" MODIFIED="1469918363427" TEXT="Selector korrekt integrieren">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1465428882150" ID="ID_1889489833" MODIFIED="1512926192132" TEXT="komplexer Integrationstest">
<node CREATED="1469918339329" ID="ID_1209021141" MODIFIED="1472219629782" TEXT="DiffVirtualisedApplication_test">
<arrowlink DESTINATION="ID_1662787747" ENDARROW="Default" ENDINCLINATION="114;0;" ID="Arrow_ID_1608349913" STARTARROW="None" STARTINCLINATION="114;0;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1458850101524" HGAP="-22" ID="ID_780586600" MODIFIED="1512926192133" TEXT="TODO" VSHIFT="29">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1458850122091" ID="ID_15024219" MODIFIED="1512926192134" TEXT="Collection-Binding: bessere Fehlermeldungen">
<node CREATED="1458850141920" ID="ID_428365633" MODIFIED="1472498706370" TEXT="bei Signatur-Mismatch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn es ist sehr verwirrend, welche Signatur denn nun die Lambdas haben m&#252;ssen
</p>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_428365633" ENDARROW="Default" ENDINCLINATION="176;0;" ID="Arrow_ID_1501436647" SOURCE="ID_338749301" STARTARROW="None" STARTINCLINATION="176;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1458850154575" ID="ID_725958518" MODIFIED="1472219338982" TEXT="wenn der Default-Matcher greift">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn es kann keinen Default-Matcher geben....
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1458850212503" ID="ID_321552356" MODIFIED="1472498583464" TEXT="Signaturen f&#xfc;r Lambdas dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1465860661877" ID="ID_942624903" MODIFIED="1472498127725" TEXT="Builder-API f&#xfc;r Attribut-Binding dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1465860672852" ID="ID_432641404" MODIFIED="1512926192134" TEXT="Variante zum Attribut-Binding, wobei die Attribut-ID als GenNode::ID gegeben ist">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1472498724880" ID="ID_1122881728" MODIFIED="1472498733392" TEXT="f&#xfc;r sp&#xe4;ter">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1472498734359" ID="ID_888090802" MODIFIED="1472498742262" TEXT="brauchen wir das wirklich">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1460847222865" ID="ID_362820787" MODIFIED="1472219338993" TEXT="abstrakte operationale Semantik der Diff-Anwendung dokumentieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sonst wird niemand Lambdas bereitstellen k&#246;nnen, oder gar Diff-Nachrichten erzeugen.
</p>
<p>
Das ist nun kein spezielles Problem der gew&#228;hlten Implementierungs-Technik, sondern r&#252;hrt daher,
</p>
<p>
da&#223; der Client hier eigentlich ein Protokoll implementieren mu&#223;.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1458850263688" ID="ID_555018476" MODIFIED="1512926192135" TEXT="Zusammenf&#xfc;hren">
<node CREATED="1458850294083" ID="ID_393704697" MODIFIED="1458850302901" TEXT="der normale GenNode-Applikator"/>
<node CREATED="1458850282285" ID="ID_435722140" MODIFIED="1512926192135" TEXT="Pr&#xfc;fen ob sinnvoll">
<node CREATED="1458850328775" ID="ID_1736970011" MODIFIED="1458850333475" TEXT="Indirektionen"/>
<node CREATED="1458850334110" ID="ID_1313695007" MODIFIED="1458850338898" TEXT="Speicherbedarf"/>
<node CREATED="1458850339413" ID="ID_476682196" MODIFIED="1458850359702" TEXT="Aufwand bei der Verwendung"/>
</node>
<node CREATED="1458850306506" ID="ID_425272158" MODIFIED="1458850323212" TEXT="durch Binding f&#xfc;r Tree-Applikator ersetzen"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1461968295826" ID="ID_693317592" MODIFIED="1512926192135" TEXT="pr&#xfc;fen: soll das &#xbb;AFTER&#xab;-Verb aus der Sprache entfernt werden">
<linktarget COLOR="#592379" DESTINATION="ID_693317592" ENDARROW="Default" ENDINCLINATION="577;0;" ID="Arrow_ID_1115282938" SOURCE="ID_1922580473" STARTARROW="Default" STARTINCLINATION="1205;231;"/>
<icon BUILTIN="help"/>
<node CREATED="1461968428712" ID="ID_565746001" MODIFIED="1461968442674" TEXT="es ist n&#xfc;tzlich f&#xfc;r handgeschriegbene Diffs"/>
<node CREATED="1461968443334" ID="ID_1266765273" MODIFIED="1461968454521" TEXT="es vertr&#xe4;gt sich nicht mit gemischten Kindern"/>
<node CREATED="1465428190234" ID="ID_1957591180" MODIFIED="1512926192136" TEXT="Kompromi&#xdf;">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1957591180" ENDARROW="Default" ENDINCLINATION="-27;14;" ID="Arrow_ID_228215960" SOURCE="ID_310892577" STARTARROW="None" STARTINCLINATION="139;3;"/>
<icon BUILTIN="idea"/>
<node CREATED="1465428196730" ID="ID_117877138" MODIFIED="1465428204548" TEXT="belassen"/>
<node CREATED="1465428205352" ID="ID_887510195" MODIFIED="1465428215635" TEXT="akzeptieren, da&#xdf; es nicht immer anwendbar ist"/>
<node CREATED="1465428216271" ID="ID_1296901581" MODIFIED="1465428234145" TEXT="die generische Variante &quot;after Ref::END&quot; ist sehr gut"/>
<node CREATED="1465428236860" ID="ID_339833424" MODIFIED="1465428248614" TEXT="speziell Attribut-Binding unterst&#xfc;tzt zur generische Variante"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1469545751885" ID="ID_660087752" MODIFIED="1469545906061" TEXT="Namensgebung f&#xfc;r generisches Mutator-Binding">
<arrowlink COLOR="#7c4b8e" DESTINATION="ID_263708712" ENDARROW="Default" ENDINCLINATION="-438;877;" ID="Arrow_ID_774958535" STARTARROW="Default" STARTINCLINATION="2134;135;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1472216217388" HGAP="21" ID="ID_1810727202" MODIFIED="1512926192136" TEXT="Semantik der Diff-Sprache" VSHIFT="5">
<node CREATED="1472216261102" ID="ID_1057680407" MODIFIED="1472216264937" TEXT="sinnvoll definiert"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1472216265486" ID="ID_1774905589" MODIFIED="1512926192137" TEXT="sp&#xe4;ter re-evaluieren (Ticket #996)">
<node CREATED="1472216306208" ID="ID_310892577" MODIFIED="1512926192137" TEXT="AFTER">
<arrowlink DESTINATION="ID_1957591180" ENDARROW="Default" ENDINCLINATION="-27;14;" ID="Arrow_ID_228215960" STARTARROW="None" STARTINCLINATION="139;3;"/>
<node CREATED="1473040688153" ID="ID_979711393" MODIFIED="1473040722530" TEXT="bleibt vorerst erhalten">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1473040705207" ID="ID_14067702" MODIFIED="1473040710378" TEXT="kann sinnvoll implementiert werden"/>
<node CREATED="1473040711582" ID="ID_1480176374" MODIFIED="1473040717859" TEXT="ist sehr n&#xfc;tzlich">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1472219973288" ID="ID_587190582" MODIFIED="1512926192139" TEXT="Ref::THIS">
<icon BUILTIN="button_cancel"/>
<node CREATED="1472220009699" ID="ID_1534445515" MODIFIED="1472220054293">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>wenn &#252;berhaupt, </i>dann im Matcher im Binding-Layer implementieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1473040485789" ID="ID_1621538037" MODIFIED="1473040633258" TEXT="nein: f&#xfc;hrt zu verworrener Implementierung bzw. ist unm&#xf6;glich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir haben nun mehrere Layer,
</p>
<p>
und der Selector kann einfach anhand von Ref::THIS keine sinnvolle Entscheidung treffen.
</p>
<p>
Daher versuchen dann alle Layer dieses Element zu behandeln, oder gar keiner
</p>
<p>
</p>
<p>
Und da der Selector <i>nur die Spec anschauen darf, </i>l&#228;&#223;t sich das auch nachher nicht mehr korrigieren
</p>
<p>
</p>
<p>
Daher habe ich mich <b>entschlossen, dieses Sprachkonstrukt zu entfernen</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1473040662653" ID="ID_397737711" MODIFIED="1473040680738">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>entfernt</b>, da schlechtes Design
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1472216312295" ID="ID_149667448" MODIFIED="1512926192140" TEXT="Ref::CHILD">
<icon BUILTIN="button_cancel"/>
<node CREATED="1472219981838" ID="ID_117724515" MODIFIED="1472219987506" TEXT="was genau soll das sein??"/>
<node CREATED="1472219987983" ID="ID_555190066" MODIFIED="1472219997032" TEXT="was ist der Unterschied zu Ref::THIS"/>
<node CREATED="1472219998405" ID="ID_1294425222" MODIFIED="1472220005255" TEXT="funktioniert das &#xfc;berhaupt noch??"/>
<node CREATED="1473040662653" ID="ID_1838404392" MODIFIED="1473040680738">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>entfernt</b>, da schlechtes Design
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1458850387823" HGAP="19" ID="ID_415691337" MODIFIED="1512926192141" TEXT="allgemein" VSHIFT="13">
<node CREATED="1458850397158" ID="ID_1336568549" MODIFIED="1512926192141" TEXT="GenNode">
<node CREATED="1458850406396" ID="ID_1837583550" MODIFIED="1512926192141" TEXT="string-Repr&#xe4;sentation der Payload">
<icon BUILTIN="hourglass"/>
<node CREATED="1473352291785" ID="ID_1639951853" MODIFIED="1473352300715" TEXT="vorerst nicht ben&#xf6;tigt"/>
<node CREATED="1473352306190" ID="ID_1647542723" MODIFIED="1473352310810" TEXT="w&#xe4;re besser da&#xdf; nicht"/>
<node CREATED="1473352312206" ID="ID_1150422227" MODIFIED="1473352316377" TEXT="Entscheidung vertagt"/>
</node>
<node COLOR="#338800" CREATED="1458850422587" ID="ID_1552868803" MODIFIED="1458851592866" TEXT="Metafunktion f&#xfc;r m&#xf6;gliche Payload">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1458850437017" ID="ID_592865755" MODIFIED="1512926192142" TEXT="Planting-Handle">
<node CREATED="1458850456134" ID="ID_1020391699" MODIFIED="1473352276059" TEXT="Zwischenschicht einziehen im TreeMutator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
anscheinend nicht notwendig
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1458850463389" ID="ID_769403943" MODIFIED="1473352257250" TEXT="Generische Impl herausl&#xf6;sen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1458850471228" ID="ID_167381938" MODIFIED="1473352333631" TEXT="Unit-Test hierf&#xfc;r">
<icon BUILTIN="bell"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1473352396906" HGAP="-48" ID="ID_392196966" MODIFIED="1518487921086" TEXT="Integration" VSHIFT="25">
<icon BUILTIN="button_ok"/>
<node CREATED="1473352465473" ID="ID_158999012" MODIFIED="1518487921086" TEXT="in Tangible">
<icon BUILTIN="button_ok"/>
<node CREATED="1475250911087" ID="ID_1042895809" MODIFIED="1518487921086" TEXT="zu kl&#xe4;ren">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1475250919286" ID="ID_211228413" MODIFIED="1518487921086" TEXT="wie sieht die initiale (diff)Nachricht aus">
<icon BUILTIN="help"/>
<node CREATED="1475355977081" ID="ID_1302138609" MODIFIED="1518487921087" TEXT="dediziertes API"/>
<node CREATED="1475356001462" ID="ID_1339165799" MODIFIED="1518487921087" TEXT="Nexus zerlegt das"/>
<node CREATED="1475356007860" ID="ID_1405013613" MODIFIED="1518487921087" TEXT="l&#xf6;st direkt Anwendung aus"/>
</node>
<node CREATED="1475251507800" ID="ID_1645310973" MODIFIED="1518487921087" TEXT="wo/wie wird Diff-Nachricht behandelt">
<icon BUILTIN="help"/>
<node CREATED="1475355925880" ID="ID_464242009" MODIFIED="1518487921087" TEXT="...analog zur &quot;mark&quot;-Nachricht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
diese wird im Nexus behandelt, in dem die Tangible::mark()-Methode aktiviert wird
</li>
<li>
in dieser wiederum steckt eine Default-Handler-Sequenz, plus ein Strategy-Pattern
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1475250930756" ID="ID_509435943" MODIFIED="1518487921087" TEXT="wo steckt der Diff selber">
<icon BUILTIN="help"/>
<node CREATED="1475251013513" ID="ID_1464747905" MODIFIED="1518487921087" TEXT="Diff == iterierbare &lt;DiffStep&gt;-Sequenz">
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1475251032255" ID="ID_824967618" MODIFIED="1518487921087" TEXT="pa&#xdf;t nicht in eine GenNode">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1475355960899" ID="ID_1468155641" MODIFIED="1518487921087">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Marker-Typ <b>MutationMessage</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1475250947858" ID="ID_1438298132" MODIFIED="1518487921087" TEXT="wer ist der Kommunikationspartner">
<icon BUILTIN="help"/>
<node CREATED="1475356021762" ID="ID_1261042951" MODIFIED="1518487921087" TEXT="irrelevant, da abstrahiert"/>
</node>
<node CREATED="1475250957097" ID="ID_1839306136" MODIFIED="1518487921087" TEXT="wie kennt das Tangible diesen Partner">
<icon BUILTIN="help"/>
</node>
</node>
<node COLOR="#990000" CREATED="1475342135193" HGAP="31" ID="ID_336806935" MODIFIED="1525124215230" TEXT="Problem: Diff-Nachricht" VSHIFT="7">
<arrowlink COLOR="#a7afc1" DESTINATION="ID_1363153586" ENDARROW="Default" ENDINCLINATION="931;-187;" ID="Arrow_ID_324877454" STARTARROW="Default" STARTINCLINATION="835;592;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1475342157302" ID="ID_1383404259" MODIFIED="1475342166025" TEXT="&quot;Diff&quot; ist kein Typ"/>
<node CREATED="1475342185707" ID="ID_787925049" MODIFIED="1475342190662" TEXT="Lumiera-Iteratoren sind generisch"/>
<node CREATED="1475342218598" ID="ID_686706998" MODIFIED="1502453541592" TEXT="Alternativen">
<icon BUILTIN="idea"/>
<node CREATED="1475342242123" ID="ID_996905586" MODIFIED="1512926192149" TEXT="implizite Diff-Facade">
<icon BUILTIN="button_cancel"/>
<node CREATED="1475342267168" ID="ID_1015562836" MODIFIED="1475342372677" TEXT="nur ID eines Diff senden..."/>
<node CREATED="1475342283158" ID="ID_859890341" MODIFIED="1475342287497" TEXT="Diff ist dann hinterlegt"/>
<node CREATED="1475342309914" ID="ID_1398047498" MODIFIED="1475342360640" TEXT="Wo? im GuiModel??">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1475342301331" ID="ID_496549205" MODIFIED="1475342346474" TEXT="zwar implizit, aber starr">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1475342230013" ID="ID_129545687" MODIFIED="1502453545312" TEXT="UI-Bus-Interface erweitern">
<icon BUILTIN="button_ok"/>
<node CREATED="1475342469085" ID="ID_218240539" MODIFIED="1475342487060" TEXT="Ausgangspunkt: DiffMutable">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1475342391631" ID="ID_1330153391" MODIFIED="1502599884276" TEXT="Transport per MutationMessage">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1475342401278" ID="ID_1020722080" MODIFIED="1502453642509" TEXT="abstrakte Koppelung"/>
</node>
</node>
<node CREATED="1475444207483" ID="ID_920212553" MODIFIED="1502550756115" TEXT="Festlegung: Tangible als Zieltyp">
<linktarget COLOR="#9287b2" DESTINATION="ID_920212553" ENDARROW="Default" ENDINCLINATION="398;0;" ID="Arrow_ID_52222580" SOURCE="ID_62520790" STARTARROW="None" STARTINCLINATION="360;0;"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1475356047496" HGAP="29" ID="ID_667427572" MODIFIED="1502454682718" TEXT="Implementierung" VSHIFT="14">
<arrowlink COLOR="#71e5ac" DESTINATION="ID_60387485" ENDARROW="Default" ENDINCLINATION="50;-12;" ID="Arrow_ID_1384671312" STARTARROW="None" STARTINCLINATION="12;195;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1475356059342" ID="ID_1039482059" MODIFIED="1475444176904" TEXT="wie wird Diff eingebettet">
<icon BUILTIN="help"/>
</node>
<node CREATED="1475439403514" ID="ID_1619035258" MODIFIED="1502453694045" TEXT="Entscheidung">
<icon BUILTIN="yes"/>
<node CREATED="1502453744365" ID="ID_452337305" MODIFIED="1512926192150" TEXT="Schritt-1">
<icon BUILTIN="button_cancel"/>
<node CREATED="1475439416185" ID="ID_963854956" MODIFIED="1475444176904" TEXT="Builder-Funktion nicht sinnvoll">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....denn dann m&#252;&#223;te der Benutzer die Mechanik sehr genau verstehen, und stets eine auto-Variable definieren.
</p>
<p>
Sinnvoll w&#228;re dieser Ansatz nur, wenn das UI-Bus-API eine MutationMessage const&amp; nehmen w&#252;rde,
</p>
<p>
denn dann k&#246;nnte man den Builder-Aufruf inline schreiben.
</p>
<p>
Da wir aber stets den Diff moven und dann iterieren, scheidet const&amp; aus
</p>
<p>
Und f&#252;r eine reine Ref erzeugt C++ niemals eine anonyme Instanz!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1475439429055" ID="ID_1383518557" MODIFIED="1475444176904" TEXT="also: embeded Buffer">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und diesen mit VTable best&#252;cken.
</p>
<p>
Daf&#252;r wird die &#228;u&#223;ere H&#252;lle non-virtual
</p>
<p>
und kann noncopyable gemacht werden..
</p>
<p>
Das erlaubt dem Benutzer, einfach zu schreiben
</p>
<p>
MutationMessage(blaBlubb())
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1475439436134" ID="ID_583247605" MODIFIED="1475444176904" TEXT="verwende InPlaceBuffer"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1475356066853" ID="ID_821643910" MODIFIED="1533608413996" TEXT="Problem: Puffergr&#xf6;&#xdf;e">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1475444135180" ID="ID_1434100612" MODIFIED="1475444176904" TEXT="sinnvoll: Spezialfall f&#xfc;r Tangible"/>
<node CREATED="1475444145458" ID="ID_62520790" MODIFIED="1502550756115" TEXT="kann dann DiffSizeTraits spezialisieren">
<arrowlink COLOR="#9287b2" DESTINATION="ID_920212553" ENDARROW="Default" ENDINCLINATION="398;0;" ID="Arrow_ID_52222580" STARTARROW="None" STARTINCLINATION="360;0;"/>
</node>
</node>
</node>
<node CREATED="1502453753155" ID="ID_89098030" MODIFIED="1533303965804" TEXT="Schritt-2">
<linktarget COLOR="#bdbad3" DESTINATION="ID_89098030" ENDARROW="Default" ENDINCLINATION="600;-1189;" ID="Arrow_ID_554743885" SOURCE="ID_1584846573" STARTARROW="None" STARTINCLINATION="1459;870;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1502453814499" ID="ID_727706359" MODIFIED="1533608413997" TEXT="Puffer-Ansatz...">
<node CREATED="1502453828721" ID="ID_1337002332" MODIFIED="1502453830621" TEXT="komplex"/>
<node CREATED="1502453831233" ID="ID_443299660" MODIFIED="1502453835332" TEXT="unflexibel"/>
<node CREATED="1502453842463" ID="ID_1995272746" MODIFIED="1502453861969" TEXT="unn&#xf6;tiges Kopieren"/>
<node CREATED="1502453836112" ID="ID_1547334309" MODIFIED="1502453841067" TEXT="insgeheim doch gekoppelt"/>
</node>
<node CREATED="1502454064930" ID="ID_1876117833" MODIFIED="1502454072133" TEXT="brauche Entkoppelung"/>
<node CREATED="1502454072649" ID="ID_1325287539" MODIFIED="1533608413997">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Abstraktion
</p>
<p>
nach beiden Setien
</p>
</body>
</html></richcontent>
<node CREATED="1502454089783" ID="ID_104095093" MODIFIED="1502454093290" TEXT="zum Erzeuger"/>
<node CREATED="1502454093814" ID="ID_1063793799" MODIFIED="1502454099337" TEXT="zum Empf&#xe4;nger"/>
</node>
<node CREATED="1502454117907" ID="ID_995116747" MODIFIED="1533608413998" TEXT="abstrakter Iterator">
<icon BUILTIN="forward"/>
<node CREATED="1502454128617" ID="ID_1019985292" MODIFIED="1502454135844" TEXT="mu&#xdf; Interface sein"/>
<node CREATED="1502454136368" ID="ID_1196043940" MODIFIED="1502454138836" TEXT="IterSource"/>
<node CREATED="1502454139496" FOLDED="true" ID="ID_455247221" MODIFIED="1533608416326" TEXT="Problem: &#xdc;bergabe">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1502454152431" ID="ID_1452648004" MODIFIED="1502454163000" TEXT="Diff &#xfc;ber Thread-Grenzen hinweg"/>
<node CREATED="1502454163685" ID="ID_1591230048" MODIFIED="1502454169704" TEXT="Pull-Prinzip"/>
<node CREATED="1502454183682" ID="ID_1647826766" MODIFIED="1502454194490" TEXT="Callback aus anderen Thread"/>
<node CREATED="1502454170228" ID="ID_1401327421" MODIFIED="1502454181097" TEXT="mu&#xdf; Erzeugungskontext weitergeben">
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1475449460694" HGAP="13" ID="ID_425831735" MODIFIED="1525124215236" TEXT="Prototyp: MockElm" VSHIFT="32">
<icon BUILTIN="button_ok"/>
<node CREATED="1475449491378" ID="ID_1309107114" MODIFIED="1475449505548" TEXT="f&#xfc;hre Spiel-Attribute und Kinder ein"/>
<node CREATED="1475449507224" ID="ID_1783640184" MODIFIED="1512926192154" TEXT="Kinder">
<node CREATED="1475449530565" ID="ID_284330532" MODIFIED="1475449531825" TEXT="collection von MockElm"/>
<node CREATED="1475449532556" ID="ID_1804332542" MODIFIED="1487275490779" TEXT="MockElm ist noncopyable">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...aus gutem Grund!
</p>
<p>
Der Nexus speichert n&#228;mlich eine direkte Referenz in der Routingtabelle
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1475449544379" ID="ID_1132064603" MODIFIED="1475449583284" TEXT="also nur per shared_ptr">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1475449589725" ID="ID_460570633" MODIFIED="1512926192155" TEXT="Attribute">
<node CREATED="1475449594060" HGAP="27" ID="ID_1311933287" MODIFIED="1512926192155" TEXT="Typ" VSHIFT="14">
<icon BUILTIN="help"/>
<node CREATED="1475449959916" ID="ID_573697431" MODIFIED="1475449966244" TEXT="map&lt;string,string&gt;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1475449611754" HGAP="33" ID="ID_1285123321" MODIFIED="1512926192157" TEXT="Grundsatzfrage: Attribut-Map" VSHIFT="1">
<icon BUILTIN="help"/>
<node CREATED="1475449654357" ID="ID_1802368116" MODIFIED="1475449659480" TEXT="Ordnung / Unordnung"/>
<node CREATED="1475449660020" ID="ID_286191859" MODIFIED="1475449740005" TEXT="Diff geht von Listen-Ordnung aus">
<icon BUILTIN="info"/>
</node>
<node CREATED="1475449777532" ID="ID_476663339" MODIFIED="1475449893670" TEXT="Symptom: Compile-Fehler">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
Map hat kein emplace_back
</li>
<li>
Map hat kein back()
</li>
</ul>
<p>
Beides ist erst mal sinnvoll. Map hat zwar ein emplace, aber das f&#252;gt eben <i>irgendwo</i>&#160;ein
</p>
<p>
Und es gibt nicht sowas wie das &quot;zuletzt behandelte&quot; Element
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1475506967550" HGAP="42" ID="ID_1112268061" MODIFIED="1475507021278" TEXT="ist aber implementierbar" VSHIFT="8">
<arrowlink COLOR="#9f96d9" DESTINATION="ID_1853473792" ENDARROW="Default" ENDINCLINATION="41;-121;" ID="Arrow_ID_503281678" STARTARROW="Default" STARTINCLINATION="1873;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1475449719180" ID="ID_6178930" MODIFIED="1533608413999" TEXT="Sinnvoll das zu erweitern">
<icon BUILTIN="help"/>
<node CREATED="1475450034810" FOLDED="true" ID="ID_445949466" MODIFIED="1533608416327" TEXT="pro">
<icon BUILTIN="button_cancel"/>
<node CREATED="1475450042009" FOLDED="true" ID="ID_1941838908" MODIFIED="1533608416017" TEXT="man k&#xf6;nnte">
<node CREATED="1475450050824" ID="ID_1660008285" MODIFIED="1475450053243" TEXT="ins"/>
<node CREATED="1475450055775" ID="ID_1213643084" MODIFIED="1475450058698" TEXT="after::END"/>
<node CREATED="1475450064470" ID="ID_754885592" MODIFIED="1475450069265" TEXT="assign / mutate"/>
</node>
<node CREATED="1475450148771" FOLDED="true" ID="ID_736367412" MODIFIED="1533608416018">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Reihenfolge
</p>
<p>
erhalten!
</p>
</body>
</html></richcontent>
<node CREATED="1475450179591" ID="ID_793985703" MODIFIED="1475450197936" TEXT="dann sogar del"/>
<node CREATED="1475450053927" ID="ID_1110207658" MODIFIED="1475450055018" TEXT="pick"/>
</node>
</node>
<node CREATED="1475450038953" FOLDED="true" ID="ID_1285250844" MODIFIED="1533608416329" TEXT="con">
<icon BUILTIN="button_ok"/>
<node CREATED="1475450285336" ID="ID_288261682" MODIFIED="1475450300712" TEXT="kein Schutz gegen sinnlose Operationen"/>
<node CREATED="1475450229944" ID="ID_957217069" MODIFIED="1475450239042" TEXT="Reihenfolge ist Impl-Detail"/>
<node CREATED="1475450240318" ID="ID_1993698586" MODIFIED="1475450376320" TEXT="Hashmap">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...hat eine &quot;zuf&#228;llige&quot; Reihenfolge, die von den Hash-Werten der gespeicherten Daten abh&#228;ngt.
</p>
<p>
Das bricht mit unserem grunds&#228;tzlichen Konzept der <b>kongruenten</b>&#160; Daten-Strukturen
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1475450272442" ID="ID_567969130" MODIFIED="1475450429317" TEXT="inkompatibel mit GenNode">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Ein Diff, das von einer ETD gezogen wurde,
</p>
<p>
l&#228;&#223;t sich nicht auf eine Map-Implementierung aufspielen
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1475506346525" ID="ID_574367406" MODIFIED="1533608414015" VSHIFT="6">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Entscheidung
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1475506358863" ID="ID_120379432" MODIFIED="1475506391795" TEXT="wird nicht empfohlen">
<font ITALIC="true" NAME="SansSerif" SIZE="13"/>
</node>
<node CREATED="1475506368078" ID="ID_1568414977" MODIFIED="1475506381941" TEXT="vollst&#xe4;ndigkeitshalber unterst&#xfc;tzt">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1475506411768" ID="ID_583086851" MODIFIED="1475506507414" TEXT="kann sinnvoll sein...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...zum Beispiel wie grade hier, beim MockElm
</p>
<p>
das wird vermutlich niemals wirklich in einem vollen Diff-Zusammenhang gebraucht.
</p>
<p>
</p>
<p>
Und dann ist unbestreitbar eine Map eine sehr einfache Implementierung
</p>
<p>
und auch im Diff-Applikator nicht wirklich schwierig zu unterst&#252;tzen
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="10"/>
</node>
<node COLOR="#338800" CREATED="1475506514203" FOLDED="true" HGAP="45" ID="ID_1183193114" MODIFIED="1533608416331" TEXT="Begr&#xfc;ndung" VSHIFT="23">
<node CREATED="1475506528937" ID="ID_1971084550" MODIFIED="1475506538324" TEXT="es verletzt die Prinzipien"/>
<node CREATED="1475506538983" ID="ID_1555995664" MODIFIED="1475506547491" TEXT="insofern aber wie Feld-Attribute auch"/>
<node CREATED="1475506549886" ID="ID_275560362" MODIFIED="1475506558609" TEXT="eingeschr&#xe4;nkt unterst&#xfc;tzbar"/>
<node CREATED="1475506559309" ID="ID_1767038604" MODIFIED="1475506896798" TEXT="Objekt -&gt; ETD -&gt; Objekt">
<arrowlink COLOR="#807bce" DESTINATION="ID_1808149320" ENDARROW="Default" ENDINCLINATION="671;0;" ID="Arrow_ID_1677374853" STARTARROW="Default" STARTINCLINATION="994;0;"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1475546298721" HGAP="24" ID="ID_1646756860" MODIFIED="1475546316260" TEXT="vorkonfiguriertes TreeMutator-Binding" VSHIFT="10">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1473352470896" HGAP="21" ID="ID_864450713" MODIFIED="1518487921087" TEXT="Unit-Tests" VSHIFT="18">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1473352475375" ID="ID_731425414" MODIFIED="1518487921087" TEXT="AbstractTangible_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1473352482502" ID="ID_1891838260" MODIFIED="1518487921087" TEXT="BusTerm_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1502453280050" ID="ID_60387485" MODIFIED="1518487921087" TEXT="MutationMessage_test">
<linktarget COLOR="#71e5ac" DESTINATION="ID_60387485" ENDARROW="Default" ENDINCLINATION="50;-12;" ID="Arrow_ID_1384671312" SOURCE="ID_667427572" STARTARROW="None" STARTINCLINATION="12;195;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1502459245238" ID="ID_1193318639" MODIFIED="1518487921087" TEXT="Basisfall: Producer / Consumer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1502459264523" ID="ID_640036069" MODIFIED="1518487921087" TEXT="Builder">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1502459259123" ID="ID_372973959" MODIFIED="1518487921087" TEXT="Diagnose-Dekorator">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1502459266371" ID="ID_883276790" MODIFIED="1518487921087" TEXT="Integrationstest">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1448658726090" HGAP="18" ID="ID_37610818" MODIFIED="1518487921087" TEXT="Commands" VSHIFT="36">
<icon BUILTIN="button_ok"/>
<node CREATED="1448658755071" ID="ID_1033500384" MODIFIED="1518487921087" TEXT="wie definieren">
<icon BUILTIN="help"/>
<node CREATED="1448658974985" ID="ID_974207484" MODIFIED="1518487921087" TEXT="Definition braucht Session-Modell"/>
<node CREATED="1448659018412" ID="ID_1988707066" MODIFIED="1518487921087" TEXT="zentral">
<icon BUILTIN="button_ok"/>
<node CREATED="1448659021803" ID="ID_1800666256" MODIFIED="1518487921087" TEXT="nah an der Session"/>
<node CREATED="1448659026042" ID="ID_831434285" MODIFIED="1518487921087" TEXT="ein Schnittstellen-Paket"/>
<node CREATED="1448669306480" ID="ID_1009169288" MODIFIED="1518487921087">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: <b><font color="#8d02e1">InteractionControl</font></b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5f0ac8" DESTINATION="ID_329609486" ENDARROW="Default" ENDINCLINATION="219;-148;" ID="Arrow_ID_1101633958" STARTARROW="None" STARTINCLINATION="-315;0;"/>
<linktarget COLOR="#b567c4" DESTINATION="ID_1009169288" ENDARROW="Default" ENDINCLINATION="254;0;" ID="Arrow_ID_200182911" SOURCE="ID_1002329025" STARTARROW="None" STARTINCLINATION="162;0;"/>
</node>
</node>
<node CREATED="1448659051823" ID="ID_1995941804" MODIFIED="1518487921087" TEXT="dezentral">
<icon BUILTIN="button_cancel"/>
<node CREATED="1448659059734" ID="ID_1682547207" MODIFIED="1518487921087" TEXT="im GUI-Kontext"/>
<node CREATED="1448659079044" ID="ID_508900352" MODIFIED="1518487921087" TEXT="mu&#xdf; Session referenzieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was andernfalles komplett vermeidbar w&#228;re,
</p>
<p>
da im &#220;brigen das UI-Modell nur mit LUIDs und generischen Namen arbeitet
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1448658773972" ID="ID_1826752340" MODIFIED="1518487921087" TEXT="referenzieren">
<node CREATED="1448659283641" ID="ID_209203268" MODIFIED="1518487921087" TEXT="letztlich ein String"/>
<node CREATED="1448659347728" ID="ID_508578010" MODIFIED="1518487921087" TEXT="Konstante bei der Command-Funktion"/>
<node CREATED="1448659334058" ID="ID_683316035" MODIFIED="1518487921087" TEXT="Makro + Namenskonvention">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1448683561882" ID="ID_839961131" MODIFIED="1518487921087">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Idee: <b>context-bound</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#81759f" DESTINATION="ID_1679641405" ENDARROW="Default" ENDINCLINATION="604;-108;" ID="Arrow_ID_1210299906" STARTARROW="None" STARTINCLINATION="702;0;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1448658819990" FOLDED="true" ID="ID_405705528" MODIFIED="1535638840052" TEXT="API explizit">
<icon BUILTIN="help"/>
<node CREATED="1448658861760" ID="ID_1373851015" MODIFIED="1518487921087" TEXT="pro">
<node CREATED="1448658867680" ID="ID_766147415" MODIFIED="1518487921087" TEXT="sauber"/>
<node CREATED="1448659206251" ID="ID_1542057563" MODIFIED="1518487921087" TEXT="nah am konkreten Widget"/>
<node CREATED="1448659217489" ID="ID_214385592" MODIFIED="1518487921087" TEXT="integriert in sonstiges UI-Verhalten"/>
<node CREATED="1448658947429" ID="ID_302940509" MODIFIED="1518487921087" TEXT="Fehlaufrufe ausgeschlossen"/>
</node>
<node CREATED="1448658873767" ID="ID_1028163948" MODIFIED="1518487921087" TEXT="con">
<node CREATED="1448658883341" ID="ID_543652783" MODIFIED="1518487921087" TEXT="Aufwand"/>
<node CREATED="1448658885973" ID="ID_1734626095" MODIFIED="1518487921087" TEXT="ctxt-Men&#xfc; aufbauen"/>
<node CREATED="1448659158177" ID="ID_1496901578" MODIFIED="1518487921087" TEXT="Namen m&#xfc;ssen matchen"/>
<node CREATED="1448659163089" ID="ID_431765107" MODIFIED="1518487921087" TEXT="man mu&#xdf; Korrektheit pr&#xfc;fen"/>
<node CREATED="1448683674443" ID="ID_1931753413" MODIFIED="1518487921087" TEXT="Einheitlichkeit gef&#xe4;hrdet"/>
</node>
</node>
<node CREATED="1448683454504" HGAP="42" ID="ID_510876193" MODIFIED="1518487921087" TEXT="API generisch" VSHIFT="-1">
<icon BUILTIN="button_ok"/>
<node CREATED="1448683636672" ID="ID_1485949406" MODIFIED="1518487921087" TEXT="verhindert Wildwuchs"/>
<node CREATED="1448683475853" ID="ID_24599710" MODIFIED="1518487921087">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Command und Verhaltensmuster
</p>
<p>
bleiben zusammen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448683496794" ID="ID_821199097" MODIFIED="1518487921087" TEXT="unterst&#xfc;tzt weiterreichende Konzepte">
<node CREATED="1448683518496" ID="ID_1987782234" MODIFIED="1518487921087" TEXT="Perspektiven"/>
<node CREATED="1448683522359" ID="ID_723377610" MODIFIED="1518487921087" TEXT="Fokus-Konzept"/>
<node CREATED="1448683525822" ID="ID_1395068730" MODIFIED="1518487921087" TEXT="Gesten"/>
</node>
</node>
<node CREATED="1448691191042" FOLDED="true" HGAP="35" ID="ID_1710578352" MODIFIED="1535638813532" TEXT="Lebenszyklus" VSHIFT="-1">
<font NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="go"/>
<node CREATED="1448691210544" ID="ID_242337741" MODIFIED="1448691218906" TEXT="Command-Skript: im Code"/>
<node CREATED="1448691219614" ID="ID_992447056" MODIFIED="1512926192187" TEXT="Bildungs-Regeln: ebenda">
<node CREATED="1448691243259" ID="ID_692910736" MODIFIED="1448691256433" TEXT="Frage: wie injizieren">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1448691264512" ID="ID_1193936433" MODIFIED="1512926192187" TEXT="InvocationTrail erstellen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1450490467952" ID="ID_1453525628" MODIFIED="1450490480705" TEXT="verwendet zwei GenNode-bindings"/>
<node CREATED="1450490481270" ID="ID_1603770702" MODIFIED="1450490504407" TEXT="fertig implementiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was ich einen Monat sp&#228;ter schon wieder vergessen hatte...
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492442129540" ID="ID_284311341" MODIFIED="1492442138750" TEXT="Konzept wurde verworfen">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1492442175974" ID="ID_23690520" MODIFIED="1512926192189" TEXT="Instanz-Management">
<icon BUILTIN="button_ok"/>
<node CREATED="1492442182205" ID="ID_1076303592" MODIFIED="1492442188344" TEXT="erfolgt automatisch und transparent"/>
<node CREATED="1492442190644" ID="ID_1654649004" MODIFIED="1492442204598" TEXT="kann optional explizit gemacht werden (Command-Cycle)"/>
<node CREATED="1492442207674" ID="ID_259490518" MODIFIED="1492442212700" TEXT="CommandInstanceManager"/>
<node CREATED="1492442213265" ID="ID_1455743867" MODIFIED="1492442221044" TEXT="sitzt in SessionCommandService"/>
<node CREATED="1448692240015" ID="ID_58254695" MODIFIED="1448692245826" TEXT="es geht um Allokationen in Proc"/>
<node CREATED="1448692247478" ID="ID_1199512787" MODIFIED="1492442343267" TEXT="Instanz">
<node CREATED="1492442343855" ID="ID_1475597297" MODIFIED="1492442351322" TEXT="benannt == Eintrag in der Command-Registry"/>
<node CREATED="1492442352269" ID="ID_1319878028" MODIFIED="1492442362576" TEXT="anonym == nur smart-Handle">
<node CREATED="1492442366676" ID="ID_52781679" MODIFIED="1492442372625" TEXT="Regelfall">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1492442373619" ID="ID_752576891" MODIFIED="1492442378644" TEXT="Prototype-Pattern">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1492442383849" ID="ID_1676576926" MODIFIED="1492442399303" TEXT="CommandDef == Prototyp">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1448691315849" ID="ID_1198560195" MODIFIED="1492442332396" TEXT="Bindugs-Regel">
<icon BUILTIN="hourglass"/>
<node CREATED="1448691343406" ID="ID_642235825" MODIFIED="1448691350558" TEXT="funktor"/>
<node CREATED="1448691324304" ID="ID_1103199702" MODIFIED="1448691338522" TEXT="definiert Bezugs-Quellen"/>
<node CREATED="1448691355340" ID="ID_724965495" MODIFIED="1448691465633" TEXT="liefert Record&lt;GenNode&gt;"/>
<node CREATED="1452560897720" ID="ID_1869468443" MODIFIED="1492442561266" TEXT="vorerst noch nicht impl...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hier geht es darum, eine Regel zu generieren,
</p>
<p>
die dann den zugrundeliegenden Command-Prototyp automatisch mit konkreten Aufrufparametern binden kann,
</p>
<p>
sobald bestimmte Umst&#228;nde im UI einschl&#228;gig werden
</p>
<p>
</p>
<p>
Das ist ein erweiterter / komplexerer Anwendungsfall.
</p>
<p>
Der einfache Standard-Anwendungsfall ist, direkt die Command-ID zu senden
</p>
<p>
das reicht f&#252;r die erste Integrationsrunde v&#246;llig aus
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1492443650460" ID="ID_223885519" MODIFIED="1512926192189" TEXT="einfacher direkter Aufruf">
<icon BUILTIN="button_ok"/>
<node CREATED="1492443656859" ID="ID_1242818576" MODIFIED="1492443663663" TEXT="Tangible / Bus-Term"/>
<node CREATED="1492443664602" ID="ID_263362527" MODIFIED="1492443679390" TEXT="reine Command-ID">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Instanz-Management ist automatisch
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492443693582" ID="ID_1398931015" MODIFIED="1492443713695" TEXT="Argumente direkt in diff::Record einpacken"/>
<node CREATED="1492443715587" ID="ID_1695168160" MODIFIED="1492443719574" TEXT="dieser wird durchgereicht"/>
<node CREATED="1492443720234" ID="ID_1597671253" MODIFIED="1492443733860" TEXT="und im Command-Framework per Visitor ausgewertet"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1448669332204" FOLDED="true" HGAP="76" ID="ID_329609486" MODIFIED="1557498707235" TEXT="InteractionControl">
<arrowlink COLOR="#b694bf" DESTINATION="ID_430949603" ENDARROW="Default" ENDINCLINATION="178;425;" ID="Arrow_ID_1062305149" STARTARROW="Default" STARTINCLINATION="-629;-2354;"/>
<linktarget COLOR="#715f85" DESTINATION="ID_329609486" ENDARROW="Default" ENDINCLINATION="-368;-2533;" ID="Arrow_ID_575977434" SOURCE="ID_932507511" STARTARROW="None" STARTINCLINATION="1555;-260;"/>
<linktarget COLOR="#5f0ac8" DESTINATION="ID_329609486" ENDARROW="Default" ENDINCLINATION="219;-148;" ID="Arrow_ID_1101633958" SOURCE="ID_1009169288" STARTARROW="None" STARTINCLINATION="-315;0;"/>
<font NAME="SansSerif" SIZE="15"/>
<node CREATED="1448669439582" HGAP="41" ID="ID_307071507" MODIFIED="1518487921087" TEXT="ad-hoc oder systematisch" VSHIFT="-2">
<icon BUILTIN="help"/>
<node CREATED="1448669512988" ID="ID_1184892495" MODIFIED="1518487921087" TEXT="fundamentale Frage"/>
<node CREATED="1448669517796" ID="ID_1165902172" MODIFIED="1518487921087" TEXT="f&#xfc;r mich eigentlich sofort klar"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1448669527274" ID="ID_129855368" MODIFIED="1518487921087" TEXT="aber Vorsicht">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1448669556607" ID="ID_493021007" MODIFIED="1518487921087" TEXT="das wird nie fertig...">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1448669562478" ID="ID_869338862" MODIFIED="1518487921087" TEXT="niemand wird es verstehen">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1448669567765" ID="ID_1254931544" MODIFIED="1518487921087" TEXT="b&#xfc;rstet die UI-Toolkits &#xbb;gegen den Strich&#xab;"/>
</node>
</node>
<node CREATED="1448669636900" HGAP="51" ID="ID_1111001545" MODIFIED="1518487921087" TEXT="Einf&#xfc;hren einer Zwischenebene" VSHIFT="-24">
<node CREATED="1448669646474" ID="ID_1590745326" MODIFIED="1518487921087" TEXT="hyper-r&#xe4;umliche Anordnung"/>
<node CREATED="1448669657633" ID="ID_1054403772" MODIFIED="1518487921087" TEXT="Focus-Bewegung"/>
<node CREATED="1448669662417" ID="ID_828883183" MODIFIED="1518487921087" TEXT="Einteilung in Arbeits-R&#xe4;ume"/>
<node CREATED="1448669679694" ID="ID_729190965" MODIFIED="1518487921087" TEXT="Konfigurierbarkeit"/>
<node CREATED="1448669675495" ID="ID_1257367197" MODIFIED="1518487921088" TEXT="Perspektiven"/>
<node CREATED="1448669699148" ID="ID_1264820517" MODIFIED="1518487921088" TEXT="Gesten"/>
</node>
<node CREATED="1448669742334" HGAP="41" ID="ID_1679641405" MODIFIED="1518487921088" TEXT="InteractionStateManager" VSHIFT="-4">
<linktarget COLOR="#81759f" DESTINATION="ID_1679641405" ENDARROW="Default" ENDINCLINATION="604;-108;" ID="Arrow_ID_1210299906" SOURCE="ID_839961131" STARTARROW="None" STARTINCLINATION="702;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<node CREATED="1448669816476" ID="ID_1895677880" MODIFIED="1518487921088" TEXT="lauscht als Observer mit"/>
<node CREATED="1448669824243" ID="ID_1225519733" MODIFIED="1518487921088" TEXT="h&#xe4;ngt sich in diverse Punkte ein"/>
<node CREATED="1448669838745" ID="ID_1663939304" MODIFIED="1518487921088" TEXT="h&#xe4;llt ein lokales Zustansmodell"/>
<node CREATED="1448669854119" ID="ID_874080079" MODIFIED="1518487921088" TEXT="wertet Regeln aus"/>
<node CREATED="1448669869973" ID="ID_1259588429" MODIFIED="1518487921088" TEXT="sendet Enablement">
<node CREATED="1448669889514" ID="ID_1191247113" MODIFIED="1518487921088" TEXT="an die konkreten Trigger-Orte"/>
<node CREATED="1448669899113" ID="ID_990871123" MODIFIED="1518487921088" TEXT="er sendet jeweils die passende Command-ID"/>
</node>
</node>
<node CREATED="1487213803525" HGAP="36" ID="ID_735655054" MODIFIED="1518487921088" TEXT="InteractionDirector" VSHIFT="-3">
<arrowlink COLOR="#1b3863" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-518;1012;" ID="Arrow_ID_959577029" STARTARROW="Default" STARTINCLINATION="-376;-568;"/>
<linktarget COLOR="#586d86" DESTINATION="ID_735655054" ENDARROW="Default" ENDINCLINATION="549;166;" ID="Arrow_ID_1031406920" SOURCE="ID_1980246174" STARTARROW="None" STARTINCLINATION="1;-366;"/>
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1487270206369" ID="ID_582649017" MODIFIED="1518487921088" TEXT="betreibt SpotLocator"/>
<node CREATED="1487275297855" ID="ID_417844993" MODIFIED="1518487921088" TEXT="betreibt FocusTracker"/>
<node CREATED="1487273437019" ID="ID_1600127727" MODIFIED="1518487921088" TEXT="betreibt Navigator"/>
</node>
<node CREATED="1487270226342" FOLDED="true" HGAP="32" ID="ID_1501993794" MODIFIED="1538871301945" TEXT="SpotLocator">
<node CREATED="1487270240084" ID="ID_1171094973" MODIFIED="1518487921088" TEXT="Erf&#xfc;llungsgehilfe">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1487270245884" ID="ID_1688031043" MODIFIED="1518487921088" TEXT="zwei Aspekte">
<node CREATED="1487270262137" ID="ID_1256894684" MODIFIED="1518487921088" TEXT="Query">
<node CREATED="1487270288630" ID="ID_744259530" MODIFIED="1518487921088" TEXT="&quot;wo sind wir&quot;?"/>
<node CREATED="1487270294269" ID="ID_903348018" MODIFIED="1518487921088" TEXT="aktuelle WorkSite"/>
<node CREATED="1487270397967" ID="ID_1021036860" MODIFIED="1518487921088" TEXT="LRU history"/>
<node CREATED="1487270732305" ID="ID_702780522" MODIFIED="1518487921088" TEXT="current MediaObject"/>
</node>
<node CREATED="1487270263705" ID="ID_302637820" MODIFIED="1518487921088" TEXT="Act">
<node CREATED="1487270473421" ID="ID_911216598" MODIFIED="1518487921088" TEXT="go to FocusPath"/>
</node>
</node>
</node>
<node CREATED="1487270846218" FOLDED="true" ID="ID_419002057" MODIFIED="1538871296028" TEXT="WorkSite">
<node CREATED="1487270854793" ID="ID_1953389172" MODIFIED="1518487921088" TEXT="management">
<node CREATED="1487270860976" ID="ID_1497253556" MODIFIED="1518487921088" TEXT="Speicher">
<node CREATED="1487270865216" ID="ID_685718473" MODIFIED="1518487921088" TEXT="ref counted"/>
<node CREATED="1487270874103" ID="ID_1447761407" MODIFIED="1518487921088" TEXT="registration"/>
</node>
<node CREATED="1487270895587" ID="ID_167087353" MODIFIED="1518487921088" TEXT="established">
<node CREATED="1487270906322" ID="ID_1777452351" MODIFIED="1518487921088" TEXT="automatically"/>
<node CREATED="1487270909074" ID="ID_837195046" MODIFIED="1518487921088" TEXT="explicitly"/>
<node CREATED="1487270914353" ID="ID_810579522" MODIFIED="1518487921088" TEXT="derived">
<node CREATED="1487270924112" ID="ID_594873450" MODIFIED="1518487921088" TEXT="split"/>
<node CREATED="1487270926887" ID="ID_1400861012" MODIFIED="1518487921088" TEXT="clone"/>
</node>
</node>
</node>
<node CREATED="1487271257011" ID="ID_322579744" MODIFIED="1518487921088" TEXT="Bezugs-Rahmen">
<node CREATED="1487271264969" ID="ID_1714809239" MODIFIED="1518487921088" TEXT="Befehle/Aktionen binden"/>
<node CREATED="1487271279399" ID="ID_1349326625" MODIFIED="1518487921088" TEXT="Toolbar"/>
</node>
<node CREATED="1487272549027" ID="ID_380137967" MODIFIED="1518487921088" TEXT="Abgrenzung">
<node CREATED="1487272553075" ID="ID_743796483" MODIFIED="1518487921088" TEXT="schwierige Aufgabe"/>
<node CREATED="1487272557314" ID="ID_1783972929" MODIFIED="1518487921088" TEXT="mu&#xdf; dynamisch passieren"/>
<node CREATED="1487272580751" ID="ID_1313858813" MODIFIED="1518487921088" TEXT="verlassene WorkSites"/>
<node CREATED="1487273190221" ID="ID_1338036086" MODIFIED="1518487921088" TEXT="Genzen">
<node CREATED="1487273192636" ID="ID_1111226069" MODIFIED="1518487921088" TEXT="Dinge innerhalb"/>
<node CREATED="1487273196763" ID="ID_412767726" MODIFIED="1518487921088" TEXT="Dinge au&#xdf;erhalb"/>
<node CREATED="1487273226775" ID="ID_303777362" MODIFIED="1518487921088" TEXT="wann Grenzen anpassen"/>
</node>
<node CREATED="1487273234190" ID="ID_752073036" MODIFIED="1518487921088" TEXT="mehrere WorkSites">
<node CREATED="1487273239502" ID="ID_1735700195" MODIFIED="1518487921088" TEXT="k&#xf6;nnen sich &#xfc;berlappen"/>
<node CREATED="1487273245421" ID="ID_1239635545" MODIFIED="1518487921088" TEXT="k&#xf6;nnen naheliegen"/>
</node>
</node>
</node>
<node CREATED="1487210642170" HGAP="28" ID="ID_337241818" MODIFIED="1518487921088" TEXT="Rahmen global" VSHIFT="-1">
<node CREATED="1487210648449" ID="ID_1430752735" MODIFIED="1535638478130" TEXT="konzeptionell">
<arrowlink COLOR="#34dbd3" DESTINATION="ID_1259700796" ENDARROW="Default" ENDINCLINATION="473;607;" ID="Arrow_ID_114106295" STARTARROW="None" STARTINCLINATION="-1346;-1090;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<node CREATED="1487269963098" ID="ID_723170966" MODIFIED="1518487921088" TEXT="Raum als Metapher"/>
<node CREATED="1487269990582" ID="ID_164128588" MODIFIED="1518487921088">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Focus/Spot wird <i>mitbewegt</i>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1487270008163" ID="ID_1916966167" MODIFIED="1518487921088" TEXT="operational">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487270012283" ID="ID_212889115" MODIFIED="1518487921088" TEXT="noch unklar">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1487270108238" ID="ID_1957235452" MODIFIED="1518487921088" TEXT="Wechselwirkung: konventioneller Fokus"/>
<node CREATED="1487270131499" ID="ID_1523536395" MODIFIED="1518487921088" TEXT="Observer f&#xfc;r Status-&#xc4;nderungen"/>
<node CREATED="1487270141994" ID="ID_1312242119" MODIFIED="1518487921088" TEXT="Problem: wo andocken?">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1487272791578" ID="ID_1159463727" MODIFIED="1518487921088" TEXT="Strukturen">
<node CREATED="1487272794426" ID="ID_1016756623" MODIFIED="1518487921088" TEXT="transient"/>
<node CREATED="1487272797857" ID="ID_1810657142" MODIFIED="1518487921088" TEXT="persistent">
<node CREATED="1487273054439" ID="ID_185665950" MODIFIED="1518487921088" TEXT="Worksites bleiben dauerhaft erhalten"/>
<node CREATED="1487273061054" ID="ID_1347275006" MODIFIED="1518487921088" TEXT="werden im Modell gespeichert"/>
<node CREATED="1487273078564" ID="ID_1502695356" MODIFIED="1518487921088" TEXT="aber an den Benutzer gebunden"/>
</node>
<node CREATED="1487272800417" ID="ID_344309590" MODIFIED="1518487921088" TEXT="Wurzel">
<node CREATED="1487273308748" ID="ID_1980246174" MODIFIED="1518487921088" TEXT="Ankerpunkt: InteractionDirector">
<arrowlink COLOR="#586d86" DESTINATION="ID_735655054" ENDARROW="Default" ENDINCLINATION="549;166;" ID="Arrow_ID_1031406920" STARTARROW="None" STARTINCLINATION="1;-366;"/>
</node>
<node CREATED="1487273377603" ID="ID_1842094630" MODIFIED="1518487921088" TEXT="SpotLocator"/>
</node>
<node CREATED="1487272813119" ID="ID_1794274698" MODIFIED="1518487921088" TEXT="Bezug">
<node CREATED="1504460091831" ID="ID_150523428" MODIFIED="1538589849694" TEXT="Koordinatensystem">
<linktarget COLOR="#a9a5cd" DESTINATION="ID_150523428" ENDARROW="Default" ENDINCLINATION="1440;-3055;" ID="Arrow_ID_1485937133" SOURCE="ID_50865654" STARTARROW="None" STARTINCLINATION="1109;-37;"/>
<node CREATED="1504462869149" ID="ID_248419130" MODIFIED="1518487921088" TEXT="beschreibt Zugangsweg">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1504462874221" ID="ID_259258109" MODIFIED="1518487921088" TEXT="[optional] top-level Fenster"/>
<node CREATED="1504462888107" ID="ID_291187993" MODIFIED="1518487921088" TEXT="[optional] Perspektive"/>
<node CREATED="1504462891394" ID="ID_1569864275" MODIFIED="1518487921088" TEXT="Panel"/>
<node CREATED="1504463016698" ID="ID_337670154" MODIFIED="1518487921088" TEXT="lokal">
<node CREATED="1504463028384" ID="ID_604807253" MODIFIED="1518487921088" TEXT="View-ID"/>
<node CREATED="1504463020913" ID="ID_1114832380" MODIFIED="1518487921088" TEXT="[optional] Gruppe bzw. Tab"/>
<node CREATED="1504463067051" ID="ID_1393457815" MODIFIED="1518487921088" TEXT="Komponente/Komponente/Komponente..."/>
</node>
</node>
<node CREATED="1506956495003" ID="ID_364730867" MODIFIED="1518487921088" TEXT="konktete Topologie">
<node CREATED="1506956525336" ID="ID_344871464" MODIFIED="1518487921088" TEXT="stateful"/>
<node CREATED="1506956501474" ID="ID_905779000" MODIFIED="1518487921088" TEXT="zug&#xe4;nglich duch Navigator">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1515556878797" ID="ID_1322161446" MODIFIED="1518487921088" TEXT="Resolver mit path matching">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1487273942038" FOLDED="true" HGAP="4" ID="ID_1254651309" MODIFIED="1538871289111" TEXT="Dynamik" VSHIFT="19">
<font NAME="SansSerif" SIZE="13"/>
<node CREATED="1487274013493" ID="ID_1949865241" MODIFIED="1518487921088" TEXT="mitbewegen">
<node CREATED="1487274017164" ID="ID_1079230717" MODIFIED="1518487921088" TEXT="Trigger">
<node CREATED="1487274021596" ID="ID_1455392363" MODIFIED="1518487921088" TEXT="Fenster wird aktiviert"/>
<node CREATED="1487274135596" ID="ID_1979220741" MODIFIED="1518487921088" TEXT="Keyboard-Focus shift"/>
<node CREATED="1487274145667" ID="ID_771196046" MODIFIED="1518487921088" TEXT="Selection gesetzt"/>
<node CREATED="1487274153058" ID="ID_624086875" MODIFIED="1518487921088" TEXT="Navigation expliizit"/>
</node>
<node CREATED="1487274921058" ID="ID_817413556" MODIFIED="1518487921088" TEXT="Ansatzpunkt">
<node CREATED="1487274932472" ID="ID_362677382" MODIFIED="1518487921088" TEXT="wie kann man Trigger installieren?"/>
<node CREATED="1487274942383" ID="ID_1727411524" MODIFIED="1518487921088" TEXT="model::Tangible">
<icon BUILTIN="idea"/>
<node CREATED="1487274952662" ID="ID_137454278" MODIFIED="1518487921089" TEXT="immer?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1487274957301" ID="ID_1317780625" MODIFIED="1518487921089" TEXT="explizit?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1487275149467" ID="ID_46033493" MODIFIED="1518487921089" TEXT="FocusListener"/>
</node>
<node CREATED="1487275167712" ID="ID_421642010" MODIFIED="1518487921089" TEXT="FocusTracker">
<node CREATED="1487275245822" ID="ID_1999993873" MODIFIED="1518487921089" TEXT="geh&#xf6;rt zum InteractionDirector"/>
<node CREATED="1487275255092" ID="ID_528280403" MODIFIED="1518487921089" TEXT="mu&#xdf; von jedem Listener erreichbar sein"/>
<node CREATED="1487275265227" ID="ID_1738811487" MODIFIED="1518487921089" TEXT="wie setzt man einen neuen Listener auf?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1487275767543" ID="ID_1953432961" MODIFIED="1518487921089" TEXT="Idee: StateMark -&gt; UI-Bus">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1487275806658" ID="ID_46146913" MODIFIED="1518487921089" TEXT="CoreService &lt;-&gt; InteractionDirector">
<node CREATED="1487275821920" ID="ID_1911498338" MODIFIED="1518487921089" TEXT="Verbindung ohnehin notwendig"/>
<node CREATED="1487275829711" ID="ID_467014330" MODIFIED="1518487921089" TEXT="persistenter UI-State"/>
<node CREATED="1487275846133" ID="ID_1450222785" MODIFIED="1518487921089" TEXT="mu&#xdf; im Modell h&#xe4;ngen"/>
<node CREATED="1487275854899" ID="ID_1437855457" MODIFIED="1518487921089" TEXT="und daher unter dem InteractionDirector"/>
</node>
</node>
<node CREATED="1487275415415" ID="ID_625776285" MODIFIED="1518487921089" TEXT="Bewegungs-Erkennung">
<node CREATED="1487275419726" ID="ID_379201934" MODIFIED="1518487921089" TEXT="ist ein Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1487275427165" ID="ID_196683293" MODIFIED="1518487921089" TEXT="was ist noch in einer WorkSite?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1487275438371" ID="ID_1849848193" MODIFIED="1518487921089" TEXT="wohin bewegen wir uns?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1487275567114" ID="ID_1956672414" MODIFIED="1518487921089" TEXT="Zusammenarbeit">
<node CREATED="1487275572706" ID="ID_1943137650" MODIFIED="1518487921089" TEXT="WorkSite">
<node CREATED="1487275575665" ID="ID_406351009" MODIFIED="1518487921089" TEXT="wei&#xdf;, was zu ihr geh&#xf6;rt"/>
</node>
<node CREATED="1487275584048" ID="ID_1846202031" MODIFIED="1518487921089" TEXT="WorkSiteTrail">
<node CREATED="1487275591375" ID="ID_1854949126" MODIFIED="1518487921089" TEXT="verfolgt die WorkSites und ihre Dynamik"/>
</node>
<node CREATED="1487275601373" ID="ID_786512805" MODIFIED="1518487921089" TEXT="FocusTracker">
<node CREATED="1487275654958" ID="ID_874086704" MODIFIED="1518487921089" TEXT="verfolgt die Einzelelemente"/>
</node>
</node>
<node CREATED="1487277157451" ID="ID_434494653" MODIFIED="1518487921089" TEXT="Teil-Aufgaben">
<node CREATED="1487277161738" ID="ID_400737524" MODIFIED="1518487921089" TEXT="Verlassen einer WorkSite erkennen"/>
<node CREATED="1487277171617" ID="ID_566526238" MODIFIED="1518487921089" TEXT="Ankommen in einer bestehenden WorkSite erkennen"/>
<node CREATED="1487277190310" ID="ID_34185478" MODIFIED="1518487921089" TEXT="Notwendigkeit, eine neue WorkSite zu konstituieren erkennen"/>
</node>
<node CREATED="1487277244375" ID="ID_375270405" MODIFIED="1518487921089" TEXT="Ansatz">
<node CREATED="1487277246766" ID="ID_747328276" MODIFIED="1518487921089" TEXT="wer?">
<icon BUILTIN="help"/>
<node CREATED="1487277261909" ID="ID_551475434" MODIFIED="1518487921089" TEXT="WorkSite">
<node CREATED="1487277266908" ID="ID_1718346792" MODIFIED="1518487921089" TEXT="k&#xf6;nnte das Verlassen erkennen"/>
</node>
<node CREATED="1487277274251" ID="ID_1319104550" MODIFIED="1518487921089" TEXT="WorkSiteTrail"/>
<node CREATED="1487277281882" ID="ID_620509405" MODIFIED="1518487921089" TEXT="FocusTracker"/>
</node>
<node CREATED="1487277256149" ID="ID_339253853" MODIFIED="1518487921089" TEXT="wie?">
<icon BUILTIN="help"/>
<node CREATED="1487277291305" ID="ID_1246038804" MODIFIED="1518487921089" TEXT="zentraler Tabellen-Lookup"/>
<node CREATED="1487277307374" ID="ID_335467287" MODIFIED="1518487921089" TEXT="lokalere Member-Tabelle"/>
<node CREATED="1487277317725" ID="ID_381402724" MODIFIED="1518487921089" TEXT="Reverse-Index"/>
</node>
</node>
</node>
<node CREATED="1487277349233" ID="ID_1249868383" MODIFIED="1518487921089" TEXT="Resultat">
<node CREATED="1487277352856" ID="ID_587566118" MODIFIED="1518487921089" TEXT="alte WorkSite: verlassen"/>
<node CREATED="1487277375317" ID="ID_977859604" MODIFIED="1518487921089" TEXT="neue WorkSite: aktiviert"/>
<node CREATED="1487277384604" ID="ID_958245251" MODIFIED="1518487921089" TEXT="WorkSiteTrail: aktualisiert"/>
<node CREATED="1487277407425" ID="ID_1880710738" MODIFIED="1518487921089" TEXT="FocusPath: aktualisiert"/>
<node CREATED="1487277414744" ID="ID_1564254807" MODIFIED="1518487921089" TEXT="FocusLocator: hat sich bewegt"/>
<node CREATED="1487277448219" ID="ID_681470264" MODIFIED="1518487921089" TEXT="InteratcionStateManager: benachrichtigt"/>
</node>
</node>
</node>
</node>
<node CREATED="1448070547667" HGAP="23" ID="ID_669457401" MODIFIED="1557498707235" TEXT="Bus-Terminal" VSHIFT="20">
<icon BUILTIN="go"/>
<node CREATED="1448070601165" ID="ID_1711137699" MODIFIED="1557498707235" TEXT="Methoden">
<node CREATED="1448407030239" ID="ID_619913132" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
act, note: Nachricht <i>upstream</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448407054900" ID="ID_1277028437" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mark: Nachricht <i>downstream</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448560729734" ID="ID_431928237" MODIFIED="1557498707235" TEXT="Nachricht mit Subjekt == indirekt, zur Weiterleitung"/>
<node CREATED="1448560744380" ID="ID_310914031" MODIFIED="1557498707235" TEXT="Nachricht ohne Subjekt == direkt, Subjekt implizit"/>
<node CREATED="1448560790558" ID="ID_1545911136" MODIFIED="1557498707235" TEXT="Bedeutung der Nachricht ergibt sich aus ihrem Namen"/>
</node>
<node CREATED="1448070605948" ID="ID_1779744719" MODIFIED="1557498707235" TEXT="Verhalten">
<node CREATED="1448407128826" ID="ID_1974801494" MODIFIED="1557498707235" TEXT="Bus-Master ist ein speziell implementiertes BusTerm"/>
<node CREATED="1448407139441" ID="ID_392543622" MODIFIED="1557498707235" TEXT="das gew&#xf6;hnliche BusTerm ist einem Tangible zugeordnet"/>
<node CREATED="1448407187035" ID="ID_1622894914" MODIFIED="1557498707235" TEXT="sowie bus-seitig an ein &quot;upstream&quot; BusTerm"/>
</node>
<node CREATED="1448070618434" ID="ID_1925738380" MODIFIED="1557498707235" TEXT="Zuordnung">
<node CREATED="1448406963801" ID="ID_1506114314" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Bus-Design is <b>selbst&#228;hnlich</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448406977350" ID="ID_1450959387" MODIFIED="1557498707235" TEXT="jedes BusTerm ist lediglich eine personalisierte Bus-Anbindung"/>
<node CREATED="1450390181806" ID="ID_61666430" MODIFIED="1557498707235" TEXT="es registriert beim Bus-Mater einen Link zum zugeh&#xf6;rigen Tangible"/>
<node CREATED="1448406994860" ID="ID_846198635" MODIFIED="1557498707235">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Kennzeichen ist die <b>EntryID</b>&#160;des zugeh&#246;rigen Elements
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1434128059966" ID="ID_823283341" MODIFIED="1557498707235" TEXT="Connect">
<node CREATED="1434128071126" FOLDED="true" HGAP="13" ID="ID_1618124128" MODIFIED="1557498707235" TEXT="UI-Bus" VSHIFT="11">
<linktarget COLOR="#3a8df0" DESTINATION="ID_1618124128" ENDARROW="Default" ENDINCLINATION="-25;-262;" ID="Arrow_ID_539627804" SOURCE="ID_257833497" STARTARROW="Default" STARTINCLINATION="-2;35;"/>
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="go"/>
<node CREATED="1448548216556" ID="ID_1971609445" MODIFIED="1518487921089" TEXT="Topologie">
<node CREATED="1448548225659" ID="ID_807917172" MODIFIED="1518487921089" TEXT="upstream = zum Verteiler"/>
<node CREATED="1448548310247" ID="ID_993096699" MODIFIED="1518487921089" TEXT="downstream = zum Empf&#xe4;nger"/>
<node CREATED="1448560840239" ID="ID_1912018032" MODIFIED="1518487921089" TEXT="indirekt = zur Weiterleitung"/>
</node>
<node CREATED="1434128297445" ID="ID_1971555917" MODIFIED="1518487921089" TEXT="Nachrichtenformat">
<node CREATED="1448560865804" ID="ID_907456829" MODIFIED="1518487921089" TEXT="Klassifikation">
<node CREATED="1448548400308" ID="ID_1714197552" MODIFIED="1518487921089" TEXT="dedicated"/>
<node CREATED="1448548404475" ID="ID_1237647034" MODIFIED="1518487921089" TEXT="targetted"/>
<node CREATED="1448548407819" ID="ID_1923087300" MODIFIED="1518487921089" TEXT="flooding"/>
</node>
<node CREATED="1448560887081" ID="ID_1783786781" MODIFIED="1518487921089" TEXT="Addressierung">
<node CREATED="1448560891416" ID="ID_1603035591" MODIFIED="1518487921089" TEXT="per Subjekt"/>
<node CREATED="1448560896232" ID="ID_931223590" MODIFIED="1518487921089" TEXT="implizit"/>
</node>
</node>
<node CREATED="1434128301525" ID="ID_187622243" MODIFIED="1518487921089" TEXT="Parallelit&#xe4;t">
<node CREATED="1450390447884" ID="ID_1176145978" MODIFIED="1518487921090" TEXT="nicht Threadsafe"/>
<node CREATED="1450390454236" ID="ID_1617539841" MODIFIED="1518487921090" TEXT="l&#xe4;uft ausschlie&#xdf;lich im Event-Thrad"/>
</node>
<node CREATED="1434128332277" FOLDED="true" ID="ID_33025591" MODIFIED="1538871252654" TEXT="Deregistrierung">
<node CREATED="1450390522393" ID="ID_1448879688" MODIFIED="1518487921090" TEXT="Uplink: implizit, h&#xe4;lt Link zu einem Router"/>
<node CREATED="1450390559805" ID="ID_1657985065" MODIFIED="1518487921090" TEXT="Downlink:">
<node CREATED="1450390566252" ID="ID_591456555" MODIFIED="1518487921090" TEXT="registriert eine Route zu einem Tangible"/>
<node CREATED="1450390585329" ID="ID_1371255341" MODIFIED="1518487921090" TEXT="der dtor entfernt diese Route wieder"/>
</node>
<node CREATED="1481413366826" HGAP="34" ID="ID_1180928280" MODIFIED="1518487921090" TEXT="problematisch im Shutdown" VSHIFT="5">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1481413410588" ID="ID_1106063275" MODIFIED="1518487921090" TEXT="Shutdown von Zombie-Nodes">
<node CREATED="1481413418027" ID="ID_998027739" MODIFIED="1518487921090" TEXT="reines Test-Problem"/>
<node CREATED="1481413421795" ID="ID_1335417806" MODIFIED="1518487921090" TEXT="gel&#xf6;st durch self-link + tie break"/>
</node>
<node CREATED="1481413436529" ID="ID_195971284" MODIFIED="1518487921090" TEXT="Shutdown des CoreService">
<node CREATED="1481413462638" ID="ID_485427993" MODIFIED="1518487921090" TEXT="Problem: Backlink zum Nexus"/>
<node CREATED="1481413470268" ID="ID_688303898" MODIFIED="1518487921090" TEXT="Nexus ist zu dem Zeitpunkt schon destruiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Die L&#246;sung f&#252;r diese wecheslseitige Abh&#228;ngigkeit
</p>
<p>
ist, den Nexus als Member im CoreService zu haben,
</p>
<p>
weil man dann seine Addresse schon wei&#223;, bevor er erzeugt ist.
</p>
<p>
</p>
<p>
Dummerweise rettet mich dieser Trick nicht im Shutdown,
</p>
<p>
denn hier nun l&#228;uft tats&#228;chlicher Code aus dem Destruktor heraus!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481413489290" ID="ID_24882673" MODIFIED="1518487921090" TEXT="folglich l&#xe4;uft nur noch die Impl vom BusTerm"/>
<node CREATED="1481413520326" ID="ID_471345968" MODIFIED="1518487921090" TEXT="Endlosschleife (ping-pong)">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1481414009877" ID="ID_269084554" MODIFIED="1518487921090" TEXT="...innerer Widerspruch">
<linktarget COLOR="#426895" DESTINATION="ID_269084554" ENDARROW="Default" ENDINCLINATION="36;87;" ID="Arrow_ID_708633830" SOURCE="ID_354799236" STARTARROW="None" STARTINCLINATION="369;0;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1481414032482" ID="ID_1121261163" MODIFIED="1518487921090" TEXT="upstream und nicht upstream"/>
<node CREATED="1481414149018" ID="ID_1708781872" MODIFIED="1518487921090" TEXT="kann Reihenfolge nicht etablieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
bei einem <i>echten Downstream</i>&#160;k&#246;nnte man daf&#252;r sorgen,
</p>
<p>
da&#223; er grunds&#228;tzlich vor dem Nexus weggeht. Aber nun kommt, auf dem Umweg
</p>
<p>
&#252;ber den Core-Service, der Nexus nach dem Nexus....
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481414420406" ID="ID_559357688" MODIFIED="1518487921090" TEXT="erschwerend...">
<icon BUILTIN="smily_bad"/>
<node CREATED="1481414434148" ID="ID_333480677" MODIFIED="1518487921090" TEXT="BusTerm ist stateless"/>
<node CREATED="1481414477766" ID="ID_695637715" MODIFIED="1518487921090" TEXT="soll auch so bleiben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ich will nicht damit anfangen, da&#223; man einen Zeiger umsetzen kann....
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1481415983533" HGAP="37" ID="ID_1500277801" MODIFIED="1518487921090" TEXT="Trick l&#xf6;st beide" VSHIFT="6">
<icon BUILTIN="button_ok"/>
<node CREATED="1481415996732" ID="ID_98181285" MODIFIED="1518487921090" TEXT="ein &quot;circuit breaker&quot;"/>
<node CREATED="1481416013842" ID="ID_1905276259" MODIFIED="1518487921090">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
beendet Deregistrierung,
</p>
<p>
wenn ein&#160;BusTerm sich selbst deregistriert
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1481416047509" ID="ID_1445652228" MODIFIED="1518487921090" TEXT="etwas halbseiden"/>
<node CREATED="1481416060843" ID="ID_354799236" MODIFIED="1518487921090" TEXT="aber... ein innerer Widerspruch liegt zugrunde">
<arrowlink COLOR="#426895" DESTINATION="ID_269084554" ENDARROW="Default" ENDINCLINATION="36;87;" ID="Arrow_ID_708633830" STARTARROW="None" STARTINCLINATION="369;0;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1434128310005" ID="ID_644247390" MODIFIED="1518487921090" TEXT="Knoten-ID">
<node CREATED="1450390501876" ID="ID_1750345192" MODIFIED="1518487921090" TEXT="ist die EntryID des Tangible"/>
<node CREATED="1450390512635" ID="ID_43739373" MODIFIED="1518487921090" TEXT="dient auch zum Routing"/>
</node>
<node CREATED="1453546261390" HGAP="25" ID="ID_1996322416" MODIFIED="1518487921090" TEXT="Test" VSHIFT="12">
<node CREATED="1453546264638" ID="ID_975821244" MODIFIED="1518487921090" TEXT="Test-Nexus">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1453546268998" ID="ID_1692848170" MODIFIED="1518487921090" TEXT="Event-Log">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Mechanismus, der es erlaubt
</p>
<ul>
<li>
log-Nachrichten aus Mocks zu hinterlassen
</li>
<li>
in der Test-Fixture auf diese zu matchen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535815195338" ID="ID_1743938908" MODIFIED="1535815207849" TEXT="naive Implementierung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535815210288" FOLDED="true" ID="ID_1041148737" MODIFIED="1537409267514" TEXT="Problem: kein wirkliches Backtracking">
<linktarget COLOR="#80b3ba" DESTINATION="ID_1041148737" ENDARROW="Default" ENDINCLINATION="-1705;-7489;" ID="Arrow_ID_1257144480" SOURCE="ID_493114230" STARTARROW="None" STARTINCLINATION="838;114;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535835597691" ID="ID_218241863" MODIFIED="1535835683187" TEXT="wird relevant bei Richtungs-Wechsel">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Beispiel:
</p>
<p>
a-b-c-a
</p>
<p>
match(&quot;a&quot;).after(&quot;b&quot;) scheitert, weil sich die Suche am ersten &quot;a&quot; festbei&#223;t.
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1535835709996" ID="ID_239175550" MODIFIED="1535835723893" TEXT="wir brauchen zwingend eine Art Stack">
<icon BUILTIN="broken-line"/>
<node CREATED="1535835843019" ID="ID_772926928" MODIFIED="1535836462411" TEXT="die Sequenz der Filter mu&#xdf; verf&#xfc;gbar bleiben"/>
<node CREATED="1535836509369" ID="ID_391734023" MODIFIED="1535836566669" TEXT="wenn eine Konfiguration ersch&#xf6;pft (leer) ist m&#xfc;ssen wir..."/>
<node CREATED="1535836534934" ID="ID_371785386" MODIFIED="1535836558822" TEXT="auf dem n&#xe4;chsten Element der vorherigen Stufe neu aufsetezn"/>
</node>
<node CREATED="1535836610803" ID="ID_1351097381" MODIFIED="1535893429218" TEXT="das kommt mir bekannt vor...">
<icon BUILTIN="idea"/>
<node CREATED="1535836620898" ID="ID_1732889993" MODIFIED="1535836645399" TEXT="kann mein neuer Pipeline-Iter das?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1535893406156" ID="ID_451238053" MODIFIED="1535893422972" TEXT="Ja: er wurde exakt f&#xfc;r solche Auswertungen konstruiert">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535893431656" ID="ID_1626597975" MODIFIED="1537409091617" TEXT="Beschlu&#xdf;: umstellen auf TreeExplorer">
<arrowlink COLOR="#3eccac" DESTINATION="ID_1665477644" ENDARROW="Default" ENDINCLINATION="-4110;-2852;" ID="Arrow_ID_1163013232" STARTARROW="None" STARTINCLINATION="1631;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536441983485" ID="ID_330124350" MODIFIED="1537320197047" TEXT="Warnung: anonymous namespace">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ist mir nicht v&#246;llig klar, warum das bei einigen Includes auftritt,
</p>
<p>
und bei anderen nicht. Beispiel
</p>
<p>
</p>
<p>
In file included from src/lib/diff/test-mutation-target.hpp:55:0,
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;from tests/library/diff/diff-complex-application-test.cpp:35:
</p>
<p>
src/lib/test/event-log.hpp:96:9: warning: 'lib::test::EventMatch' has a field 'lib::test::EventMatch::solution_' whose type uses the anonymous namespace [-Wsubobject-linkage]
</p>
<p>
&#160;&#160;&#160;class EventMatch
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;^~~~~~~~~~
</p>
<p>
In file included from src/lib/diff/test-mutation-target.hpp:55:0,
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;from tests/library/diff/tree-mutator-binding-test.cpp:32:
</p>
<p>
src/lib/test/event-log.hpp:96:9: warning: 'lib::test::EventMatch' has a field 'lib::test::EventMatch::solution_' whose type uses the anonymous namespace [-Wsubobject-linkage]
</p>
<p>
&#160;&#160;&#160;class EventMatch
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;^~~~~~~~~~
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548830035" HGAP="5" ID="ID_1295711115" MODIFIED="1518487921090" TEXT="Nutzen" VSHIFT="17">
<icon BUILTIN="bell"/>
<node CREATED="1485548856639" ID="ID_1677281474" MODIFIED="1518487921090" TEXT="spezifische Aktionen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548894522" ID="ID_826011549" MODIFIED="1518487921090" TEXT="Problem: globale Aktionen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Beispiel: Aktionen, die im globalen Men&#252; stehen.
</p>
<p>
&quot;Add Sequence&quot;
</p>
<ul>
<li>
wer bildet daraus ein Command?
</li>
<li>
auf welchen Kontext bezieht sich das
</li>
<li>
wen kann die Men&#252;-Registrierung konkret ansprechen (Verdrahtung ist statisch)
</li>
</ul>
</body>
</html></richcontent>
<linktarget COLOR="#824f68" DESTINATION="ID_826011549" ENDARROW="Default" ENDINCLINATION="-906;-1187;" ID="Arrow_ID_1373278707" SOURCE="ID_1122969153" STARTARROW="Default" STARTINCLINATION="877;262;"/>
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1485555902731" ID="ID_1913236669" MODIFIED="1518487921090" TEXT="#1070 how to bind session commands into UI actions">
<icon BUILTIN="button_ok"/>
<node CREATED="1486767998242" ID="ID_1898269374" MODIFIED="1518487921090" TEXT="InteractionDirector verwenden">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1492444328031" ID="ID_1628732201" MODIFIED="1518487921090" TEXT="mu&#xdf; im Lauf der Zeit wachsen"/>
</node>
</node>
<node CREATED="1502452724107" ID="ID_689474303" MODIFIED="1518487921090" TEXT="Mutationen">
<node CREATED="1502452771285" ID="ID_1091994004" MODIFIED="1518487921090" TEXT="Diff-Format">
<arrowlink COLOR="#a9acc1" DESTINATION="ID_143203937" ENDARROW="Default" ENDINCLINATION="115;-2033;" ID="Arrow_ID_136706418" STARTARROW="None" STARTINCLINATION="1656;0;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1502452875447" ID="ID_1363153586" MODIFIED="1518487921090" TEXT="MutationMessage">
<linktarget COLOR="#a7afc1" DESTINATION="ID_1363153586" ENDARROW="Default" ENDINCLINATION="931;-187;" ID="Arrow_ID_324877454" SOURCE="ID_336806935" STARTARROW="Default" STARTINCLINATION="835;592;"/>
<node CREATED="1502452903075" ID="ID_726723452" MODIFIED="1518487921090" TEXT="abstrahierter Iterator">
<node CREATED="1502453110640" ID="ID_1024081141" MODIFIED="1518487921090" TEXT="IterSource-Interface"/>
<node CREATED="1502453116327" ID="ID_1762714186" MODIFIED="1518487921090" TEXT="opaque generaction context"/>
<node CREATED="1502453128198" ID="ID_1311188906" MODIFIED="1518487921090" TEXT="per smart-ptr gehalten"/>
</node>
<node CREATED="1502452909091" ID="ID_638887155" MODIFIED="1518487921090" TEXT="nur einmal konsumierbar"/>
<node CREATED="1502452913906" ID="ID_1500100371" MODIFIED="1518487921090" TEXT="Framework zur Hanhabung">
<arrowlink COLOR="#afb1bd" DESTINATION="ID_1651893758" ENDARROW="Default" ENDINCLINATION="-1257;0;" ID="Arrow_ID_1786455458" STARTARROW="None" STARTINCLINATION="1858;0;"/>
</node>
</node>
</node>
<node CREATED="1485548866990" ID="ID_664933854" MODIFIED="1518487921090" TEXT="Commands"/>
<node CREATED="1485548878292" ID="ID_49934573" MODIFIED="1518487921090" TEXT="Broadcast"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1453545812389" HGAP="43" ID="ID_202253849" MODIFIED="1557498707235" TEXT="Core-Services" VSHIFT="2">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
konzeptionell: fertig
</p>
<p>
Implementierung der real-world-Variante fehlt!
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-197;638;" ID="Arrow_ID_1686519160" STARTARROW="Default" STARTINCLINATION="-83;-1020;"/>
<font NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="go"/>
<node CREATED="1453545875627" ID="ID_1411740156" MODIFIED="1557498707235" TEXT="Definition &#xbb;Zentral-Dienste&#xab;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Dienste im UI, erreichbar &#252;ber den Bus.
</p>
<p>
Sie stellen die Verbindung zu zentralen Belangen her
</p>
<p>
wie Session- und State-Managment, Commands etc.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1453545968166" FOLDED="true" ID="ID_399884859" MODIFIED="1557498707235" TEXT="Command-Handler">
<icon BUILTIN="button_ok"/>
<node CREATED="1453546129537" ID="ID_1926242869" MODIFIED="1518487921090" TEXT="empf&#xe4;ngt &quot;act&quot;-Nachrichten">
<icon BUILTIN="button_ok"/>
<node CREATED="1453546381255" ID="ID_1252400934" MODIFIED="1518487921090" TEXT="&quot;bind&quot; -&gt; Bindung">
<icon BUILTIN="button_ok"/>
<node CREATED="1453546393573" ID="ID_857178151" MODIFIED="1518487921090" TEXT="Paradigmen-Mismatch">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1453546417098" ID="ID_676713402" MODIFIED="1518487921090" TEXT="DOM vs. compiletime typing">
<icon BUILTIN="info"/>
</node>
<node CREATED="1453546436455" FOLDED="true" ID="ID_129001401" MODIFIED="1538839439898" TEXT="double-dispatch">
<icon BUILTIN="idea"/>
<node CREATED="1453546450317" ID="ID_1899026394" MODIFIED="1512926192213" TEXT="Variant-Visitor">
<icon BUILTIN="button_ok"/>
<node CREATED="1453546485737" ID="ID_491338311" MODIFIED="1453546493300" TEXT="Gen-Node-Typen"/>
<node CREATED="1453546493719" ID="ID_834270776" MODIFIED="1453546496947" TEXT="fest vorgegeben"/>
</node>
<node CREATED="1453546454484" ID="ID_1643300093" MODIFIED="1453590507167" TEXT="Trampolin">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1453546512277" ID="ID_968193365" MODIFIED="1453590559627" TEXT="Aufruf: generische Iteration">
<icon BUILTIN="info"/>
</node>
<node CREATED="1453590522161" ID="ID_1369411965" MODIFIED="1512926192215" TEXT="Problem: narrowing conversions">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1453590585865" ID="ID_350595711" MODIFIED="1453590606670" TEXT="explizit gef&#xe4;hrliche ausschlie&#xdf;en">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1453638973049" ID="ID_1350801390" LINK="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63723" MODIFIED="1453639023645">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Compiler-Bug <font color="#c80219">Gcc-#63723</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1453639033250" ID="ID_1669831951" LINK="http://stackoverflow.com/questions/26705199/how-can-i-write-a-type-trait-to-check-if-a-type-is-convertible-to-another-by-a-n" MODIFIED="1453639049952" TEXT="s.a. Stackoverflow"/>
<node CREATED="1453639055478" ID="ID_1560466275" MODIFIED="1453639078468">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
gel&#246;st in GCC-5 --&#160;<i>backport unwahrscheinlich</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1453639119142" ID="ID_1472487058" MODIFIED="1453639126177" TEXT="inzwischen hartgecodet">
<icon BUILTIN="clanbomber"/>
</node>
</node>
<node CREATED="1453546467707" ID="ID_1543497504" MODIFIED="1512926192216" TEXT="Problem: template bloat">
<node CREATED="1453590622236" ID="ID_1084684065" MODIFIED="1512926192217" TEXT="h&#xe4;lt sich in Grenzen">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1453590828976" ID="ID_659078492" MODIFIED="1453590855465" TEXT="eine VTable pro Zieltyp"/>
<node CREATED="1453590856220" ID="ID_376478329" MODIFIED="1453590879683">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
eine virtuelle Funktion
</p>
<p>
pro m&#246;glichem Umwandlungs-Pfad
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1453590628419" ID="ID_1314031268" MODIFIED="1453590885601">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wir verwenden die Basis-VTable
</p>
<p>
und layern nur die tats&#228;chlich m&#246;glichen Umwandlungen dr&#252;ber
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1453590667630" ID="ID_792450888" MODIFIED="1453590699782" TEXT="&#xfc;berpr&#xfc;ft: mit -O3 und strip bleibt erstaunlich wenig &#xfc;brig"/>
<node CREATED="1453590741428" ID="ID_1733557933" MODIFIED="1453590749327" TEXT="1.6MiB -&gt; 100k"/>
</node>
</node>
</node>
<node CREATED="1453546367201" ID="ID_1473684366" MODIFIED="1518487921090" TEXT="&quot;bang&quot; -&gt; HandlingPattern">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492205728949" ID="ID_730154835" MODIFIED="1518487921090" TEXT="abgeschafft"/>
<node CREATED="1492205732389" ID="ID_1080697951" MODIFIED="1518487921090" TEXT="wir k&#xf6;nnen stets gleich triggern"/>
</node>
<node CREATED="1492205741483" ID="ID_1132272888" MODIFIED="1518487921090" TEXT="Command wird sofort nach dem Binden getriggert"/>
<node COLOR="#338800" CREATED="1483925280108" HGAP="30" ID="ID_1479669922" MODIFIED="1538838665321" TEXT="Protokoll-Erweiterung" VSHIFT="8">
<arrowlink COLOR="#e9ba2d" DESTINATION="ID_242219866" ENDARROW="Default" ENDINCLINATION="-944;1604;" ID="Arrow_ID_1617518648" STARTARROW="None" STARTINCLINATION="3617;-1097;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1483925298713" ID="ID_347702585" MODIFIED="1518487921090" TEXT="Command-Prototyp forken"/>
<node CREATED="1483925307385" ID="ID_509982277" MODIFIED="1518487921090" TEXT="ID durch Kontext-ID dekorieren"/>
<node CREATED="1483925311624" ID="ID_1592410347" MODIFIED="1518487921090" TEXT="Anforderung vom InvocationStateManager"/>
<node CREATED="1483925338796" ID="ID_348930186" MODIFIED="1518487921090" TEXT="implementiert in SessionCommandService">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1453546138215" ID="ID_621186206" MODIFIED="1518487921090" TEXT="Verbindung zum ProcDispatcher">
<icon BUILTIN="button_ok"/>
<node CREATED="1483927603312" ID="ID_1803909975" MODIFIED="1518487921090" TEXT="Aufruf der SessionCommand facade">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483927624157" ID="ID_86978128" MODIFIED="1518487921090" TEXT="in CommandHandler gepackt">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1483927637022" ID="ID_455471953" MODIFIED="1518487921090" TEXT="total einfach hier">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1453546183561" ID="ID_1080090125" MODIFIED="1518487921090" TEXT="Mock-Variante">
<node CREATED="1453546195240" ID="ID_1905175534" MODIFIED="1518487921090" TEXT="loggen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1453546197727" ID="ID_606855270" MODIFIED="1518487921090" TEXT="verifizierbar machen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1453546215117" ID="ID_31965862" MODIFIED="1518487921090" TEXT="pseudo-Command">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1483927678318" FOLDED="true" HGAP="25" ID="ID_1324099152" MODIFIED="1557498707235" TEXT="Notification-Facade &#xf6;ffnen" VSHIFT="4">
<arrowlink COLOR="#51517b" DESTINATION="ID_379585622" ENDARROW="Default" ENDINCLINATION="-476;439;" ID="Arrow_ID_1616528570" STARTARROW="Default" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1483927692988" ID="ID_354422174" MODIFIED="1538263617013" TEXT="Lebenszyklus-Fragen verifizieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1483927735679" ID="ID_783490676" MODIFIED="1538263622227" TEXT="Integration in UI-Main verifizieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1483927710450" ID="ID_1085939201" MODIFIED="1522935005617" TEXT="Hochfahren des UI / Schlie&#xdf;en des UI">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1515977616903" ID="ID_1098045534" MODIFIED="1538263666187" TEXT="(vorl&#xe4;ufig) einfaches Fehler-Display">
<arrowlink COLOR="#ebf0a5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-3154;1704;" ID="Arrow_ID_1091720734" STARTARROW="None" STARTINCLINATION="1627;38;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1501778430101" FOLDED="true" ID="ID_489078622" MODIFIED="1557498707235" TEXT="#1098 hand-over to UI thread">
<arrowlink COLOR="#7caaa8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="2513;3565;" ID="Arrow_ID_1832047032" STARTARROW="Default" STARTINCLINATION="3463;134;"/>
<linktarget COLOR="#6c5f80" DESTINATION="ID_489078622" ENDARROW="Default" ENDINCLINATION="725;-39;" ID="Arrow_ID_485145709" SOURCE="ID_31825421" STARTARROW="None" STARTINCLINATION="1538;-37;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1531583488816" ID="ID_626261980" MODIFIED="1531583585348" TEXT="Dispatcher">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1531583492656" ID="ID_1958336253" MODIFIED="1531583586580" TEXT="Queue mit explizitem Mutex-Locking">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1531583503318" ID="ID_1398440490" MODIFIED="1531583587884" TEXT="UI-Thread signalisieren per Gtk::Dispatcher">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1453546083296" FOLDED="true" ID="ID_1154674875" MODIFIED="1557498707235" TEXT="Presentation-State-Manager">
<icon BUILTIN="button_ok"/>
<node CREATED="1455290707481" ID="ID_551153117" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
empf&#228;ngt alle <b>state mark notificatons</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455290726358" ID="ID_386120755" MODIFIED="1518487921091" TEXT="mu&#xdf; gruppieren">
<node CREATED="1455290732805" ID="ID_1731455164" MODIFIED="1518487921091" TEXT="nach Ui-Element"/>
<node CREATED="1455290738044" ID="ID_1309710182" MODIFIED="1518487921091" TEXT="nach property innerhalb"/>
</node>
<node CREATED="1455290748539" ID="ID_504317246" MODIFIED="1518487921091" TEXT="zeichnet jeweils den letzten aktuellen Zustand auf">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1455290768888" ID="ID_1779151953" MODIFIED="1518487921091" TEXT="Wechselwirkungen">
<icon BUILTIN="info"/>
<node CREATED="1455290773936" ID="ID_533210684" MODIFIED="1518487921091" TEXT="geplant, absehbar">
<icon BUILTIN="bell"/>
</node>
<node CREATED="1455290807459" ID="ID_1222290895" MODIFIED="1518487921091" TEXT="mu&#xdf; Ausz&#xfc;ge aus dieser Info schaffen"/>
<node CREATED="1455290827193" ID="ID_1429808095" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nach <b>Perspektive</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455290833048" ID="ID_1650274766" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nach <b>work site</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1455290849374" ID="ID_906623432" MODIFIED="1518487921091" TEXT="future work">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1488672534372" FOLDED="true" HGAP="78" ID="ID_1920838120" MODIFIED="1557498707235" TEXT="core commands" VSHIFT="21">
<icon BUILTIN="prepare"/>
<node CREATED="1488672580926" ID="ID_1920974710" MODIFIED="1518487921091" TEXT="konzeptionell">
<node CREATED="1488672621585" ID="ID_1461875887" MODIFIED="1539262773405" TEXT="Command-cycle">
<linktarget COLOR="#706a9a" DESTINATION="ID_1461875887" ENDARROW="Default" ENDINCLINATION="-923;-789;" ID="Arrow_ID_457540370" SOURCE="ID_969011841" STARTARROW="None" STARTINCLINATION="806;300;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1488672838499" ID="ID_1617972329" MODIFIED="1518487921091" TEXT="Interaktionen">
<node CREATED="1492442637686" ID="ID_1148014554" MODIFIED="1518487921091" TEXT="brauche Command-ID">
<icon BUILTIN="button_ok"/>
<node CREATED="1492442643942" ID="ID_184523090" MODIFIED="1518487921091" TEXT="mu&#xdf; grunds&#xe4;tzlich bekannt sein"/>
<node CREATED="1492442652612" ID="ID_1774585291" MODIFIED="1518487921091" TEXT="ggfs fest definierte Konstante"/>
<node CREATED="1492442665858" ID="ID_48986283" MODIFIED="1518487921091" TEXT="definiert in proc/cmd.hpp">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1492442694199" ID="ID_502474813" MODIFIED="1518487921091" TEXT="CommandSetup">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492442659060" ID="ID_707740928" MODIFIED="1518487921091" TEXT="lib::Symbol">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1488672957922" ID="ID_329010871" MODIFIED="1518487921091" TEXT="brauche InteractionStateManager">
<arrowlink COLOR="#5a80c1" DESTINATION="ID_121485208" ENDARROW="Default" ENDINCLINATION="9;-164;" ID="Arrow_ID_17404383" STARTARROW="None" STARTINCLINATION="1;52;"/>
<node CREATED="1488676089349" ID="ID_1584585045" MODIFIED="1518487921091" TEXT="Anfrage ...f&#xfc;r ein bestimmes Command"/>
<node CREATED="1488676629451" ID="ID_989334768" MODIFIED="1518487921091" TEXT="Problem: wie findet man den Zust&#xe4;ndigen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1488676134951" ID="ID_1426727929" MODIFIED="1518487921091" TEXT="N : M">
<node CREATED="1488676119929" ID="ID_70646733" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
einer k&#246;nnte f&#252;r
</p>
<p>
mehrere Commands zust&#228;ndig sein
</p>
</body>
</html></richcontent>
<node CREATED="1488676210948" ID="ID_1003704499" MODIFIED="1518487921091" TEXT="verschiedene Auspr&#xe4;gungen"/>
<node CREATED="1488676230802" ID="ID_1711345566" MODIFIED="1518487921091" TEXT="generische Situation"/>
</node>
<node CREATED="1488676179840" ID="ID_1207866065" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mehrere k&#246;nnten f&#252;r
</p>
<p>
ein Command zust&#228;ndig sein
</p>
</body>
</html></richcontent>
<node CREATED="1488676238120" ID="ID_62079120" MODIFIED="1518487921091" TEXT="da an ein Control/Interface-System gebunden"/>
<node CREATED="1488676280459" ID="ID_800780235" MODIFIED="1518487921091" TEXT="ist vermutlich keine gute Idee">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....denn wir wollen ja grade
</p>
<p>
den Widget-Code vom Control-System abstrahieren
</p>
<p>
und ebenso die Gesten abstrahieren
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1488676343170" ID="ID_1624806724" MODIFIED="1518487921091" TEXT="besser? InteractionStateManager == Geste">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1488674244218" ID="ID_121485208" MODIFIED="1518487921091" TEXT="Aktivit&#xe4;ten">
<linktarget COLOR="#5a80c1" DESTINATION="ID_121485208" ENDARROW="Default" ENDINCLINATION="9;-164;" ID="Arrow_ID_17404383" SOURCE="ID_329010871" STARTARROW="None" STARTINCLINATION="1;52;"/>
<node COLOR="#338800" CREATED="1488674249665" ID="ID_1028887910" MODIFIED="1518487921091" TEXT="Command-Instanz">
<icon BUILTIN="button_ok"/>
<node CREATED="1488674520524" ID="ID_895059689" MODIFIED="1518487921091" TEXT="Prototyp-Pattern">
<icon BUILTIN="info"/>
</node>
<node CREATED="1488674528035" ID="ID_1084922722" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>mu&#223;</i>&#160;Instanzen einsetzen
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und zwar zwingend, sobald
</p>
<ul>
<li>
das command Argumente hat, die gebunden sein wollen
</li>
<li>
mehrere Invocations des gleichen Grund-Commands &quot;gleichzeitig&quot; unterwegs sein k&#246;nnten
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1488674659521" FOLDED="true" ID="ID_1283697108" MODIFIED="1538871095182" TEXT="Problem: Instanz-Management">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1488674675895" ID="ID_1414738474" MODIFIED="1518487921091" TEXT="benannt oder anonyom">
<icon BUILTIN="help"/>
</node>
<node CREATED="1488674682869" ID="ID_1865712804" MODIFIED="1518487921091" TEXT="anonym == ref counted">
<icon BUILTIN="info"/>
</node>
<node CREATED="1488674692293" ID="ID_1154381764" MODIFIED="1518487921091" TEXT="bindet uns an Proc">
<icon BUILTIN="stop-sign"/>
<node CREATED="1488674807716" ID="ID_1220416942" MODIFIED="1518487921091" TEXT="ist das ein Problem?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1488674815867" ID="ID_417989611" MODIFIED="1518487921091" TEXT="eigentlich nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...vom Linken her nicht, da wir Gui gegen Proc linken
</p>
<p>
vom Bauen auch nicht, und au&#223;erdem...
</p>
<p>
...coden wir ja nicht gegen die Implementierung,
</p>
<p>
sondern gegen eine Abstraction (Command), die eigens daf&#252;r geschaffen wurde
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1488674905160" ID="ID_1688143285" MODIFIED="1518487921091" TEXT="ungutes Gef&#xfc;hl">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
<node CREATED="1488674941243" ID="ID_1628081916" MODIFIED="1518487921091" TEXT="unterl&#xe4;uft das Interface-System"/>
<node CREATED="1488675139160" ID="ID_1466153465" MODIFIED="1518487921091" TEXT="unterl&#xe4;uft das Messaging / UI-Bus"/>
</node>
</node>
<node CREATED="1488674721265" ID="ID_1409487095" MODIFIED="1518487921091" TEXT="aber: benannte Instanzen leben einfach weiter">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1488677059648" ID="ID_1869818470" MODIFIED="1518487921091" TEXT="war eigentlich nur f&#xfc;r &quot;Spezialisierungen&quot; gedacht"/>
<node CREATED="1488936223175" ID="ID_1105962999" MODIFIED="1518487921091" TEXT="zu pr&#xfc;fen: overhead">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1488936242413" ID="ID_1255236132" MODIFIED="1518487921091" TEXT="k&#xf6;nnte eigener, dritter Typus werden">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1488936634128" ID="ID_857930488" MODIFIED="1518487921091" TEXT="Konsequenz">
<icon BUILTIN="button_ok"/>
<node CREATED="1488936638247" ID="ID_699367403" MODIFIED="1518487921091" TEXT="man sollte auf das Bauchgef&#xfc;hl h&#xf6;ren"/>
<node CREATED="1488936653341" ID="ID_629143054" MODIFIED="1518487921091" TEXT="Design leitet in richtige Bahnen"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488936670970" ID="ID_697148715" MODIFIED="1518487921091" TEXT="die Trennung respektieren">
<arrowlink COLOR="#79d29b" DESTINATION="ID_1131387570" ENDARROW="Default" ENDINCLINATION="-48;-109;" ID="Arrow_ID_1598234794" STARTARROW="None" STARTINCLINATION="-421;-27;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1488675785223" FOLDED="true" ID="ID_134788782" MODIFIED="1538871089432" TEXT="Aufgaben">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1488675788278" ID="ID_241828684" MODIFIED="1518487921091" TEXT="wer erzeugt die Instanz?">
<icon BUILTIN="button_ok"/>
<node CREATED="1488676735628" ID="ID_845338567" MODIFIED="1518487921091" TEXT="der InteractionStateManager">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1488676746667" ID="ID_1675443482" MODIFIED="1518487921091" TEXT="jemand in Proc">
<icon BUILTIN="button_ok"/>
<node CREATED="1488936425628" ID="ID_273815265" MODIFIED="1518487921092" TEXT="neue Entit&#xe4;t"/>
<node CREATED="1488936429139" ID="ID_858892843" MODIFIED="1518487921092" TEXT="geh&#xf6;rt zum Command-System"/>
</node>
</node>
<node CREATED="1488675795485" ID="ID_560742641" MODIFIED="1518487921092" TEXT="wer benennt die Instanz?">
<icon BUILTIN="help"/>
<node CREATED="1488676790165" ID="ID_450420022" MODIFIED="1518487921092" TEXT="der der sie erzeugt">
<icon BUILTIN="help"/>
</node>
<node CREATED="1488676796892" ID="ID_399980219" MODIFIED="1518487921092" TEXT="ein Benennungs-Service in Proc">
<icon BUILTIN="help"/>
</node>
<node CREATED="1488676805491" ID="ID_1995019439" MODIFIED="1518487921092" TEXT="ein Instanz-Pool">
<icon BUILTIN="help"/>
</node>
</node>
<node COLOR="#338800" CREATED="1488675800668" FOLDED="true" ID="ID_260870361" MODIFIED="1538871077721" TEXT="wer h&#xe4;lt die Instanz (am Leben)?">
<icon BUILTIN="button_ok"/>
<node CREATED="1488676827432" ID="ID_1354771185" MODIFIED="1488676881245" TEXT="Problem: air-Gap">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wegen
</p>
<ul>
<li>
Command-Message via UI-Bus
</li>
<li>
Durchreichen durch das Interface-System
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1488677586744" ID="ID_1077384395" MODIFIED="1488677612409" TEXT="AUA: Zwang zum Benennen">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1488676941240" ID="ID_403164604" MODIFIED="1488676965416" TEXT="im Proc-Dispatcher kein Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da die DispatcherQueue direkt Command-Objekte (=frontend handle) speichert
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1488677212907" ID="ID_1525612446" MODIFIED="1488936784410" TEXT="Idee: im InteractionStateManager">
<icon BUILTIN="button_cancel"/>
<node CREATED="1488677232640" ID="ID_1033002023" MODIFIED="1488677274454" TEXT="null oder maximal eine pro Command"/>
<node CREATED="1488677258932" ID="ID_1695115228" MODIFIED="1488677268487" TEXT="andere Geste -&gt; andere Command-Instanz"/>
<node COLOR="#c15a5d" CREATED="1488677333066" ID="ID_182292267" MODIFIED="1488677344667" TEXT="Aber">
<node CREATED="1488677346473" ID="ID_712110821" MODIFIED="1488677350100" TEXT="air-Gap"/>
<node CREATED="1488677350640" ID="ID_901346570" MODIFIED="1488677370377" TEXT="Ausf&#xfc;hrung im Dispatcher erst sp&#xe4;ter"/>
<node COLOR="#338800" CREATED="1488677418087" ID="ID_644949863" MODIFIED="1488677499488" TEXT="ist doch kein Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn das GUI l&#228;uft ja synchron.
</p>
<p>
D.h. wir wissen, wenn wir das Air-Gap &#252;berstanden haben.
</p>
<p>
Ab diesem Punkt h&#228;lt der Eintrag in der DispatcherQueue das Command am Leben,
</p>
<p>
und wenn es stirbt, dann stirbt es halt...
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1488936070394" ID="ID_1131387570" MODIFIED="1488936736607" TEXT="Schlu&#xdf;folgerung">
<linktarget COLOR="#79d29b" DESTINATION="ID_1131387570" ENDARROW="Default" ENDINCLINATION="-48;-109;" ID="Arrow_ID_1598234794" SOURCE="ID_697148715" STARTARROW="None" STARTINCLINATION="-421;-27;"/>
<icon BUILTIN="forward"/>
<node CREATED="1488936102272" ID="ID_414025307" MODIFIED="1488936125740" TEXT="eigenes Instantiierungs-Protokoll">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1488936115534" ID="ID_1508575123" MODIFIED="1488936128074" TEXT="explizit in Proc zu unterst&#xfc;tzen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1492443899058" ID="ID_1465290437" MODIFIED="1512926192223" TEXT="CommandInstanceManager">
<icon BUILTIN="button_ok"/>
<node CREATED="1492443908344" ID="ID_499675523" MODIFIED="1492443916643" TEXT="lebt in SessionCommandService"/>
<node CREATED="1492443917423" ID="ID_1829369544" MODIFIED="1492443926330" TEXT="an ProcDispatcher-Loop gebunden"/>
<node CREATED="1492443926806" ID="ID_1117512587" MODIFIED="1492443933129" TEXT="lebt und stirbt mit der Session"/>
<node CREATED="1492443933813" ID="ID_1185852649" MODIFIED="1492443940760" TEXT="hat eigene lokale Hashtable"/>
<node CREATED="1492443941260" ID="ID_870719620" MODIFIED="1492443967658" TEXT="unterst&#xfc;tzt einfachen Fallback">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aufruf direkt mit Command-ID -&gt; erzeugt automatisch eine Klon-Kopie
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1488936129180" ID="ID_62638556" MODIFIED="1488936137127" TEXT="hand-over">
<node CREATED="1488936140275" ID="ID_61978297" MODIFIED="1488936152237" TEXT="entfernt Registrierung"/>
<node CREATED="1488936152849" ID="ID_525023498" MODIFIED="1488936164963" TEXT="erzeugt anonyme Instanz"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1488936910756" HGAP="200" ID="ID_208733336" MODIFIED="1538871084006" TEXT="neues Design" VSHIFT="14">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1488937072267" ID="ID_1765750778" MODIFIED="1488937082039" TEXT="separation of concerns">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1488936925448" ID="ID_1949523361" MODIFIED="1488937085712" TEXT="zwei neue Entit&#xe4;ten">
<icon BUILTIN="yes"/>
<node CREATED="1488936938742" ID="ID_1388901840" MODIFIED="1488939645006">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
GUI: <b>CmdAccessor</b>
</p>
</body>
</html></richcontent>
<node CREATED="1488936962690" ID="ID_399848637" MODIFIED="1488936995228" TEXT="vermittelt InvocationStateManager"/>
<node CREATED="1488937001406" ID="ID_1747520920" MODIFIED="1488937012304" TEXT="letzterer ist Interface f&#xfc;r UI-Entit&#xe4;ten"/>
</node>
<node CREATED="1488936942317" ID="ID_222608258" MODIFIED="1488939548823">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Proc: <b>CmdInstanceManager</b>
</p>
</body>
</html></richcontent>
<node CREATED="1488937028202" ID="ID_1121930542" MODIFIED="1488937033253" TEXT="erzeugt die Instanzen"/>
<node CREATED="1488937033769" ID="ID_1795817178" MODIFIED="1488937045947" TEXT="verwaltet deren Lebenszyklus"/>
<node CREATED="1488937046591" ID="ID_1911259949" MODIFIED="1488937055426" TEXT="vom UI allein per ID ansprechbar"/>
</node>
</node>
<node CREATED="1488938186100" ID="ID_98580620" MODIFIED="1489191362863" TEXT="Command-Definition erweitern">
<icon BUILTIN="hourglass"/>
<node CREATED="1488938195387" ID="ID_1831459518" MODIFIED="1488938202950" TEXT="M&#xf6;glichkeit, Regeln vorzugeben"/>
<node CREATED="1488938222135" ID="ID_1365861102" MODIFIED="1488938232250" TEXT="werden fest mit dem Command zusammen konfiguriert"/>
<node CREATED="1488938205266" ID="ID_1560120611" MODIFIED="1488938215411" TEXT="diese k&#xf6;nnen aus der Command-Def bezogen werden"/>
</node>
<node CREATED="1488939658004" ID="ID_726054321" MODIFIED="1488939668212" TEXT="Interaktionen">
<icon BUILTIN="info"/>
<node CREATED="1488939675705" ID="ID_1515081819" MODIFIED="1488939724134" TEXT="UI-Element fragt CmdAccessor nach InteractionStateManager"/>
<node CREATED="1488939946828" ID="ID_1817986480" MODIFIED="1488940966027" TEXT="CmdAccessor speichert InteractionStateManager"/>
<node CREATED="1492442881509" ID="ID_79816412" MODIFIED="1492442905342" TEXT="irgendjemand bindet ein Command an den Kontext und markiert die zu bindenden Argumente"/>
<node CREATED="1492442906642" ID="ID_1806470431" MODIFIED="1492442926595" TEXT="dabei werden Argumente mit bestimmten Rollen markiert (Subjekt, Scope, Wert)"/>
<node CREATED="1488939748247" ID="ID_589914539" MODIFIED="1489079785598" TEXT="InteractionStateManager belegt beim CmdInstanceManager neue ID..."/>
<node CREATED="1488940222591" ID="ID_1071611814" MODIFIED="1488940241768" TEXT="UI-Element fragt InteractionStateManager: &quot;kann dieses Command ausgef&#xfc;hrt werden&quot;?"/>
<node CREATED="1488940300116" ID="ID_172216455" MODIFIED="1488940331244" TEXT="UI-Element registriert sich beim InteractionStateManager (als Observer)"/>
<node CREATED="1488940435601" ID="ID_1906295137" MODIFIED="1492442861300" TEXT="InteractionState befriedigt die Parameter aus dem aktuellen Interaktions-Kontext"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488940469365" ID="ID_130562988" MODIFIED="1492443016818" TEXT="TODO: wie werden die Parameter konkret &#xfc;bergeben?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es k&#246;nnte z.B. sein, da&#223; man vom InteractionState
</p>
<p>
direkt einen Record&lt;GenNode&gt; bezieht, und bei diesem Zugriff
</p>
<p>
automatisch die Kontext-Accessor-Ausdr&#252;cke ausgewertet werden
</p>
</body>
</html></richcontent>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1488940519518" ID="ID_1875791797" MODIFIED="1488940533992" TEXT="bei n&#xe4;chster Anfrage wird CmdInstanceManager daher neue Instanz anlegen"/>
</node>
</node>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1488677859619" HGAP="-15" ID="ID_827179653" MODIFIED="1538868929343" TEXT="Problem: Service-Zugang" VSHIFT="24">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da dies ein pervasiv genutzter Service ist,
</p>
<p>
und wir nicht wollen, da&#223; jedes Widget
</p>
<p>
mit dem InteractionDirector verdrahtet sein mu&#223;!
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#9f5680" DESTINATION="ID_850989325" ENDARROW="Default" ENDINCLINATION="211;189;" ID="Arrow_ID_1007188680" STARTARROW="None" STARTINCLINATION="912;-974;"/>
<linktarget COLOR="#758ba4" DESTINATION="ID_827179653" ENDARROW="Default" ENDINCLINATION="173;83;" ID="Arrow_ID_57938013" SOURCE="ID_1621107057" STARTARROW="None" STARTINCLINATION="384;-135;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1488936835940" ID="ID_1322149090" MODIFIED="1518487921092" TEXT="separates Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hat &#252;berhaupt nichts mit dem Zugang zu Commands zu tun,
</p>
<p>
und auch nichts mit der Trennung zwischen Layern und Subsystemen
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#435e98" CREATED="1488936840059" FOLDED="true" ID="ID_1305671938" MODIFIED="1538868939412" TEXT="generisches Problem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es geht um Service-Dependencies
</p>
<p>
aka DependencyInjection + Lifecycle Management
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b6829b" DESTINATION="ID_1359158691" ENDARROW="Default" ENDINCLINATION="1134;-1646;" ID="Arrow_ID_927211935" STARTARROW="None" STARTINCLINATION="1359;916;"/>
<icon BUILTIN="info"/>
<node CREATED="1488937419308" ID="ID_994813744" MODIFIED="1518487921092" TEXT="lib::Depend ausbauen"/>
<node CREATED="1488937436890" ID="ID_1184288068" MODIFIED="1518487921092" TEXT="kann auf sp&#xe4;ter vertagt werden"/>
<node CREATED="1488937424996" ID="ID_1712367280" MODIFIED="1518487921092" TEXT="vorerst eigenes Front-End verwenden"/>
<node CREATED="1488937449896" ID="ID_1352702920" MODIFIED="1538868893362" TEXT="Idee klar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
man hat ein statisches Front-End, d.h. by-name access
</li>
<li>
hinter dem liegt eine Factory
</li>
<li>
die Instanz kann von innen her wieder geschlossen werden
</li>
<li>
wenn geschlossen, dann Fehler werfen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1538868884651" ID="ID_92705586" MODIFIED="1538868888699" TEXT="gel&#xf6;st">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1488674268407" ID="ID_284516869" MODIFIED="1518487921092" TEXT="Parameter">
<node CREATED="1488937542963" ID="ID_853531623" MODIFIED="1518487921092" TEXT="passiert im InvocationStateManager"/>
<node CREATED="1488937551514" ID="ID_1024843173" MODIFIED="1518487921092" TEXT="es k&#xf6;nnte Binde-Regeln geben"/>
<node CREATED="1488937996901" ID="ID_1000532365" MODIFIED="1518487921092" TEXT="L&#xf6;sungsweg vom Command vorkonfiguriert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nicht klar, ob das notwendig (und gut) ist
</p>
<p>
es k&#246;nnte auch ausreichen, einfach die passende InteractionStateManager-Impl zu verwenden
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1488937565632" ID="ID_1990212985" MODIFIED="1518487921092" TEXT="dem User (UI-Element) ist das egal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn InteractionStateManager ist ein <b>Interface</b>!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1488937651021" ID="ID_1956085726" MODIFIED="1518487921092" TEXT="Binde-Muster">
<icon BUILTIN="idea"/>
<node CREATED="1488937670778" ID="ID_696645875" MODIFIED="1518487921092" TEXT="fest hinterlegte Eintit&#xe4;t einsetzen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das UI wei&#223;,
</p>
<p>
wer das konkret immer sein wird.
</p>
<p>
D.h. beim Start des UI wird eine Verbindung irgendwo hinterlegt
</p>
<p>
Das k&#246;nnte ein <i>Advice</i>&#160;sein
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1488937682649" ID="ID_1090053275" MODIFIED="1518487921092" TEXT="aktuelles Element (mit Typ-Check)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
vom Command her ist der Typ festgelegt
</p>
<p>
auf das &quot;aktuelle Element&quot; wir eine Art Typ-Match gemacht.
</p>
<p>
Wenn der pa&#223;t, kann das aktuelle Element verwendet werden.
</p>
<p>
In diesem Fall wird das Command <i>enabled</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1488937711053" ID="ID_586793367" MODIFIED="1518487921092" TEXT="partial application">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
eine Argumentliste mit mehreren Parametern wir Schritt f&#252;r Schritt geschlossen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1488937724867" ID="ID_231519502" MODIFIED="1518487921092" TEXT="Ordnung nach Scope">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn mehrere Objekte als Argumente in Frage kommen,
</p>
<p>
wird das gem&#228;&#223; Scope &quot;n&#228;chstgelegne&quot; genommen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1488937933566" ID="ID_170827087" MODIFIED="1518487921092" TEXT="das sind komplexe Pl&#xe4;ne">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1488937947004" ID="ID_1297081811" MODIFIED="1518487921092" TEXT="Schlu&#xdf;folgerung: nur die Strategie vorsehen">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1488672976664" ID="ID_476262016" MODIFIED="1518487921092" TEXT="Rollen">
<node CREATED="1488673008668" ID="ID_1231961413" MODIFIED="1518487921092" TEXT="InvocationTrail">
<icon BUILTIN="button_cancel"/>
<node CREATED="1488673045793" ID="ID_969627518" MODIFIED="1518487921092" TEXT="passiver Marker f&#xfc;r eine Instanz"/>
<node CREATED="1492443050502" ID="ID_333085641" MODIFIED="1518487921092" TEXT="Konzept aufgegeben">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1488673032384" ID="ID_1621941781" MODIFIED="1518487921092" TEXT="InteractionStateManager">
<node CREATED="1488673053917" ID="ID_312201027" MODIFIED="1518487921092" TEXT="Vermittler"/>
<node CREATED="1488673066524" ID="ID_1129594057" MODIFIED="1518487921092" TEXT="Bildung von S&#xe4;tzen"/>
</node>
</node>
</node>
<node CREATED="1488672585310" ID="ID_50525010" MODIFIED="1518487921092" TEXT="framework">
<node CREATED="1489191062441" ID="ID_772085108" MODIFIED="1518487921092" TEXT="Aktoren">
<node CREATED="1489191072415" ID="ID_546981226" MODIFIED="1518487921092" TEXT="Command Definition"/>
<node CREATED="1489191088613" ID="ID_1858363588" MODIFIED="1518487921092" TEXT="CmdAccessor"/>
<node CREATED="1489191103187" ID="ID_1016072906" MODIFIED="1518487921092" TEXT="InteractionStateManager"/>
<node CREATED="1489191095700" ID="ID_1053653890" MODIFIED="1518487921092" TEXT="InteractionDirector"/>
</node>
<node CREATED="1489191112026" FOLDED="true" ID="ID_1805268724" MODIFIED="1538871049693" TEXT="Implementierung">
<icon BUILTIN="go"/>
<node CREATED="1489191118705" ID="ID_1501573546" MODIFIED="1518487921092" TEXT="Aufbau">
<node CREATED="1489191126256" HGAP="24" ID="ID_127004361" MODIFIED="1518487921092" TEXT="Tickets" VSHIFT="26">
<icon BUILTIN="info"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489191161395" ID="ID_346158251" MODIFIED="1518487921092" TEXT="#1087 GUI/Session command handling">
<linktarget COLOR="#606d94" DESTINATION="ID_346158251" ENDARROW="Default" ENDINCLINATION="842;21;" ID="Arrow_ID_726918944" SOURCE="ID_898481930" STARTARROW="None" STARTINCLINATION="1012;0;"/>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1489191208557" FOLDED="true" ID="ID_632390561" MODIFIED="1538870998970" TEXT="#1088 Command definition registration">
<icon BUILTIN="button_ok"/>
<node CREATED="1490986190364" ID="ID_266121409" MODIFIED="1518487921092" TEXT="CommandSetup helper">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1490986198683" ID="ID_658767230" MODIFIED="1518487921092" TEXT="Build-Skript vertagt">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node COLOR="#338800" CREATED="1489191229098" FOLDED="true" ID="ID_341428100" MODIFIED="1538870996643" TEXT="#1089 Command instance management">
<linktarget COLOR="#584d79" DESTINATION="ID_341428100" ENDARROW="Default" ENDINCLINATION="1995;-1317;" ID="Arrow_ID_879741123" SOURCE="ID_1331796226" STARTARROW="None" STARTINCLINATION="334;-13;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1489196572055" ID="ID_339289633" MODIFIED="1489196577154" TEXT="Command-ID">
<node CREATED="1489196578470" ID="ID_1460242316" MODIFIED="1490976980566" TEXT="extensible ID anschauen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1490976981548" ID="ID_319912426" MODIFIED="1492169049860" TEXT="nein: es gen&#xfc;gen rein textuelle IDs">
<arrowlink DESTINATION="ID_119293304" ENDARROW="Default" ENDINCLINATION="153;-248;" ID="Arrow_ID_1691148413" STARTARROW="None" STARTINCLINATION="312;0;"/>
</node>
</node>
<node CREATED="1490985775995" FOLDED="true" ID="ID_1920622498" MODIFIED="1538870993948" TEXT="Instance-Manager">
<icon BUILTIN="yes"/>
<node CREATED="1490985786138" ID="ID_664659428" MODIFIED="1490985793244" TEXT="einfache Komponente"/>
<node CREATED="1490985793793" ID="ID_511499018" MODIFIED="1490985798436" TEXT="wo">
<node CREATED="1490985799639" ID="ID_1798979341" MODIFIED="1490985804979" TEXT="SessionCommandService"/>
<node CREATED="1490985805518" ID="ID_937609414" MODIFIED="1490985814593" TEXT="damit vom SessionLoopThread gemanaged"/>
</node>
<node CREATED="1490985820613" ID="ID_1526182884" MODIFIED="1490985823408" TEXT="API">
<node CREATED="1490985825844" ID="ID_1072463021" MODIFIED="1490985853020" TEXT="neue Instanz">
<node CREATED="1490986239341" ID="ID_1121928421" MODIFIED="1490986243065" TEXT="ID dekorieren"/>
<node CREATED="1490986243557" ID="ID_1457927529" MODIFIED="1490986249952" TEXT="slot / smart-ptr erzeugen"/>
</node>
<node CREATED="1490985938597" ID="ID_90790203" MODIFIED="1490985955039" TEXT="Dispatch">
<node CREATED="1490986252963" ID="ID_1745967844" MODIFIED="1490986257991" TEXT="smart-ptr move"/>
<node CREATED="1490986258483" ID="ID_462607969" MODIFIED="1490986261422" TEXT="slot leeren"/>
</node>
</node>
</node>
<node CREATED="1491005426763" ID="ID_1575553505" MODIFIED="1538870990460" TEXT="zu kl&#xe4;ren: duplikate Instanz">
<arrowlink COLOR="#ca978d" DESTINATION="ID_1805144008" ENDARROW="Default" ENDINCLINATION="594;0;" ID="Arrow_ID_191915626" STARTARROW="None" STARTINCLINATION="594;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1491005509448" ID="ID_709599195" MODIFIED="1491005512147" TEXT="Fehler?"/>
<node CREATED="1491005514015" ID="ID_66770459" MODIFIED="1491495268579" TEXT="bestehende Instanz &#xfc;berb&#xfc;geln"/>
<node CREATED="1491495244653" ID="ID_1710448495" MODIFIED="1491495254015" TEXT="stillschweigend die bestehende Instanz verwenden"/>
<node CREATED="1491495254699" ID="ID_1848409976" MODIFIED="1491495265858" TEXT="per Fehler abweisen">
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1491008040105" FOLDED="true" HGAP="50" ID="ID_662216926" MODIFIED="1538870978805" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1491008045936" ID="ID_1071153669" MODIFIED="1491008146180" TEXT="CommandInstanceManager_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008059366" ID="ID_1809405076" MODIFIED="1491008147195" TEXT="CommandInstanceManager">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008067046" ID="ID_1905446877" MODIFIED="1491008148076" TEXT="einfache Map-Impl">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008073989" ID="ID_1954195404" MODIFIED="1491008148995" TEXT="Symbol-Tabelle">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008079676" ID="ID_1262786130" MODIFIED="1491618841600" TEXT="Test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1491008088699" ID="ID_1501876595" MODIFIED="1491109806224" TEXT="Basisfall l&#xe4;uft noch nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Instanz kommt nicht in der Fixture-Queue an
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008118695" ID="ID_1595821007" MODIFIED="1491618830886" TEXT="Invocation abdecken">
<icon BUILTIN="button_ok"/>
<node CREATED="1491498978878" ID="ID_1001760576" MODIFIED="1491618830202" TEXT="nicht direkt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Umstand, da&#223; Commands auch ausgef&#252;hrt werdern k&#246;nnen,
</p>
<p>
geh&#246;rt nicht zum Thema &quot;Instanz-Management&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491499005954" ID="ID_1944400975" MODIFIED="1491618830202" TEXT="aber im Hinblick auf den Lebenszyklus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn ein Command geht dann in die Queue
</p>
<p>
und kann noch ausgef&#252;hrt werden, w&#228;hrend ein weiteres
</p>
<p>
schon &quot;in der Mache ist&quot;
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1491008124550" ID="ID_249252999" MODIFIED="1491618833169" TEXT="Duplikate abdecken">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1491008129165" ID="ID_118623494" MODIFIED="1491618835441" TEXT="Lebenszyklus-Fehler">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1491753027936" FOLDED="true" HGAP="53" ID="ID_118278209" MODIFIED="1538870985841" TEXT="Refactoring" VSHIFT="4">
<icon BUILTIN="button_ok"/>
<node CREATED="1491753036895" ID="ID_1029946389" MODIFIED="1491753047201" TEXT="fall-back auf Command integrieren"/>
<node CREATED="1491753645531" ID="ID_597184850" MODIFIED="1491753650607" TEXT="maybeGet entfernen"/>
<node CREATED="1491753047981" ID="ID_1220888974" MODIFIED="1491753330643" TEXT="Referenz rausgeben">
<icon BUILTIN="button_cancel"/>
<node CREATED="1491753058620" ID="ID_1772710050" MODIFIED="1491753078866" TEXT="nicht thradsafe">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1491753170924" ID="ID_1947747818" MODIFIED="1491753316996" TEXT="Command-Zugriff ist by value">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...aus gutem Grund
</p>
<p>
(kann mich erinnern, da&#223; ich mir das &#252;berlegt hatte).
</p>
<p>
Sofern Definitionen wirklich concurrent ge&#228;ndert oder gel&#246;scht werden,
</p>
<p>
k&#246;nnte es sein, da&#223; jemand auf einer stale reference arbeitet,
</p>
<p>
denn das Lock sch&#252;tzt nur den Aufruf innerhalb der CommandRegistry.
</p>
<p>
Sicher ist der Zugriff nur, wenn im Schutzbereich dieses Locks ein
</p>
<p>
neues Command-Objekt kopiert wird. Was allerdings den RefCount erh&#246;ht.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491753132377" ID="ID_1441469124" MODIFIED="1491753156451" TEXT="m&#xfc;&#xdf;te daf&#xfc;r direkt auf die CommandRegistry zugreifen">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1491753332318" ID="ID_889636506" MODIFIED="1491757384745" TEXT="nein: Wert rausgeben">
<linktarget COLOR="#3e657d" DESTINATION="ID_889636506" ENDARROW="Default" ENDINCLINATION="21;223;" ID="Arrow_ID_1428975472" SOURCE="ID_1707474386" STARTARROW="None" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1491753337438" ID="ID_1228083262" MODIFIED="1491753342636" TEXT="KISS">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1491753354116" ID="ID_1070880433" MODIFIED="1491753389816" TEXT="Bus + CommandHandler + GenNode">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aber sich mit einem Refcount verr&#252;ckt machen.....
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
</node>
</node>
<node CREATED="1491656361886" FOLDED="true" HGAP="62" ID="ID_1269299900" MODIFIED="1538870963761" TEXT="Einbindung" VSHIFT="12">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1491659172438" HGAP="34" ID="ID_1103739498" MODIFIED="1491757376165" TEXT="in SessionCommandService" VSHIFT="-3">
<icon BUILTIN="button_ok"/>
<node CREATED="1491659191155" ID="ID_586991718" MODIFIED="1491659216131" TEXT="Nutzung des Instance-Managers ist optional"/>
<node CREATED="1491659194283" ID="ID_1169808852" MODIFIED="1491659203949" TEXT="direkter Zugriff auf Commands bleibt offen"/>
<node CREATED="1491659224630" ID="ID_837055372" MODIFIED="1491659238608" TEXT="Entscheidung anhand der Command-ID"/>
<node CREATED="1491694300867" ID="ID_1838809343" MODIFIED="1491702954154" TEXT="Festlegung: CommandID wird als Symbol entgegengenommen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....k&#252;nftige Weiterung:
</p>
<p>
auch in EntryID k&#246;nnte ein Symbol-Stecken,
</p>
<p>
mithin in der GenNode::ID
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491659382161" ID="ID_948768193" MODIFIED="1491702871022" TEXT="Performance: maybeGet">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
da dieser Zugriff wirklich f&#252;r jedes Command passiert,
</p>
<p>
m&#246;chte ich mit dem Minimum an Hashtable-Zugriffen auskommen.
</p>
<p>
Daher pr&#252;fen wir als erstes den CommandInstanceManager,
</p>
<p>
da dies der Regelfall ist. Wenn dies scheitert, suchen wir noch
</p>
<p>
in der globalen Registry
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1491702872058" ID="ID_487194706" MODIFIED="1491702875613" TEXT="keine gute Idee"/>
<node CREATED="1491702876137" ID="ID_141674543" MODIFIED="1491702880476" TEXT="doppelt das Interface"/>
<node CREATED="1491702881160" ID="ID_1657270200" MODIFIED="1491753472968" TEXT="Taschenspielerei">
<arrowlink COLOR="#a71f6e" DESTINATION="ID_1776414678" ENDARROW="Default" ENDINCLINATION="-8;-62;" ID="Arrow_ID_559634306" STARTARROW="None" STARTINCLINATION="-86;2;"/>
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1491702805203" HGAP="26" ID="ID_1776414678" MODIFIED="1491757370278" TEXT="Performance / Standard-Fall" VSHIFT="22">
<linktarget COLOR="#a71f6e" DESTINATION="ID_1776414678" ENDARROW="Default" ENDINCLINATION="-8;-62;" ID="Arrow_ID_559634306" SOURCE="ID_1657270200" STARTARROW="None" STARTINCLINATION="-86;2;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1491702822568" ID="ID_1028353876" MODIFIED="1491702830531" TEXT="wir suchen stets zuerst eine Instanz"/>
<node CREATED="1491702831023" ID="ID_184396015" MODIFIED="1491702840810" TEXT="wir fallen auf die globale Registry zur&#xfc;ck"/>
<node CREATED="1491702841453" ID="ID_1707474386" MODIFIED="1491757384744" TEXT="das kann der InstanceManager am Besten selber!">
<arrowlink COLOR="#3e657d" DESTINATION="ID_889636506" ENDARROW="Default" ENDINCLINATION="21;223;" ID="Arrow_ID_1428975472" STARTARROW="None" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1491692398913" HGAP="27" ID="ID_1349137025" MODIFIED="1491753610374" TEXT="in UI-Bus" VSHIFT="6">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1491692419958" ID="ID_411638678" MODIFIED="1492391112135" TEXT="#1058 consider expanding UI-Bus protocol for command cloning">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1491692431021" ID="ID_1526880552" MODIFIED="1491692436375" TEXT="wollen wir das?"/>
<node CREATED="1491692438907" ID="ID_1137204114" MODIFIED="1491692452509" TEXT="oder nur f&#xfc;r explizite Spezialisierungen?"/>
<node CREATED="1491692779933" ID="ID_184706664" MODIFIED="1491692783680" TEXT="Abw&#xe4;gung">
<node CREATED="1491692784692" ID="ID_875264954" MODIFIED="1533608414018" TEXT="pro">
<icon BUILTIN="button_cancel"/>
<node CREATED="1491692786876" ID="ID_1725123375" MODIFIED="1491692800733" TEXT="Einheitliches Interface"/>
<node CREATED="1491692887517" ID="ID_832151078" MODIFIED="1491692894912" TEXT="Bus k&#xf6;nnte weitere Trennschicht werden"/>
<node CREATED="1491692922625" ID="ID_1378937117" MODIFIED="1491692927444" TEXT="Bus ist gut unit-testbar"/>
</node>
<node CREATED="1491692931040" ID="ID_1678638713" MODIFIED="1533608414020" TEXT="con">
<icon BUILTIN="button_ok"/>
<node CREATED="1491692990840" ID="ID_1200979620" MODIFIED="1491692995939" TEXT="ziemlich indirekt"/>
<node CREATED="1491692996639" ID="ID_1249742943" MODIFIED="1491693005081" TEXT="double-dispatch"/>
<node CREATED="1491693382706" ID="ID_1886288474" MODIFIED="1491693419959" TEXT="CommandHandler hat keinen R&#xfc;ckgabewert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. wir m&#252;&#223;ten dann auch noch das Interface brechen
</p>
<p>
und die Form der ID-Dokoration zur Konvention machen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491693197435" ID="ID_1151359036" MODIFIED="1491693375452" TEXT="InteractionState ist kein Tangible">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, f&#252;r das ganze Thema InteractionControl
</p>
<p>
schwebt mir eine Zwischenschicht unabh&#228;ngig von den Widgets vor
</p>
<p>
</p>
<p>
Wenn nun aber das Anfordern einer neuen Instanz &#252;ber den Bus laufen soll,
</p>
<p>
dann w&#252;rde es wohl ehr direkt von den Tangibles (Widget / Controller) ausgehen.
</p>
<p>
Das wollte ich <i>genau nicht</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491693246284" ID="ID_553376017" MODIFIED="1491693514745">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Tangible sollte InteractionState <i>verwenden</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....und demnach sollte InteractionState eben grade nicht von Tangible wissen
</p>
<p>
Demnach m&#252;&#223;te sich InteractionState irgendwo &quot;hinten rum&quot; an den Bus ranmachen,
</p>
<p>
z.B. &#252;ber den InteractionDirector. Das ist aber nun wirklich absurrd,
</p>
<p>
da es letztlich nur darum geht ein <i>ohnehin &#246;ffentliches</i>&#160; Interface aufzurufen
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1491659180516" ID="ID_655217923" MODIFIED="1492391121444" TEXT="in CmdAccess">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492391124070" ID="ID_1515597578" MODIFIED="1492391129921" TEXT="nicht mehr notwendig"/>
<node CREATED="1492391131173" ID="ID_1089257513" MODIFIED="1492391139944" TEXT="CmdAccess wird komplett on top arbeiten"/>
</node>
</node>
<node CREATED="1492293088861" FOLDED="true" HGAP="28" ID="ID_1660020661" MODIFIED="1538870959807" TEXT="&#xdc;berarbeitung" VSHIFT="14">
<linktarget COLOR="#626a9e" DESTINATION="ID_1660020661" ENDARROW="Default" ENDINCLINATION="-324;0;" ID="Arrow_ID_876356993" SOURCE="ID_220910293" STARTARROW="None" STARTINCLINATION="-687;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1492293139398" ID="ID_1274577545" MODIFIED="1492293146721" TEXT="als Folge der Design-Kritik"/>
<node CREATED="1492293282803" ID="ID_1858980532" MODIFIED="1492293285150" TEXT="Ziel">
<node CREATED="1492293286802" ID="ID_980352671" MODIFIED="1492293292141" TEXT="weitgehend automatisch"/>
<node CREATED="1492293292801" ID="ID_556604895" MODIFIED="1492293305099" TEXT="Zyklus mu&#xdf; nicht explizit er&#xf6;ffnet werden"/>
<node CREATED="1492293307511" ID="ID_582978700" MODIFIED="1492293317442" TEXT="Instanzen selbst f&#xfc;r globale Commands"/>
</node>
<node CREATED="1492293359944" ID="ID_1367582526" MODIFIED="1492293429410" TEXT="Konsequenzen">
<node CREATED="1492293430689" ID="ID_1472205001" MODIFIED="1492293430689" TEXT="weitgehender Verzicht auf Konsistenzpr&#xfc;fungen"/>
<node CREATED="1492293588400" ID="ID_1878334690" MODIFIED="1492293883630" TEXT="Binden und Dispatch m&#xfc;ssen kombiniert werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sonst wird die ganze Sache absurd
</p>
<p>
und unsinnigerweise aufwendig
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492293433222" ID="ID_1665333497" MODIFIED="1492293442272" TEXT="Registry k&#xf6;nnte l&#xe4;ngerfristig wegfallen"/>
</node>
<node CREATED="1492293450067" ID="ID_1626482891" MODIFIED="1492293452767" TEXT="F&#xe4;lle">
<node CREATED="1492293499701" ID="ID_1165417078" MODIFIED="1492293504344" TEXT="voller Zyklus">
<node CREATED="1492293540943" ID="ID_432796112" MODIFIED="1492293561513">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Instanz <i>&#246;ffnen</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492293553405" ID="ID_1787045274" MODIFIED="1492293557912" TEXT="Instanz herausgeben"/>
<node CREATED="1492293563028" ID="ID_713648189" MODIFIED="1492293583853" TEXT="Binden und Feuern"/>
</node>
<node CREATED="1492293984170" ID="ID_1495091918" MODIFIED="1492293990949" TEXT="fire-and-forget">
<node CREATED="1492294004119" ID="ID_1322819026" MODIFIED="1492294029307">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
CommandID <i>und</i>&#160;Argumente gegeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492294031035" ID="ID_521535374" MODIFIED="1492294048357" TEXT="anonyme Instanz erzeugen, aber nicht speichern"/>
<node CREATED="1492294049089" ID="ID_631979849" MODIFIED="1492294052148" TEXT="Argumente binden"/>
<node CREATED="1492294052616" ID="ID_1477708688" MODIFIED="1492294062235" TEXT="direkt an Dispatcher &#xfc;bergeben"/>
<node CREATED="1492294063183" ID="ID_1341000232" MODIFIED="1492294094983" TEXT="hinterl&#xe4;&#xdf;t sonst keine Spur">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1492294104665" ID="ID_433710721" MODIFIED="1492294116796" TEXT="globales Command">
<node CREATED="1492294207251" ID="ID_1653497945" MODIFIED="1492294212303" TEXT="wenn ID nicht lokal bekannt"/>
<node CREATED="1492294212795" ID="ID_82885635" MODIFIED="1492294242178" TEXT="aber globales Command bereits ausf&#xfc;hrbar"/>
<node CREATED="1492294242862" ID="ID_1583400472" MODIFIED="1492294253689" TEXT="anonyme Instanz klonen"/>
<node CREATED="1492294254277" ID="ID_57256331" MODIFIED="1492294260560" TEXT="und an Dispatcher &#xfc;bergeben"/>
</node>
</node>
<node CREATED="1492294356319" ID="ID_1877638479" MODIFIED="1492294363265" TEXT="Semantik-&#xc4;nderung">
<node CREATED="1492294454001" ID="ID_356186975" MODIFIED="1492359481843">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
SessionCommandService::<b>trigger</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1492295091826" ID="ID_96156600" MODIFIED="1533608414021" TEXT="bisher">
<node CREATED="1492295094337" ID="ID_420834348" MODIFIED="1492295103364" TEXT="Instanz nur wenn vorher angelegt"/>
<node CREATED="1492295104096" ID="ID_104008616" MODIFIED="1492295116282" TEXT="Sonst wird einfach globales Command genomen"/>
<node CREATED="1492295116894" ID="ID_930409268" MODIFIED="1492295120945" TEXT="gebunden und gefeuert"/>
</node>
<node CREATED="1492295122765" ID="ID_1120774629" MODIFIED="1533608414022" TEXT="jetzt">
<node CREATED="1492295137387" ID="ID_1142805823" MODIFIED="1492295146318" TEXT="offene Instanz wird genommen"/>
<node CREATED="1492295146794" ID="ID_715268835" MODIFIED="1492295159372" TEXT="Sonst wird anonyme Instanz gebildet"/>
<node CREATED="1492295160320" ID="ID_289465814" MODIFIED="1492295164348" TEXT="gebunden und gefeuert"/>
<node CREATED="1492350125119" ID="ID_1349289727" MODIFIED="1492350141681" TEXT="Suche zuerst in der globalen Registry"/>
</node>
</node>
<node CREATED="1492294454001" ID="ID_1498558942" MODIFIED="1492359486258">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
SessionCommandService::<b>bindArg</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1492295834844" ID="ID_1373400691" MODIFIED="1492295839063" TEXT="Semantik nicht ge&#xe4;ndert"/>
</node>
<node CREATED="1492294454001" ID="ID_48228210" MODIFIED="1492359489563">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
SessionCommandService::<b>invoke</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1492295834844" ID="ID_1465048391" MODIFIED="1533608414023" TEXT="bisher">
<node CREATED="1492295891844" ID="ID_219295848" MODIFIED="1492295983675" TEXT="offene Instanz wird zum Dispatcher verschoben"/>
<node CREATED="1492295914304" ID="ID_196991118" MODIFIED="1492295939921" TEXT="globales Command wird direkt an den Dispatcher &#xfc;bergeben"/>
</node>
<node CREATED="1492295855881" ID="ID_1570343929" MODIFIED="1533608414023" TEXT="jetzt">
<node CREATED="1492295965170" ID="ID_647547612" MODIFIED="1492350377230" TEXT="globales Command wird geklont"/>
<node CREATED="1492295941981" ID="ID_265372200" MODIFIED="1492295962382" TEXT="offene Instanz wird verschoben (unver&#xe4;ndert)"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1492359501220" ID="ID_1889001956" MODIFIED="1492391055336" TEXT="Test anpassen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489191252503" FOLDED="true" ID="ID_1621107057" MODIFIED="1538870952437" TEXT="#1090 Command access for UI-Elements">
<arrowlink COLOR="#758ba4" DESTINATION="ID_827179653" ENDARROW="Default" ENDINCLINATION="173;83;" ID="Arrow_ID_57938013" STARTARROW="None" STARTINCLINATION="384;-135;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1489196597635" ID="ID_850892898" MODIFIED="1518487921092" TEXT="Access-Front-End">
<node CREATED="1492095519827" HGAP="16" ID="ID_983435641" MODIFIED="1518487921092" TEXT="Grundprinzip" VSHIFT="-5">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1492095551151" ID="ID_1172833434" MODIFIED="1518487921092" TEXT="verweist auf andere Komponente"/>
<node CREATED="1492095590481" ID="ID_842137243" MODIFIED="1518487921092">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
managed diese Komponente <i>nicht</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492095612678" ID="ID_836842226" MODIFIED="1518487921092" TEXT="open/closed state"/>
<node CREATED="1492095627868" ID="ID_463853539" MODIFIED="1518487921092" TEXT="Exception when closed"/>
</node>
<node CREATED="1489196605530" HGAP="104" ID="ID_1235925214" MODIFIED="1518487921092" TEXT="anschauen" VSHIFT="1">
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1489196613065" ID="ID_1738286518" MODIFIED="1518487921092" TEXT="Proxy-Instanz"/>
<node CREATED="1489196617873" ID="ID_1676140831" MODIFIED="1518487921092" TEXT="Session Services"/>
</node>
<node CREATED="1492094142303" ID="ID_12953370" MODIFIED="1518487921092" TEXT="Zukunft / Plan">
<node CREATED="1492094148054" ID="ID_988050021" MODIFIED="1518487921092" TEXT="lib::Depend"/>
<node CREATED="1492094154237" ID="ID_1058052889" MODIFIED="1518487921092" TEXT="m&#xfc;&#xdf;te generalisiert werden"/>
<node CREATED="1492094161724" ID="ID_657768231" MODIFIED="1518487921092" TEXT="Refactoring notwendig">
<node CREATED="1492094294218" ID="ID_531986736" MODIFIED="1518487921092" TEXT="Komplexit&#xe4;t wirklich notwendig?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1492094305497" ID="ID_1689865131" MODIFIED="1518487921092" TEXT="Zweifel wegen double checked locking"/>
<node CREATED="1492094321039" ID="ID_1545149473" MODIFIED="1518487921092">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aufwendiges <i>Nebenthema</i>
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1492094512876" HGAP="32" ID="ID_953384901" MODIFIED="1518487921092" TEXT="vorl&#xe4;ufig eigenst&#xe4;ndig" VSHIFT="4">
<node CREATED="1492094528370" ID="ID_1032947061" MODIFIED="1518487921092" TEXT="sp&#xe4;ter mal integrieren">
<arrowlink COLOR="#8697be" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="200;-562;" ID="Arrow_ID_1211717131" STARTARROW="None" STARTINCLINATION="1387;-152;"/>
</node>
<node CREATED="1492095379262" ID="ID_16023242" MODIFIED="1518487921092" TEXT="einfache Implementierung"/>
<node CREATED="1492096252231" ID="ID_1892095908" MODIFIED="1518487921092" TEXT="Problem">
<node CREATED="1492096257182" ID="ID_682054688" MODIFIED="1518487921092" TEXT="externe Kompnente mu&#xdf; kooperieren"/>
<node CREATED="1492096285706" ID="ID_1257721538" MODIFIED="1518487921092" TEXT="oder externe Kompnente mu&#xdf; einen Adapter installieren"/>
<node CREATED="1492096269716" ID="ID_527173807" MODIFIED="1518487921092" TEXT="oder externe Komponente mu&#xdf; das Front-end betreiben"/>
</node>
</node>
</node>
<node CREATED="1492095433567" HGAP="69" ID="ID_1208499974" MODIFIED="1525124215274" TEXT="DSL schaffen" VSHIFT="1">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das war der erste Entwurf
</p>
<ul>
<li>
overengineered
</li>
<li>
am Bedarf vorbei
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1492095437190" ID="ID_491978759" MODIFIED="1492095481564" TEXT="Wunsch: access(ID).&lt;operation&gt;(args)"/>
<node CREATED="1492096317382" ID="ID_554292510" MODIFIED="1492096319497" TEXT="m&#xf6;glich">
<node CREATED="1492096321341" ID="ID_543087109" MODIFIED="1492096656547" TEXT="CmdAccess::for(id).&lt;operation&gt;(args)"/>
<node CREATED="1492096678244" ID="ID_1032312440" MODIFIED="1492096690927" TEXT="cmdAccess(id).&lt;operation&gt;(args)"/>
</node>
<node CREATED="1492096751315" ID="ID_537448890" MODIFIED="1492096762621" TEXT="Frage: was ist ID ?">
<icon BUILTIN="help"/>
<node CREATED="1492096881433" ID="ID_446570438" MODIFIED="1492098926420" TEXT="frei w&#xe4;hlbare Kontext-ID">
<icon BUILTIN="idea"/>
<node CREATED="1492096925259" ID="ID_1180559929" MODIFIED="1492096943012" TEXT="m&#xfc;&#xdf;te ID-Konvention verwenden"/>
<node CREATED="1492096965205" ID="ID_1565773206" MODIFIED="1492096975304" TEXT="manuelle Administration"/>
<node CREATED="1492096958310" ID="ID_55881971" MODIFIED="1492096962961" TEXT="fehleranf&#xe4;llig"/>
</node>
<node CREATED="1492096850229" ID="ID_1267775472" MODIFIED="1492096880653" TEXT="instanceID">
<icon BUILTIN="idea"/>
<node CREATED="1492098995736" ID="ID_70721654" MODIFIED="1492099021254" TEXT="per Builder erzeugt"/>
<node CREATED="1492098935224" ID="ID_1545341249" MODIFIED="1492098943667" TEXT="erfordert DSL-Kontext"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492098973515" HGAP="42" ID="ID_449212028" MODIFIED="1492281728466" TEXT="Syntax-Entwurf" VSHIFT="18">
<icon BUILTIN="idea"/>
<node CREATED="1492096992098" ID="ID_495973760" MODIFIED="1492132247519">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Symbol ADD_CLIP = CmdAccess::to (cmd::scope_addClip, INTO_FORK);
</p>
<p>
prepareCommand (cmdAccess(ADD_CLIP).bind (scope(HERE), element(RECENT)))
</p>
<p>
issueCommand (cmdAccess(ADD_CLIP).execute());
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492098948782" ID="ID_176273356" MODIFIED="1492098957764" TEXT="einigerma&#xdf;en komplex">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1492099069702" ID="ID_1623888568" MODIFIED="1492099073097" TEXT="Bestandteile">
<node CREATED="1492099077900" ID="ID_489218136" MODIFIED="1533608414024" TEXT="Standard-Kontexte">
<node CREATED="1492099101785" ID="ID_1493219189" MODIFIED="1492099107713" TEXT="INTO_PROJECT"/>
<node CREATED="1492099089419" ID="ID_1867923525" MODIFIED="1492099092055" TEXT="INTO_FORK"/>
<node CREATED="1492099093187" ID="ID_999642842" MODIFIED="1492099097382" TEXT="INTO_BIN"/>
</node>
<node CREATED="1492099122230" ID="ID_1025497514" MODIFIED="1492099129057" TEXT="Benennungs-Schema f&#xfc;r Command-Defs"/>
<node CREATED="1492099134053" ID="ID_358523293" MODIFIED="1492099143703" TEXT="lokal definierte Instanz-Symbole"/>
<node CREATED="1492099185350" ID="ID_209679519" MODIFIED="1492099189905" TEXT="Standard-Argument-Rollen"/>
<node CREATED="1492099167960" ID="ID_52357728" MODIFIED="1533608414024" TEXT="Argument-Resolver">
<node CREATED="1492099172695" ID="ID_1174757682" MODIFIED="1492099177035" TEXT="scope(HERE)"/>
<node CREATED="1492099177863" ID="ID_1060789301" MODIFIED="1492099182250" TEXT="element(RECENT)"/>
</node>
<node CREATED="1492099211058" ID="ID_518845722" MODIFIED="1492099413746" TEXT="(automatische) Nachrichten-Erzeugung"/>
</node>
</node>
<node CREATED="1492099456649" HGAP="39" ID="ID_1984335926" MODIFIED="1492099477994" TEXT="Konsequenzen" VSHIFT="10">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1492099466079" ID="ID_1013112793" MODIFIED="1492099546779" TEXT="gentle degradation">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die DSL mu&#223; so konstruiert werden,
</p>
<p>
da&#223; die Syntax-Elemente nahtlos simplifiziert werden k&#246;nnen,
</p>
<p>
in eine Form, die sich unmittelbar jetzt implementieren l&#228;&#223;t
</p>
<p>
und mit einfachen, direkt gegebenen Objekten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492099579824" ID="ID_727878406" MODIFIED="1492099585163" TEXT="CommandDef-DSL erweitern">
<node CREATED="1492099587359" ID="ID_453414313" MODIFIED="1492099599513" TEXT="mu&#xdf; Argument-Rollen auszeichnen k&#xf6;nnen"/>
<node CREATED="1492099622066" ID="ID_1927536817" MODIFIED="1492099630669" TEXT="erweiterbar auf binding rules"/>
</node>
</node>
</node>
<node CREATED="1492281599624" HGAP="22" ID="ID_1089419591" MODIFIED="1518487921092" TEXT="einfache L&#xf6;sung" VSHIFT="10">
<linktarget COLOR="#5f758e" DESTINATION="ID_1089419591" ENDARROW="Default" ENDINCLINATION="40;300;" ID="Arrow_ID_1986823533" SOURCE="ID_813754826" STARTARROW="None" STARTINCLINATION="1031;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1492281610286" ID="ID_1217333147" MODIFIED="1518487921093" TEXT="automatische Instanz-Erzeugung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1492281619901" ID="ID_887103826" MODIFIED="1518487921093" TEXT="direkter Aufruf mit CommandDef-ID">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281659520" ID="ID_488879231" MODIFIED="1518487921093" TEXT="Argument-Resolver f&#xfc;r Kontext-Zugriff">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281675557" ID="ID_1256848300" MODIFIED="1518487921093" TEXT="InvocationState mit Callbacks">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492463479663" ID="ID_1449859033" MODIFIED="1518487921093" TEXT="#1096 passing object IDs">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1489777406155" HGAP="74" ID="ID_1319269544" MODIFIED="1518487921093" TEXT="Grundstrukturen" VSHIFT="25">
<node CREATED="1489777414729" ID="ID_464574092" MODIFIED="1518487921093" TEXT="CommandID">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489777420817" ID="ID_1146990209" MODIFIED="1518487921093" TEXT="Command access"/>
<node CREATED="1489777429111" ID="ID_148471534" MODIFIED="1518487921093" TEXT="InvocationTrail">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489777438663" ID="ID_729917092" MODIFIED="1518487921093" TEXT="InteractionState">
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1489777502366" ID="ID_1798143241" MODIFIED="1518487921093" TEXT="Command-Definitionen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489777517315" ID="ID_922436346" MODIFIED="1518487921093" TEXT="instance management">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489777523266" ID="ID_136474944" MODIFIED="1518487921093" TEXT="trigger Invocation">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1489778159357" HGAP="105" ID="ID_1046149430" MODIFIED="1518487921093" TEXT="Command-Zyklus" VSHIFT="36">
<node CREATED="1489544225984" ID="ID_695057205" MODIFIED="1518487921093" TEXT="Triggern">
<icon BUILTIN="forward"/>
<node CREATED="1489544261547" ID="ID_782648362" MODIFIED="1518487921093" TEXT="wer">
<icon BUILTIN="help"/>
<node CREATED="1489544403984" ID="ID_382753424" MODIFIED="1518487921093" TEXT="&quot;ein UI-Element&quot;">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1489544439187" ID="ID_278628492" MODIFIED="1518487921093" TEXT="Beispiel: Toolbar-Button"/>
<node CREATED="1489544452034" ID="ID_1252070479" MODIFIED="1518487921093" TEXT="Beispiel: Kontextmen&#xfc;-Eintrag"/>
<node CREATED="1489544513577" ID="ID_1918576059" MODIFIED="1518487921093" TEXT="Beispiel: Aktion per Keybinding"/>
<node CREATED="1489544524128" ID="ID_620530211" MODIFIED="1518487921093" TEXT="Beispiel: Signal drag-n-drop"/>
</node>
<node CREATED="1489544268018" ID="ID_317151852" MODIFIED="1518487921093" TEXT="was">
<icon BUILTIN="help"/>
<node CREATED="1489544652414" ID="ID_61156502" MODIFIED="1518487921093" TEXT="lokal bekannt"/>
<node CREATED="1489544640288" ID="ID_1660798945" MODIFIED="1518487921093" TEXT="fest verdrahtet"/>
<node CREATED="1489544659597" ID="ID_519858607" MODIFIED="1518487921093" TEXT="ggfs. Auswahl aus kleiner Menge"/>
</node>
<node CREATED="1489544717333" ID="ID_154924026" MODIFIED="1518487921093" TEXT="falls">
<icon BUILTIN="help"/>
<node CREATED="1489544722261" ID="ID_1252784107" MODIFIED="1518487921093" TEXT="ausf&#xfc;hrbar"/>
<node CREATED="1489544725860" ID="ID_1860103561" MODIFIED="1518487921093" TEXT="d.h. aktiviert"/>
<node CREATED="1489544826383" ID="ID_1190793385" MODIFIED="1518487921093" TEXT="zwei verschiedene Effekte">
<icon BUILTIN="idea"/>
<node CREATED="1489544836757" ID="ID_1364306635" MODIFIED="1518487921093" TEXT="Ausf&#xfc;hrung abweisen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...stattdessen einen Fehler-Indikator ausl&#246;sen
</p>
<p>
(Beispiel &quot;in-point fehlt&quot;)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1489544910395" ID="ID_909938815" MODIFIED="1518487921093" TEXT="enable Action">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das ist eine Reaktion,
</p>
<p>
die von einem managing Ui-Element ausgef&#252;hrt wird,
</p>
<p>
aber von einem externen State-Change getriggert wird
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1491005020528" FOLDED="true" ID="ID_1665806173" MODIFIED="1538870910480" TEXT="zu kl&#xe4;ren">
<node CREATED="1491005025928" FOLDED="true" ID="ID_1805144008" MODIFIED="1538870902328" TEXT="duplikate Instanzen">
<linktarget COLOR="#ca978d" DESTINATION="ID_1805144008" ENDARROW="Default" ENDINCLINATION="594;0;" ID="Arrow_ID_191915626" SOURCE="ID_1575553505" STARTARROW="None" STARTINCLINATION="594;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1491005039414" ID="ID_378645276" MODIFIED="1492391288793" TEXT="mehrfach newInstance() mit gleicher ID"/>
<node CREATED="1491005054595" ID="ID_1987692266" MODIFIED="1492391288793" TEXT="drei M&#xf6;glichkeiten">
<icon BUILTIN="info"/>
<node CREATED="1491005058931" ID="ID_1108733153" MODIFIED="1492391288793" TEXT="mit neuem Klon &#xfc;berschreiben"/>
<node CREATED="1491495291966" ID="ID_703254591" MODIFIED="1492391288793" TEXT="stillschweigend bestehende Instanz ausgeben"/>
<node CREATED="1491005066706" ID="ID_1990482123" MODIFIED="1492391288793" TEXT="Fehler ausl&#xf6;sen">
<icon BUILTIN="forward"/>
<node CREATED="1491495356533" ID="ID_1948190107" MODIFIED="1492391288793" TEXT="einzig sichere Variante">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1491495398895" ID="ID_1958544932" MODIFIED="1492391288793" TEXT="es gibt jetzt auch getInstance"/>
<node CREATED="1491495405151" ID="ID_988620199" MODIFIED="1492391288793" TEXT="der Client mu&#xdf; geht von Exclusivit&#xe4;t aus"/>
</node>
</node>
<node CREATED="1491005071634" ID="ID_178338289" MODIFIED="1492443389733" TEXT="zur Kl&#xe4;rung">
<icon BUILTIN="bell"/>
<node CREATED="1491005078409" ID="ID_1515823316" MODIFIED="1492391288793" TEXT="...mu&#xdf; ich wissen, wie newInstance verwendet wird"/>
<node CREATED="1491005491226" ID="ID_1986906306" MODIFIED="1492443381583" TEXT="und das h&#xe4;ngt von InvocationTrail ab">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
invocationTral wurde aufgegeben.
</p>
<p>
Insofern l&#246;st sich dieser Knoten langsam
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1492391213458" ID="ID_1535150206" MODIFIED="1492391288793" TEXT="Differenzierung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1492391217961" ID="ID_1152426430" MODIFIED="1492391288793" TEXT="wir erzeugen nun Instanzen transparent">
<icon BUILTIN="info"/>
</node>
<node CREATED="1492391227720" ID="ID_475537616" MODIFIED="1492391288793" TEXT="d.h. eine reine Command-ID wird stillschweigend geklont"/>
<node CREATED="1492391240086" ID="ID_687060412" MODIFIED="1492391288793">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
allerdings, wenn man eine <b>explizite</b>&#160;Instanz-ID angibt,
</p>
<p>
bleibt es bei der stringenten Fehlerbehandlung
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1491494748185" ID="ID_1589354901" MODIFIED="1518487921093" TEXT="Instanzen registrieren">
<icon BUILTIN="help"/>
<node CREATED="1491494779796" ID="ID_1437580350" MODIFIED="1518487921093" TEXT="oder nur Prototypen?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, es geht um die Haupt-Registry f&#252;r Commands.
</p>
<p>
Wenn wir eine Instanz machen, um Parameter zu binden und sie dann schlie&#223;lich auszuf&#252;hren,
</p>
<p>
k&#246;nnte man dieser Instanz einen Namen geben, und sie in die Haupt-Registry eintragen..
</p>
<p>
Oder man k&#246;nnte sie anonym verarbeiten, weil Command selber ein smart-Handle ist.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491494889781" ID="ID_737410509" MODIFIED="1518487921093" TEXT="Analyse">
<icon BUILTIN="idea"/>
<node CREATED="1491494903779" ID="ID_1388732102" MODIFIED="1518487921093" TEXT="ja">
<icon BUILTIN="button_cancel"/>
<node CREATED="1491494912266" ID="ID_32553701" MODIFIED="1518487921093" TEXT="Vorteil: Zugriff per-Name"/>
<node CREATED="1491494928040" ID="ID_76613856" MODIFIED="1518487921093" TEXT="Nachteil: Druck auf die Registry"/>
<node CREATED="1491494938614" ID="ID_189174601" MODIFIED="1518487921093" TEXT="Nachteil: IDs m&#xfc;ssen verwaltet werden"/>
</node>
<node CREATED="1491494957020" ID="ID_266987025" MODIFIED="1518487921093" TEXT="nein">
<icon BUILTIN="button_ok"/>
<node CREATED="1491494972658" ID="ID_1987998531" MODIFIED="1518487921093" TEXT="Vorteil: spart jede Menge Infrastruktur"/>
<node CREATED="1491494989215" ID="ID_1302849116" MODIFIED="1518487921093" TEXT="Nachteil: Aufruf-Protokol sehr festgelegt"/>
</node>
</node>
<node CREATED="1491495071460" ID="ID_597368143" MODIFIED="1518487921093" TEXT="wir registrieren nicht">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1492167970338" FOLDED="true" ID="ID_1983035921" MODIFIED="1538870875392" TEXT="InteractionState &lt;=&gt; InvocationTrail">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ist jetzt gekl&#228;rt.
</p>
<p>
InteractionState == Kontext
</p>
<p>
CommandID.KontextID == Instanz
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1492168186700" ID="ID_501823967" MODIFIED="1518487921093" TEXT="InvocationTrail">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492168200986" ID="ID_579400142" MODIFIED="1518487921093" TEXT="ist fest"/>
<node CREATED="1492168716660" ID="ID_644301358" MODIFIED="1518487921093" TEXT="ist ein front-End"/>
<node CREATED="1492168226078" ID="ID_1848898275" MODIFIED="1518487921093" TEXT="ist pro Command Instanz"/>
<node CREATED="1492443100375" ID="ID_1946114739" MODIFIED="1518487921093" TEXT="Konzept aufgegeben">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1492168193355" ID="ID_841284230" MODIFIED="1518487921093" TEXT="InteractionState">
<node CREATED="1492168702845" ID="ID_1065430835" MODIFIED="1518487921093" TEXT="erm&#xf6;glicht Registrierung"/>
<node CREATED="1492168535004" ID="ID_93617758" MODIFIED="1518487921093" TEXT="sammelt dynamischen state"/>
<node CREATED="1492168515983" ID="ID_607058891" MODIFIED="1518487921093" TEXT="bedient einen ganzen Kontext"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492168662947" ID="ID_1857185767" MODIFIED="1518487921093" TEXT="automatisiert die Argument-Versorgung">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1492169260089" HGAP="30" ID="ID_172791747" MODIFIED="1518487921093" TEXT="usage patterns" VSHIFT="18">
<icon BUILTIN="forward"/>
<node CREATED="1492169311714" ID="ID_1022909876" MODIFIED="1525124215278" TEXT="fire-and-forget">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492170822396" ID="ID_1848739236" MODIFIED="1492170827759" TEXT="es ist alles klar"/>
<node CREATED="1492170841401" ID="ID_533459846" MODIFIED="1492170851803" TEXT="kein relevanter Kontext-Bezug"/>
<node CREATED="1492170863838" ID="ID_1183166030" MODIFIED="1533608414025" TEXT="Beispiel">
<node CREATED="1492170878863" MODIFIED="1492170878863" TEXT="globale Men&#xfc;-Aktion"/>
<node CREATED="1492170880371" ID="ID_594766034" MODIFIED="1492170903172" TEXT="schlie&#xdf;e Session!"/>
</node>
<node CREATED="1492170941739" ID="ID_1680428229" MODIFIED="1533608414025" TEXT="L&#xf6;sung">
<node CREATED="1492170947610" ID="ID_1247697440" MODIFIED="1492170955606" TEXT="Funktor bereitstellen"/>
<node CREATED="1492170966264" ID="ID_1737975858" MODIFIED="1492170972019" TEXT="kein Bus-Term notwendig"/>
<node CREATED="1492170957161" ID="ID_1082986883" MODIFIED="1492170963732" TEXT="Argumente und Trigger in einem"/>
</node>
</node>
<node CREATED="1492169345030" ID="ID_84243440" MODIFIED="1525124215279" TEXT="widget-local">
<icon BUILTIN="button_ok"/>
<node CREATED="1492171212350" ID="ID_1877488908" MODIFIED="1492171403696" TEXT="fest in einem Widget angesiedelt"/>
<node CREATED="1492171419802" ID="ID_393104252" MODIFIED="1492171434347" TEXT="lokale Verdrahtung mit etwas Logik"/>
<node CREATED="1492171517084" ID="ID_45739538" MODIFIED="1492171533742" TEXT="Widget verwendet eigene Command-Instanz"/>
<node CREATED="1492171540017" ID="ID_110960992" MODIFIED="1492171546252" TEXT="f&#xfc;hrt aber dann das Binden direkt aus"/>
<node CREATED="1492171547624" ID="ID_1140206188" MODIFIED="1533608414025" TEXT="L&#xf6;sung">
<node CREATED="1492171736734" ID="ID_685211506" MODIFIED="1492443151644" TEXT="lokal bekannte Command-ID"/>
<node CREATED="1492171753436" ID="ID_1576877235" MODIFIED="1492171764262" TEXT="Widget verwendet sein BusTerm"/>
</node>
<node CREATED="1492171774185" HGAP="23" ID="ID_11015489" MODIFIED="1533608414026" TEXT="Unterschied zu fire-and-forget?" VSHIFT="11">
<icon BUILTIN="help"/>
<node CREATED="1492171947257" ID="ID_1137709019" MODIFIED="1492171949469" TEXT="kaum einer"/>
<node CREATED="1492172515236" ID="ID_180853795" MODIFIED="1492172525262" TEXT="Binden ist ein separater Aufruf"/>
<node CREATED="1492172525946" ID="ID_1399943374" MODIFIED="1492172531749" TEXT="lokales BusTerm verwendet"/>
</node>
</node>
<node CREATED="1492169360148" ID="ID_1657289637" MODIFIED="1525124215281" TEXT="context-bound">
<icon BUILTIN="hourglass"/>
<node CREATED="1492172593201" ID="ID_1984505306" MODIFIED="1492172600644" TEXT="Command liegt in einem Kontext bereit"/>
<node CREATED="1492172621613" ID="ID_1344424432" MODIFIED="1492172637206" TEXT="Argument-Bindings werden per Accessor / Rules vorkonfiguriert"/>
<node CREATED="1492172984411" ID="ID_14678074" MODIFIED="1492173001613" TEXT="InteractionState wei&#xdf;, ob Command ausf&#xfc;hrbar ist"/>
<node CREATED="1492173003905" ID="ID_173633221" MODIFIED="1492173080128" TEXT="von beliebigem Tangible triggerbar"/>
<node CREATED="1492172679797" ID="ID_1836674310" MODIFIED="1492172684920" TEXT="Aktivierungs-Callbacks"/>
<node CREATED="1492173454299" HGAP="22" ID="ID_1346472068" MODIFIED="1533608414026" TEXT="L&#xf6;sung" VSHIFT="10">
<node CREATED="1492173481023" ID="ID_285008060" MODIFIED="1492173494690" TEXT="InteractionState pro Kontext(ID)"/>
<node CREATED="1492173497269" ID="ID_365694462" MODIFIED="1492173519950" TEXT="speichert binding patterns pro Command"/>
<node CREATED="1492173637978" ID="ID_1696162932" MODIFIED="1492173647765" TEXT="BindingPattern erkennt Ausf&#xfc;hrbarkeit"/>
<node CREATED="1492173787950" ID="ID_318157835" MODIFIED="1492173802664" TEXT="Command-Instanz wird erst sp&#xe4;t (bei Bedarf) gebildet"/>
<node CREATED="1492173813466" ID="ID_1383483945" MODIFIED="1492173828300" TEXT="sie wird sofort vom InteractionState fertig parametrisiert"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492206477974" HGAP="28" ID="ID_1639842825" MODIFIED="1533608414027" TEXT="Zukunft" VSHIFT="14">
<icon BUILTIN="yes"/>
<node CREATED="1492206491525" ID="ID_1000204628" MODIFIED="1492206500103" TEXT="das wird einmal essentiell"/>
<node CREATED="1492206500643" ID="ID_1716565687" MODIFIED="1492206505343" TEXT="aber noch nicht gleich ben&#xf6;tigt"/>
<node CREATED="1492206505907" ID="ID_427665863" MODIFIED="1492206512494" TEXT="und im Moment auch nicht absch&#xe4;tzbar"/>
</node>
</node>
</node>
<node CREATED="1492173833368" HGAP="42" ID="ID_769512112" MODIFIED="1525124215283" TEXT="widerspr&#xfc;chlich" VSHIFT="12">
<icon BUILTIN="stop-sign"/>
<node CREATED="1492173862203" ID="ID_1492707816" MODIFIED="1492173876661" TEXT="wozu die ganzen UI-Bus-Nachrichten">
<icon BUILTIN="help"/>
</node>
<node CREATED="1492173887792" ID="ID_552249287" MODIFIED="1492173985267" TEXT="wozu Ausl&#xf6;sung &#xfc;ber BusTerm eines Widgets">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn es doch offenbar f&#252;r den &quot;fire-and-forget&quot;-Fall
</p>
<p>
genauso gut m&#246;glich ist, &#252;ber eine zentrale Stelle zu triggern.
</p>
<p>
Nebenl&#228;ufigkeit ist kein Argument (da das UI single-threaded l&#228;uft)
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1492174006016" ID="ID_1942935948" MODIFIED="1492174016504" TEXT="wozu getrennter Parametrisierungs-Call">
<icon BUILTIN="help"/>
</node>
<node CREATED="1492174212708" ID="ID_716714989" MODIFIED="1492174238508" TEXT="man k&#xf6;nnte auf die bang!-Nachricht verzichten">
<icon BUILTIN="idea"/>
<node CREATED="1492205847909" ID="ID_20433747" MODIFIED="1492205860240" TEXT="entfernt eine Menge Komplexit&#xe4;t">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1492205861275" ID="ID_1520439061" MODIFIED="1492205867150" TEXT="der d&#xe4;mliche Visitor ist weg!"/>
<node COLOR="#338800" CREATED="1492205867738" ID="ID_1598058671" MODIFIED="1492206444561" TEXT="sofort ausgef&#xfc;hrt">
<linktarget COLOR="#78d7bb" DESTINATION="ID_1598058671" ENDARROW="Default" ENDINCLINATION="406;0;" ID="Arrow_ID_1788740270" SOURCE="ID_1018158934" STARTARROW="None" STARTINCLINATION="383;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1492174243863" ID="ID_900555701" MODIFIED="1492174267140">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber: Parametrisierung <i>k&#246;nnte</i>&#160;partiell sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1492174268716" ID="ID_995073060" MODIFIED="1492174273527" TEXT="not yet implemented"/>
<node CREATED="1492174274067" ID="ID_1334398441" MODIFIED="1492174279407" TEXT="YAGNI"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492205884680" HGAP="22" ID="ID_1123687976" MODIFIED="1492205904295" TEXT="Schlu&#xdf;folgerung" VSHIFT="15">
<icon BUILTIN="forward"/>
<node CREATED="1492205906237" ID="ID_900884756" MODIFIED="1533608414027" TEXT="der UI-Bus ist eine Architektur-Entscheidung">
<icon BUILTIN="yes"/>
<node CREATED="1492205915980" ID="ID_1147449569" MODIFIED="1492205922022" TEXT="es geht hier nicht um Performance"/>
<node CREATED="1492205922851" ID="ID_64631579" MODIFIED="1492205930525" TEXT="der direkte Auf&#xfc;hrungs-Pfad ist egal"/>
<node CREATED="1492206055640" ID="ID_1375005290" MODIFIED="1492206059883" TEXT="es geht um die Struktur"/>
</node>
<node CREATED="1492205953694" ID="ID_801761661" MODIFIED="1533608414028" TEXT="deshalb werden Command nicht &quot;hintenrum&quot; getriggert">
<icon BUILTIN="yes"/>
<node CREATED="1492206398465" ID="ID_255699527" MODIFIED="1492206403349" TEXT="kein fire-and-forget"/>
<node CREATED="1492206423622" ID="ID_1494333022" MODIFIED="1492206428977" TEXT="widget-local ist immer gut genug"/>
<node CREATED="1492206404649" ID="ID_62238358" MODIFIED="1492206413723" TEXT="man kann den UI-Bus direkt nutzen"/>
</node>
<node CREATED="1492205969332" ID="ID_1018158934" MODIFIED="1492206444561" TEXT="aber auf die Trennung in bind / bang kann man verzichten">
<arrowlink COLOR="#78d7bb" DESTINATION="ID_1598058671" ENDARROW="Default" ENDINCLINATION="406;0;" ID="Arrow_ID_1788740270" STARTARROW="None" STARTINCLINATION="383;0;"/>
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1492268950187" HGAP="22" ID="ID_768535627" MODIFIED="1492269713606" TEXT="Rolle des InvocationTrail nicht klar" VSHIFT="6">
<arrowlink COLOR="#a24839" DESTINATION="ID_407290509" ENDARROW="Default" ENDINCLINATION="-90;-238;" ID="Arrow_ID_924621068" STARTARROW="None" STARTINCLINATION="-201;0;"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
</node>
<node CREATED="1492268981885" FOLDED="true" HGAP="114" ID="ID_1743832326" MODIFIED="1538870885267" TEXT="Design-Kritik" VSHIFT="-55">
<arrowlink COLOR="#f7335a" DESTINATION="ID_43582318" ENDARROW="Default" ENDINCLINATION="-123;-43;" ID="Arrow_ID_601519634" STARTARROW="Default" STARTINCLINATION="-63;109;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1492269138424" ID="ID_1682612433" MODIFIED="1492269153284" TEXT="gef&#xe4;hrlich stark vom komplexen Fall getrieben">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1492269185449" ID="ID_695030032" MODIFIED="1492269196091" TEXT="die Bedeutung der Command-Instanz ist &#xfc;bertrieben">
<node CREATED="1492269414362" ID="ID_1011798630" MODIFIED="1492269421708" TEXT="sie ist notwendig wegen Multithreading"/>
<node CREATED="1492269422257" ID="ID_921483875" MODIFIED="1492269432251" TEXT="aber nur im ProcDispatcher"/>
<node CREATED="1492269451181" ID="ID_800020285" MODIFIED="1492269548819">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sie wird nicht zum <i>Parameter-Sammeln</i>&#160;verwendet
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492269433415" ID="ID_55077056" MODIFIED="1492269446161" TEXT="es w&#xfc;rde gen&#xfc;gen, sie beim Einf&#xfc;gen transparent zu erzeugen"/>
<node CREATED="1492269567485" ID="ID_661748666" MODIFIED="1492269585470" TEXT="Ausnahme: context-bound">
<node CREATED="1492269751716" ID="ID_868922268" MODIFIED="1492269757167" TEXT="hier ist es eine Trenn-ID"/>
<node CREATED="1492269757659" ID="ID_1570623233" MODIFIED="1492269772333" TEXT="mehrere Control-Systeme k&#xf6;nnen koexistieren"/>
</node>
<node CREATED="1492269922724" ID="ID_806519829" MODIFIED="1492270008064" TEXT="Idee: on demand">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...eine Instanz wird dann erzeugt, wenn sie notwendig wird.
</p>
<p>
Sie kann vom UI-Command-Framework erzeugt werden,
</p>
<p>
sie wird automatisch erzeugt, sofern Parameter gebunden werden,
</p>
<p>
oder ein Command an den Dispatcher &#252;bergeben...
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1492270021119" ID="ID_1461150467" MODIFIED="1492270028429" TEXT="praktikabel?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1492270033509" ID="ID_1721416097" MODIFIED="1492270045552" TEXT="w&#xfc;rde fall-Back auf globale Commands beseitigen"/>
<node CREATED="1492270075064" ID="ID_814785630" MODIFIED="1492270086423" TEXT="w&#xe4;re eigentlich sauberer als dieser Fall-back">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1492270046164" ID="ID_191900745" MODIFIED="1492270058746" TEXT="das k&#xf6;nnte viele Unit-Tests betreffen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1492269260487" ID="ID_1242844034" MODIFIED="1492270114043" TEXT="es gibt kein wirkliches &quot;Protokoll&quot;">
<node CREATED="1492270115626" ID="ID_1073186006" MODIFIED="1492270139603" TEXT="...jenseits von &#xbb;Binden und Ausf&#xfc;hren&#xab;"/>
<node CREATED="1492270174242" ID="ID_884795984" MODIFIED="1492270187724" TEXT="die Varianten sind bis zur Beliebigkeit &quot;offen&quot;"/>
<node CREATED="1492270193216" ID="ID_667627556" MODIFIED="1492270205594" TEXT="erst der reale Gebrauch wird hier Klarheit schaffen">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1492269210918" ID="ID_420603812" MODIFIED="1492269221064" TEXT="CmdAccess wirkt wie eine unn&#xf6;tige Last">
<node CREATED="1492270239793" ID="ID_1729040008" MODIFIED="1492270283358" TEXT="ist notwendig als factory f&#xfc;r InteractionState">
<icon BUILTIN="info"/>
</node>
<node CREATED="1492270258487" ID="ID_108374652" MODIFIED="1492270262186" TEXT="war als Facade gedacht"/>
<node CREATED="1492270262710" ID="ID_1958798996" MODIFIED="1492270276548" TEXT="macht aber den einfachen Fall verwirrend">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1492269372144" ID="ID_1386411981" MODIFIED="1492269383826" TEXT="Konkurrenz zwischen CmdAccess und UI-Bus">
<node CREATED="1492270323718" ID="ID_1980829815" MODIFIED="1492270337152" TEXT="suggeriert &#xbb;Zugriff auf Command&#xab;">
<node CREATED="1492270363992" ID="ID_386306013" MODIFIED="1492270382113" TEXT="man kommt aber nicht an Commands ran"/>
<node CREATED="1492270382565" ID="ID_1485765410" MODIFIED="1492270398351" TEXT="diese sollen unter dem Bus bleiben, in Proc"/>
<node CREATED="1492270411354" ID="ID_947388027" MODIFIED="1492270415125" TEXT="man bekommt nur eine ID"/>
<node CREATED="1492270415593" ID="ID_1624406053" MODIFIED="1492270424495" TEXT="die man schon kennen mu&#xdf;, um sie zu bekommen">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1492270339851" ID="ID_238907164" MODIFIED="1492270358381" TEXT="suggeriert &#xbb;Ausf&#xfc;hren von Commands&#xab;">
<node CREATED="1492271004097" ID="ID_511583689" MODIFIED="1492271014907" TEXT="mu&#xdf; man aber selber machen, via BusTerm"/>
<node CREATED="1492271017087" ID="ID_321529761" MODIFIED="1492271024673" TEXT="daf&#xfc;r braucht man nur die ID">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1492271198846" ID="ID_199345824" MODIFIED="1492271206009" TEXT="die Nachricht wird in Tangible generiert"/>
<node CREATED="1492271027654" ID="ID_42222873" MODIFIED="1492271052893" TEXT="im komplexen Fall k&#xf6;nte CmdAccess Parameter beisteuern"/>
</node>
<node CREATED="1492281019743" ID="ID_948470933" MODIFIED="1492281049526">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
grundlegender Widerspruch
</p>
<p>
zwischen Command-Control-Interface
</p>
<p>
und Messaging
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1492269623805" ID="ID_407290509" MODIFIED="1492444081051" TEXT="InvocationTrail ist fragw&#xfc;rdig">
<linktarget COLOR="#a24839" DESTINATION="ID_407290509" ENDARROW="Default" ENDINCLINATION="-90;-238;" ID="Arrow_ID_924621068" SOURCE="ID_768535627" STARTARROW="None" STARTINCLINATION="-201;0;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1492281083479" ID="ID_970079498" MODIFIED="1492281138259" TEXT="fire-and-forget: superfluous"/>
<node CREATED="1492281103684" ID="ID_135245437" MODIFIED="1492281177306" TEXT="widget-bound: overengineered">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und kaum erkennbarer Nutzen.
</p>
<p>
Der einzige Nutzfall w&#228;re ein &quot;this&quot;-Parameter.
</p>
<p>
Den kann man aber mit geeigneter Syntax auch direkt angeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1492281124705" ID="ID_256590492" MODIFIED="1492281214808" TEXT="context-bound: different structure needed">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hier m&#252;&#223;te der InvocationTrail die aufgesammelten Argumente transportieren.
</p>
<p>
allein <i>daf&#252;r</i>&#160;gen&#252;gt eine GenNode
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281297561" ID="ID_627059506" MODIFIED="1518487921093" TEXT="Schlu&#xdf;folgerung">
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1492281320758" ID="ID_1465764553" MODIFIED="1518487921093" TEXT="InvocationTrail f&#xe4;llt weg">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1492281327277" ID="ID_1090150746" MODIFIED="1518487921093" TEXT="Aufruf erfolgt mit reiner Command-ID">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1492281338555" ID="ID_220910293" MODIFIED="1518487921093" TEXT="Instanzen werden automatisch generiert">
<arrowlink COLOR="#626a9e" DESTINATION="ID_1660020661" ENDARROW="Default" ENDINCLINATION="-324;0;" ID="Arrow_ID_876356993" STARTARROW="None" STARTINCLINATION="-687;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492281383613" ID="ID_143339688" MODIFIED="1518487921093" TEXT="CmdAccess wird f&#xfc;r den komplexen Fall umgewidmet">
<icon BUILTIN="hourglass"/>
<node CREATED="1492281402666" ID="ID_1263822028" MODIFIED="1518487921093" TEXT="es bleibt ein Access-front-End"/>
<node CREATED="1492281417025" ID="ID_1229681605" MODIFIED="1518487921093" TEXT="der Name wird angepa&#xdf;t"/>
<node CREATED="1492281425672" ID="ID_1330862297" MODIFIED="1518487921093" TEXT="es dient zum Konfigurieren eines Kontextes"/>
<node CREATED="1492281434678" ID="ID_1036338249" MODIFIED="1518487921093" TEXT="f&#xfc;r Zugriff auf den InteractionState"/>
<node CREATED="1492281448845" ID="ID_1396633899" MODIFIED="1518487921093" TEXT="f&#xfc;r Callback-Registrierung"/>
<node CREATED="1492281466282" ID="ID_1012579063" MODIFIED="1518487921093" TEXT="Callbacks schicken direkt eine GenNode"/>
</node>
</node>
</node>
</node>
<node COLOR="#252298" CREATED="1489546623162" HGAP="-24" ID="ID_1622574347" MODIFIED="1533385633816" TEXT="was wird gebraucht" VSHIFT="21">
<linktarget COLOR="#352c7d" DESTINATION="ID_1622574347" ENDARROW="Default" ENDINCLINATION="-240;-3336;" ID="Arrow_ID_1512127407" SOURCE="ID_1401258681" STARTARROW="None" STARTINCLINATION="1929;0;"/>
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="help"/>
<node COLOR="#f10a1a" CREATED="1489546678250" ID="ID_228157787" MODIFIED="1518487921093" TEXT="Vorsicht UI-Programmierung">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1489546705798" ID="ID_43582318" MODIFIED="1518487921093" TEXT="keine neue Programmiersprache entwerfen">
<linktarget COLOR="#f7335a" DESTINATION="ID_43582318" ENDARROW="Default" ENDINCLINATION="-123;-43;" ID="Arrow_ID_601519634" SOURCE="ID_1743832326" STARTARROW="Default" STARTINCLINATION="-63;109;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1489546724892" ID="ID_1763781107" MODIFIED="1518487921093" TEXT="mu&#xdf; letztlich explizit sein">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1489546837172" ID="ID_665817500" MODIFIED="1518487921093" TEXT="aber">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1489546843356" ID="ID_1556795494" MODIFIED="1518487921093" TEXT="ich will Gestaltbarkeit"/>
<node CREATED="1489546855202" ID="ID_1824748232" MODIFIED="1518487921093" TEXT="ich will Konfigurierbarkeit"/>
</node>
<node CREATED="1489546994743" FOLDED="true" ID="ID_1851585461" MODIFIED="1538870929524" TEXT="im Einzelnen">
<node CREATED="1489777326111" ID="ID_497480483" MODIFIED="1525124215293" TEXT="CommandID">
<node CREATED="1489715248861" ID="ID_999876408" MODIFIED="1492167362880" TEXT="brauche">
<icon BUILTIN="info"/>
<node CREATED="1489715276057" ID="ID_878658276" MODIFIED="1492167327317" TEXT="Basis-ID">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489715297406" ID="ID_601143379" MODIFIED="1492167324342" TEXT="dekoriert durch Invocation-Trail">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489715320435" ID="ID_1521007439" MODIFIED="1491003112168" TEXT="dekoriert durch laufende Nr">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489715326210" ID="ID_1820734132" MODIFIED="1492167321470" TEXT="guten Hash von diesen">
<icon BUILTIN="button_ok"/>
<node CREATED="1492167331337" ID="ID_1262753230" MODIFIED="1492167341460" TEXT="lib::Symbol">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1489715461992" ID="ID_115322523" MODIFIED="1491003142993" TEXT="&quot;leere&quot; Basis-ID ohne lfdNr">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489715591582" ID="ID_256884690" MODIFIED="1491003145193" TEXT="inkrement der lfdNr">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1489716825126" HGAP="38" ID="ID_969368347" MODIFIED="1492205500240" TEXT="Ans&#xe4;tze" VSHIFT="-1">
<node CREATED="1489716845980" ID="ID_816994670" MODIFIED="1489718875217" TEXT="Command-ID-Token">
<icon BUILTIN="button_cancel"/>
<node CREATED="1489716859034" ID="ID_1342799459" MODIFIED="1489716867940" TEXT="SubID o.&#xe4;."/>
<node CREATED="1489716870000" ID="ID_907818022" MODIFIED="1489716875547" TEXT="Wert-Semantik"/>
<node CREATED="1489716876183" ID="ID_880911498" MODIFIED="1489716883650" TEXT="enth&#xe4;lt die lfdNr"/>
</node>
<node CREATED="1489717087626" ID="ID_1304379039" MODIFIED="1489718872841" TEXT="Registrierungs-Instanz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1489717094881" ID="ID_890501908" MODIFIED="1489717104332" TEXT="Referenz-Semantik"/>
<node CREATED="1489717108735" ID="ID_142693821" MODIFIED="1489717115730" TEXT="enth&#xe4;lt direkt den Z&#xe4;hler"/>
<node CREATED="1489717116246" ID="ID_1967376157" MODIFIED="1489717129232" TEXT="brauche front-End-Token"/>
</node>
<node CREATED="1489717203882" ID="ID_199366549" MODIFIED="1489718870140" TEXT="eingebettete Information">
<icon BUILTIN="button_ok"/>
<node CREATED="1489717237622" ID="ID_1384169115" MODIFIED="1492167147558" TEXT="Command + KontextID in Hashtable"/>
<node CREATED="1489717304621" ID="ID_1984888825" MODIFIED="1489717311967" TEXT="CmdInstanceManager hat Hashtable"/>
<node CREATED="1489717425684" ID="ID_205251145" MODIFIED="1489717436846" TEXT="Instance-Management komplett eingekapselt"/>
<node CREATED="1489717312532" ID="ID_1911293548" MODIFIED="1492443198294" TEXT="key ist Basis-Cmd-ID + Kontext-ID"/>
<node CREATED="1489717395312" ID="ID_1098297494" MODIFIED="1533608414028" TEXT="InvocationTrail speichert nur diese ID">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492443231533" ID="ID_648420580" MODIFIED="1492443237416" TEXT="Konzept aufgegeben"/>
<node CREATED="1492443238668" ID="ID_516547594" MODIFIED="1492443243711" TEXT="unn&#xf6;tige Indirektion"/>
</node>
<node CREATED="1489717406447" ID="ID_1938762085" MODIFIED="1533608414028" TEXT="Bang sendet nur diese ID">
<icon BUILTIN="button_cancel"/>
<node CREATED="1492205513779" ID="ID_36883868" MODIFIED="1492205520773" TEXT="Bang gibts nicht mehr"/>
</node>
</node>
</node>
<node CREATED="1489717768805" HGAP="79" ID="ID_119293304" MODIFIED="1492169049860" TEXT="Entscheidung" VSHIFT="4">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_119293304" ENDARROW="Default" ENDINCLINATION="153;-248;" ID="Arrow_ID_1691148413" SOURCE="ID_319912426" STARTARROW="None" STARTINCLINATION="312;0;"/>
<icon BUILTIN="yes"/>
<node CREATED="1489717797353" ID="ID_899130819" MODIFIED="1489717807068" TEXT="die ersten beiden sind un&#xf6;tig generisch"/>
<node CREATED="1489717807872" ID="ID_1209104496" MODIFIED="1489717818826" TEXT="wir bauen ohnehin den Command-Cycle fest ein"/>
<node CREATED="1489717844003" ID="ID_97055123" MODIFIED="1489717853605" TEXT="letztgenannte L&#xf6;sung ist auf den Punkt"/>
<node CREATED="1489717927279" ID="ID_845301501" MODIFIED="1489717959263" TEXT="Command-ID erf&#xfc;llt keine regulierende Funktion"/>
<node CREATED="1491003369611" ID="ID_854080320" MODIFIED="1511572077393" TEXT="Instanz-Management funktioniert anonym">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil es zu jedem InvocationPath
</p>
<p>
zu jeder Zeit nur eine &quot;offene&quot; Instanz gibt.
</p>
<p>
Also gen&#252;gt es, einen anonymen Klon dieser Instanz zu halten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1489717960331" ID="ID_1849715968" MODIFIED="1489717991603" TEXT="viel wichtiger sind die Aktivierungs-Regeln"/>
</node>
</node>
<node CREATED="1489546998918" HGAP="43" ID="ID_668687712" MODIFIED="1518487921094" TEXT="Aktivierung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist:
</p>
<p>
Ein UI-Control wird <i>aktivierbar,</i>&#160;weil das zugrundeliegende Command
</p>
<p>
alle seine Argumente aus dem aktuellen Kontext befriedigen kann
</p>
<p>
</p>
<p>
Beispiel: Men&#252;-Eintrag &quot;create duplicate&quot;
</p>
</body>
</html></richcontent>
<node CREATED="1489547002918" ID="ID_728456926" MODIFIED="1518487921094" TEXT="Callback installieren"/>
<node CREATED="1489547016564" ID="ID_41325273" MODIFIED="1518487921094" TEXT="Anfrage: ist dies aktivierbar?"/>
</node>
<node CREATED="1489547086458" HGAP="48" ID="ID_1858100202" MODIFIED="1525124215294" TEXT="Argumente" VSHIFT="-1">
<node CREATED="1489547096857" ID="ID_184341736" MODIFIED="1492167490875" TEXT="&quot;gib mir die Argumente!&quot;">
<icon BUILTIN="stop-sign"/>
<node CREATED="1489547170463" ID="ID_1981926549" MODIFIED="1489547178266" TEXT="wirklich?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1489547179254" ID="ID_192306839" MODIFIED="1489547197378" TEXT="ist das der richtige Ansatz?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1489547208282" ID="ID_99440101" MODIFIED="1489690731089" TEXT="l&#xe4;&#xdf;t sich das &#xfc;berhaupt je realisieren?">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1489547112255" ID="ID_270498008" MODIFIED="1511572077457" TEXT="generische Rollen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die Idee ist hier,
</p>
<p>
da&#223; diese generischen Rollen bereits in der Einrichtung der Command-Definition verwendet werden.
</p>
<p>
Das hei&#223;t, f&#252;r einen bestimmten Invocation-Trail legt man fest,
</p>
<p>
da&#223; ein bestimmtes Argument an eine gewisse Rolle gebunden wird,
</p>
<p>
oder andernfalls einen bestimmten Namen bekommt
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1489547124597" ID="ID_408090908" MODIFIED="1489547128224" TEXT="das Subjekt"/>
<node CREATED="1489547128837" ID="ID_865724442" MODIFIED="1489547131120" TEXT="der Container"/>
<node CREATED="1489547498122" ID="ID_1669169317" MODIFIED="1489547504003" TEXT="die Dauer"/>
<node CREATED="1489547283807" ID="ID_559442696" MODIFIED="1489547286467" TEXT="der Wert"/>
</node>
<node CREATED="1489547506625" ID="ID_1063184971" MODIFIED="1489719071018" TEXT="konkret....">
<arrowlink COLOR="#4d2a67" DESTINATION="ID_1622068086" ENDARROW="Default" ENDINCLINATION="-9;-36;" ID="Arrow_ID_717312728" STARTARROW="None" STARTINCLINATION="15;49;"/>
<node CREATED="1489547511224" ID="ID_954080965" MODIFIED="1489547530586" TEXT="das UI-Element wei&#xdf; explizit was gebraucht wird"/>
<node CREATED="1489547542852" ID="ID_271774122" MODIFIED="1489547548943" TEXT="und stellt selber das Tupel zusammen"/>
<node CREATED="1489547574504" ID="ID_49978062" MODIFIED="1489547582019" TEXT="oder ruft einen Funktor auf"/>
<node CREATED="1489547588102" ID="ID_985840704" MODIFIED="1489547597465" TEXT="wodurch die Argument-Typen dokumentiert sind"/>
</node>
</node>
<node CREATED="1489548252324" HGAP="47" ID="ID_1622068086" MODIFIED="1525124215295" TEXT="das k&#xf6;nnte der InvocationTrail sein" VSHIFT="27">
<linktarget COLOR="#4d2a67" DESTINATION="ID_1622068086" ENDARROW="Default" ENDINCLINATION="-9;-36;" ID="Arrow_ID_717312728" SOURCE="ID_1063184971" STARTARROW="None" STARTINCLINATION="15;49;"/>
<icon BUILTIN="idea"/>
<node CREATED="1489719178053" ID="ID_1509284806" MODIFIED="1489719184696" TEXT="hat Cmd-ID + eigene ID"/>
<node CREATED="1489719186276" ID="ID_929080602" MODIFIED="1489719196230" TEXT="kann entscheiden ob ausf&#xfc;hrbar"/>
<node CREATED="1489719200330" ID="ID_840062807" MODIFIED="1489719208197" TEXT="hat Argument-Accessor"/>
<node COLOR="#5e427f" CREATED="1489719212976" HGAP="-52" ID="ID_949699860" MODIFIED="1489719253576" TEXT="noch offen" VSHIFT="45">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1489719257426" ID="ID_1618753270" MODIFIED="1511572077539" TEXT="wer erzeugt den InvocationTrail">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...eben!
</p>
<p>
Diese Frage hat dann dazu gef&#252;hrt,
</p>
<p>
da&#223; ich das ganze Konzept &quot;InvocationTrail&quot;
</p>
<p>
wieder komplett zur&#252;ckgebaut habe
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489719267537" ID="ID_963145148" MODIFIED="1489719291065" TEXT="was ist bereits vom Command her definiert"/>
<node CREATED="1489719292181" ID="ID_804928267" MODIFIED="1489719304359" TEXT="kann es mehrere konkurrierende Auslegungen geben?"/>
</node>
</node>
<node CREATED="1492281599624" ID="ID_813754826" MODIFIED="1518487921094" TEXT="einfache L&#xf6;sung">
<arrowlink COLOR="#5f758e" DESTINATION="ID_1089419591" ENDARROW="Default" ENDINCLINATION="40;300;" ID="Arrow_ID_1986823533" STARTARROW="None" STARTINCLINATION="1031;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node COLOR="#338800" CREATED="1492281610286" ID="ID_1542647024" MODIFIED="1518487921094" TEXT="automatische Instanz-Erzeugung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1492281619901" ID="ID_423372741" MODIFIED="1518487921094" TEXT="direkter Aufruf mit CommandDef-ID">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492281659520" ID="ID_1742758477" MODIFIED="1518487921094" TEXT="Argument-Resolver f&#xfc;r Kontext-Zugriff"/>
<node CREATED="1492281675557" ID="ID_1809773326" MODIFIED="1518487921094" TEXT="InvocationState mit Callbacks"/>
</node>
</node>
</node>
</node>
<node CREATED="1489781392694" ID="ID_1312397991" MODIFIED="1518487921094" TEXT="Festlegungen">
<icon BUILTIN="yes"/>
<node CREATED="1489781404925" ID="ID_1918933171" MODIFIED="1518487921094" TEXT="Command-ID">
<node CREATED="1489781409876" ID="ID_1973020417" MODIFIED="1518487921094" TEXT="Basis-ID ist ein Symbol"/>
<node CREATED="1491003215783" ID="ID_1537560721" MODIFIED="1518487921094" TEXT="es wird mit einer Invocation-ID dekoriert"/>
<node CREATED="1491003228101" ID="ID_661472357" MODIFIED="1518487921094" TEXT="wir brauchen keine laufende Nummer">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1491003237108" ID="ID_1167308664" MODIFIED="1518487921094" TEXT="Instance-Management funktioniert anonym"/>
</node>
<node CREATED="1489781426978" ID="ID_1543445405" MODIFIED="1518487921094" TEXT="konkrete Definition">
<icon BUILTIN="button_ok"/>
<node CREATED="1489781443184" ID="ID_966382785" MODIFIED="1518487921094" TEXT="Ort">
<node CREATED="1489781447639" ID="ID_588776773" MODIFIED="1518487921094" TEXT="proc/cmd/*-cmd.cpp"/>
<node CREATED="1489781476355" ID="ID_1953562265" MODIFIED="1518487921094" TEXT="Namespace proc::cmd"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489781611257" FOLDED="true" ID="ID_179887792" MODIFIED="1538871019179" TEXT="brauche">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1489781616257" ID="ID_1645536558" MODIFIED="1518487921094" TEXT="Schema f&#xfc;r ID-Konstanten"/>
<node CREATED="1489781628743" ID="ID_1733247268" MODIFIED="1518487921094" TEXT="Mechanismus, der die Definition treibt"/>
<node CREATED="1489781758389" ID="ID_1124650374" MODIFIED="1533608414029" TEXT="gew&#xfc;nscht">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1489781775443" ID="ID_379002135" MODIFIED="1518487921094" TEXT="Name und Definition nahe zusammen"/>
<node CREATED="1489781769500" ID="ID_998243238" MODIFIED="1518487921094" TEXT="keine Redundanz"/>
<node CREATED="1489781902770" ID="ID_1568226956" MODIFIED="1518487921094" TEXT="gut lesbar"/>
<node CREATED="1489781907906" ID="ID_1206063892" MODIFIED="1518487921094" TEXT="debuggbar"/>
<node CREATED="1489781923640" ID="ID_241861600" MODIFIED="1518487921094" TEXT="kommentierbar (Doxygen)"/>
<node CREATED="1489785114574" ID="ID_241665479" MODIFIED="1518487921094" TEXT="nur unsichtbare Magie"/>
</node>
<node CREATED="1489785137083" ID="ID_1466955376" MODIFIED="1533608414033" TEXT="M&#xf6;glichkeiten">
<node CREATED="1489785163216" ID="ID_1992894903" MODIFIED="1489785168547" TEXT="zu Fu&#xdf;...">
<node CREATED="1489785199131" ID="ID_111396262" MODIFIED="1489785207662" TEXT="ID-Konstanten im Header deklarieren"/>
<node CREATED="1489785208298" ID="ID_315886293" MODIFIED="1489785222188" TEXT="ID-Konstanten in der jeweiligen translation-Unit definieren"/>
<node CREATED="1489785250500" ID="ID_464247309" MODIFIED="1489785259671" TEXT="Lifecycle-Hook installieren..."/>
<node CREATED="1489785260523" ID="ID_1306260885" MODIFIED="1489785270590" TEXT="..der eine Registrierungs-Funktion aufruft"/>
<node CREATED="1489785276137" ID="ID_1526475921" MODIFIED="1489785285307" TEXT="in dieser die CommandDef absetzen"/>
<node CREATED="1489785285872" ID="ID_1304462599" MODIFIED="1489785296938" TEXT="und als Command-ID die definierte Konstante verwenden"/>
</node>
<node CREATED="1489786040203" ID="ID_1417335273" MODIFIED="1489786045870" TEXT="Vereinfachungen">
<node CREATED="1489786055057" ID="ID_565306146" MODIFIED="1489786059852" TEXT="decl/def">
<node CREATED="1489786238273" ID="ID_1957761383" MODIFIED="1489786331600" TEXT="marker-Makro"/>
<node CREATED="1489786245024" ID="ID_430222749" MODIFIED="1489786255810" TEXT="alle Definitionen in Makros einwickeln"/>
<node CREATED="1489786393908" ID="ID_1345826013" MODIFIED="1489786660959" TEXT="spezielle Inclusion-Rituale">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
vermutlich l&#228;uft es immer darauf hinaus
</p>
<ul>
<li>
da&#223; cmd.hpp die Implementierungs-Einheiten includiert
</li>
<li>
oder da&#223; in einer ausgezeichneten Impl-Einheit das marker-Makro gesetzt wird und dann cmd.hpp includiert wird
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1489789880260" ID="ID_768121026" MODIFIED="1489789887822" TEXT="Template-Spezialisierung?">
<node CREATED="1489790030727" ID="ID_1780788892" MODIFIED="1489790046961" TEXT="k&#xf6;nnte const char* nehmen"/>
<node CREATED="1489790053044" ID="ID_1594786428" MODIFIED="1489790070534" TEXT="k&#xf6;nnte dann nach Literal konvertibel sein"/>
<node CREATED="1489790158335" ID="ID_1828195626" MODIFIED="1489790166017" TEXT="Template k&#xf6;nnte in Header definiert sein"/>
<node CREATED="1489790167669" ID="ID_156312862" MODIFIED="1489790182247" TEXT="und nur die explizite Spezialisierung generiert Code"/>
</node>
<node CREATED="1489790425251" ID="ID_1099709668" MODIFIED="1489790430606" TEXT="auto-Registrierung">
<node CREATED="1489790431810" ID="ID_1253214974" MODIFIED="1489790442380" TEXT="variable statisch initialisieren"/>
<node CREATED="1489790522958" ID="ID_1454213723" MODIFIED="1489790532345" TEXT="Lambda an Basis-Ctor geben"/>
</node>
<node CREATED="1489790555393" ID="ID_1281815871" MODIFIED="1489790574611" TEXT="DSL wie boost-test">
<node CREATED="1489790576831" ID="ID_84712572" MODIFIED="1489790584658" TEXT="definiert Klasse o.&#xe4;"/>
<node CREATED="1489790588749" ID="ID_1302974476" MODIFIED="1489790599656" TEXT="User schreibt direkt dahinter einen Codeblock"/>
<node CREATED="1489790689536" ID="ID_605065689" MODIFIED="1489790702050" TEXT="tats&#xe4;chlich wird das eine out-of-class definierte Methode"/>
<node CREATED="1489791695217" ID="ID_1529943414" MODIFIED="1489791705036" TEXT="...und kann sogar per Doxygen kommentiert werden"/>
</node>
<node CREATED="1489791741539" ID="ID_175521756" MODIFIED="1489791746686" TEXT="im Build-Proze&#xdf; parsen">
<node CREATED="1489791753074" ID="ID_1141751955" MODIFIED="1489791761893" TEXT="und z.B. den Header daraus generieren"/>
<node CREATED="1489791763313" ID="ID_1622970394" MODIFIED="1489791766588" TEXT="warum nicht...?"/>
<node CREATED="1489791777102" ID="ID_102161218" MODIFIED="1489791786937" TEXT="empfinde ich besser als komplex verschachtelte Makros"/>
</node>
</node>
</node>
<node CREATED="1489791729957" ID="ID_1986771449" MODIFIED="1525124215299" TEXT="kombinierte Magie">
<icon BUILTIN="button_ok"/>
<node CREATED="1489791798116" ID="ID_197500257" MODIFIED="1533608414034" TEXT="Definitions-Klasse">
<icon BUILTIN="idea"/>
<node CREATED="1489791805675" ID="ID_1517636242" MODIFIED="1489811237752" TEXT="ist konvertierbar nach Literal">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489791817873" ID="ID_361574240" MODIFIED="1489811240833" TEXT="nimmt Lambda als Konstruktor-Argument">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489791849245" ID="ID_262482724" MODIFIED="1489791860879" TEXT="bietet interne DSL"/>
<node CREATED="1489795277835" ID="ID_663997649" MODIFIED="1533608414035" TEXT="Name gesucht...?">
<icon BUILTIN="help"/>
<node CREATED="1489795288354" ID="ID_960791386" MODIFIED="1489795346577" TEXT="CommandInstance">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489795292689" ID="ID_1059834523" MODIFIED="1489795346578" TEXT="CommandDefinition">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489795318614" ID="ID_437740295" MODIFIED="1489795346578" TEXT="CommandName">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489795321669" ID="ID_115829263" MODIFIED="1489795346579" TEXT="CommandItem">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1489795298832" ID="ID_1272194079" MODIFIED="1489795342763" TEXT="CommandSetup">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1489791864787" ID="ID_891631217" MODIFIED="1489791877373" TEXT="in den Impl-Einheiten eine Folge von Definitionen"/>
<node CREATED="1489791877913" ID="ID_387208356" MODIFIED="1489793604385" TEXT="zugh&#xf6;rigen Header proc/cmd.hpp im Build-Proze&#xdf; regenerieren">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1489811274588" ID="ID_1635051629" MODIFIED="1518487921094" TEXT="Mechanismus">
<node COLOR="#338800" CREATED="1489811285746" ID="ID_1726037509" MODIFIED="1518487921094" TEXT="CommandSetup">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1489811291313" ID="ID_1780064476" MODIFIED="1518487921094" TEXT="Makro COMMAND_DEFINITION">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1489811304111" ID="ID_1976451454" MODIFIED="1518487921094" TEXT="Build-Generierung">
<icon BUILTIN="hourglass"/>
<node CREATED="1490927680004" ID="ID_1456638216" MODIFIED="1518487921094" TEXT="auf &quot;sp&#xe4;ter&quot; vertagt"/>
<node CREATED="1490927702128" ID="ID_1355040899" MODIFIED="1518487921094" TEXT="wenn die h&#xe4;ndische Pflege zum Problem wird"/>
</node>
</node>
</node>
<node CREATED="1490985673313" FOLDED="true" ID="ID_1705714293" MODIFIED="1538871036105" TEXT="Instanzen">
<icon BUILTIN="button_ok"/>
<node CREATED="1490985683359" ID="ID_476048128" MODIFIED="1525124215302" TEXT="Instanz-Manager">
<icon BUILTIN="button_ok"/>
<node CREATED="1490985692550" ID="ID_300485716" MODIFIED="1490985696321" TEXT="einfache Komponente"/>
<node CREATED="1490985710963" ID="ID_447657694" MODIFIED="1490985717974" TEXT="keinerlei Lifecycle-Magie"/>
<node CREATED="1490985720722" FOLDED="true" ID="ID_1386937508" MODIFIED="1538871032990" TEXT="ist nur eine Registry mit etwas Funktionalit&#xe4;t">
<node CREATED="1490986294710" ID="ID_558020871" MODIFIED="1533400457991" TEXT="Command-IDs dekorieren"/>
<node CREATED="1490986302197" ID="ID_1305641719" MODIFIED="1491004967731" TEXT="fortlaufenden Z&#xe4;hler verwalten">
<icon BUILTIN="button_cancel"/>
<node CREATED="1490986345879" ID="ID_1736956933" MODIFIED="1490986393723" TEXT="denn: Dispatch bedeutet Verz&#xf6;gerung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...also ist eine Instanz durchaus noch am Leben,
</p>
<p>
w&#228;hrend bereits die n&#228;chste Instanz f&#252;r das GUI ausgegeben wurde.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1490986395088" ID="ID_52247198" MODIFIED="1490986412151" TEXT="Stets nur eine Instanz im Instance-manager">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1490986336425" ID="ID_1955343463" MODIFIED="1490986430233" TEXT="Konsequenz: leerer Eintrag">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit die Nummer erhalten bleibt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1491004971039" ID="ID_329531567" MODIFIED="1491004978482" TEXT="anonyme Instanz verwalten">
<node CREATED="1491004982341" ID="ID_1956457610" MODIFIED="1491495639478" TEXT="Frage: Duplikat &#xfc;berschreiben?">
<icon BUILTIN="help"/>
<node CREATED="1491495641174" ID="ID_1196432780" MODIFIED="1491495651041" TEXT="antwort (vorerst): nein"/>
<node CREATED="1491495651932" ID="ID_1393507104" MODIFIED="1491495656080" TEXT="w&#xe4;re gef&#xe4;hrlich"/>
<node CREATED="1491495656604" ID="ID_1592570029" MODIFIED="1491495669470" TEXT="weist auf Logik-Fehler hin"/>
</node>
<node CREATED="1491005133794" ID="ID_1003096513" MODIFIED="1491005393601" TEXT="vorl&#xe4;ufig &#xfc;berschreibe ich stillschweigend">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1490986309084" ID="ID_1432845924" MODIFIED="1490986319583" TEXT="sicher &#xdc;bergabe an Dispatch">
<node CREATED="1490986320434" ID="ID_1807848022" MODIFIED="1490986324558" TEXT="Dispatch als Closure"/>
<node CREATED="1490986325626" ID="ID_167499115" MODIFIED="1490986333421" TEXT="Exception-Safety!"/>
</node>
</node>
<node CREATED="1491003278638" ID="ID_516679033" MODIFIED="1491003300696" TEXT="Instanz-Management">
<node CREATED="1491003301379" ID="ID_997022970" MODIFIED="1491003305671" TEXT="funktioniert fast von selbst"/>
<node CREATED="1491003306451" ID="ID_1812101347" MODIFIED="1491003314278" TEXT="Command == smart-Handle"/>
<node CREATED="1491003314746" ID="ID_850841535" MODIFIED="1491003350337" TEXT="instanz kann anonym bleiben">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1491003323585" ID="ID_719524765" MODIFIED="1491003347758" TEXT="die lokale Registry h&#xe4;llt sie am Leben">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1490985696821" ID="ID_564026288" MODIFIED="1490985706464" TEXT="wird vom SessionCommandService betrieben"/>
</node>
<node CREATED="1490985748207" ID="ID_1314513556" MODIFIED="1518487921094" TEXT="Instanzbildung">
<icon BUILTIN="button_ok"/>
<node CREATED="1490985756381" ID="ID_1346029720" MODIFIED="1518487921094" TEXT="wird durch ID-Dekoration getrieben"/>
<node CREATED="1491656301121" ID="ID_566719122" MODIFIED="1518487921094" TEXT="es ist stets nur eine Instanz offen"/>
<node CREATED="1492359658654" ID="ID_712987844" MODIFIED="1518487921094" TEXT="erfolgt weitgehend automatisch/transparent">
<node CREATED="1492359686938" ID="ID_1447317770" MODIFIED="1518487921094" TEXT="anonyme Klon-Kopie von CommandDef">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1492359678835" ID="ID_608610767" MODIFIED="1518487921094" TEXT="explizite Instanzbildung ist optional">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...implementiert &quot;f&#252;r die Zukunft&quot;,
</p>
<p>
wenn wir context-bound -Commands verwenden
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1491694174845" ID="ID_344801148" MODIFIED="1518487921094" TEXT="Instanzbildung geh&#xf6;rt nicht in das Tangible">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist ein grundlegender Beschlu&#223;.
</p>
<p>
InteractionControl ist eine eigene Schicht;
</p>
<p>
deshalb ist auch der UI-Bus nicht <i>das </i>Universal-Interface schlechthin
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1492444212103" ID="ID_205822286" MODIFIED="1518487921094" TEXT="Regelfall">
<icon BUILTIN="button_ok"/>
<node CREATED="1492444215374" ID="ID_1593808752" MODIFIED="1518487921094" TEXT="einfacher direkter Aufruf"/>
<node CREATED="1492444220086" ID="ID_1379993947" MODIFIED="1518487921094" TEXT="rein die Command-ID gen&#xfc;gt"/>
<node CREATED="1492444235604" ID="ID_821909125" MODIFIED="1518487921094" TEXT="diese ist per proc/cmd.hpp festgelegt"/>
<node CREATED="1492444226909" ID="ID_1827091909" MODIFIED="1518487921094" TEXT="Instanzen werden automatisch erzeugt"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461052551" ID="ID_1120178298" MODIFIED="1518487921094" TEXT="Objekt-IDs">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1492461062788" ID="ID_685772910" MODIFIED="1518487921094" TEXT="was wird verwendet, um auf Objekte zu verweisen"/>
<node CREATED="1492461075842" ID="ID_1775175141" MODIFIED="1518487921094" TEXT="M&#xf6;glichkeiten">
<node CREATED="1492461081978" ID="ID_1041621476" MODIFIED="1518487921094" TEXT="LuidH">
<node CREATED="1492461102167" ID="ID_541671903" MODIFIED="1518487921094" TEXT="schon unterst&#xfc;tzt"/>
</node>
<node CREATED="1492461084232" ID="ID_1450157918" MODIFIED="1518487921094" TEXT="EntryID">
<icon BUILTIN="pencil"/>
<node CREATED="1492461110341" ID="ID_1884085083" MODIFIED="1518487921094" TEXT="m&#xfc;&#xdf;te in GenNode transportiert werden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1492461121691" ID="ID_1456848003" MODIFIED="1518487921094" TEXT="GenNode-Datentypen erweitern">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1488672593812" ID="ID_1454459609" MODIFIED="1518487921094" TEXT="konkret"/>
</node>
<node CREATED="1448063874479" HGAP="43" ID="ID_739054690" MODIFIED="1557498707235" TEXT="UI-Binding" VSHIFT="1">
<icon BUILTIN="yes"/>
<node CREATED="1538957594154" ID="ID_2785316" MODIFIED="1557498707235" TEXT="erwartete Modell-Struktur">
<node COLOR="#435e98" CREATED="1538957611472" ID="ID_580392349" MODIFIED="1557498707235" TEXT="gem&#xe4;&#xdf; systematischem UI Modell-Schema">
<arrowlink COLOR="#919fc6" DESTINATION="ID_165150753" ENDARROW="Default" ENDINCLINATION="-641;482;" ID="Arrow_ID_593956858" STARTARROW="None" STARTINCLINATION="1108;116;"/>
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538957611472" ID="ID_1483911882" MODIFIED="1557498707235" TEXT="Aufgabe: Placement GUI-Repr&#xe4;sentation">
<arrowlink COLOR="#919fc6" DESTINATION="ID_388585037" ENDARROW="None" ENDINCLINATION="-682;462;" ID="Arrow_ID_726807054" STARTARROW="Default" STARTINCLINATION="638;-81;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1540748268638" ID="ID_59379201" MODIFIED="1557498707235" TEXT="Grundkonzept">
<icon BUILTIN="yes"/>
<node CREATED="1540748279917" ID="ID_85147625" MODIFIED="1557498707235" TEXT="materialisierte Eigenschaften erscheinen auf dem Target"/>
<node CREATED="1540748293067" ID="ID_1744964690" MODIFIED="1557498707235" TEXT="(meta)-Einstellungen des Placements erscheinen in einem geschachtelten Objekt"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544839734136" ID="ID_1725773887" MODIFIED="1557498707235" TEXT="Aufgabe: Model anreichern und explizieren">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1544839748278" ID="ID_819383617" MODIFIED="1557498707235" TEXT="das systematische UI-Modell ist explizit">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1539134733747" ID="ID_1179407482" MODIFIED="1557498707235" TEXT="vom Diff-Constituent zu leisten">
<arrowlink COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-432;-65;" ID="Arrow_ID_1794591374" STARTARROW="None" STARTINCLINATION="-1379;-131;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1539138549468" ID="ID_515593613" MODIFIED="1557498707235" TEXT="existiert &quot;irgendwo&quot; in der Session"/>
<node CREATED="1539138556651" ID="ID_1569094364" MODIFIED="1557498707235" TEXT="wird anderweitig getriggert"/>
<node CREATED="1539138563657" ID="ID_1039045631" MODIFIED="1557498707235" TEXT="erzeugt Diff-Emanation"/>
<node CREATED="1544840079986" ID="ID_1423447891" MODIFIED="1557498707235" TEXT="fertig aufbereitet">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1544839802910" ID="ID_1966850162" MODIFIED="1557498707235" TEXT="auszuf&#xfc;hren">
<node CREATED="1544839813006" ID="ID_790942961" MODIFIED="1557498707235" TEXT="Ruler-Configs f&#xfc;r jeden Track"/>
<node CREATED="1544839819212" ID="ID_685715164" MODIFIED="1557498707235" TEXT="Steuer-Elemente gem&#xe4;&#xdf; Placement"/>
</node>
</node>
</node>
</node>
<node CREATED="1434128074725" FOLDED="true" HGAP="28" ID="ID_933994138" MODIFIED="1557498707235" TEXT="Diff-System" VSHIFT="1">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="go"/>
<node CREATED="1434128278990" ID="ID_106354755" MODIFIED="1518487921094" TEXT="Diff-Darstellung"/>
<node CREATED="1434128267381" ID="ID_823706141" MODIFIED="1518487921094" TEXT="List-diff">
<icon BUILTIN="go"/>
</node>
<node CREATED="1434128078638" ID="ID_1704749549" MODIFIED="1518487921094" TEXT="Tree-Diff">
<icon BUILTIN="go"/>
<node CREATED="1434128095838" ID="ID_419405890" MODIFIED="1518487921094" TEXT="Detector">
<icon BUILTIN="stop"/>
</node>
<node CREATED="1434128092877" ID="ID_105246595" MODIFIED="1518487921094" TEXT="Applikator">
<node CREATED="1434128115462" ID="ID_1299653797" MODIFIED="1518487921094" TEXT="Tree-Mutator"/>
</node>
<node CREATED="1434128083878" ID="ID_937754899" MODIFIED="1518487921094" TEXT="Format">
<node CREATED="1434128153773" ID="ID_1289483934" MODIFIED="1518487921094" TEXT="Objekt-Repr&#xe4;s">
<icon BUILTIN="button_ok"/>
<node CREATED="1434128243334" ID="ID_1828331212" MODIFIED="1518487921094" TEXT="Typ-Darstellung"/>
<node CREATED="1434128239517" ID="ID_1886740948" MODIFIED="1518487921094" TEXT="Mapping"/>
<node CREATED="1434128170381" FOLDED="true" ID="ID_976705384" MODIFIED="1538870789992" TEXT="GenNode">
<linktarget COLOR="#ff0033" DESTINATION="ID_976705384" ENDARROW="Default" ENDINCLINATION="-36;39;" ID="Arrow_ID_1285375088" SOURCE="ID_553361956" STARTARROW="Default" STARTINCLINATION="-5;-77;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1435421658394" ID="ID_1938259420" MODIFIED="1518487921094" TEXT="ID">
<node CREATED="1435421670349" FOLDED="true" ID="ID_1358247529" MODIFIED="1538870761827" TEXT="verwende EntryID">
<icon BUILTIN="button_ok"/>
<node CREATED="1435421678004" ID="ID_691179282" MODIFIED="1512926192296" TEXT="Abh&#xe4;ngigkeitsprobleme">
<node CREATED="1435421693260" ID="ID_1314021887" MODIFIED="1435942753226" TEXT="generische ID-Funktionen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1435421739988" ID="ID_405602814" MODIFIED="1435885199446" TEXT="EntryID geh&#xf6;rt in Library">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1435885214592" ID="ID_1198930165" MODIFIED="1512926192296" TEXT="sanitise st&#xf6;rt">
<node CREATED="1435885226222" ID="ID_776697956" MODIFIED="1435942745458" TEXT="verschiebe in EntryID">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1435885235583" ID="ID_444167455" MODIFIED="1435942747401" TEXT="verwende Subklasse">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1439842285584" ID="ID_334339765" MODIFIED="1518487921094" TEXT="spezielle Ref-IDs"/>
</node>
<node CREATED="1434128174030" ID="ID_1395250463" MODIFIED="1525124215304" TEXT="Variant">
<node CREATED="1435943070542" FOLDED="true" ID="ID_949070153" MODIFIED="1538870755171" TEXT="Wert-Semantik">
<icon BUILTIN="button_ok"/>
<node CREATED="1435943077974" ID="ID_280152814" MODIFIED="1435943080682" TEXT="kopierbar"/>
<node CREATED="1435943081438" ID="ID_159359464" MODIFIED="1435943083738" TEXT="zuweisbar"/>
<node CREATED="1435943085206" ID="ID_734188530" MODIFIED="1512926192298" TEXT="const-ness liegt beim User">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. der usage context entscheidet, ob wir einen Wert,
</p>
<p>
eine Referenz oder einen konstanten Wert verwenden
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1435943194398" ID="ID_587131941" MODIFIED="1435943203161" TEXT="GenNode gibt Referenz auf Wert"/>
<node CREATED="1435943203662" ID="ID_1772960325" MODIFIED="1435943274743" TEXT="const GenNode gibt const&amp;">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1435943214822" ID="ID_723738462" MODIFIED="1435943233983">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Record selber ist immuable
</p>
<p>
aber hat eine Builder-Mechanik
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1435943121046" ID="ID_16399922" MODIFIED="1435943145278" TEXT="brauche const Variante">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
eigentlich fehlte nur die get()-Operation
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1434128217645" FOLDED="true" ID="ID_1790054544" MODIFIED="1538870749185" TEXT="Monade">
<icon BUILTIN="button_cancel"/>
<node CREATED="1435932580854" ID="ID_1307223527" MODIFIED="1512926192300" TEXT="Daten einwickeln">
<node CREATED="1435932589853" ID="ID_180643071" MODIFIED="1435932595665" TEXT="ctor forward"/>
<node CREATED="1435932598197" ID="ID_951223738" MODIFIED="1512926192301" TEXT="Problem mit copy ctor">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
erledigt... &#228;hm vertagt
</p>
<p>
aber nicht wirklich; der workaround k&#246;nnte schon die L&#246;sung sein #963
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1435932667701" HGAP="22" ID="ID_1069242347" MODIFIED="1512926192302" TEXT="Copy matcht generischen ctor" VSHIFT="-9">
<icon BUILTIN="idea"/>
<node CREATED="1435932714261" ID="ID_1395890846" MODIFIED="1435932719281" TEXT="gleiches Problem schon bei Variant"/>
<node CREATED="1435932719709" ID="ID_188423010" MODIFIED="1435932783846" TEXT="dort explizit gemacht, da komplex">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ich hatte damals beim Variant und zugeh&#246;rigen Buffer die Sorge,
</p>
<p>
da&#223; ich die Implikationen einer generischen L&#246;sung nicht durchdringen kann.
</p>
<p>
Und ich wollte keine Zeit auf einen exzessiven Unit-Test verwenden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1435942764328" ID="ID_1740355148" MODIFIED="1435942879414">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
generische L&#246;sung verschoben <font color="#990033">#963</font>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#ff3333" DESTINATION="ID_1935900779" ENDARROW="Default" ENDINCLINATION="188;0;" ID="Arrow_ID_1626382520" STARTARROW="Default" STARTINCLINATION="2;73;"/>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1435942827511" ID="ID_614756812" MODIFIED="1435942844839">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
C++11 erlaubt <b>=default</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1435932611653" ID="ID_1701726752" MODIFIED="1435932628945" TEXT="Ansatz-1 (einfach): explizit"/>
<node CREATED="1435932629517" ID="ID_1935900779" MODIFIED="1435942879415" TEXT="Ansatz-2: Selbst-Typ ausblenden">
<linktarget COLOR="#ff3333" DESTINATION="ID_1935900779" ENDARROW="Default" ENDINCLINATION="188;0;" ID="Arrow_ID_1626382520" SOURCE="ID_1740355148" STARTARROW="Default" STARTINCLINATION="2;73;"/>
</node>
</node>
</node>
<node CREATED="1435942891695" FOLDED="true" ID="ID_947731706" MODIFIED="1538870739697" TEXT="Iteration">
<linktarget COLOR="#98e2df" DESTINATION="ID_947731706" ENDARROW="Default" ENDINCLINATION="-78;95;" ID="Arrow_ID_197324270" SOURCE="ID_1665153106" STARTARROW="None" STARTINCLINATION="168;-25;"/>
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1440983732337" HGAP="35" ID="ID_792682966" MODIFIED="1440983809484" TEXT="monadische Iteration" VSHIFT="12">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
nicht klar, ob wir das &#252;berhaupt brauchen
</p>
<ul>
<li>
entweder nur die unmittelbaren Kinder -&gt; komplexe Logik f&#228;llt auf den Client
</li>
<li>
oder nur die Bl&#228;tter -&gt; man kann die Baum-Struktur nicht wirklich nutzen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1440983598369" ID="ID_1025556053" MODIFIED="1512926192305">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Entscheidung
</p>
<p>
<font size="1">was wir brauchen</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1440983617193" ID="ID_532213208" MODIFIED="1440983627459" TEXT="bracketing"/>
<node CREATED="1440983628399" ID="ID_1711016962" MODIFIED="1440983642457" TEXT="node prefix"/>
<node CREATED="1440983643445" ID="ID_1023025658" MODIFIED="1440983656648" TEXT="depth-first"/>
</node>
<node CREATED="1440983661027" ID="ID_507018481" MODIFIED="1512926192307" TEXT="Impl">
<node CREATED="1440983668537" ID="ID_1230038295" MODIFIED="1441936954788" TEXT="IterExplorer verwenden">
<icon BUILTIN="help"/>
</node>
<node CREATED="1440984024736" ID="ID_1554494729" MODIFIED="1512926192308" TEXT="Chained Iters">
<node CREATED="1440984028959" ID="ID_896818992" MODIFIED="1440984040210" TEXT="pfiffig"/>
<node CREATED="1440984040870" ID="ID_1008957395" MODIFIED="1440984048057" TEXT="m&#xfc;&#xdf;te der IterIter implementieren"/>
<node CREATED="1440984048380" ID="ID_917358570" MODIFIED="1440984080184">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
geht nicht:
</p>
<p>
rekursiver Abstieg in der Mitte eines Iterators
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1440983855875" FOLDED="true" ID="ID_1991218497" MODIFIED="1538870723919" TEXT="RecursiveSelfIntegration">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das war die Quintessenz der ganzen Entwicklung zum IterExplorer
</p>
<p>
Nachdem ich die depth-first / breadth-first -Strategien systematisch aufgebaut hatte,
</p>
<p>
habe ich das dann reduziert und kompakt nochmal geschrieben.
</p>
<p>
Sehr sch&#246;n!
</p>
<p>
</p>
<p>
</p>
<p>
&#252;brigens: genau den verwenden wir auch zur Job-Planung
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-1"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1440983865102" ID="ID_306959180" MODIFIED="1440983871265" TEXT="hoch effizient"/>
<node CREATED="1440983872517" ID="ID_1633584594" MODIFIED="1440983880175" TEXT="pa&#xdf;t genau"/>
<node CREATED="1440983880715" ID="ID_617483189" MODIFIED="1440983893678" TEXT="erfordert speziellen ResultIter"/>
<node COLOR="#999999" CREATED="1440984125546" ID="ID_461442477" MODIFIED="1533608414037" TEXT="TODO">
<font NAME="SansSerif" SIZE="10"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1440984130872" FOLDED="true" ID="ID_579146044" MODIFIED="1533608416332" TEXT="ResultIter">
<node CREATED="1440984214126" ID="ID_1124020862" MODIFIED="1441937180496" TEXT="GenNode-Zeiger"/>
<node CREATED="1440984221636" ID="ID_1279195509" MODIFIED="1441937180496" TEXT="Scope-Marker"/>
</node>
<node CREATED="1440984158949" ID="ID_1602941967" MODIFIED="1441937180496" TEXT="BuilderTrait"/>
<node CREATED="1440984166132" FOLDED="true" ID="ID_761913732" MODIFIED="1533608416333" TEXT="explorer Funktion">
<node CREATED="1440984256512" ID="ID_1965762804" MODIFIED="1441937180496" TEXT="verwendet Variant::Visitor"/>
<node CREATED="1440984273357" ID="ID_153302412" MODIFIED="1441937180496" TEXT="steigt in Records ein"/>
</node>
</node>
</node>
<node CREATED="1441935566556" FOLDED="true" ID="ID_128176235" MODIFIED="1538870725248" TEXT="oder doch depthFirst?">
<icon BUILTIN="full-2"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1441935596503" ID="ID_119941709" MODIFIED="1441935613232" TEXT="verwendet einen einfacheren Iterator"/>
<node CREATED="1441935617115" ID="ID_1743908800" MODIFIED="1441935704268" TEXT="hat daf&#xfc;r den Stack (deque) explizit"/>
<node CREATED="1441935708383" ID="ID_1709495985" MODIFIED="1441936067879" TEXT="Erkenntnis: Stack ist unvermeidbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir m&#252;ssen den Weg zur&#252;ck finden.
</p>
<p>
Wenn also eine Datenstruktur nur einfach verzeigert ist, oder direkt rekursiv (wie bei uns),
</p>
<p>
dann ist es <i>absolut unm&#246;glich,</i>&#160;eine Traversierung mit konstantem Speicher zu machen.
</p>
<p>
Das geht nur bei einer Struktur mit R&#252;ckreferenzen -- diese enthalten dann n&#228;mlich genau den Speicher,
</p>
<p>
der w&#228;hrend dem Einstieg in die einfach verzeigerte Struktur auf dem Stack liegt. Aber letztere
</p>
<p>
braucht nur eine logarithmische Menge an Speicher, und das auch nur w&#228;hrend der Traversierung.
</p>
<p>
Dies ist die Abw&#228;gung, und darunter l&#228;&#223;t sich nichts weghandeln.
</p>
<p>
</p>
<p>
Der einzige verbleibende Freiheitsgrad ist, bei einer unmittelbaren rekursiven Programmierung
</p>
<p>
direkt den Prozessor-Stack f&#252;r die Speicherung des R&#252;ckweges mitzuverwenden;
</p>
<p>
in dem Moment, wo ich mich f&#252;r einen Iterator entscheide, ist diese M&#246;glichkeit weg.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1441936092427" ID="ID_199084223" MODIFIED="1441936126886">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann genauso effizient werden
</p>
<p>
aber nur, wenn man die Initialisierung hinbekommt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1441936132022" ID="ID_183615098" MODIFIED="1441936141832" TEXT="trotzdem mu&#xdf; man die Funktion speichern"/>
<node CREATED="1441936142563" ID="ID_161796731" MODIFIED="1441936150975" TEXT="und wir brauchen gar keine flexible Funktion"/>
</node>
<node CREATED="1441936154834" FOLDED="true" ID="ID_1320687783" MODIFIED="1538870726527">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
oder diese Logik
</p>
<p>
fest verdrahten
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-3"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1441936260132" ID="ID_600953695" MODIFIED="1441936270614" TEXT="der IterExplorer zeigt genau, was zu tun ist"/>
<node CREATED="1441936271274" ID="ID_567626167" MODIFIED="1441936284756" TEXT="aber das mehrfache Kopieren zur Initialisierung entf&#xe4;llt"/>
<node CREATED="1441936285368" ID="ID_1119180152" MODIFIED="1441936296746" TEXT="wir brauchen genauso einen ma&#xdf;geschneiderten Scope-Iterator"/>
<node CREATED="1441936356831" ID="ID_1423049913" MODIFIED="1441936372500" TEXT="aber die Indirektion f&#xfc;r die Funktion f&#xe4;llt weg">
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1441936386803" ID="ID_588658088" MODIFIED="1533608414039" TEXT="TODO">
<icon BUILTIN="button_ok"/>
<node CREATED="1441936422725" ID="ID_1581368426" MODIFIED="1441936433181" TEXT="ScopeExplorer-Mechanismus mit Stack">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1441936434644" FOLDED="true" ID="ID_455233841" MODIFIED="1533608416334" TEXT="innerer Iterator">
<icon BUILTIN="button_ok"/>
<node CREATED="1441936451042" ID="ID_1773948072" MODIFIED="1441936476114" TEXT="disjunktiver Typ"/>
<node CREATED="1441936869273" ID="ID_864580946" MODIFIED="1441936878867" TEXT="entweder GenNode, oder Rec"/>
<node CREATED="1441936494164" ID="ID_1837843513" MODIFIED="1441936749098" TEXT="Variant ohne Selector?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
da es sich um einen disjunktiven Typ (entweder-oder-Typ) handelt,
</p>
<p>
k&#246;nnte man die Storage mit beiden Bedeutungen &#252;berlagern.
</p>
<p>
</p>
<p>
Voraussetzung w&#228;re, da&#223; man anhand der konkreten Daten <b>gefahrlos</b>&#160; jeweils herausfinden kann,
</p>
<p>
welcher Zweig grade gilt. Da wir aber keine Introspektion haben (und auch nicht wollen!),
</p>
<p>
w&#252;rde das auf Taschenspielertricks mit der Implementierung hinauslaufen
</p>
<ul>
<li>
GenNode und Record beginnen beide fraktisch mit einem String. Man m&#252;&#223;te diesen interpretieren k&#246;nnen
</li>
<li>
oder man nutzt die letzten Bits des Pointers, um sich dort eine Flag zu speichern...
</li>
</ul>
<p>
Damit ist schon klar: <i>sowas macht man nicht ohne Grund</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1441936883063" ID="ID_428834793" MODIFIED="1441936894393" TEXT="GenNode erfordert nur einen Pointer">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1441936900076" FOLDED="true" ID="ID_1582043438" MODIFIED="1533608416336" TEXT="Explorer-Funktion">
<node CREATED="1441936911211" ID="ID_722452490" MODIFIED="1441936917230" TEXT="kommt in DataCap"/>
<node CREATED="1441936983313" ID="ID_1843183144" MODIFIED="1441936990892" TEXT="mu&#xdf; den inneren Iterator liefern"/>
<node CREATED="1441937000487" ID="ID_312630797" MODIFIED="1441937028412">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Entscheidung: <i>falls</i>&#160;eingebetteter Record
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1441937037498" ID="ID_1964865459" MODIFIED="1443147539495" TEXT="Initialisierung bedenken">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1443147571765" ID="ID_1651952492" MODIFIED="1512926192315" TEXT="HierarchyOrientation">
<node CREATED="1443147582018" ID="ID_1791945362" MODIFIED="1443147603945" TEXT="fest einbauen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1443147586241" ID="ID_904848069" MODIFIED="1443147706043" TEXT="besser: nur level zug&#xe4;nglich machen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Begr&#252;ndung: das Durchlaufen und Rekonstruieren eines Baumes
</p>
<p>
ist letztlich doch ein sehr spezieller Fall, und rechtfertigt nicht,
</p>
<p>
den HierarchyOrientationIndicator in jeden Iterator einzubetten.
</p>
<p>
Zumal -- wenn der level zug&#228;nglich ist -- kann man diese Mechanik genauso gut
</p>
<p>
dort direkt ansiedeln, wo sie gebraucht wird.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1443147730941" ID="ID_196989292" MODIFIED="1443147751954">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
also <i>keine</i>&#160;Monade
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1440984348699" HGAP="64" ID="ID_1327214042" MODIFIED="1518487921094" TEXT="Pr&#xe4;dikate" VSHIFT="-26">
<icon BUILTIN="button_ok"/>
<node CREATED="1440984366937" ID="ID_1806640214" MODIFIED="1518487921094">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Gleichheit
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1440984381982" ID="ID_187772178" MODIFIED="1518487921095" TEXT="Wert-Match">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1440984392453" ID="ID_1665153106" MODIFIED="1518487921095" TEXT="Contains">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
kombiniert den Wert-Match mit der Iteration
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#98e2df" DESTINATION="ID_947731706" ENDARROW="Default" ENDINCLINATION="-78;95;" ID="Arrow_ID_197324270" STARTARROW="None" STARTINCLINATION="168;-25;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1434128176918" FOLDED="true" ID="ID_863330674" MODIFIED="1538870769507" TEXT="Record">
<icon BUILTIN="button_ok"/>
<node CREATED="1434128198957" ID="ID_1224215957" MODIFIED="1512926192319" TEXT="Konstuktor">
<icon BUILTIN="button_ok"/>
<node CREATED="1434421381345" ID="ID_752165044" MODIFIED="1436042396321" TEXT="DSL zur Daten-Definition">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1434421403406" ID="ID_1085825017" MODIFIED="1434421414073" TEXT="Alternative zur Diff-Repr&#xe4;sentation"/>
<node CREATED="1434421422582" ID="ID_1730569377" MODIFIED="1434421448187">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Zweck: kompaktes Anschreiben
</p>
<p>
von literalen Daten
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1435973418262" ID="ID_1847939996" MODIFIED="1512926192321">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Object <b>builder</b>
</p>
</body>
</html></richcontent>
<node CREATED="1435973448902" ID="ID_1729239555" MODIFIED="1512926192322" TEXT="wie definieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Problem ist, wir definieren den Typ Record generisch,
</p>
<p>
verwenden dann aber nur die Spezialisierung Record&lt;GenNode&gt;
</p>
<p>
Und die Builder-Funktionen brauchen eigentlich spezielles Wissen &#252;ber den zu konstruierenden Zieltyp
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1436042433806" ID="ID_601307933" MODIFIED="1436042451130" TEXT="Erweiterungspunkt"/>
<node CREATED="1436042451694" ID="ID_1270184731" MODIFIED="1436042458786" TEXT="durch explizite Spezialiserung"/>
<node CREATED="1436042460726" ID="ID_818066421" MODIFIED="1436042468802" TEXT="nur f&#xfc;r genNode()"/>
<node CREATED="1436042480886" ID="ID_1194557524" MODIFIED="1436042502641">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Mutator selber is <i>noncopyable</i>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1435973566277" ID="ID_1320441333" MODIFIED="1512926192323">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ergebnis move
</p>
<p>
<font size="1">pro / contra</font>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Move ist <b>gef&#228;hrlich </b>
</p>
<p>
aber auch deutlich effizienter,
</p>
<p>
denn wir m&#252;ssen sonst das ganze erzeugte Ergebnis einmal kopieren.
</p>
<p>
Nicht sicher, ob der Optimiser das hinbekommt
</p>
</body>
</html></richcontent>
<node CREATED="1436042507254" ID="ID_1832904297" MODIFIED="1436042518877">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nur</i>&#160;auf dem Mutator
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1436042520942" ID="ID_1700762999" MODIFIED="1436042539843">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dieser ist nicht kopierbar
</p>
<p>
und mu&#223; dediziert erstellt werden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1436042542502" ID="ID_890092502" MODIFIED="1436042552578" TEXT="move passiert immer explizit"/>
</node>
</node>
</node>
<node CREATED="1436042774669" FOLDED="true" ID="ID_714336641" MODIFIED="1538870705820" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1436042783700" ID="ID_381817780" MODIFIED="1436042788584" TEXT="zwei Collections"/>
<node CREATED="1436042814044" ID="ID_1455779230" MODIFIED="1436042818312" TEXT="aber semantisch eine Liste"/>
<node CREATED="1436924462201" ID="ID_1369837914" MODIFIED="1512926192324" TEXT="Probleme">
<icon BUILTIN="button_ok"/>
<node CREATED="1436924502056" ID="ID_1085481788" MODIFIED="1512926192326" TEXT="R&#xfc;ckgabetyp von Attribut-Gettern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
m&#246;glicherweise schon gel&#246;st,
</p>
<p>
denn Record ist insgesamt immutable.
</p>
<p>
Also k&#246;nnen wir einen Find mit einem const_iterator machen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1439826834113" ID="ID_1331810475" MODIFIED="1439826858261">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
was sinnvoll ist,
</p>
<p>
h&#228;ngt vom Payload-Typ ab
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439826859630" ID="ID_658403513" MODIFIED="1439826896096">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bei einer 'key = value' -Syntax mit strings
</p>
<p>
ist nur ein Value-R&#252;ckgabewert sinnvoll
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439826896985" ID="ID_180703618" MODIFIED="1439826904996" TEXT="habe es daher generisch/konfigurierbar gemacht"/>
<node CREATED="1439826905728" ID="ID_955222288" MODIFIED="1439826937458" TEXT="-&gt; &#xfc;berhaupt eine Typkonfiguration ist sinnvoll">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...auch kann man auf diesem Weg die Storage konfigurierbar machten
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1436924529208" ID="ID_1300693998" MODIFIED="1512926192327" TEXT="Handhabung des Typ-Feldes">
<icon BUILTIN="button_ok"/>
<node CREATED="1436925315589" ID="ID_327577903" MODIFIED="1533608414041" TEXT="herausfiltern">
<icon BUILTIN="help"/>
<node CREATED="1439826509444" ID="ID_333663358" MODIFIED="1439826524386" TEXT="ja">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1439826512572" ID="ID_1522833188" MODIFIED="1439826522070" TEXT="aus beliebigem Attribut"/>
</node>
<node CREATED="1436924568352" ID="ID_1243616839" MODIFIED="1533608414041" TEXT="in Attribut-Iterator">
<icon BUILTIN="help"/>
<node CREATED="1439826529649" ID="ID_1514781996" MODIFIED="1439826559628" TEXT="w&#xe4;re sch&#xf6;n">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1439826535625" ID="ID_872404626" MODIFIED="1439826563061" TEXT="ist aber aufwendig">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1439826545167" ID="ID_185501908" MODIFIED="1439826726913" TEXT="geht nur mit Metadata-Collection">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
da wir einen IterAdapter verwenden, k&#246;nnen wir nur eine 'pos' (einen Quell-Iterator)
</p>
<p>
als Zustands-Markierung verwenden; die gleiche 'pos' wird aber auch inkrementiert und dereferenziert.
</p>
<p>
Daher ist die einzige praktikable L&#246;sung, da&#223; die Typ-ID in einem weiteren Vektor gespeichert wird.
</p>
<p>
Das k&#246;nnte dann ein Metadaten-Vektor sein.
</p>
<p>
</p>
<p>
Nat&#252;rlich ist dieser Ansatz nur sinnvoll, <i>wenn wir wirklich Metadaten brauchen.</i>
</p>
<p>
Denn jeder Record zahlt den Preis f&#252;r die komplexere (zus&#228;tzliche) Datenstruktur!
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1436924578936" ID="ID_677097690" MODIFIED="1533608414042" TEXT="in Attribut-Collection ablegen">
<icon BUILTIN="help"/>
<node CREATED="1439826758699" ID="ID_873913305" MODIFIED="1439826761999" TEXT="pfiffige Idee"/>
<node CREATED="1439826762731" ID="ID_339809602" MODIFIED="1439826766758" TEXT="aber eigentlich ein Pfusch"/>
<node CREATED="1439826767274" ID="ID_1506445345" MODIFIED="1439826777093" TEXT="man m&#xfc;&#xdf;te jede Eingans-Collection normalisieren"/>
<node CREATED="1439826782368" ID="ID_386953463" MODIFIED="1439826789763" TEXT="man m&#xfc;&#xdf;te Duplikate filtern"/>
<node CREATED="1439826792343" ID="ID_775227666" MODIFIED="1439826804002" TEXT="NJET">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
<node CREATED="1439827003483" ID="ID_514691403" MODIFIED="1512926192329" TEXT="&apos;magische&apos; IDs als Attribute">
<icon BUILTIN="button_ok"/>
<node CREATED="1439827021297" ID="ID_154339557" MODIFIED="1439827028484" TEXT="brauche ich f&#xfc;r die Diff-Language"/>
<node CREATED="1439827061051" ID="ID_1563625085" MODIFIED="1439827543682" TEXT="implementiert als spezielle, magische ID-Referenzen">
<arrowlink COLOR="#5bf0d0" DESTINATION="ID_913220298" ENDARROW="Default" ENDINCLINATION="366;-59;" ID="Arrow_ID_806648905" STARTARROW="None" STARTINCLINATION="347;320;"/>
</node>
<node CREATED="1439827599485" ID="ID_426467512" MODIFIED="1439827625675" TEXT="ist es problematisch, wenn solche in die normalen Attribute geraten">
<icon BUILTIN="help"/>
</node>
<node CREATED="1439827636256" ID="ID_339472941" MODIFIED="1439827645763" TEXT="entscheidet sich im Diff-Algorithmus, sonst wurscht"/>
<node CREATED="1439827647038" ID="ID_1668349556" MODIFIED="1439827693504" TEXT="also geh&#xf6;rt das in einen h&#xf6;heren Layer">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1439827663860" ID="ID_582619719" MODIFIED="1439827698437" TEXT="Record sollte sich hier neutral verhalten">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1434128179406" HGAP="25" ID="ID_1833179523" MODIFIED="1512926192330" TEXT="Referez" VSHIFT="13">
<icon BUILTIN="button_ok"/>
<node CREATED="1434129158157" ID="ID_1777328498" MODIFIED="1512926192330" TEXT="sicher dereferenzierbar">
<node CREATED="1434205928410" ID="ID_733269570" MODIFIED="1434205947253" TEXT="entweder zwangsweise gebunden"/>
<node CREATED="1434205947841" ID="ID_871233558" MODIFIED="1434205955964" TEXT="oder NULL-Zustand mit Exception"/>
<node CREATED="1434205957177" ID="ID_499991180" MODIFIED="1434205968740" TEXT="inherente Unsicherheit einer Referenz"/>
</node>
<node CREATED="1434129167805" ID="ID_819452470" MODIFIED="1512926192330" TEXT="stand-in">
<arrowlink COLOR="#00ff33" DESTINATION="ID_654762061" ENDARROW="Default" ENDINCLINATION="-390;37;" ID="Arrow_ID_724106052" STARTARROW="Default" STARTINCLINATION="-48;187;"/>
<icon BUILTIN="help"/>
<node CREATED="1434129196709" ID="ID_1004519740" MODIFIED="1436042656829" TEXT="Subklasse von Rec">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
scheidet aus, wegen Wertsemantik
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1434129204149" FOLDED="true" ID="ID_1688475597" MODIFIED="1538870713145" TEXT="GenNode">
<linktarget COLOR="#66ff66" DESTINATION="ID_1688475597" ENDARROW="Default" ENDINCLINATION="219;91;" ID="Arrow_ID_57985873" SOURCE="ID_60404225" STARTARROW="Default" STARTINCLINATION="23;-52;"/>
<node CREATED="1434205661969" ID="ID_1484374626" MODIFIED="1434205705054">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mit <i>speziellem </i>Ref-Typ
</p>
<p>
<font size="1">-- im DataCap</font>
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#ffcccc" COLOR="#990033" CREATED="1434205598709" ID="ID_235720343" MODIFIED="1533608414042" TEXT="stand-in hei&#xdf;t...">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1434205739609" ID="ID_1185983904" MODIFIED="1434205778045" TEXT="kann anstelle eines Objektes treten"/>
<node CREATED="1434205834506" ID="ID_1477654683" MODIFIED="1434205859229" TEXT="transparent f&#xfc;r den Aufrufer"/>
<node CREATED="1434205862449" ID="ID_1736858324" MODIFIED="1434205879837" TEXT="Konsequenz: DataCap mu&#xdf; das verstehen"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1434128128869" ID="ID_244966341" MODIFIED="1518487921095" TEXT="Verben">
<node CREATED="1434128134508" ID="ID_553361956" MODIFIED="1538870787739" TEXT="ID-Repr&#xe4;s">
<arrowlink COLOR="#ff0033" DESTINATION="ID_976705384" ENDARROW="Default" ENDINCLINATION="-36;39;" ID="Arrow_ID_1285375088" STARTARROW="Default" STARTINCLINATION="-5;-77;"/>
<node CREATED="1434128393429" ID="ID_1275202366" MODIFIED="1518487921095" TEXT="mu&#xdf; GenNode sein">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1434128412934" FOLDED="true" ID="ID_1319614474" MODIFIED="1538870700108" TEXT="Repr&#xe4;s entscheiden">
<icon BUILTIN="go"/>
<node CREATED="1434128438565" ID="ID_913220298" MODIFIED="1512926192335" TEXT="als ID erkennbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hei&#223;t: in der Diff-Verarbeitung wird dieser spezielle check verwendet
</p>
</body>
</html></richcontent>
<linktarget COLOR="#5bf0d0" DESTINATION="ID_913220298" ENDARROW="Default" ENDINCLINATION="366;-59;" ID="Arrow_ID_806648905" SOURCE="ID_1563625085" STARTARROW="None" STARTINCLINATION="347;320;"/>
<node CREATED="1434128740117" ID="ID_1537979881" MODIFIED="1434128764209" TEXT="spezielles Baumuster"/>
<node CREATED="1434128764893" ID="ID_1430586148" MODIFIED="1434128768689" TEXT="Gefahr von clashes"/>
<node CREATED="1434128769325" ID="ID_866845827" MODIFIED="1512926192335" TEXT="entscheide">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1434128779661" ID="ID_1739097548" MODIFIED="1434236311060" TEXT="marker-ID + string-Payload">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1434128917125" ID="ID_392407967" MODIFIED="1436021562160" TEXT="&quot;fehlkonstruierte&quot; ID + pr&#xfc;f-Pr&#xe4;dikat">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1434128981381" ID="ID_101281763" MODIFIED="1436042656881" TEXT="spezielle Ref-Payload">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
m.E. die einzig saubere Desgin-Variante!
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1436021576224" ID="ID_1239136010" MODIFIED="1512926192336" TEXT="Begr&#xfc;ndung">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1436021581655" ID="ID_124352424" MODIFIED="1436021603779" TEXT="hash-identische ID sorgt f&#xfc;r transparente Integration"/>
<node CREATED="1436021610648" ID="ID_1621632066" MODIFIED="1436021618067" TEXT="das nimmt Komplexit&#xe4;t aus der Anwendung heraus"/>
<node CREATED="1436021623799" ID="ID_929212705" MODIFIED="1436021637115" TEXT="f&#xfc;r die Dereferenzierung zahlt nur die Referenz"/>
<node CREATED="1436021694039" ID="ID_1657867881" MODIFIED="1436021817445" TEXT="Nachteil ist Gefahr der Verwirrung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gemeint ist:
</p>
<ul>
<li>
man kann alternativ auch eine RecordRef direkt in eine elementare GenNode packen
</li>
<li>
diese verh&#228;lt sich dann nicht transparent, denn sie hat eine andere Identit&#228;t als ihr Ziel
</li>
<li>
das kann aber als spezielles Ausdrucksmittel genutzt werden
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1436021719055" ID="ID_1039111553" MODIFIED="1436021730099" TEXT="ist nur ein halber Nachteil"/>
<node CREATED="1436021731615" ID="ID_1576857183" MODIFIED="1436021741970" TEXT="kann n&#xe4;mlich auch Ausdrucksmittel sein"/>
<node CREATED="1436021848790" ID="ID_742066846" MODIFIED="1436021874042" TEXT="problematisch ist die Implementerung des Erkennungs-Pr&#xe4;dikates"/>
</node>
</node>
</node>
<node CREATED="1434128446029" ID="ID_1779802587" MODIFIED="1512926192338" TEXT="hash-identisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hei&#223;t: wird direkt von standard-equality so behandelt
</p>
</body>
</html></richcontent>
<node CREATED="1434128685597" ID="ID_690649535" MODIFIED="1434128705631">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
brauche speziellen Builder,
</p>
<p>
der das so fabriziert
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1434128706589" ID="ID_1001559218" MODIFIED="1512926192339">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bekomme einen
</p>
<p>
&quot;ungenutzten&quot; DataCap
</p>
</body>
</html></richcontent>
<node CREATED="1434128996949" ID="ID_654762061" MODIFIED="1434239007746" TEXT="k&#xf6;nnte zur Ref ausgebaut werden">
<linktarget COLOR="#00ff33" DESTINATION="ID_654762061" ENDARROW="Default" ENDINCLINATION="-390;37;" ID="Arrow_ID_724106052" SOURCE="ID_819452470" STARTARROW="Default" STARTINCLINATION="-48;187;"/>
</node>
<node CREATED="1434130839653" HGAP="22" ID="ID_60404225" MODIFIED="1512926192341" VSHIFT="8">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Idee: <font color="#990033"><b>Ref-GenNode</b></font>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#66ff66" DESTINATION="ID_1688475597" ENDARROW="Default" ENDINCLINATION="219;91;" ID="Arrow_ID_57985873" STARTARROW="Default" STARTINCLINATION="23;-52;"/>
<icon BUILTIN="idea"/>
<node CREATED="1434130866693" ID="ID_1402852366" MODIFIED="1434130886826">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
als Ref erkennbar
</p>
<p>
<font size="1">(Pr&#228;dikat)</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1434130888581" ID="ID_369455584" MODIFIED="1434130912181">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
hash-identische
</p>
<p>
Ziel-ID ableitbar
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1434206472689" ID="ID_561057428" MODIFIED="1434206482829" TEXT="Variant-Subklasse"/>
<node CREATED="1434206483657" ID="ID_473311646" MODIFIED="1434206508445" TEXT="Cast auf Rec-Typ pr&#xfc;fen"/>
<node CREATED="1434206509201" ID="ID_717222987" MODIFIED="1434206522117" TEXT="nur Ref-Fall zahlt Overhead"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1434129043245" ID="ID_1120430427" MODIFIED="1518487921095" TEXT="brauchen wir einen ref-Typ">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1434129063053" ID="ID_1242923371" MODIFIED="1518487921095">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Verarbeiten
</p>
<p>
von Teilb&#228;umen
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1436019533354" ID="ID_1500539399" MODIFIED="1518487921095" TEXT="Konzept-Bruch">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1436042718309" ID="ID_109270255" MODIFIED="1518487921095" TEXT="Ja!">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1443733567706" FOLDED="true" HGAP="325" ID="ID_143203937" MODIFIED="1541811328497" TEXT="Diff-Language" VSHIFT="41">
<cloud COLOR="#cfba9d"/>
<linktarget COLOR="#a9acc1" DESTINATION="ID_143203937" ENDARROW="Default" ENDINCLINATION="115;-2033;" ID="Arrow_ID_136706418" SOURCE="ID_1091994004" STARTARROW="None" STARTINCLINATION="1656;0;"/>
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="go"/>
<node CREATED="1443733726563" ID="ID_410650103" MODIFIED="1443733731422" TEXT="Grundlagen">
<node CREATED="1443733732938" ID="ID_73184558" MODIFIED="1443733737277" TEXT="Folge von Verben"/>
<node CREATED="1443733738296" ID="ID_994909291" MODIFIED="1443733743181" TEXT="konstante Gr&#xf6;&#xdf;e"/>
<node CREATED="1443733744169" ID="ID_1410679171" MODIFIED="1443733756330" TEXT="ein Argument pro Verb"/>
<node CREATED="1443733768621" ID="ID_183648684" MODIFIED="1443733796453">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Interpreter</b>&#160;definiert Sprache
</p>
</body>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#56397a" CREATED="1443733800322" ID="ID_1544242343" MODIFIED="1488423307267" TEXT="Nutz-Muster">
<font NAME="SansSerif" SIZE="13"/>
<node CREATED="1443733822780" ID="ID_756812969" MODIFIED="1512926192344" TEXT="Basis-F&#xe4;lle">
<node CREATED="1443733856089" ID="ID_1358940500" MODIFIED="1512926192345">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ROOT
</p>
</body>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1443733978248" ID="ID_724172314" MODIFIED="1443733983252" TEXT="Wurzel pflanzen"/>
<node CREATED="1443733984336" ID="ID_109703386" MODIFIED="1443733993674" TEXT="Au&#xdf;erhalb der Sprache"/>
<node CREATED="1443733994310" ID="ID_52662692" MODIFIED="1443733998417" TEXT="...oder rekursiv"/>
</node>
<node CREATED="1443733868958" ID="ID_676848577" MODIFIED="1512926192345">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
INIT
</p>
</body>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1443734005660" ID="ID_1028914628" MODIFIED="1512926192346">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
leeres
</p>
<p>
Objekt
</p>
</body>
</html></richcontent>
<node CREATED="1443734026466" ID="ID_1051774321" MODIFIED="1512926192346" TEXT="typen">
<node CREATED="1443735007685" ID="ID_1426207394" MODIFIED="1443735015668" TEXT="&quot;type&quot;-Attribut">
<font NAME="SansSerif" SIZE="11"/>
</node>
</node>
<node CREATED="1443734030329" ID="ID_257027438" MODIFIED="1443734033052" TEXT="bef&#xfc;llen"/>
</node>
</node>
<node CREATED="1443733903314" ID="ID_1973278843" MODIFIED="1512926192347" TEXT="NAV">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1443734039776" ID="ID_1572908212" MODIFIED="1512926192347" TEXT="pick">
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1444349667741" ID="ID_1407797227" MODIFIED="1444349672062" TEXT="by-name"/>
<node CREATED="1444349672792" ID="ID_267468753" MODIFIED="1444349690748" TEXT="anonym">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
pick(Ref::CHILD)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1443734637416" ID="ID_461220696" MODIFIED="1512926192348" TEXT="after">
<node CREATED="1443741466072" ID="ID_1108877437" MODIFIED="1444349773888" TEXT="Frage: wrap erlauben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
w&#252;rde sagen: ja, aber auch <i>nur</i>&#160;f&#252;r das after-Verb!
</p>
<p>
allgemein halte ich einen wrap-around f&#252;r keine gute Idee,
</p>
<p>
weil er zu Zweideutigekeigen f&#252;hrt und daher Struktur oder Konsistenzfehler &#252;berspielt
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1443733891492" ID="ID_1727724941" MODIFIED="1512926192348" TEXT="MOD">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1443734646734" ID="ID_841341176" MODIFIED="1512926192349" TEXT="INS">
<node CREATED="1443734713781" ID="ID_10743682" MODIFIED="1443734720912" TEXT="vorne"/>
<node CREATED="1443734721692" ID="ID_1206301961" MODIFIED="1443734723047" TEXT="innen"/>
<node CREATED="1443734723899" ID="ID_614189310" MODIFIED="1443734740809" TEXT="APPEND">
<font NAME="SansSerif" SIZE="11"/>
</node>
</node>
<node CREATED="1443734649902" ID="ID_1557261619" MODIFIED="1512926192349" TEXT="DEL">
<node CREATED="1443734770118" ID="ID_1863350908" MODIFIED="1443734772777" TEXT="n&#xe4;chsten"/>
<node CREATED="1443734773317" ID="ID_738630660" MODIFIED="1443734775409" TEXT="letzten"/>
</node>
<node CREATED="1443734652509" ID="ID_72317753" MODIFIED="1512926192349" TEXT="PERM">
<node CREATED="1443734781868" ID="ID_868966231" MODIFIED="1443734785215" TEXT="find-fetch"/>
<node CREATED="1443734785971" ID="ID_1082279397" MODIFIED="1512926192350" TEXT="push">
<icon BUILTIN="button_cancel"/>
<node CREATED="1443734808360" ID="ID_1918783570" MODIFIED="1443734832562" TEXT="Parameter">
<icon BUILTIN="help"/>
</node>
<node CREATED="1443734796346" ID="ID_1017278649" MODIFIED="1443734869522" TEXT="&#xfc;berfl&#xfc;ssig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
l&#228;&#223;t sich stets duch eine inverse Folge von <i>find</i>&#160;und <i>pick</i>&#160; emulieren
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1443733895611" ID="ID_1632274940" MODIFIED="1512926192350" TEXT="MUT">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1443734664572" ID="ID_602667530" MODIFIED="1512926192351" TEXT="by-name">
<node CREATED="1443734917130" ID="ID_583238947" MODIFIED="1443734923740" TEXT="nur im Scope"/>
<node CREATED="1443734926912" ID="ID_634765493" MODIFIED="1443734937699" TEXT="er&#xf6;ffnet sub-Scope"/>
</node>
<node CREATED="1443734668267" ID="ID_1281243531" MODIFIED="1512926192351" TEXT="_THIS_">
<font NAME="SansSerif" SIZE="11"/>
<node CREATED="1443734884526" ID="ID_1720972097" MODIFIED="1443734907375" TEXT="gilt postfix"/>
<node CREATED="1443734942974" ID="ID_72035627" MODIFIED="1443734946841" TEXT="sonst wie normales MUT"/>
<node CREATED="1443734955012" ID="ID_132520838" MODIFIED="1443734972286" TEXT="erlaubt Anlegen + Populieren"/>
<node CREATED="1460934541540" ID="ID_789170184" MODIFIED="1460934562112" TEXT="von fragw&#xfc;rdigem Nutzen!">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node CREATED="1443735171208" HGAP="46" ID="ID_1757651048" MODIFIED="1525124215375" TEXT="Objekt-Baum-Semantik" VSHIFT="13">
<icon BUILTIN="info"/>
<node CREATED="1443735379267" ID="ID_628105032" MODIFIED="1512926192352" TEXT="Wurzel">
<node CREATED="1443735418201" ID="ID_1521312079" MODIFIED="1443735418201" TEXT="wird vorausgesetzt"/>
<node CREATED="1443735385523" ID="ID_1179435276" MODIFIED="1443735425593" TEXT="ist stets ein Record"/>
</node>
<node CREATED="1443735531351" ID="ID_1428234818" MODIFIED="1512926192353" TEXT="Objekt">
<node CREATED="1443735554379" ID="ID_676366486" MODIFIED="1443735571653" TEXT="Inhalt als Liste"/>
<node CREATED="1443735572833" ID="ID_343264561" MODIFIED="1512926192353" TEXT="Zonen">
<node CREATED="1443735596550" ID="ID_236186740" MODIFIED="1443735598258" TEXT="Meta"/>
<node CREATED="1443735598966" ID="ID_1441633165" MODIFIED="1443735601009" TEXT="Attribute"/>
<node CREATED="1443735601477" ID="ID_1740180586" MODIFIED="1443735605393" TEXT="Scope"/>
</node>
<node CREATED="1443735621027" ID="ID_850995598" MODIFIED="1512926192353" TEXT="Protokoll">
<node CREATED="1443735625714" ID="ID_1979053137" MODIFIED="1443735638372" TEXT="Reihenfolge erhaltend"/>
<node CREATED="1443735638840" ID="ID_1930287259" MODIFIED="1443735642020" TEXT="nicht sortiert"/>
<node CREATED="1443735643536" ID="ID_1397296376" MODIFIED="1443735648747" TEXT="nach Zonen geordnet"/>
</node>
<node CREATED="1443735736427" ID="ID_735577464" MODIFIED="1512926192354" TEXT="Konformit&#xe4;t">
<node CREATED="1443736349465" FOLDED="true" ID="ID_1312270317" MODIFIED="1538870591858" TEXT="strikt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
vorerst verworfen, da zus&#228;tzlicher Pr&#252;f-Aufwand
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
<node CREATED="1443736367255" ID="ID_1634633098" MODIFIED="1443736380225" TEXT="Meta-Attribute zuerst"/>
<node CREATED="1443736626731" ID="ID_600165347" MODIFIED="1443736652396" TEXT="keine Attribut-Duplikate"/>
<node CREATED="1443736388180" ID="ID_435516555" MODIFIED="1443736666538" TEXT="Attribute strikt vor Kindern"/>
</node>
<node CREATED="1443736354800" ID="ID_1024688383" MODIFIED="1512926192355" TEXT="locker">
<icon BUILTIN="button_ok"/>
<node CREATED="1443735740907" ID="ID_1103250008" MODIFIED="1443735747902" TEXT="Meta-Attribute sind magisch"/>
<node CREATED="1473353076877" FOLDED="true" ID="ID_1936057196" MODIFIED="1538870596833" TEXT="2-Layer binding">
<icon BUILTIN="button_ok"/>
<node CREATED="1473353083492" ID="ID_1800912467" MODIFIED="1512926192356" TEXT="es gibt eine Schicht">
<node CREATED="1473353090435" ID="ID_708279376" MODIFIED="1473353094535" TEXT="f&#xfc;r Attribute"/>
<node CREATED="1473353095051" ID="ID_484062615" MODIFIED="1473353096974" TEXT="f&#xfc;r Kinder"/>
</node>
<node CREATED="1473353098274" ID="ID_1387467215" MODIFIED="1473353107805" TEXT="jede Schicht arbeitet in sich konsistent"/>
<node CREATED="1473353109241" ID="ID_132411161" MODIFIED="1473353115884" TEXT="sichtbare Reihenfolge bleibt fest"/>
</node>
<node CREATED="1443736688027" ID="ID_1189409086" MODIFIED="1512926192357" TEXT="Attribut-Handhabung">
<node CREATED="1443737483704" FOLDED="true" ID="ID_1359413673" MODIFIED="1538870597992" TEXT="Modell &quot;Liste&quot;">
<icon BUILTIN="button_ok"/>
<node CREATED="1443737510238" ID="ID_1135997794" MODIFIED="1443737510238" TEXT="Duplikate anh&#xe4;ngen"/>
<node CREATED="1443737516852" ID="ID_636329172" MODIFIED="1443737527750" TEXT="Einf&#xfc;gen erlauben"/>
<node CREATED="1443737528578" ID="ID_1554159544" MODIFIED="1443737538461" TEXT="Umordnen erlauben"/>
<node CREATED="1443737570229" ID="ID_28119998" MODIFIED="1443737576392" TEXT="L&#xf6;schen erfordert Ansteuern"/>
</node>
<node CREATED="1443737497870" FOLDED="true" ID="ID_113467015" MODIFIED="1538870599112" TEXT="Modell &quot;Map&quot;">
<icon BUILTIN="button_cancel"/>
<node CREATED="1443737705058" ID="ID_1320189713" MODIFIED="1443737716690" TEXT="Operationen an Storage delegieren"/>
<node CREATED="1443737578803" ID="ID_1670234515" MODIFIED="1443737602756" TEXT="Duplikate &#xfc;berschreiben"/>
<node CREATED="1443737605080" ID="ID_609776485" MODIFIED="1443737739674" TEXT="Neue an Standardort anf&#xfc;gen"/>
<node CREATED="1443737747941" ID="ID_1552219906" MODIFIED="1443737757207" TEXT="Umordnungen verweigern/ignorieren"/>
<node CREATED="1443737769122" ID="ID_697980786" MODIFIED="1443737777276" TEXT="L&#xf6;schen an beliebiger Stelle wirksam"/>
</node>
<node CREATED="1443738082216" FOLDED="true" HGAP="38" ID="ID_870184525" MODIFIED="1538870600433" TEXT="Abw&#xe4;gung" VSHIFT="7">
<icon BUILTIN="button_ok"/>
<node CREATED="1443738097022" ID="ID_1609921484" MODIFIED="1443738178020" TEXT="Modelle schlie&#xdf;en sich aus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...Grund: sie werden durch einen jeweils komplett anderen Ansatz implementiert
</p>
<ul>
<li>
&quot;Liste&quot; beruht auf dem Attribut-Iterator und dem Aufbauen einer neuen Attribut-Sammlung
</li>
<li>
&quot;Map&quot; beruht darauf, alle Operationen an die Storage zu delegieren
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1443738179947" ID="ID_1249607715" MODIFIED="1533608414043" TEXT="&quot;Liste&quot;">
<node CREATED="1443738196336" FOLDED="true" ID="ID_855336404" MODIFIED="1533608416338" TEXT="Vorteile">
<node CREATED="1443738556296" ID="ID_340267804" MODIFIED="1443738562763" TEXT="verwendet vorhandene Impl"/>
<node CREATED="1443738563263" ID="ID_583767245" MODIFIED="1443738575817" TEXT="uniforme Semantik der Diff-Sprache"/>
<node CREATED="1443738577781" ID="ID_1622210655" MODIFIED="1443738793488" TEXT="partielle Ordnung darstellbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, man kann Attribute in einer &quot;sinnvoll lesbaren&quot; Ordnung anschreiben
</p>
<p>
und sp&#228;ter angef&#252;gte Attribute bleiben so erkennbar.
</p>
<p>
Vorteilhaft f&#252;r Version-Management
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443738653931" ID="ID_604966063" MODIFIED="1443738813866" TEXT="Effizienz des List-Diff">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
profitiert also von allen Verbesserungen des allgemeinen Algorithmus
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443738592971" ID="ID_790837479" MODIFIED="1455841731908" TEXT="bei uns: hoch effizient">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
&quot;hoch effizient&quot;, unter der Annahme, da&#223; fast immer nur konforme &#196;nderungen kommen.
</p>
<p>
Weil dann n&#228;mlich die in unserer Implementierung ggfs. kostspieligen Umordnungen entfallen,
</p>
<p>
kommen wir auf lineare Komplexit&#228;t f&#252;r die Verarbeitung
</p>
<p>
+ NlogN f&#252;r den Index zur Diff-Erzeugung
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1443738199160" FOLDED="true" ID="ID_955544777" MODIFIED="1533608416338" TEXT="Nachteile">
<node CREATED="1443738500000" ID="ID_201650237" MODIFIED="1443738505571" TEXT="Duplikate toleriert"/>
<node CREATED="1443738929854" ID="ID_852940283" MODIFIED="1443739153420" TEXT="sinnloser Index-Aufbau (Diff-Erzeugung)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
unsere Impl der <i>Diff-Erzeugung&#160;(!)</i>
</p>
<p>
baut einen Index auf (N*logN), um Einf&#252;gungen/Entfernungen zu erkennen und Umordnungs-Suche zu unterst&#252;tzen.
</p>
<p>
Wenn wir aber von ausschlie&#223;lich konformen Operationen ausgehen,
</p>
<p>
wird dieser Index nicht ben&#246;tigt. Leider k&#246;nnen wir das aber nicht garantieren, denn
</p>
<p>
es k&#246;nnte ja zwischenzeitlich ein Attribut gel&#246;scht und dann sp&#228;ter (am Ende) wieder
</p>
<p>
angeh&#228;ngt worden sein, was dann eben doch einen Index erfordert, um einen
</p>
<p>
korrekten Listen-Diff zu erzeugen
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1443738179947" ID="ID_1861982554" MODIFIED="1533608414045" TEXT="&quot;Map&quot;">
<node CREATED="1443738196336" FOLDED="true" ID="ID_997066012" MODIFIED="1533608416339" TEXT="Vorteile">
<node CREATED="1443738237731" ID="ID_1438410748" MODIFIED="1443738244389" TEXT="Konformit&#xe4;t garantiert"/>
</node>
<node CREATED="1443738199160" FOLDED="true" ID="ID_571621671" MODIFIED="1533608416341" TEXT="Nachteile">
<node CREATED="1443738352419" ID="ID_439396381" MODIFIED="1443738730869" TEXT="Effizienz der Storage">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. <i>wenn</i>&#160;die Storage hoch-optimiert ist,
</p>
<p>
dann &#252;bertr&#228;gt sich das auf die Diff-Behandlung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443738371545" ID="ID_1959160321" MODIFIED="1443738695968" TEXT="bei uns: voll-Quadratisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
da wir Attribute in einer Liste speichern,
</p>
<p>
m&#252;ssen wir f&#252;r jede Einf&#252;gung eine vollst&#228;ndige Suche machen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443738416083" ID="ID_793860786" MODIFIED="1443738470421" TEXT="erfordert separate Impl">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...gemeint ist: extra, anders als die normale Listenverarbeitung.
</p>
<p>
Auch wenn diese andere Implementierung nur delegiert
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443738471955" ID="ID_315855253" MODIFIED="1443738478894" TEXT="versteckte 2.Semantik"/>
</node>
</node>
</node>
<node CREATED="1443739215487" HGAP="42" ID="ID_1540836182" MODIFIED="1512926192361" TEXT="Entscheidung">
<icon BUILTIN="info"/>
<node CREATED="1443739221631" ID="ID_338047062" MODIFIED="1443739227649" TEXT="&quot;Listen&quot;-Modell"/>
<node CREATED="1443739228542" ID="ID_773218806" MODIFIED="1443739244615" TEXT="eindeutig vorzuziehen"/>
<node CREATED="1443739245483" ID="ID_1943112941" MODIFIED="1533608414046" TEXT="zwei Gr&#xfc;nde">
<node CREATED="1443739308651" ID="ID_1436069181" MODIFIED="1443739311142" TEXT="Performance"/>
<node CREATED="1443739311562" ID="ID_1848034442" MODIFIED="1443739314222" TEXT="Wartbarkeit"/>
</node>
<node CREATED="1443739323033" FOLDED="true" ID="ID_1428762486" MODIFIED="1538870608015" TEXT="&quot;zwei Listen&quot;-Modell">
<icon BUILTIN="button_ok"/>
<node CREATED="1443739335823" ID="ID_860198617" MODIFIED="1443739349777" TEXT="intern f&#xfc;hren wir zwei Listen-Diffs durch"/>
<node CREATED="1443739350869" ID="ID_464299464" MODIFIED="1443739368974" TEXT="ein Trennkriterium f&#xfc;hrt zum Umschalten"/>
<node CREATED="1443739399718" ID="ID_686887994" MODIFIED="1443739426315">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
danach noch auftretende Attribute
</p>
<p>
erfordern Sonder-Behandlung,
</p>
<p>
indem sie an die Attributs-Liste angeh&#228;ngt werden
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1443733831475" HGAP="1" ID="ID_1421473885" MODIFIED="1512926192364" TEXT="Fehler-F&#xe4;lle" VSHIFT="7">
<node CREATED="1443736788646" ID="ID_672669721" MODIFIED="1512926192364" TEXT="formal">
<node CREATED="1443736804803" ID="ID_1706990948" MODIFIED="1512926192365" TEXT="Syntax">
<node CREATED="1443737154028" ID="ID_143683919" MODIFIED="1443737159781" TEXT="durch Typsystem unterbunden">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1443738002250" ID="ID_1398802900" MODIFIED="1443738006115" TEXT="sicher">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1443736824112" ID="ID_1520561537" MODIFIED="1512926192365" TEXT="unpassende Parameter">
<node CREATED="1443737180297" ID="ID_1748864612" MODIFIED="1443737193859" TEXT="Laufzeit-Check">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1443738011018" ID="ID_1408814832" MODIFIED="1443738023248" TEXT="ggfs unvollst&#xe4;ndig">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1443736846078" ID="ID_1354240107" MODIFIED="1512926192365" TEXT="Mismatch am Ziel">
<node CREATED="1443736895663" ID="ID_1436447416" MODIFIED="1443736897539" TEXT="erkennbar"/>
<node CREATED="1443736897983" ID="ID_636884790" MODIFIED="1443736900051" TEXT="unbemerkt"/>
</node>
</node>
<node CREATED="1443736791421" ID="ID_23907569" MODIFIED="1512926192366" TEXT="semantisch">
<node CREATED="1443737005833" ID="ID_1457267751" MODIFIED="1512926192367" TEXT="INIT aber nicht leer">
<node CREATED="1443737222707" ID="ID_1242625886" MODIFIED="1443737241501" TEXT="sehr gef&#xe4;hrlich bei strikter Konformit&#xe4;t"/>
<node CREATED="1443737242824" ID="ID_461820743" MODIFIED="1443737260482" TEXT="harmlos sonst; wird glattgebogen"/>
<node CREATED="1443737279172" ID="ID_1485388967" MODIFIED="1443737290806" TEXT="kann dann aber zu undefiniertem Zustand f&#xfc;hren"/>
</node>
<node CREATED="1443737017511" ID="ID_744413839" MODIFIED="1512926192367" TEXT="INS Attribut-Duplikat">
<node CREATED="1443739508920" ID="ID_914206763" MODIFIED="1443739536363" TEXT="wird toleriert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wegen Entscheidung f&#252;r das &quot;Listen&quot;-Modell zur Attribut-Handhabung
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1443737036108" ID="ID_641574289" MODIFIED="1512926192367" TEXT="INS Child in Attribut-Zone">
<node CREATED="1473352901693" ID="ID_1444450254" MODIFIED="1473352907657" TEXT="wird toleriert">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1473352908876" ID="ID_288202266" MODIFIED="1473352998161" TEXT="bricht aus der Reihenfolge aus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t:
</p>
<ul>
<li>
es wird einfach vom zust&#228;ndigen Layer (der f&#252;r die Attribute) aufgegriffen
</li>
<li>
es hat keinen Einflu&#223; auf die nach au&#223;en sichtbare Reihenfolge
</li>
<li>
diese Reihenfolge bleibt gruppiert nach Attributen / Kindern
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1443737051419" ID="ID_364647539" MODIFIED="1512926192367" TEXT="INS Attribut in Scope">
<node CREATED="1473352922946" ID="ID_23438081" MODIFIED="1473352926387" TEXT="wird toleriert">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1473352927098" ID="ID_1791498124" MODIFIED="1473353001242" TEXT="bricht aus der reihenfolge aus">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1443737064633" ID="ID_67819372" MODIFIED="1512926192368" TEXT="PERM-fetch Child in Attribut-Zone">
<icon BUILTIN="button_cancel"/>
<node CREATED="1443739787850" ID="ID_31775669" MODIFIED="1443739831711" TEXT="f&#xfc;hrt zum Fehler wg. &quot;zwei Listen&quot;-Modell">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da das Kind in der Liste der Attribute n&#228;mlich garnicht gefunden wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1443739798889" ID="ID_1992435989" MODIFIED="1443739912310" TEXT="Spezialbehandlung am Ende der Attributzone notwendig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn wir am Ende der Attribut-Zone stehen,
</p>
<p>
und die n&#228;chste Operation ein fetch eines Kindes ist, m&#252;ssen wir implizit den
</p>
<p>
Wechsel in den Scope vollziehen und die Operation dort ausf&#252;hren.
</p>
<p>
Aber an allen anderen Stellen in der Attribut-Zone ist ein solcher Fetch ein Fehler!
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1473353036195" ID="ID_371361214" MODIFIED="1473353045794" TEXT="obsolet durch neue Implementierung">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1443735208090" HGAP="99" ID="ID_117472593" MODIFIED="1488423307279" TEXT="Entscheidungen" VSHIFT="8">
<icon BUILTIN="info"/>
<node CREATED="1443735230768" ID="ID_1544379221" MODIFIED="1443735318881">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
standardm&#228;&#223;ig <b>strikt</b>
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1443735286496" ID="ID_1442661683" MODIFIED="1512926192368" TEXT="fuzzy-mode">
<node CREATED="1443740092337" ID="ID_563359094" MODIFIED="1443740142638" TEXT="PICK nicht Vorhandenes"/>
<node CREATED="1443740127021" ID="ID_1839086508" MODIFIED="1443740137239" TEXT="DEL nicht Vorhandenes"/>
<node CREATED="1443740193692" ID="ID_1962095124" MODIFIED="1443740200542" TEXT="FIND nicht Vorhandenes"/>
<node CREATED="1443740261859" ID="ID_96033673" MODIFIED="1443740266837" TEXT="MUT nicht Vorhandenes"/>
<node CREATED="1443740311300" ID="ID_1645049477" MODIFIED="1443740327245" TEXT="PICK wird zu AFTER nicht Folgendes"/>
<node CREATED="1443740353686" ID="ID_1996517233" MODIFIED="1443740369848" TEXT="Rest-&#xdc;berschu&#xdf; am Ende"/>
</node>
<node CREATED="1443735322787" ID="ID_1404399616" MODIFIED="1512926192369" TEXT="Bindung">
<node CREATED="1443735336009" ID="ID_1123815488" MODIFIED="1443735347412" TEXT="Diff vs. Daten"/>
<node CREATED="1443735348800" ID="ID_1003830940" MODIFIED="1443735353234" TEXT="erst hier die Semantik"/>
<node CREATED="1443740402472" ID="ID_341902192" MODIFIED="1443740407355" TEXT="&quot;zwei Listen&quot;-Modell"/>
</node>
</node>
</node>
<node CREATED="1443741905157" FOLDED="true" HGAP="342" ID="ID_1960988662" MODIFIED="1538870673371" TEXT="Diff-Implementierung" VSHIFT="91">
<font NAME="SansSerif" SIZE="16"/>
<icon BUILTIN="go"/>
<node CREATED="1444522932841" HGAP="52" ID="ID_48288704" MODIFIED="1444522994078" TEXT="Architektur" VSHIFT="-5">
<node CREATED="1444522939928" ID="ID_490994681" MODIFIED="1444522986895" TEXT="destruktiv?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1444522961462" ID="ID_1164434859" MODIFIED="1512926192369">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
List-Diff
</p>
<p>
als Spezialfall
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
<node CREATED="1444523008207" ID="ID_385890020" MODIFIED="1512926192370" TEXT="Sprache: geht nicht">
<icon BUILTIN="button_cancel"/>
<node CREATED="1444523018726" ID="ID_874967614" MODIFIED="1444523024345" TEXT="Problem DiffStep"/>
<node CREATED="1444523025148" ID="ID_1403562226" MODIFIED="1444523033774" TEXT="ist eingebettet in die Sprache"/>
<node CREATED="1444523034795" ID="ID_1203331178" MODIFIED="1444523041573" TEXT="es gibt keinen gemeinsamen Obertyp"/>
<node CREATED="1444523042138" ID="ID_675305475" MODIFIED="1512926192371">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
kann auch nicht
</p>
<p>
wegen dem Interpreter
</p>
</body>
</html></richcontent>
<node CREATED="1444523078581" ID="ID_318811786" MODIFIED="1444523091591" TEXT="liefert Token -&gt; kovariant"/>
<node CREATED="1444523091939" ID="ID_720826260" MODIFIED="1444523103670" TEXT="akzeptiert Interpreter -&gt; kontravariant"/>
</node>
</node>
<node CREATED="1444523111792" ID="ID_1544468161" MODIFIED="1512926192373" TEXT="Implementierungs-Ebene">
<icon BUILTIN="button_ok"/>
<node CREATED="1444523131486" ID="ID_37078397" MODIFIED="1444523139993" TEXT="Anwendung setzt nur Vector voraus"/>
<node CREATED="1444523140605" ID="ID_1673268008" MODIFIED="1444523237002">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
leicht auf generischen Container
</p>
<p>
zu verallgemeinern
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1444523168561" ID="ID_1180296210" MODIFIED="1444523205481">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Erkennung hat die Sprache als Parameter,
</p>
<p>
und verwendet sie zur Token-Generierung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1444523206427" ID="ID_713432486" MODIFIED="1444523230705">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
man kann auch dem List-Detector
</p>
<p>
eine Tree-Diff-Language geben
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node CREATED="1444522881125" ID="ID_172319057" MODIFIED="1444522895130" TEXT="Anwendung">
<node CREATED="1443741923547" ID="ID_1978439060" MODIFIED="1443741930738" TEXT="Listen-Diff">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1443741931858" ID="ID_484829805" MODIFIED="1512926192375" TEXT="Baum-Diff">
<icon BUILTIN="button_ok"/>
<node CREATED="1445295424277" ID="ID_1084177503" MODIFIED="1525124215397">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font size="5" color="#e97664">Frage</font>: <i>in-Place?</i>
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1445295501531" ID="ID_1542006741" MODIFIED="1512926192377" TEXT="Problem: Teilb&#xe4;ume">
<node CREATED="1445295582392" ID="ID_243770452" MODIFIED="1445295587819" TEXT="Umh&#xe4;ngen von Teilb&#xe4;umen"/>
<node CREATED="1445295588127" ID="ID_1541079773" MODIFIED="1445295598746" TEXT="Abstieg in Teilb&#xe4;ume"/>
</node>
<node CREATED="1445295543653" ID="ID_39528388" MODIFIED="1512926192377" TEXT="wie wird das UI-Model verwendet">
<icon BUILTIN="help"/>
<node CREATED="1445295714215" ID="ID_472108592" MODIFIED="1445295722937" TEXT="um Diffs aufzuspielen"/>
<node CREATED="1445295726940" ID="ID_1067776624" MODIFIED="1445295736327" TEXT="um UI-Elemente anzusprechend"/>
<node CREATED="1445295737436" ID="ID_1529650757" MODIFIED="1512926192378" TEXT="f&#xfc;r Callbacks vom UI">
<node CREATED="1445299235061" ID="ID_336159819" MODIFIED="1445299267675">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>entscheidende Frage</b>: wie addressieren?
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1445299271761" ID="ID_1895578975" MODIFIED="1445299278275" TEXT="Bus-Term hat eine ID..."/>
</node>
</node>
<node CREATED="1445299292301" HGAP="134" ID="ID_1169271905" MODIFIED="1512926192378" TEXT="pro" VSHIFT="12">
<node CREATED="1445299310971" ID="ID_1955674144" MODIFIED="1445299339570" TEXT="vermeidet Kopieren"/>
<node CREATED="1445299340375" ID="ID_485304706" MODIFIED="1445299346562" TEXT="speziell der nicht betroffenen Teile"/>
<node CREATED="1445299347173" ID="ID_232158633" MODIFIED="1445299356224" TEXT="das ist genau der Sinn des Diff"/>
</node>
<node CREATED="1445299298932" HGAP="127" ID="ID_602638586" MODIFIED="1512926192379" TEXT="contra" VSHIFT="-5">
<node CREATED="1445299306659" ID="ID_1695051638" MODIFIED="1445299308751" TEXT="Locking"/>
<node CREATED="1445389209031" ID="ID_1394943777" MODIFIED="1445389223268" TEXT="GenNode ist ein value type"/>
</node>
<node CREATED="1445389251289" HGAP="39" ID="ID_1700933130" MODIFIED="1512926192380" TEXT="Entscheidung" VSHIFT="28">
<font NAME="SansSerif" SIZE="15"/>
<node CREATED="1445389298770" ID="ID_1935262520" MODIFIED="1512926192381" TEXT="Kompromi&#xdf;">
<icon BUILTIN="help"/>
<node CREATED="1445389275998" ID="ID_1081466244" MODIFIED="1512926192382" TEXT="intern kopieren">
<node CREATED="1445389355802" ID="ID_745348631" MODIFIED="1445389365541" TEXT="wir arbeiten auf einer interen Kopie"/>
<node CREATED="1445389366298" ID="ID_432143676" MODIFIED="1445389372460" TEXT="diese geh&#xf6;rt der Implementierung"/>
<node CREATED="1445389373168" ID="ID_1925613497" MODIFIED="1445389404465">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und wird durch die Diff-Anwendung <i>konsumiert</i>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1445389291404" ID="ID_309801260" MODIFIED="1512926192382" TEXT="aber move-ctor anbieten">
<node CREATED="1445389423050" ID="ID_802906323" MODIFIED="1445389433477" TEXT="zur Initialisierung ein bestehendes Objekt &#xfc;bernehmen"/>
<node CREATED="1445389434753" ID="ID_532431684" MODIFIED="1445389454234" TEXT="das Ergebnis in ein bestehendes Objekt schieben"/>
</node>
</node>
<node CREATED="1445550734547" ID="ID_960791539" MODIFIED="1512926192443" TEXT="oder doch den Mutator erweitern">
<icon BUILTIN="yes"/>
<node CREATED="1445550748169" ID="ID_1764723062" MODIFIED="1445550752365" TEXT="Vorteil: explizit"/>
<node CREATED="1445550752832" ID="ID_1506018584" MODIFIED="1445550807621" TEXT="Manipulation hat gewisse Vorteile"/>
<node CREATED="1445550808281" ID="ID_1970167609" MODIFIED="1445550842143">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>Immutablility</i>&#160;erzwingt
</p>
<ul>
<li>
persistente Datenstrukturen
</li>
<li>
garbage-collector
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1445555721981" ID="ID_292803227" MODIFIED="1512926192444">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
L&#246;sung: wir arbeiten <i>auf </i>einem Mutator
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1445556525714" ID="ID_1223708278" MODIFIED="1445556595037" TEXT="damit funktioniert es 1:1 wie List-Diff">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1445556567980" ID="ID_783100840" MODIFIED="1445556591370" TEXT="Voraussetzung: der Mutator mu&#xdf; die Attribut/Kinder-Listen exponieren">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1445644203808" ID="ID_1105228896" MODIFIED="1445644221661">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auf dem Umweg &#252;ber einen <b>ContentMutator</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1445550873904" ID="ID_1781797833" MODIFIED="1445556509368" TEXT="copy + transaktional als optionaler 2.Layer"/>
<node CREATED="1445550893222" ID="ID_2118555" MODIFIED="1445550915111" TEXT="Diff-Applikator = destruktiver Mutator"/>
<node CREATED="1445389311690" ID="ID_1926972913" MODIFIED="1445389323819" TEXT="und dieses rekursiv..."/>
</node>
</node>
<node COLOR="#391f9e" CREATED="1445391990778" HGAP="148" ID="ID_464295846" MODIFIED="1512926192446" TEXT="Implementierung" VSHIFT="4">
<icon BUILTIN="button_ok"/>
<node CREATED="1445392080175" ID="ID_341024968" MODIFIED="1445392101243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Innereien des alten Record <i>verbrauchen</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1445392105075" ID="ID_1377567733" MODIFIED="1445392113677" TEXT="zwei neue, lokale Vektoren aufbauen"/>
<node CREATED="1445392114217" ID="ID_71124283" MODIFIED="1445392120973" TEXT="daraus den neuen Record konstruieren"/>
<node CREATED="1445556634395" ID="ID_1143865339" MODIFIED="1525124215398" TEXT="technische Komplikation: &quot;2 Listen&quot;-Modell">
<icon BUILTIN="button_ok"/>
<node CREATED="1445620914088" ID="ID_1919426539" MODIFIED="1445621018036" TEXT="Verhalten &#xe4;ndert sich je nach Scope">
<icon BUILTIN="info"/>
</node>
<node CREATED="1445620938421" ID="ID_557124057" MODIFIED="1445621022038" TEXT="Verzweigung in jedem Diff-Fall">
<icon BUILTIN="info"/>
</node>
<node CREATED="1445620947332" ID="ID_1684844100" MODIFIED="1445621010162" TEXT="Code-Redundanz">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1445620961570" ID="ID_965863635" MODIFIED="1445621006245" TEXT="in Wrapper wegpacken!">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1445620972825" ID="ID_1467461119" MODIFIED="1445621002208" TEXT="schon in den Record::Mutator einbinden">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1445620991326" ID="ID_513677356" MODIFIED="1445620998003" TEXT="eigener Test">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1473352753713" HGAP="10" ID="ID_1353201178" MODIFIED="1512926192448" TEXT="besserer Ansatz" VSHIFT="22">
<icon BUILTIN="idea"/>
<node CREATED="1473352767432" ID="ID_1220456854" MODIFIED="1473352784089" TEXT="als interne Repr&#xe4;sentation klassifizieren"/>
<node CREATED="1473352784533" ID="ID_1907760521" MODIFIED="1473352794511" TEXT="das normale Binding f&#xfc;r opaque Datenstrukturen verwenden"/>
<node CREATED="1473352794988" ID="ID_652168710" MODIFIED="1473352818517" TEXT="vorkonfiguriert: 2-Layer Binding"/>
<node CREATED="1473352820096" ID="ID_329351043" MODIFIED="1473352835764" TEXT="Spezialf&#xe4;lle aus der Sprache entfernen">
<icon BUILTIN="button_ok"/>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1473352801547" ID="ID_1001891556" MODIFIED="1473352809203" TEXT="integriert in generischen Diff-Applikator">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1446159438278" HGAP="29" ID="ID_563496669" MODIFIED="1525124215403" VSHIFT="8">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: <b><font color="#ed1c02" size="4">Rekursion</font></b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1446159517914" ID="ID_1749096609" MODIFIED="1446159530661" TEXT="wir m&#xfc;ssen rekursiv in Sub-Scope einsteigen"/>
<node CREATED="1446159531745" ID="ID_1660140345" MODIFIED="1446159550795" TEXT="eingeschachtelt wieder ein Record::Mutator"/>
<node CREATED="1446159551718" ID="ID_608514705" MODIFIED="1446159563593" TEXT="Wohin mit der Storage?"/>
<node CREATED="1446159564725" ID="ID_893302390" MODIFIED="1512926192449" TEXT="zwei L&#xf6;sungsans&#xe4;tze">
<icon BUILTIN="info"/>
<node CREATED="1446159584034" ID="ID_1845322273" MODIFIED="1512926192450" TEXT="rekursiv konsumieren">
<node CREATED="1446159632603" ID="ID_1950074103" MODIFIED="1446160677236">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn ein MUT kommt
</p>
<p>
erzeugt man lokal einen DiffApplikator f&#252;r den geschachtelten Kontext
</p>
<p>
und gibt ihm rekursiv den Diff hinein. Wenn dieser Aufruf zur&#252;ckkehrt
</p>
<p>
ist der gesammte Diff f&#252;r den eingeschachtelten Kontext konsumiert
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1446159744053" ID="ID_1735127502" MODIFIED="1512926192451" TEXT="pro">
<node CREATED="1446159775161" ID="ID_192461503" MODIFIED="1446159832244" TEXT="elegant, selbst&#xe4;hnlich"/>
<node CREATED="1446159790702" ID="ID_905335387" MODIFIED="1446159823622" TEXT="sauber, state bleibt lokal"/>
<node CREATED="1446159833753" ID="ID_539121048" MODIFIED="1446159854442" TEXT="kein expliziter Stack, Daten auf dem Callstack"/>
</node>
<node CREATED="1446159751068" ID="ID_1466026714" MODIFIED="1512926192451" TEXT="contra">
<node CREATED="1446159936323" ID="ID_1344861000" MODIFIED="1446159961793" TEXT="keine einfache Iteration mehr"/>
<node CREATED="1446159910374" ID="ID_1307975840" MODIFIED="1446159998967" TEXT="man mu&#xdf; das Token anschauen"/>
<node CREATED="1446159999939" ID="ID_1385561919" MODIFIED="1446160014569" TEXT="nicht kompatibel mit userem &quot;Interpreter&quot;-Modell"/>
<node CREATED="1446159858701" ID="ID_751122481" MODIFIED="1446160039239" TEXT="Applikator mu&#xdf; selber Diff konsumieren"/>
</node>
</node>
<node CREATED="1446159589369" ID="ID_1854873736" MODIFIED="1512926192453" TEXT="internen Stack">
<node CREATED="1446160049196" ID="ID_893515494" MODIFIED="1446160680983">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wenn ein MUT kommt,
</p>
<p>
pusht der Applikator seinen privaten Zustand
</p>
<p>
auf einen explizit im Heap verwalteten std::stack
</p>
<p>
und legt einen neuen Mutator an f&#252;r den nested scope
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1446160209758" ID="ID_1949126696" MODIFIED="1512926192453" TEXT="pro">
<node CREATED="1446160223212" ID="ID_189646771" MODIFIED="1446160248517" TEXT="kompatibel mit unserem &quot;Interpreter&quot;-Modell"/>
<node CREATED="1446160249609" ID="ID_1437127411" MODIFIED="1446160256555" TEXT="Diff wird einfach weiter iteriert"/>
</node>
<node CREATED="1446160212502" ID="ID_572617599" MODIFIED="1512926192453" TEXT="contra">
<node CREATED="1446160522212" ID="ID_1824677628" MODIFIED="1446160588767" TEXT="wir manipulieren state in einer Komponente"/>
<node CREATED="1446160621127" ID="ID_391572254" MODIFIED="1446160635561" TEXT="diese Manipulation passiert mitten aus einem Token-Aufruf"/>
<node CREATED="1446160592347" ID="ID_126615043" MODIFIED="1446160608364" TEXT="Storage-Management ist verwirrend"/>
</node>
</node>
</node>
<node CREATED="1446168257072" HGAP="81" ID="ID_91568209" MODIFIED="1446168481874" VSHIFT="5">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Entscheidung:
</p>
<p>
interner Stack
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....begr&#252;ndet duch die generische Architektur.
</p>
<p>
Die Trennung von Diff-Iteration und dem Interpreter erm&#246;glicht verschiedene Sprach-Ebenen.
</p>
<p>
Allerdings werde ich f&#252;r die Anwendung auf konkrete Datenstrukturen,
</p>
<p>
also den TreeMutator, vermutlich das andere Modell (rekursiv konsumieren) verwenden.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1446356556349" ID="ID_1068649765" MODIFIED="1512926192454" TEXT="offen...">
<node COLOR="#338800" CREATED="1446356765393" ID="ID_293921295" MODIFIED="1473352607814" TEXT="IDs in Testdaten f&#xfc;r GenNodeBasic_test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Problem sind mal wieder die automatisch generierten IDs.
</p>
<p>
Die sind nat&#252;rlich anders, wenn wir die ganze Testsuite ausf&#252;hren...
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446356588505" ID="ID_895292312" MODIFIED="1512926192454" TEXT="gr&#xfc;ndlicher Test">
<icon BUILTIN="yes"/>
<node CREATED="1473352634730" ID="ID_955392554" MODIFIED="1473352641908" TEXT="bis jetzt nur &quot;positiv-Tests&quot;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1473352642473" ID="ID_839131437" MODIFIED="1473352654368" TEXT="Abdeckung der Grenzf&#xe4;lle">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1444522895718" ID="ID_598781690" MODIFIED="1444522897802" TEXT="Generierung">
<node CREATED="1443741923547" ID="ID_1091408512" MODIFIED="1443741930738" TEXT="Listen-Diff">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1443741931858" ID="ID_826609799" MODIFIED="1443741945481" TEXT="Baum-Diff">
<icon BUILTIN="flag"/>
</node>
</node>
<node CREATED="1502452581379" HGAP="11" ID="ID_1651893758" MODIFIED="1502453059637" TEXT="Darstellung" VSHIFT="17">
<linktarget COLOR="#afb1bd" DESTINATION="ID_1651893758" ENDARROW="Default" ENDINCLINATION="-1257;0;" ID="Arrow_ID_1786455458" SOURCE="ID_1500100371" STARTARROW="None" STARTINCLINATION="1858;0;"/>
<node CREATED="1502452597604" ID="ID_172363215" MODIFIED="1512926192454" TEXT="MutationMessage">
<icon BUILTIN="button_ok"/>
<node CREATED="1502454531772" ID="ID_445867436" MODIFIED="1502454536184" TEXT="abstrakter Iterator"/>
<node CREATED="1502454536636" ID="ID_643452930" MODIFIED="1502454542390" TEXT="opaque generation context"/>
<node CREATED="1502499523442" ID="ID_1849662627" MODIFIED="1502499532441" TEXT="verwaltet diesen per shared_ptr">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1502499556422" ID="ID_914381104" MODIFIED="1502499574412" TEXT="convenience- builder">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1502452625232" ID="ID_328973433" MODIFIED="1512926192456" TEXT="Diagnose">
<icon BUILTIN="button_ok"/>
<node CREATED="1502454361347" ID="ID_1601614353" MODIFIED="1502550968543" TEXT="toString">
<icon BUILTIN="button_ok"/>
<node CREATED="1502454303107" ID="ID_712801862" MODIFIED="1502454329405" TEXT="Problem: Pull-Prinzip">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Diff ist eine abstrakte Quelle,
</p>
<p>
die nur einmal verbraucht werden kann
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1502454341085" ID="ID_1620101988" MODIFIED="1502454351680" TEXT="L&#xf6;sung: Adapter mit Snapshot"/>
<node CREATED="1502454374017" ID="ID_355618162" MODIFIED="1502454376725" TEXT="Konsequenz">
<node CREATED="1502454377713" ID="ID_1122938295" MODIFIED="1502454386323" TEXT="normaler Diff bleibt opaque"/>
<node CREATED="1502454387047" ID="ID_1949389197" MODIFIED="1502454395770" TEXT="Dekorator f&#xfc;r Tests">
<node CREATED="1502454398686" ID="ID_1736428769" MODIFIED="1502454409496" TEXT="Anforderung: drop-in"/>
<node CREATED="1502454410012" ID="ID_364935696" MODIFIED="1502454438242" TEXT="durch Allokations-Kette l&#xf6;sen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Dekorator-Prinzip.
</p>
<p>
Pa&#223;t hier, da IterSource genau dieses Vorgehen nahelegt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1502550828691" ID="ID_382976334" MODIFIED="1502550873649" TEXT="fest eingebaut">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
MutationMessage::updateDiagnostics()
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1502550853144" ID="ID_1494004239" MODIFIED="1502550857267" TEXT="Snapshot"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502550876621" ID="ID_146736971" MODIFIED="1502550911076" TEXT="operationale Semantik">
<icon BUILTIN="clanbomber"/>
<node CREATED="1502550912144" ID="ID_1989059056" MODIFIED="1502550917571" TEXT="Seiteneffekt"/>
<node CREATED="1502550918087" ID="ID_1305779780" MODIFIED="1502550932761" TEXT="DiffGenerator wird gepullt"/>
<node CREATED="1502550933253" ID="ID_1994991409" MODIFIED="1502550962642" TEXT="immer nur Rest-Sequenz sichtabar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...diejenige, die zum Zeitpunkt des updateDiagnostics() noch anstand
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502454451191" ID="ID_1968344683" MODIFIED="1502454502337" TEXT="pretty-print">
<icon BUILTIN="hourglass"/>
<node CREATED="1502454475268" ID="ID_1399873401" MODIFIED="1502454479199" TEXT="f&#xfc;r Systemdiagnose"/>
<node CREATED="1502454479907" ID="ID_234469818" MODIFIED="1502454491525" TEXT="lesbare Formattierung"/>
<node CREATED="1502454492162" ID="ID_983774503" MODIFIED="1502454496237" TEXT="auf sp&#xe4;ter vertagt"/>
</node>
</node>
</node>
</node>
<node CREATED="1460934597764" HGAP="223" ID="ID_1014666775" MODIFIED="1518487921095" TEXT="Review" VSHIFT="32">
<font NAME="SansSerif" SIZE="15"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1460934670043" ID="ID_1299827687" MODIFIED="1518487921095" TEXT="sp&#xe4;ter zu &#xfc;berpr&#xfc;fen">
<node CREATED="1460934686017" ID="ID_900313780" MODIFIED="1518487921095" TEXT="Klarheit"/>
<node CREATED="1460934698430" ID="ID_1527149180" MODIFIED="1518487921095" TEXT="praktischer Kontext"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1460934704022" ID="ID_369718039" MODIFIED="1518487921095" TEXT="fragw&#xfc;rdig">
<icon BUILTIN="help"/>
<node CREATED="1460934726315" ID="ID_865694069" MODIFIED="1518487921095" TEXT="Immutabilit&#xe4;t">
<node CREATED="1460934748064" ID="ID_321786426" MODIFIED="1518487921095" TEXT="keine klare Linie"/>
<node CREATED="1460934753440" ID="ID_44139402" MODIFIED="1518487921095" TEXT="einerseits ja, feste Datenwerte"/>
<node CREATED="1460934764830" ID="ID_594837209" MODIFIED="1518487921095" TEXT="dann aber doch Assignment"/>
<node CREATED="1460934771253" ID="ID_1299180901" MODIFIED="1518487921095" TEXT="und ein Gemurkse bei den Records"/>
</node>
<node CREATED="1460934785067" ID="ID_945933568" MODIFIED="1518487921095" TEXT="Abk&#xfc;rzungen in der Sprache">
<node CREATED="1460934793738" ID="ID_1602968303" MODIFIED="1518487921095" TEXT="Ref::CHILD"/>
<node CREATED="1460934799137" ID="ID_1189559717" MODIFIED="1518487921095" TEXT="Ref::THIS"/>
<node CREATED="1460934802385" ID="ID_961490107" MODIFIED="1518487921095" TEXT="Ref::ATTRIBS"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1443740543812" HGAP="17" ID="ID_1766169268" MODIFIED="1518487921095" TEXT="Tests" VSHIFT="20">
<font NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="bell"/>
<node CREATED="1443740549220" ID="ID_167459949" MODIFIED="1518487921095" TEXT="List-Diff">
<icon BUILTIN="button_ok"/>
<node CREATED="1443740554315" ID="ID_1970336632" MODIFIED="1518487921095" TEXT="Anwenden">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1443740556587" ID="ID_1725890953" MODIFIED="1518487921095" TEXT="Erzeugen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1443740566042" ID="ID_632827470" MODIFIED="1518487921095" TEXT="Baum-Diff">
<icon BUILTIN="prepare"/>
<node CREATED="1443740576744" ID="ID_335386387" MODIFIED="1525124215410" TEXT="Anwenden">
<icon BUILTIN="button_ok"/>
<node CREATED="1443741563019" HGAP="-20" ID="ID_1944319966" MODIFIED="1512926192458" TEXT="Demo-Beispiel" VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node CREATED="1443741578993" ID="ID_318844233" MODIFIED="1443741582069" TEXT="INIT"/>
<node CREATED="1443741591616" ID="ID_1102292452" MODIFIED="1443741607633" TEXT="INS + MUT _THIS_"/>
<node CREATED="1443741620052" ID="ID_1065499540" MODIFIED="1443741633054" TEXT="MOD"/>
<node CREATED="1443741736636" ID="ID_1110914687" MODIFIED="1443741738320" TEXT="PERM"/>
<node CREATED="1443741711120" ID="ID_1289424857" MODIFIED="1443741714651" TEXT="Rekursion"/>
</node>
<node CREATED="1443740607172" HGAP="21" ID="ID_1836453078" MODIFIED="1512926192458" TEXT="INIT" VSHIFT="14">
<node CREATED="1443740625649" ID="ID_1466659920" MODIFIED="1443740670333" TEXT="Attribute + Kinder"/>
<node CREATED="1443740621098" ID="ID_987166264" MODIFIED="1443740625134" TEXT="nur Kinder"/>
<node CREATED="1443740615699" ID="ID_93430092" MODIFIED="1443740679948" TEXT="Attribute"/>
</node>
<node CREATED="1443741317885" ID="ID_1933201882" MODIFIED="1512926192458" TEXT="NAV">
<node CREATED="1443741324236" ID="ID_1812765289" MODIFIED="1512926192459" TEXT="PICK">
<node CREATED="1443741332691" ID="ID_1059350985" MODIFIED="1443741335518" TEXT="Attribut"/>
<node CREATED="1443741337786" ID="ID_70415473" MODIFIED="1443741342997" TEXT="letztes Attribut"/>
<node CREATED="1443741507347" ID="ID_1882468426" MODIFIED="1443741513958" TEXT="nicht vorhandenes"/>
<node CREATED="1444349824563" ID="ID_572700596" MODIFIED="1444349836702" TEXT="anonym: Ref::CHILD"/>
</node>
<node CREATED="1443741349576" ID="ID_1257145184" MODIFIED="1512926192460" TEXT="AFTER">
<node CREATED="1443741365526" ID="ID_1412112386" MODIFIED="1443741372089" TEXT="Attribut"/>
<node CREATED="1443741373013" ID="ID_1922596569" MODIFIED="1512926192460" TEXT="letztes Attribut">
<node CREATED="1443741379924" ID="ID_1574470178" MODIFIED="1443741382960" TEXT="Attribut anf&#xfc;gen"/>
<node CREATED="1443741383579" ID="ID_69718214" MODIFIED="1443741387039" TEXT="Kind anf&#xfc;gen"/>
</node>
<node CREATED="1443741399145" ID="ID_625711902" MODIFIED="1443741409900" TEXT="Kind"/>
<node CREATED="1443741519689" ID="ID_1627922512" MODIFIED="1443741523076" TEXT="nicht vorhandenes"/>
<node CREATED="1443742264333" ID="ID_1331320583" MODIFIED="1443742268596" TEXT="_END_">
<font NAME="SansSerif" SIZE="11"/>
</node>
<node CREATED="1443741448683" ID="ID_1149106472" MODIFIED="1443741456637" TEXT="Frage: wrap erlauben">
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1443740818144" ID="ID_1606823522" MODIFIED="1512926192460" TEXT="INS">
<node CREATED="1443740822151" ID="ID_1509080074" MODIFIED="1512926192461" TEXT="Attribut">
<node CREATED="1443740849731" ID="ID_1736662710" MODIFIED="1443740851743" TEXT="vorne"/>
<node CREATED="1443740852219" ID="ID_546949723" MODIFIED="1443740853615" TEXT="hinten"/>
<node CREATED="1443740854491" ID="ID_730025656" MODIFIED="1443740858070" TEXT="Duplikat"/>
<node CREATED="1443740862570" ID="ID_899234602" MODIFIED="1443740866621" TEXT="Typ-Attribut"/>
<node CREATED="1443740918266" ID="ID_1583583367" MODIFIED="1443740923149" TEXT="Attribut in Kind-Zone"/>
</node>
<node CREATED="1443740870057" ID="ID_1029684307" MODIFIED="1512926192461" TEXT="Kind">
<node CREATED="1443740874416" ID="ID_1507242638" MODIFIED="1443740884674" TEXT="nach dem letzten Attribut"/>
<node CREATED="1443740885287" ID="ID_839165655" MODIFIED="1443740909455" TEXT="im Scope"/>
<node CREATED="1443740967099" ID="ID_1771095243" MODIFIED="1443740976438" TEXT="noch in der Attribut-Zone"/>
</node>
</node>
<node CREATED="1443740986217" ID="ID_1868954463" MODIFIED="1512926192462" TEXT="DEL">
<node CREATED="1443740988710" ID="ID_1745624753" MODIFIED="1512926192462" TEXT="Attribut">
<node CREATED="1443740997760" ID="ID_1984040083" MODIFIED="1443741004867" TEXT="normal"/>
<node CREATED="1443741005718" ID="ID_1595612872" MODIFIED="1443741014489" TEXT="in falscher Ordnung"/>
<node CREATED="1443741015221" ID="ID_587604738" MODIFIED="1443741030671" TEXT="Duplikat"/>
</node>
<node CREATED="1443741060111" ID="ID_1609626537" MODIFIED="1512926192462" TEXT="Kind">
<node CREATED="1443741062863" ID="ID_1087964841" MODIFIED="1443741072913" TEXT="normal"/>
<node CREATED="1443741074333" ID="ID_625561892" MODIFIED="1443741087863" TEXT="noch in der Attribut-Zone"/>
<node CREATED="1443741088619" ID="ID_290604972" MODIFIED="1443741095374" TEXT="in falscher Ordnung"/>
</node>
<node CREATED="1443741637530" ID="ID_397839136" MODIFIED="1443741640949" TEXT="Teilbaum"/>
</node>
<node CREATED="1443741106905" ID="ID_1001938821" MODIFIED="1512926192463" TEXT="PERM">
<node CREATED="1443741110392" ID="ID_513982563" MODIFIED="1443741112764" TEXT="Attribut"/>
<node CREATED="1443741113584" ID="ID_1631505651" MODIFIED="1512926192463" TEXT="Kind">
<node CREATED="1443741137141" ID="ID_300777204" MODIFIED="1443741140008" TEXT="normal"/>
<node CREATED="1443741140596" ID="ID_1663721251" MODIFIED="1443741147135" TEXT="mitten in Attribut-Zone"/>
<node CREATED="1443741147491" ID="ID_1992350599" MODIFIED="1443741152822" TEXT="am Ende der Attribut-Zone"/>
</node>
</node>
<node CREATED="1443741163385" ID="ID_1770431599" MODIFIED="1512926192463" TEXT="MUT">
<node CREATED="1443741167465" ID="ID_1585288084" MODIFIED="1512926192464" TEXT="Objekt by-name">
<node CREATED="1443741182559" ID="ID_1263613083" MODIFIED="1443741185922" TEXT="Attribut"/>
<node CREATED="1443741186486" ID="ID_1416713573" MODIFIED="1443741188010" TEXT="Kind"/>
<node CREATED="1443741654263" ID="ID_68796444" MODIFIED="1443741686295" TEXT="Teilbaum umordnen"/>
</node>
<node CREATED="1443741189590" ID="ID_407606511" MODIFIED="1512926192464" TEXT="Objekt _THIS_">
<node CREATED="1443741204516" ID="ID_899173442" MODIFIED="1443741207247" TEXT="nach INS"/>
<node CREATED="1443741212547" ID="ID_979817893" MODIFIED="1443741225989" TEXT="nach PICK"/>
<node CREATED="1443741226673" ID="ID_1242761745" MODIFIED="1443741229165" TEXT="nach AFTER"/>
<node CREATED="1443741229984" ID="ID_926730195" MODIFIED="1443741233636" TEXT="nach FIND"/>
</node>
</node>
<node CREATED="1460753406868" HGAP="-18" ID="ID_289459316" MODIFIED="1502593581651" TEXT="Spezialf&#xe4;lle" VSHIFT="25">
<node COLOR="#338800" CREATED="1460753417178" ID="ID_1333254858" MODIFIED="1512926192465" TEXT="native bindings">
<linktarget COLOR="#639ad5" DESTINATION="ID_1333254858" ENDARROW="Default" ENDINCLINATION="1091;0;" ID="Arrow_ID_709688381" SOURCE="ID_534213210" STARTARROW="None" STARTINCLINATION="1150;185;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1460753433312" ID="ID_94456036" MODIFIED="1502593626008" TEXT="Binden an Collection von Primitiven">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1460753444735" ID="ID_1100731476" MODIFIED="1502593621731" TEXT="Binden an Collection von intelligenten Spezialtypen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1460753460940" ID="ID_677690723" MODIFIED="1502593616768" TEXT="Komposit aus Attribut-Bindung und Kinder-Collection-Bindung">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1448063880238" ID="ID_159570161" MODIFIED="1557498707235" TEXT="Zyklus">
<node CREATED="1448063893293" ID="ID_1135705575" MODIFIED="1557498707235" TEXT="initial"/>
<node CREATED="1448063896300" ID="ID_1403759288" MODIFIED="1557498707235" TEXT="Zuordnung"/>
<node CREATED="1448063902387" ID="ID_1822852634" MODIFIED="1557498707235" TEXT="Aktion"/>
<node CREATED="1448063908243" ID="ID_474614648" MODIFIED="1557498707235" TEXT="Update"/>
<node CREATED="1448063913618" ID="ID_1967302094" MODIFIED="1557498707235" TEXT="Ende"/>
</node>
</node>
</node>
<node CREATED="1448314834155" ID="ID_1725514536" MODIFIED="1557498707235" POSITION="right" TEXT="Integral">
<node CREATED="1448315011484" ID="ID_867104544" MODIFIED="1557498707235" TEXT="generisch">
<node CREATED="1448315015107" FOLDED="true" ID="ID_1900900399" MODIFIED="1557498707235" TEXT="JSON">
<node CREATED="1448315031553" ID="ID_1177387568" MODIFIED="1518487921095" TEXT="parser">
<icon BUILTIN="button_ok"/>
<node CREATED="1448315067524" FOLDED="true" ID="ID_430746611" MODIFIED="1538870521139" TEXT="Libs">
<icon BUILTIN="info"/>
<node CREATED="1448315070908" ID="ID_1328571674" MODIFIED="1518487921095" TEXT="JSON-C">
<node CREATED="1448318526124" ID="ID_737325795" MODIFIED="1518487921095" TEXT="einfach"/>
<node CREATED="1448318531644" ID="ID_745699377" MODIFIED="1518487921095" TEXT="robust"/>
<node CREATED="1448318534203" ID="ID_1415146809" MODIFIED="1518487921095" TEXT="grottig"/>
</node>
<node CREATED="1448316910322" ID="ID_677006595" MODIFIED="1518487921095" TEXT="JsonCpp">
<node CREATED="1448318540363" ID="ID_269049852" MODIFIED="1518487921095" TEXT="sehr weit verbreitet"/>
<node CREATED="1448318569151" ID="ID_239373731" MODIFIED="1518487921095">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>schmerzloses </i>C++ API
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448318701621" ID="ID_1339095142" MODIFIED="1518487921095" TEXT="unterst&#xfc;tzt Builder f&#xfc;r Integration in den Parse-Vorgang"/>
<node CREATED="1448318726098" ID="ID_1386753436" MODIFIED="1518487921095" TEXT="unterst&#xfc;tzt Kommentarte (non-Standard)"/>
<node CREATED="1448318671009" ID="ID_1620559470" MODIFIED="1518487921095" TEXT="kann als eine gro&#xdf;e CPP-Datei eingebunden werden"/>
<node CREATED="1448319454226" ID="ID_108762123" MODIFIED="1518487921095">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Performance: guter Schnitt (etw. besser als boost spirit)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448320352804" ID="ID_1738484079" MODIFIED="1518487921095" TEXT="MIT"/>
</node>
<node CREATED="1448316923520" ID="ID_1207744350" MODIFIED="1518487921095" TEXT="rapidjson">
<node CREATED="1448320356547" ID="ID_18433884" MODIFIED="1518487921095" TEXT="MIT / teils BSD"/>
<node CREATED="1448320418619" ID="ID_972456274" MODIFIED="1518487921095" TEXT="gilt als schnell und effizient"/>
<node CREATED="1448320428906" ID="ID_279600641" MODIFIED="1518487921095">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
hat ein DOM-API <i>und</i>&#160;ein SAX-artiges API
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1448320473828" ID="ID_681519615" MODIFIED="1518487921095" TEXT="header-only, self-contained, keine Abh&#xe4;ngigkeiten!">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t: <b>nicht einmal</b>&#160;abh&#228;ngig von der STL
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448320555049" ID="ID_1836540415" MODIFIED="1518487921095" TEXT="erweiterter Unicode-Support, incl. recoding beim Parsen"/>
<node CREATED="1448321567452" ID="ID_933252727" MODIFIED="1518487921095" TEXT="kann auch in-situ parsen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wie gson
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448320545523" ID="ID_298176210" MODIFIED="1518487921095" TEXT="vollst&#xe4;ndig, incl Ersetzungen"/>
<node CREATED="1448321598848" ID="ID_1151875949" MODIFIED="1518487921095" TEXT="eigener Block-Allokator, ersetzbar"/>
</node>
<node CREATED="1448318965627" ID="ID_453761706" MODIFIED="1518487921095" TEXT="vjson / gason">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
vjson war Google Code;
</p>
<p>
nach dem Umzug auf Github hei&#223;t es gason
</p>
</body>
</html></richcontent>
<node CREATED="1448319925356" ID="ID_1589130421" MODIFIED="1520722535213" TEXT="angeblich ziemlich schnell">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
lt. eigenen Benchmakrs deutlich schneller als rapidjson, welches eigentlich immer als der &quot;schnelle&quot; JSON-Parser gilt.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448319936915" ID="ID_1093677957" MODIFIED="1518487921095" TEXT="C++, aber ehr C-artiges API"/>
<node CREATED="1448319955328" ID="ID_534293846" MODIFIED="1518487921095" TEXT="type-tag, switch-on-type"/>
<node CREATED="1448319963711" ID="ID_1858072437" MODIFIED="1518487921095" TEXT="Parser ist destruktiv">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. das Parsen schreibt den Eingabepuffer um, und Strings bleiben einfach liegen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448319973830" ID="ID_1495739376" MODIFIED="1518487921096" TEXT="Werte werden in IEEE double NaN geboxt"/>
<node CREATED="1448320035173" ID="ID_226864203" MODIFIED="1518487921096" TEXT="eigener Block-Allokator"/>
<node CREATED="1448320365290" ID="ID_1044522194" MODIFIED="1518487921096" TEXT="MIT"/>
</node>
<node CREATED="1448315073819" ID="ID_280907535" MODIFIED="1518487921096" TEXT="boost spirit">
<node CREATED="1448316823037" ID="ID_726858418" MODIFIED="1518487921096" TEXT="reiner parser"/>
<node CREATED="1448321185310" ID="ID_180554028" MODIFIED="1518487921096" TEXT="kann direkt in Vector parsen"/>
<node CREATED="1448316826444" ID="ID_263014084" MODIFIED="1518487921096" TEXT="grammatik via metaprogrmming"/>
<node CREATED="1448316840474" ID="ID_1878535070" MODIFIED="1518487921096" TEXT="code bloat, vor allem in Debug-builds">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1448321146283" ID="ID_1257942632" MODIFIED="1518487921096" TEXT="Ver&#xf6;ffentlichung undurchsichtig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
kein Repo auffindbar
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1448315077731" ID="ID_439331220" MODIFIED="1518487921096" TEXT="boost property-tree">
<node CREATED="1448316790553" ID="ID_1199102717" MODIFIED="1518487921096" TEXT="einfaches API"/>
<node CREATED="1448316796240" ID="ID_1402766358" MODIFIED="1518487921096" TEXT="parst in einen boost::property_tree"/>
<node CREATED="1448316803799" ID="ID_534763461" MODIFIED="1518487921096" TEXT="keine Typisierung">
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node CREATED="1448320959060" ID="ID_937046843" MODIFIED="1518487921096" TEXT="Entscheidung">
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1448320963067" ID="ID_824752283" MODIFIED="1538870530138" TEXT="rapidjson">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1448320987776" ID="ID_545245790" MODIFIED="1518487921096" TEXT="Begr&#xfc;ndung...">
<node CREATED="1448321001518" ID="ID_671858484" MODIFIED="1518487921096">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ich will nicht <i>noch ein</i>&#160;Objekt-System
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1448321022444" ID="ID_658035448" MODIFIED="1518487921096" TEXT="das SAX-API ist genau, was ich brauche"/>
<node CREATED="1448321063078" ID="ID_923664235" MODIFIED="1518487921096" TEXT="au&#xdf;erdem klein und schmerzlos"/>
<node CREATED="1448321614174" ID="ID_1319618589" MODIFIED="1518487921096" TEXT="sch&#xf6;nes API, und ist schnell"/>
</node>
</node>
</node>
<node CREATED="1448315063541" ID="ID_430049414" MODIFIED="1518487921096" TEXT="framework">
<node CREATED="1448321310054" ID="ID_180974747" MODIFIED="1518487921096" TEXT="Forderungen">
<node CREATED="1448321258189" ID="ID_1374008180" MODIFIED="1518487921096" TEXT="diff::Record als Container"/>
<node CREATED="1448321329691" ID="ID_982254628" MODIFIED="1518487921096" TEXT="Validierung beim Parsen"/>
<node CREATED="1448321280178" ID="ID_1241470226" MODIFIED="1518487921096" TEXT="Erweiterbarkeit auf Objekt-Serialisieierung"/>
</node>
</node>
</node>
<node CREATED="1521843763852" ID="ID_1208981523" MODIFIED="1557498707235" TEXT="Microbenchmarks">
<node CREATED="1521843772026" ID="ID_1334641753" MODIFIED="1557498707235" TEXT="selber schreiben">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1521843783161" ID="ID_1151208744" MODIFIED="1557498707235" TEXT="mehrere Threads unterst&#xfc;tzen"/>
<node COLOR="#338800" CREATED="1521843822020" FOLDED="true" ID="ID_1862348515" MODIFIED="1557498707235" TEXT="Library-Funktion">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1538870431318" ID="ID_1372513165" MODIFIED="1538870448900" TEXT="lib/test/microbenchmark.hpp"/>
<node CREATED="1521843838865" ID="ID_1649689781" MODIFIED="1521843944839" TEXT="bekommt eigentlichen Testcode als Lambda">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521843849712" ID="ID_579604510" MODIFIED="1521843940495" STYLE="fork" TEXT="verwendet std::chrono::duration&lt;double&gt;">
<icon BUILTIN="info"/>
<node CREATED="1521843873173" ID="ID_952548619" MODIFIED="1521843938941" TEXT="mi&#xdf;t micro-Ticks"/>
<node CREATED="1521843880155" ID="ID_1245721460" MODIFIED="1521843938941" TEXT="Ergebnis f&#xe4;llt in Sekunden"/>
</node>
<node CREATED="1521843959433" ID="ID_133306105" MODIFIED="1521844083428" TEXT="verwendet Lumiera&apos;s Threading-Framework">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
man h&#228;tte genausogut std::future und std::async verwenden k&#246;nnen.
</p>
<p>
Vorteil von unseren Framework:
</p>
<ul>
<li>
wir haben es schon, und wir werden es verwenden, wegen den Thradpools
</li>
<li>
man baut ein Objekt f&#252;r einen Thread. Das ist explizit und sauber
</li>
<li>
wir haben eine eingebaute Barriere und k&#246;nnen unseren Objekt-Monitor nutzen
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1521843907144" ID="ID_848033940" MODIFIED="1521843935500" TEXT="Ergebnis normieren auf einzelnen Aufruf">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521843926501" ID="ID_984510403" MODIFIED="1521843934725" TEXT="Ergebnis in Mirkosekunden">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521844261439" ID="ID_1538240853" MODIFIED="1521844284174" TEXT="Korrektheit der Zeitangaben verifiziert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
habe einen usleep(1000) getimed
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1521844101045" ID="ID_1065212487" MODIFIED="1557498707235" TEXT="Erfahrungen">
<node CREATED="1521844121043" FOLDED="true" ID="ID_1041692639" MODIFIED="1557498707235" TEXT="Optimizer">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1521844504174" ID="ID_318676926" MODIFIED="1521844520954" TEXT="Optimierung per -O3 ist sehr deutlich me&#xdf;bar">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521844130561" ID="ID_1541346658" MODIFIED="1521844139739" TEXT="&#xfc;bergebene Lambdas werden tats&#xe4;chlich ge-inlined"/>
<node CREATED="1521844157909" ID="ID_1833250915" MODIFIED="1521844656552" TEXT="wenn wir in der Loop messen, messen wir die Aufrufe von chrono::system_clock mit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
daher messen wir die Loop als Ganzes.
</p>
<p>
Es gibt daher keine M&#246;glichkeit, den Loop-Overhead selber zu messen.
</p>
<p>
Er sollte sich aber bei einer Wiederholung im Millionenbereich gut amortisieren
</p>
<p>
</p>
<p>
Au&#223;erdem ist ja auch noch der Aufruf des Funktors mit im Spiel, wenngleich der auch typischerweise geinlined wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1521844236539" ID="ID_176799135" MODIFIED="1521844248411" TEXT="tats&#xe4;chlich verifiziert">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521844204015" ID="ID_188310893" MODIFIED="1521844251027" TEXT="Gr&#xf6;&#xdf;enordnung 10 ns">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1521844141248" ID="ID_328319936" MODIFIED="1521844156769" TEXT="wenn man nicht aufpa&#xdf;t, wird die ganze Loop wegoptimiert"/>
<node CREATED="1521844306601" ID="ID_126627605" MODIFIED="1521844338425" TEXT="Beste L&#xf6;sung">
<node CREATED="1521844339269" ID="ID_1885600326" MODIFIED="1521844361265">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
volatile Variable <i>au&#223;en,</i>&#160;im Aufrufkontext
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521844366944" ID="ID_1258575129" MODIFIED="1521844373484" TEXT="Zugriff via Closure und Referenz"/>
<node CREATED="1521844374503" ID="ID_1548234021" MODIFIED="1521844386090" TEXT="diese Variable mit Konstante vergleichen"/>
<node CREATED="1521844391605" ID="ID_1603234514" MODIFIED="1521844411462" TEXT="Lokale volatile Variable: Initialisierung kostet +5ns"/>
<node CREATED="1521844412602" ID="ID_1758142813" MODIFIED="1521844418949" TEXT="Inkrementieren kostet +10ns"/>
<node CREATED="1521844419657" ID="ID_1892679887" MODIFIED="1521844482141" TEXT="konkurrentes Inkrementieren auf globale Volatile: Faktor 100 !!!!">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was sehr sch&#246;n beweist,
</p>
<p>
da&#223; x86_64 tats&#228;chlich cache-koh&#228;rent ist
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1535890757430" ID="ID_3793753" MODIFIED="1557498707235" TEXT="Iterator">
<node CREATED="1535890775651" ID="ID_333704322" MODIFIED="1557498707235" TEXT="Lumiera Forward Iterator">
<node CREATED="1535890788898" ID="ID_474606436" MODIFIED="1557498707235" TEXT="IterAdapter"/>
<node CREATED="1535891020739" ID="ID_7899831" MODIFIED="1557498707235" TEXT="IterStateWrapper">
<node CREATED="1535891026946" ID="ID_958757780" MODIFIED="1557498707235" TEXT="sehr wichtiges Konzept"/>
<node CREATED="1535891031609" ID="ID_1246882752" MODIFIED="1557498707236" TEXT="leider zwei Auspr&#xe4;gungen">
<node CREATED="1535891041376" ID="ID_1943507267" MODIFIED="1557498707236" TEXT="Core ist opaque (private)"/>
<node CREATED="1535891050566" ID="ID_89731232" MODIFIED="1557498707236" TEXT="von Core erben">
<node CREATED="1535895093066" ID="ID_1894277171" MODIFIED="1557498707236" TEXT="IterableDecorator"/>
<node CREATED="1535895095322" ID="ID_1368242997" MODIFIED="1557498707236" TEXT="geh&#xf6;rt zu TreeExplorer"/>
</node>
</node>
</node>
<node CREATED="1535890793825" ID="ID_582282005" MODIFIED="1557498707236" TEXT="Itertool">
<node CREATED="1535893017063" ID="ID_859634605" MODIFIED="1557498707236" TEXT="zun&#xe4;chst naiv-direkt implementiert"/>
<node CREATED="1535893024102" ID="ID_1514691517" MODIFIED="1557498707236" TEXT="Sandwich-Design">
<node CREATED="1535893036132" ID="ID_827990682" MODIFIED="1557498707236" TEXT="nicht besonders sch&#xf6;n"/>
<node CREATED="1535893041324" ID="ID_1175882215" MODIFIED="1557498707236" TEXT="aber soweit wartbar"/>
</node>
<node CREATED="1535893048363" ID="ID_794436728" MODIFIED="1557498707236" TEXT="Frage: abl&#xf6;sen durch Pipeline-Builder?">
<arrowlink COLOR="#afa9c1" DESTINATION="ID_114091640" ENDARROW="Default" ENDINCLINATION="-503;-426;" ID="Arrow_ID_956211493" STARTARROW="None" STARTINCLINATION="238;0;"/>
<icon BUILTIN="help"/>
</node>
</node>
</node>
<node CREATED="1535890810111" ID="ID_677938944" MODIFIED="1557498707236" TEXT="IterSource">
<node CREATED="1535890823613" ID="ID_1227701237" MODIFIED="1557498707236" TEXT="Lumiera Iterator als Abstraktion"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1535890830772" ID="ID_1558484735" MODIFIED="1557498707236" TEXT="bestehendes Design ist ungeschickt">
<icon BUILTIN="stop-sign"/>
<node CREATED="1535890890980" ID="ID_1370634828" MODIFIED="1557498707236" TEXT="unterstellt einen Pos-Pointer"/>
<node CREATED="1535890915576" ID="ID_8718412" MODIFIED="1557498707236" TEXT="Semantik der Abbruchbedingung ist verwirrend"/>
</node>
<node CREATED="1535890958987" ID="ID_71109348" MODIFIED="1557498707236" TEXT="alternatives Design">
<node CREATED="1535890965170" ID="ID_1363636315" MODIFIED="1557498707236" TEXT="was geht hier?">
<node CREATED="1535890972609" ID="ID_1586923063" MODIFIED="1557498707236" TEXT="wie state core?"/>
</node>
</node>
</node>
<node CREATED="1535891065189" FOLDED="true" ID="ID_1233342893" MODIFIED="1557498707236" TEXT="Iterator-Monade">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
seit l&#228;ngerer Zeit ein Thema,
</p>
<p>
f&#252;r das ich verschiedene L&#246;sungen ausprobiere
</p>
<ul>
<li>
IterExplorer : erster Anlauf, etwas schief
</li>
<li>
TreeExplorer : Pipeline-Builder, vielversprechend
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="pencil"/>
<node COLOR="#435e98" CREATED="1512925265295" HGAP="103" ID="ID_1502143527" MODIFIED="1538869212828" VSHIFT="-66">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Thema: <b>Monaden</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#80c6b3" DESTINATION="ID_1499495468" ENDARROW="Default" ENDINCLINATION="-1812;12745;" ID="Arrow_ID_673178727" STARTARROW="None" STARTINCLINATION="4133;-10665;"/>
<linktarget COLOR="#6c79a2" DESTINATION="ID_1502143527" ENDARROW="Default" ENDINCLINATION="-522;742;" ID="Arrow_ID_616092581" SOURCE="ID_513357674" STARTARROW="None" STARTINCLINATION="238;0;"/>
<icon BUILTIN="flag-blue"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510446221317" HGAP="37" ID="ID_1955430588" MODIFIED="1535892751360" VSHIFT="-14">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sind Monaden
</p>
<p>
wirklich hilfreich?
</p>
</body>
</html></richcontent>
<linktarget COLOR="#b26c7a" DESTINATION="ID_1955430588" ENDARROW="Default" ENDINCLINATION="-343;-748;" ID="Arrow_ID_920121069" SOURCE="ID_1590483406" STARTARROW="None" STARTINCLINATION="-38;43;"/>
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1510446351987" ID="ID_855693611" MODIFIED="1535892731992" TEXT="steile These">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1510446304314" ID="ID_1203762242" MODIFIED="1510446320689" TEXT="Zustand ist ein Ph&#xe4;nomen der wirklichen Welt"/>
<node CREATED="1510446255552" ID="ID_46197323" MODIFIED="1510446264587" TEXT="funktionale Sprachen sind kaputt by design"/>
<node CREATED="1510446265767" ID="ID_1283184818" MODIFIED="1510446275105" TEXT="nur deshalb brauchts dort Monaden"/>
</node>
<node CREATED="1510446363306" ID="ID_505111674" MODIFIED="1535892582314" TEXT="trotzdem gerechtfertigt?">
<node CREATED="1510446371480" ID="ID_247739078" MODIFIED="1510446394065" TEXT="Klarheit"/>
<node CREATED="1510446394965" ID="ID_1458617201" MODIFIED="1510446398689" TEXT="Trennung"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1512927162098" FOLDED="true" HGAP="93" ID="ID_1774532014" MODIFIED="1538869215922" TEXT="Einsichten" VSHIFT="37">
<icon BUILTIN="idea"/>
<node CREATED="1512927175056" ID="ID_516152902" MODIFIED="1518487921098" TEXT="nicht das Gelbe vom Ei">
<node CREATED="1512927204460" ID="ID_1166808329" MODIFIED="1518487921098" TEXT="kein wirkliches Design-Pattern"/>
<node CREATED="1512927213962" ID="ID_1374430987" MODIFIED="1518487921098" TEXT="es fehlt die Nennkraft"/>
</node>
<node CREATED="1512927667023" ID="ID_67694617" MODIFIED="1518487921098" TEXT="Probleme">
<node CREATED="1512927676973" ID="ID_1019834257" MODIFIED="1518487921098" TEXT="Mondaden sind eine rein technische L&#xf6;sung"/>
<node CREATED="1512927687844" ID="ID_1680797364" MODIFIED="1518487921098" TEXT="sie vereinigen Themen ohne innere Verwadtschaft"/>
<node CREATED="1512927766769" ID="ID_943419159" MODIFIED="1518487921098" TEXT="Zusammenspiel gebundener Funktionen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...bindet die Betrachtung auf einen technischen Level,
</p>
<p>
und f&#252;hrt dazu, da&#223; die Abstraktion undicht wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512927978133" ID="ID_1491853321" MODIFIED="1518487921098" TEXT="passen schlecht in C++">
<node CREATED="1512928064858" ID="ID_1221151193" MODIFIED="1518487921098" TEXT="entweder massiv Metaprogrammierung"/>
<node CREATED="1512928075920" ID="ID_491825441" MODIFIED="1518487921098" TEXT="oder man schafft ein runtime-Meta-System"/>
</node>
</node>
<node CREATED="1512928100557" ID="ID_767453821" MODIFIED="1518487921098" TEXT="n&#xfc;tzlich">
<node CREATED="1512928114707" ID="ID_21920250" MODIFIED="1518487921098" TEXT="um Zustand auszukoppeln">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
genau der Umstand,
</p>
<p>
da&#223; funktionale Sprachen von einer Zustands-Phobie getrieben sind,
</p>
<p>
macht Monaden n&#252;tzlich, um inh&#228;renten Zustand wegzuabstrahieren.
</p>
<p>
Das kann genutzt werden, um den Zustand einer Wechselwirkung
</p>
<p>
nach einer Seite der Glieder auszukoppeln.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512928357202" ID="ID_360277857" MODIFIED="1518487921098" TEXT="um Konfigurierbarkeit zu schaffen"/>
<node CREATED="1512928258312" ID="ID_1469652928" MODIFIED="1518487921098" TEXT="um technische Details zu entflechten"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1512928287812" ID="ID_212632305" MODIFIED="1535892918047" TEXT="Fazit">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1512928291555" ID="ID_1651357350" MODIFIED="1518487921098" TEXT="nur ein &#xbb;Monaden-Motiv&#xab; nutzen"/>
<node CREATED="1512928301386" ID="ID_589389944" MODIFIED="1518487921098" TEXT="das Builder-Pattern in den Vordergrund stellen">
<node CREATED="1512928322567" ID="ID_462235185" MODIFIED="1518487921098" TEXT="Builder ist ein wirkliches Pattern">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1535891101400" ID="ID_673846521" MODIFIED="1535891107371" TEXT="IterExplorer">
<node CREATED="1535891108199" ID="ID_1302968576" MODIFIED="1535891111234" TEXT="erster Anlauf">
<node CREATED="1535891111919" ID="ID_1088778723" MODIFIED="1535891123604" TEXT="funktioniert">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1535891114310" ID="ID_799781858" MODIFIED="1535891120950" TEXT="ist h&#xe4;&#xdf;lich">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1535891125877" ID="ID_131112709" MODIFIED="1535891129432" TEXT="nur einmal verwendet">
<node CREATED="1535891130164" ID="ID_1396398506" MODIFIED="1535891135892" TEXT="f&#xfc;r das Job-Planning">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node CREATED="1512925334501" FOLDED="true" ID="ID_409327286" MODIFIED="1535892997921" TEXT="IterExplorer-Design">
<linktarget COLOR="#625975" DESTINATION="ID_409327286" ENDARROW="Default" ENDINCLINATION="-843;1771;" ID="Arrow_ID_86323098" SOURCE="ID_185594200" STARTARROW="None" STARTINCLINATION="-493;-1123;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1512925397741" ID="ID_1352590559" MODIFIED="1518487921098" TEXT="Design">
<node CREATED="1512925342773" ID="ID_1304424851" MODIFIED="1518487921098" TEXT="unbefriedigend"/>
<node CREATED="1512925350379" ID="ID_21486020" MODIFIED="1518487921098" TEXT="zu offen und flexibel"/>
<node CREATED="1512925358954" ID="ID_27814827" MODIFIED="1518487921098" TEXT="keine leitende Koh&#xe4;renz"/>
<node CREATED="1512925366562" ID="ID_581707193" MODIFIED="1518487921098" TEXT="daher wie ein Gestr&#xfc;pp"/>
</node>
<node CREATED="1512925431577" ID="ID_1834933729" MODIFIED="1518487921098" TEXT="Iterator-Chain">
<node CREATED="1512925436224" ID="ID_573800195" MODIFIED="1518487921098" TEXT="nice to have">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
geh&#246;rt zu dem Themenkomplex &quot;itertools&quot;
</p>
<p>
Python hat das auch, Java neuerdings auch
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512925438992" ID="ID_1273839582" MODIFIED="1518487921098" TEXT="bisher nicht verwendet"/>
</node>
<node CREATED="1512925491857" ID="ID_652705156" MODIFIED="1518487921098" TEXT="Depth-fist / breadth fist">
<node CREATED="1512925501216" ID="ID_1197407538" MODIFIED="1518487921098" TEXT="Programmier-&#xdc;bung"/>
<node CREATED="1512925508183" ID="ID_1861334930" MODIFIED="1518487921098" TEXT="ohne innere Notwendigkeit"/>
<node CREATED="1512925519653" ID="ID_1558680477" MODIFIED="1518487921098" TEXT="nicht verwendet"/>
</node>
<node CREATED="1512925529484" ID="ID_1844773201" MODIFIED="1518487921098" TEXT="SelfIntegration">
<node CREATED="1512925547393" ID="ID_1866032394" MODIFIED="1518487921098" TEXT="Design-Sackgasse">
<icon BUILTIN="stop-sign"/>
<node CREATED="1512925769363" ID="ID_582578425" MODIFIED="1518487921098" TEXT="geht gegen die Natur der Dinge"/>
<node CREATED="1512925732065" ID="ID_1377165331" MODIFIED="1518487921098" TEXT="verwirrendes Extension-API">
<node CREATED="1512925805416" MODIFIED="1518487921098" TEXT="build(...).wrapping(...)"/>
<node CREATED="1512925817645" MODIFIED="1518487921098" TEXT="build(...).usingSequence(...)"/>
</node>
</node>
<node CREATED="1512925552137" ID="ID_43735106" MODIFIED="1518487921098" TEXT="wollte den Stack vermeiden">
<icon BUILTIN="smiley-oh"/>
<node CREATED="1512925568958" ID="ID_1805640819" MODIFIED="1518487921098" TEXT="was gar nicht geht"/>
<node CREATED="1512925574782" ID="ID_22338010" MODIFIED="1518487921098" TEXT="Idee Inline-stack">
<icon BUILTIN="idea"/>
<node CREATED="1512925593195" ID="ID_1333973816" MODIFIED="1518487921098" TEXT="das w&#xe4;re aber eine reine Komponente"/>
<node CREATED="1512925599402" ID="ID_551236508" MODIFIED="1518487921098" TEXT="Bauprinzip wie in UI-Coord">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen, es ist klar, wie man sowas machen kann.
</p>
<p>
Seinerzeit war mir das auch klar, aber ich wollte es nicht gleich ausprogrammieren.
</p>
<p>
Inzwischen kam dann das Thema UI-Coordinaten, und dort <i>habe</i>&#160;ich es ausprogrammiert,
</p>
<p>
und zwar direkt in die Low-Level-Schicht integriert, was nicht schlecht ist,
</p>
<p>
da eine Abstraktion hier sehr technisch werden w&#252;rde
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1512925864774" ID="ID_1543264108" MODIFIED="1535891440192" TEXT="verwendet f&#xfc;r JobPlanning">
<arrowlink COLOR="#5379b5" DESTINATION="ID_181262071" ENDARROW="Default" ENDINCLINATION="-150;-386;" ID="Arrow_ID_1786254694" STARTARROW="Default" STARTINCLINATION="-1298;0;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512925959074" ID="ID_30857289" MODIFIED="1518487921098" TEXT="TODO: abl&#xf6;sen durch IterTreeExplorer">
<arrowlink COLOR="#83dfc7" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-1109;3887;" ID="Arrow_ID_1645152965" STARTARROW="None" STARTINCLINATION="2051;-176;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
<node CREATED="1535891140563" ID="ID_1503014369" MODIFIED="1535891144430" TEXT="TreeExplorer">
<node CREATED="1535891145922" ID="ID_1982906906" MODIFIED="1535891149925" TEXT="zweiter Anlauf">
<node CREATED="1535891150825" ID="ID_451523751" MODIFIED="1535891155914" TEXT="funktioniert">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1535891156816" ID="ID_679300718" MODIFIED="1535891164631" TEXT="ist komplex">
<icon BUILTIN="smiley-neutral"/>
<node CREATED="1535939100410" ID="ID_1893557511" MODIFIED="1535939107373" TEXT="aber von einer Art, die mir gef&#xe4;llt"/>
<node CREATED="1535939111640" ID="ID_1649632412" MODIFIED="1535939115932" TEXT="war bisher gut wartbar">
<node CREATED="1537050257419" HGAP="27" ID="ID_1397772054" MODIFIED="1537050286364" TEXT="naja...." VSHIFT="5">
<arrowlink DESTINATION="ID_913930564" ENDARROW="Default" ENDINCLINATION="-274;-41;" ID="Arrow_ID_1572610374" STARTARROW="None" STARTINCLINATION="-127;28;"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1514328717684" FOLDED="true" ID="ID_137835978" MODIFIED="1538868265914" TEXT="neuer Anlauf IterExplorer II">
<arrowlink COLOR="#8ad3a5" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-230;134;" ID="Arrow_ID_253437970" STARTARROW="None" STARTINCLINATION="-387;0;"/>
<linktarget COLOR="#27998e" DESTINATION="ID_137835978" ENDARROW="Default" ENDINCLINATION="-521;-801;" ID="Arrow_ID_1873000120" SOURCE="ID_1860662881" STARTARROW="None" STARTINCLINATION="-1866;98;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1514328733272" ID="ID_1367581404" MODIFIED="1514328740811" TEXT="monadisierter Pipeline-Builder">
<node CREATED="1535891193740" ID="ID_114091640" MODIFIED="1535893082084" TEXT="Itertool-Funktionalit&#xe4;t">
<linktarget COLOR="#afa9c1" DESTINATION="ID_114091640" ENDARROW="Default" ENDINCLINATION="-503;-426;" ID="Arrow_ID_956211493" SOURCE="ID_794436728" STARTARROW="None" STARTINCLINATION="238;0;"/>
<node CREATED="1535891222952" ID="ID_1544390501" MODIFIED="1535891230659" TEXT="&#xdc;berschneidung / Redundanz">
<node CREATED="1535891232214" ID="ID_1564035277" MODIFIED="1535891244617" TEXT="komplett andere Implementierung"/>
<node CREATED="1535891245533" ID="ID_1869540879" MODIFIED="1535891251247" TEXT="konzeptionell aber gleich"/>
</node>
<node CREATED="1535891265106" ID="ID_483764241" MODIFIED="1535891275533" TEXT="hier aber: Integration mit &quot;explore&quot;-Funktion"/>
</node>
</node>
<node CREATED="1514328741687" ID="ID_1056450433" MODIFIED="1514328755457" TEXT="expandChildren() auf dem Iterator-API ausl&#xf6;sbar"/>
<node CREATED="1514328757725" ID="ID_1835412332" MODIFIED="1514328766544" TEXT="auch &#xfc;ber Transformer und Abstraktionsbarrieren hinweg"/>
<node CREATED="1535892081117" ID="ID_931408275" MODIFIED="1535892109957" TEXT="wraped State-Core">
<node CREATED="1535892112560" ID="ID_1137060893" MODIFIED="1535892121547" TEXT="bewu&#xdf;t halboffen"/>
<node CREATED="1535892122487" ID="ID_1852433674" MODIFIED="1535892137985" TEXT="Kollaboration mit downstream intendiert"/>
<node CREATED="1535892146588" ID="ID_1173791220" MODIFIED="1535892158246" TEXT="Layerering als Konstruktions-Hilfsmittel"/>
</node>
<node COLOR="#338800" CREATED="1535892165753" ID="ID_463934766" MODIFIED="1535892395441" TEXT="konkret: expandable ChildIter bauen">
<arrowlink COLOR="#236375" DESTINATION="ID_596422747" ENDARROW="Default" ENDINCLINATION="-1080;23;" ID="Arrow_ID_1748772698" STARTARROW="None" STARTINCLINATION="-1002;-57;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535893109211" ID="ID_1112499323" MODIFIED="1535893117935" TEXT="Probleme mit dem IterSource-Interface">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1536410175049" ID="ID_1439541143" MODIFIED="1536516072058" TEXT="Erg&#xe4;nzungen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535894221015" FOLDED="true" ID="ID_977007729" MODIFIED="1535898215661" TEXT="Bug im Filter-Layer">
<icon BUILTIN="button_ok"/>
<node CREATED="1535894239308" ID="ID_1809452702" MODIFIED="1535894251655" TEXT="Reihenfolge des Parent-Aufrufes in expandChildren()"/>
<node CREATED="1535894252195" ID="ID_373085595" MODIFIED="1535894291490" TEXT="kommt mir komisch vor; pullFilter() sollte doch danach kommen"/>
<node CREATED="1535894301413" ID="ID_1630859517" MODIFIED="1535894376961" TEXT="sieht nach copy-n-paste aus">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...von der entsprechenden Methode im Transformer
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1535894292222" ID="ID_1328694952" MODIFIED="1535894370745" TEXT="vermutlich im Test &#xfc;bersehen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...hatte die Notwendigkeit hierf&#252;r seinerzeit w&#228;hrend der Tests entdeckt,
</p>
<p>
und im Unit-Test nur f&#252;r die Kombination Transformer + Explorer abgedeckt....
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1535894385009" ID="ID_1130325761" MODIFIED="1535898198283" TEXT="Testfall schreiben">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535893707036" FOLDED="true" ID="ID_650057716" MODIFIED="1536533157472" TEXT="Aufgabe: Filter erweiterbar machen">
<linktarget COLOR="#62909b" DESTINATION="ID_650057716" ENDARROW="Default" ENDINCLINATION="99;93;" ID="Arrow_ID_1700598512" SOURCE="ID_257876647" STARTARROW="None" STARTINCLINATION="-240;-19;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535893718194" ID="ID_177803317" MODIFIED="1535893743691" TEXT="analog zum Filter in den Itertools"/>
<node CREATED="1535893752174" ID="ID_27030007" MODIFIED="1535893777011" TEXT="ggfs diesen dort abl&#xf6;sen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sofern l&#228;ngerfristig Itertools durch TreeExplorer abgel&#246;st werden k&#246;nnte
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1535903530421" ID="ID_326687543" MODIFIED="1535932193036" TEXT="Aua">
<icon BUILTIN="smily_bad"/>
<node CREATED="1535903536820" ID="ID_34512098" MODIFIED="1535903541919" TEXT="das wird komplex..."/>
<node CREATED="1535903542556" ID="ID_945730027" MODIFIED="1535903551375" TEXT="der Filter-Layer ist hochgradig generisch"/>
<node CREATED="1535904105560" ID="ID_1683260823" MODIFIED="1535904127224" TEXT="mu&#xdf; auch das Chain-Argument durch die Funktor-Traits schleusen"/>
<node CREATED="1535904128524" ID="ID_1305515398" MODIFIED="1535904140074" TEXT="Code wird grausam">
<icon BUILTIN="smiley-angry"/>
<node CREATED="1535904143098" ID="ID_62668261" MODIFIED="1535904152669" TEXT="funktioniert, aber gewaltig aufgebl&#xe4;ht"/>
<node CREATED="1535904153353" ID="ID_1229789568" MODIFIED="1535904403272" TEXT="ganz nah am Segfault vorbei">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das h&#228;ngt an einem hauchd&#252;nnen Faden,
</p>
<p>
und ist subtil bis zum geht nicht mehr....
</p>
<p>
</p>
<p>
Wenn man das Lambda einfach per [=] schreibt, und das Feld this-&gt;predicate_ verwendet,
</p>
<p>
dann wird this gecaptured (und das ist effektiv per Referenz). Wenn ich dann den
</p>
<p>
konstruierten Funktor an this-&gt;predicate_ zuweise, haben wir eine Endlos-Rekursion.
</p>
<p>
</p>
<p>
L&#246;sung: man mu&#223; im lokalen Frame eine Referenz auf this-&gt;predicate definieren und binden.
</p>
<p>
Diese wird dann per Value gecaptured, was die gew&#252;nschte Kopie bewirkt.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535904168943" ID="ID_1486081044" MODIFIED="1535904249188" TEXT="eine unn&#xf6;tige Kopie">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...mu&#223; den Chain-Funktor aus dem Template-Argument erzeugen,
</p>
<p>
und ihn dann in die per-Value-Closure des erzeugten neuen Lambda binden (=Kopie).
</p>
<p>
</p>
<p>
Erst ab C++17 kann man Lambda-Captures pre move machen
</p>
<p>
(und auch daf&#252;r ist die Syntax grausam)
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1535904461720" FOLDED="true" ID="ID_1122890797" MODIFIED="1535932207865" TEXT="will ich das wirklich.....?">
<node CREATED="1535904470670" ID="ID_1319028134" MODIFIED="1535904516890" TEXT="nat&#xfc;rlich nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es soll blo&#223; einfach funktionieren!!!!!!!!!!!
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1535906366785" ID="ID_772195469" MODIFIED="1535906388442" TEXT="Komplexit&#xe4;t entsteht aus der Flexibilit&#xe4;t der Argumente">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535904517824" ID="ID_495813123" MODIFIED="1535904857801" TEXT="stattdessen Itertools-Filter verwenden?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
keine gute Idee.
</p>
<p>
Dann verwenden wir im einen Funktor-Framework eine Filter-Komponente
</p>
<p>
aus dem anderen Framework, obwohl es direkt hier auch eine Filter-Komponente g&#228;be.
</p>
<p>
</p>
<p>
Au&#223;erdem habe ich immer noch die Hoffnung, irgendwann mal
</p>
<p>
die Itertools komplett durch den TreeExplorer abl&#246;sen zu k&#246;nnen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535906261464" ID="ID_792586244" MODIFIED="1535909947735" TEXT="Auswege">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1535906265911" FOLDED="true" ID="ID_949648101" MODIFIED="1535932222887" TEXT="speziellen Filter-Layer nur hierf&#xfc;r">
<icon BUILTIN="button_ok"/>
<node CREATED="1535906327782" ID="ID_1362040513" MODIFIED="1535906334769" TEXT="letztlich nur Code-Kosmetik"/>
<node CREATED="1535909106704" ID="ID_1965298489" MODIFIED="1535909115714" TEXT="w&#xfc;rde aber sehr speziellen Fall markieren"/>
<node CREATED="1535909145091" ID="ID_1036104765" MODIFIED="1535909185418">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Name: <b>mutableFilter</b>()
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535906283948" FOLDED="true" ID="ID_1882070577" MODIFIED="1535932223855" TEXT="Chain-Filter-Bau in HIlfsfunktion">
<icon BUILTIN="button_ok"/>
<node CREATED="1535906394646" ID="ID_1941257576" MODIFIED="1535906399057" TEXT="w&#xfc;nschenswert"/>
<node CREATED="1535906399621" ID="ID_1167561151" MODIFIED="1535906407632" TEXT="nicht klar, ob &#xfc;berhaupt m&#xf6;glich"/>
<node CREATED="1535909021163" ID="ID_1877231025" MODIFIED="1535909030226" TEXT="geschachtelte generische Lambdas verwenden">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1535909041497" ID="ID_1207755293" MODIFIED="1535909052069" TEXT="AUA&#xb3;">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1535909192572" ID="ID_1654371024" MODIFIED="1535909197055" TEXT="aber es geht...."/>
<node COLOR="#338800" CREATED="1535909967725" ID="ID_163021784" MODIFIED="1535912743392" TEXT="im Debugger verifizieren!">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...sieht gut aus.
</p>
<p>
</p>
<p>
Folgendes habe ich gesehen
</p>
<ul>
<li>
zu Beginn zeigt das eingebettete Funktor-Objekt auf eine Position auf dem Stack
</li>
<li>
beim Aufrufen der andFilter()-Funktion werden diverse Funktoren kopiert,<br />wobei nacheinander die (zu erwartenden) Argumente als Quelle auftauchen<br />
</li>
<li>
danach hat sich der Funktor ge&#228;ndert: er zeigt nun auf eine Position auf dem Heap<br />
</li>
<li>
der bisherige Funktor wurde mit der Closure des zusammengesetzten Funktors kollabiert (hat gleiche Addresse)<br />
</li>
<li>
der Chain-Funktor hat eine Closure bekommen, die ebenfalls Heap-alloziert ist.<br />das deutet darauf hin, da&#223; das capturen per copy funktioniert hat<br />
</li>
<li>
Beim Aufruf steppen wir nacheinander erst in den kombinierten Funktor,<br />und von dort wie erwartet in die beiden Lambdas.
</li>
<li>
<br />
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1535919506060" FOLDED="true" ID="ID_1859852045" MODIFIED="1536516302967" TEXT="heterogene Pr&#xe4;dikat-Typen">
<arrowlink COLOR="#616f95" DESTINATION="ID_1587572708" ENDARROW="Default" ENDINCLINATION="49;-142;" ID="Arrow_ID_346491515" STARTARROW="None" STARTINCLINATION="-143;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535919540560" ID="ID_1538734134" MODIFIED="1535932049581" TEXT="geht nicht?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1535919549942" ID="ID_790617987" MODIFIED="1535919754360" TEXT="das zu Beginn verwendete Filter-Pr&#xe4;dikat legt den Typ fest">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;r das dort hineingereichte Funktor-Objekt wird der Argument-Accessor ausgew&#228;hlt (Metaprogrammierung).
</p>
<p>
Er ist dann im Typ des Wrappers == _Traits::Functor codiert.
</p>
<p>
</p>
<p>
Wir k&#246;nnen zwar den im Wrapper enthaltenen Funktor neu zuweisen (in gewissen Grenzen),
</p>
<p>
aber er wird stets den zu Beginn gew&#228;hlten Argument-Accessor nehmen.
</p>
<p>
Typischerweise wird dieser ja sogar beim Aufruf des getemplateteten Funtions-Operators geInlined
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1535919835337" ID="ID_1492056572" MODIFIED="1536409243145" TEXT="Ausweg: doppelt wrappen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536367874016" ID="ID_109911994" MODIFIED="1536516037376" TEXT="Filter deaktivierbar machen">
<linktarget COLOR="#67ac9b" DESTINATION="ID_109911994" ENDARROW="Default" ENDINCLINATION="1326;0;" ID="Arrow_ID_1556921295" SOURCE="ID_649387933" STARTARROW="None" STARTINCLINATION="142;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535899873112" ID="ID_81164806" MODIFIED="1535932139639" TEXT="Unit-Test (replizieren)">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535913527837" ID="ID_756446305" MODIFIED="1535913542932" TEXT="anlegen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535913531701" ID="ID_1872325076" MODIFIED="1535932138102" TEXT="andere F&#xe4;lle auch covern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536410408473" ID="ID_1812410133" MODIFIED="1536515975946" TEXT="Filter deaktivieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536367899301" FOLDED="true" ID="ID_1128977501" MODIFIED="1536516280898" TEXT="Neuzuweisung kompatibler Filter">
<icon BUILTIN="button_ok"/>
<node CREATED="1536367916619" ID="ID_411753478" MODIFIED="1536367919774" TEXT="geht das?"/>
<node CREATED="1536367921474" ID="ID_849620368" MODIFIED="1536367938773" TEXT="nur Signatur-Typ auf MutableFilter ">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1536368287265" ID="ID_29049674" MODIFIED="1536368351977">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Problem: std::function <b>in</b>&#160;FilterPredicate
</p>
</body>
</html></richcontent>
<node CREATED="1536368354288" ID="ID_1161186805" MODIFIED="1536368384597" TEXT="mu&#xdf; die richtige &quot;Kategorie&quot; haben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
entweder Val -&gt; bool oder Iter -&gt; bool
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536499475717" ID="ID_1987289240" MODIFIED="1536499534632" TEXT="Nach Refactoring TreeExplorer nun m&#xf6;glich">
<arrowlink COLOR="#5cb3a1" DESTINATION="ID_1315131204" ENDARROW="Default" ENDINCLINATION="691;0;" ID="Arrow_ID_86390894" STARTARROW="None" STARTINCLINATION="167;37;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536713790340" FOLDED="true" ID="ID_1436344296" MODIFIED="1536717497148" TEXT="Explorer: rootCurrent()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536713813792" ID="ID_255912594" MODIFIED="1536713903337" TEXT="Hilfsmittel f&#xfc;r den IterChainSearch">
<linktarget COLOR="#5c8eb4" DESTINATION="ID_255912594" ENDARROW="Default" ENDINCLINATION="1465;0;" ID="Arrow_ID_1700114612" SOURCE="ID_1097583555" STARTARROW="None" STARTINCLINATION="798;71;"/>
</node>
<node CREATED="1536713912051" ID="ID_1531296292" MODIFIED="1536714003659" TEXT="Verhalten">
<icon BUILTIN="info"/>
<node CREATED="1536713937303" ID="ID_1307568676" MODIFIED="1536713956169" TEXT="macht die aktuelle (Kind)-Sequenz zur Root-Sequenz"/>
<node CREATED="1536713956780" ID="ID_940104678" MODIFIED="1536713969199" TEXT="verwirft den gesamten Inhalt des bestehendn Stack"/>
<node CREATED="1536713969931" ID="ID_1439776917" MODIFIED="1536714013625" TEXT="verwirft damit auch die urspr&#xfc;ngliche Root-Sequenz"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536958962984" FOLDED="true" ID="ID_686602920" MODIFIED="1537052569433" TEXT="custom Layer erm&#xf6;glichen">
<linktarget COLOR="#61afb3" DESTINATION="ID_686602920" ENDARROW="Default" ENDINCLINATION="-230;613;" ID="Arrow_ID_1710661685" SOURCE="ID_519507996" STARTARROW="None" STARTINCLINATION="1241;-1305;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536958972703" ID="ID_661166644" MODIFIED="1537050781115" TEXT="generische Builder-Funktion">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ist einfach und offensichtlich;
</p>
<p>
ohnehin laufen schon ziemlich alle konkreten Layer-Builder nach einem Schema-F
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536958979046" ID="ID_700334374" MODIFIED="1537050782627" TEXT="Typ per Template-Parameter &#xfc;bergeben">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536958994212" ID="ID_1735239890" MODIFIED="1537050791509" TEXT="flexible zus&#xe4;tzliche Argumente">
<icon BUILTIN="stop-sign"/>
</node>
<node COLOR="#338800" CREATED="1536973178765" ID="ID_1098421095" MODIFIED="1537052565699" TEXT="Unit-Test">
<icon BUILTIN="button_ok"/>
<node CREATED="1536959023376" ID="ID_928142688" MODIFIED="1536973192247" TEXT="Test implizit durch IterChainSearch">
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#338800" CREATED="1536973293197" ID="ID_858941900" MODIFIED="1537052564048" TEXT="eigens abdecken">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1536409170928" ID="ID_1850744645" MODIFIED="1536515953937" TEXT="Design-Probleme">
<icon BUILTIN="go"/>
<node COLOR="#338800" CREATED="1535919506060" FOLDED="true" ID="ID_1587572708" MODIFIED="1536533103811" TEXT="heterogene Pr&#xe4;dikat-Typen">
<linktarget COLOR="#616f95" DESTINATION="ID_1587572708" ENDARROW="Default" ENDINCLINATION="49;-142;" ID="Arrow_ID_346491515" SOURCE="ID_1859852045" STARTARROW="None" STARTINCLINATION="-143;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535919549942" ID="ID_270773242" MODIFIED="1536409271272" TEXT="das zu Beginn verwendete Filter-Pr&#xe4;dikat legt den Typ fest">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;r das dort hineingereichte Funktor-Objekt wird der Argument-Accessor ausgew&#228;hlt (Metaprogrammierung).
</p>
<p>
Er ist dann im Typ des Wrappers == _Traits::Functor codiert.
</p>
<p>
</p>
<p>
Wir k&#246;nnen zwar den im Wrapper enthaltenen Funktor neu zuweisen (in gewissen Grenzen),
</p>
<p>
aber er wird stets den zu Beginn gew&#228;hlten Argument-Accessor nehmen.
</p>
<p>
Typischerweise wird dieser ja sogar beim Aufruf des getemplateteten Funtions-Operators geInlined
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1535919835337" FOLDED="true" ID="ID_619686338" MODIFIED="1536514373005" TEXT="1.L&#xf6;sung: doppelt wrappen?">
<icon BUILTIN="button_ok"/>
<node CREATED="1535923167297" ID="ID_1635196754" MODIFIED="1535923219590" TEXT="Basis-Filter sieht unspezifische Form des Pr&#xe4;dikates"/>
<node CREATED="1535923237336" ID="ID_508718189" MODIFIED="1535923251434" TEXT="im Funktor steckt eingewickelt eine spezifische Form"/>
<node CREATED="1535932069618" ID="ID_856161473" MODIFIED="1535932128786" TEXT="kein wirklicher overhead">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der Aufruf vom &#228;u&#223;eren in den inneren Wrapper ist 1:1 und sollte vom Compiler wegoptimiert werden
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1535924949587" ID="ID_835090820" MODIFIED="1535932018158" TEXT="L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535924955458" ID="ID_1924886650" MODIFIED="1535927205707" TEXT="Typ des gewrappten Funktors konstruieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535924963017" ID="ID_1255665831" MODIFIED="1535927208519" TEXT="diesen schon in die Instanz der Basisklasse einflie&#xdf;en lassen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535924983038" ID="ID_343931650" MODIFIED="1535927210570" TEXT="Konstruktor eigens definieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535924991781" ID="ID_1047870457" MODIFIED="1535927212273" TEXT="inline wrappen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535925016969" ID="ID_797104795" MODIFIED="1535927239938" TEXT="der Rest m&#xfc;&#xdf;te von selber funktionieren...">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536514257510" FOLDED="true" ID="ID_1708992184" MODIFIED="1536533099331" TEXT="2.L&#xf6;sung: type erasure auf dem Funktor">
<icon BUILTIN="button_ok"/>
<node CREATED="1536514274780" ID="ID_767166560" MODIFIED="1536514286353" TEXT="l&#xe4;uft auch auf doppelt wrappen hinaus">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1536514288618" ID="ID_821501153" MODIFIED="1536514362703" TEXT="...nur machen wir das im umgebauten Desgin ohnehin immer">
<arrowlink COLOR="#3163b8" DESTINATION="ID_389572303" ENDARROW="Default" ENDINCLINATION="1208;0;" ID="Arrow_ID_1470957358" STARTARROW="None" STARTINCLINATION="627;32;"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536409302285" FOLDED="true" ID="ID_913930564" MODIFIED="1537050286364" TEXT="extrem komplexe Typen">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_913930564" ENDARROW="Default" ENDINCLINATION="-274;-41;" ID="Arrow_ID_1572610374" SOURCE="ID_1397772054" STARTARROW="None" STARTINCLINATION="-127;28;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536409316172" ID="ID_1468538186" MODIFIED="1536409340127" TEXT="Call-Traces sind nahezu unlesbar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ich verbrenne Stunden beim Debuggen von neuem Code
</p>
</body>
</html></richcontent>
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1536409470623" ID="ID_862991864" MODIFIED="1536409494631" TEXT="Ansatzpunkte">
<node CREATED="1536409438003" ID="ID_254117479" MODIFIED="1536409449286" TEXT="erhebliche Redundanzen in den Typen"/>
<node CREATED="1536409503106" ID="ID_377815860" MODIFIED="1536409513965" TEXT="konkrete Lambdas in der Typsignatur"/>
</node>
<node CREATED="1536409720285" FOLDED="true" ID="ID_610904065" MODIFIED="1536516268555" TEXT="Untersuchung">
<icon BUILTIN="info"/>
<node CREATED="1536409726421" ID="ID_1705785900" MODIFIED="1536409738318" TEXT="welche Typen werden wirklich ben&#xf6;tigt">
<icon BUILTIN="help"/>
<node CREATED="1536409761248" ID="ID_753549743" MODIFIED="1536409843345" TEXT="Quelle == Basis-Typ"/>
<node CREATED="1536409788637" ID="ID_87247261" MODIFIED="1536409835506" TEXT="bei Transofmation: neuer value_type"/>
</node>
<node CREATED="1536420551954" ID="ID_1265946119" MODIFIED="1536420561095" TEXT="Rolle der Traits">
<node CREATED="1536420562706" ID="ID_1510273577" MODIFIED="1536420573085" TEXT="Baumuster erkennen">
<node CREATED="1536420576968" ID="ID_1438017036" MODIFIED="1536420618407" TEXT="monadisch: res(val)"/>
<node CREATED="1536420581231" ID="ID_790634219" MODIFIED="1536420608360" TEXT="imperativ: res(SRC&amp;)"/>
</node>
<node CREATED="1536420632457" ID="ID_1027876524" MODIFIED="1536420638164" TEXT="Signatur abnehmen"/>
<node CREATED="1536420639016" ID="ID_221776251" MODIFIED="1536420654441" TEXT="Funktor(Holder)-Typ konstruieren"/>
<node CREATED="1536420659869" ID="ID_176968684" MODIFIED="1536420669838" TEXT="Resultat">
<icon BUILTIN="idea"/>
<node CREATED="1536420671212" ID="ID_1077375672" MODIFIED="1536420678038" TEXT="Funktor(Holder)-Typ"/>
<node CREATED="1536420678842" ID="ID_1524886712" MODIFIED="1536420681830" TEXT="Ergebnis-Typ"/>
</node>
</node>
<node CREATED="1536420803778" ID="ID_1315131204" MODIFIED="1536499525208" TEXT="Funktions-Signatur verbergen">
<linktarget COLOR="#5cb3a1" DESTINATION="ID_1315131204" ENDARROW="Default" ENDINCLINATION="691;0;" ID="Arrow_ID_86390894" SOURCE="ID_1987289240" STARTARROW="None" STARTINCLINATION="167;37;"/>
<node CREATED="1536420811265" ID="ID_1167994865" MODIFIED="1536420823683" TEXT="reduzieren auf res(SRC)"/>
<node CREATED="1536420824983" ID="ID_784540518" MODIFIED="1536420836185" TEXT="konkrete Funktion in Adapter setzen"/>
<node CREATED="1536420932944" ID="ID_512498364" MODIFIED="1536420940219" TEXT="ArgAccessor beim Aufruf">
<node CREATED="1536420941519" ID="ID_1927165900" MODIFIED="1536420945112" TEXT="kann wegfallen">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1536420945998" ID="ID_582317324" MODIFIED="1536420989876" TEXT="trotzdem notwendig">
<icon BUILTIN="help"/>
<node CREATED="1536420950054" ID="ID_1462776992" MODIFIED="1536420952593" TEXT="wegen Expander">
<node CREATED="1536421001935" ID="ID_1416192275" MODIFIED="1536421016769" TEXT="unterschiedliche Iter-Typen m&#xf6;glich"/>
<node CREATED="1536421023732" ID="ID_293881968" MODIFIED="1536421035374" TEXT="in beiden Baumuster-F&#xe4;llen"/>
</node>
<node CREATED="1536421204268" ID="ID_1225988621" MODIFIED="1536421235479">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konsequenz: brauche <b>Template</b>&#160;Funktions-Operator
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1536499557658" ID="ID_1939855291" MODIFIED="1536499572569" TEXT="daf&#xfc;r verschwindet konkreter Funktor-Typ vom Template">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1536441211468" HGAP="84" ID="ID_435661366" MODIFIED="1536515901080" TEXT="L&#xf6;sungs-Idee" VSHIFT="15">
<icon BUILTIN="idea"/>
<node CREATED="1536441217427" ID="ID_1508660342" MODIFIED="1536441270931" TEXT="die Signatur im Builder konstruieren. Traits nur noch auf Signatur abst&#xfc;tzen">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1536441337478" ID="ID_1343620192" MODIFIED="1536441363753" TEXT="Traits bieten nun einen Funktor-Konstruktur">
<icon BUILTIN="full-2"/>
<node CREATED="1536441426912" ID="ID_1985454424" MODIFIED="1536441520374">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
der Funktor f&#252;r den Expander wird <i>explizit als Sonderfall</i>&#160; aufgefa&#223;t
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das <i>eigentliche Problem </i>mit der bestehenden L&#246;sung ist,
</p>
<p>
da&#223; ich ausgerechnet mit diesem Sonderfall angefangen habe.
</p>
<p>
Daher ist jetzt das gesamte Design &quot;anders herum&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536441367354" ID="ID_1778093460" MODIFIED="1536441424596" TEXT="welcher eine gegebene Funktion in eine vorgegebene function&lt;SIG&gt; einpasst"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536451222025" HGAP="9" ID="ID_389572303" MODIFIED="1536515885403" TEXT="Umbau" VSHIFT="5">
<linktarget COLOR="#3163b8" DESTINATION="ID_389572303" ENDARROW="Default" ENDINCLINATION="1208;0;" ID="Arrow_ID_1470957358" SOURCE="ID_821501153" STARTARROW="None" STARTINCLINATION="627;32;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536451240308" ID="ID_241157222" MODIFIED="1536451273762" TEXT="den SRC-Parameter optional machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536451256034" FOLDED="true" ID="ID_645889218" MODIFIED="1536533082014" TEXT="FunTraits sind idempotent">
<icon BUILTIN="button_ok"/>
<icon BUILTIN="ksmiletris"/>
<node CREATED="1536451303308" ID="ID_1343290323" MODIFIED="1536451313142" TEXT="man kann sie mit dem Funktor aufrufen -&gt; Sig"/>
<node CREATED="1536451313778" ID="ID_439029617" MODIFIED="1536451336475" TEXT="man kann sie mit Sig aufrufen -&gt; Arg, Ret"/>
</node>
<node COLOR="#338800" CREATED="1536451345998" FOLDED="true" ID="ID_1853688774" MODIFIED="1536533080566" TEXT="Funktor-Konstruktor-Funktion">
<icon BUILTIN="button_ok"/>
<node CREATED="1536451365731" ID="ID_552359289" MODIFIED="1536451394878" TEXT="f&#xfc;r Aufruf aus dem Konstruktor-Kontext">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wo der volle Typ des Funktors FUN bekannt ist
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536451415725" ID="ID_1712691133" MODIFIED="1536451426247" TEXT="Bekommt SRC-Iterator als Template-Param"/>
<node CREATED="1536451430508" ID="ID_224998497" MODIFIED="1536451471881" TEXT="wirft eine std::function&lt;Ret(SRC&amp;)&gt; ab"/>
<node CREATED="1536451473013" ID="ID_1179844665" MODIFIED="1536451543886" TEXT="in die der eigentliche Funktor geeignet adaptiert ist">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und in dem besonders wichtigen Fall,
</p>
<p>
in dem der Funktor direkt den SRC-Iterator akzeptiert,
</p>
<p>
wird er ohne Weiteres durchgereicht.
</p>
<p>
In dem Fall dann <b>keine</b>&#160;doppelte Verpackung mehr!
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1536453317787" ID="ID_975974776" MODIFIED="1536514227734" TEXT="integrieren in...">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536453326978" FOLDED="true" ID="ID_1071395763" MODIFIED="1536533075831" TEXT="Transformer">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536455906647" ID="ID_603515158" MODIFIED="1536455919470" TEXT="im Debugger beobachtet">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536455920701" ID="ID_1992285034" MODIFIED="1536455938637" TEXT="&#xe4;u&#xdf;erer Funktor liegt im Heap">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1536455947209" ID="ID_1054869208" MODIFIED="1536455959131" TEXT="innerer Funktor ist aber direkt dort eingebettet"/>
</node>
<node COLOR="#338800" CREATED="1536453368676" ID="ID_1560078731" MODIFIED="1536499292336" TEXT="Filter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536453373605" ID="ID_1544724438" MODIFIED="1536499295024" TEXT="MutableFilter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536453408359" FOLDED="true" ID="ID_63715215" MODIFIED="1536515929401" TEXT="Anpassen an Expander">
<icon BUILTIN="button_ok"/>
<node CREATED="1536507478977" ID="ID_1869401041" MODIFIED="1536508603516" TEXT="zwei Alternativen">
<icon BUILTIN="info"/>
<node CREATED="1536507484384" ID="ID_1235979491" MODIFIED="1536507500681" TEXT="wie bisher">
<node CREATED="1536507602416" ID="ID_42128364" MODIFIED="1536508634353" TEXT="konkreter Funktor Typ-Parameter">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1536507659208" ID="ID_35307754" MODIFIED="1536508637902" TEXT="Adapter im konkreten Aufruf">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1536507751800" ID="ID_941404287" MODIFIED="1536507757104" TEXT="in expandChildren()"/>
<node CREATED="1536507757860" ID="ID_133943734" MODIFIED="1536507768814" TEXT="jeweils beide Varianten instantiiert"/>
</node>
<node CREATED="1536507818274" ID="ID_1978344432" MODIFIED="1536508645416" TEXT="Adapter-Lambda ruft (inneren) Basis-Funktor">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1536507882434" ID="ID_216951915" MODIFIED="1536507892221" TEXT="type erasure">
<node CREATED="1536507918965" ID="ID_1992478190" MODIFIED="1536508652494" TEXT="expanded Iter als 2.Typ-Parameter">
<icon BUILTIN="smiley-neutral"/>
<node CREATED="1536507954841" ID="ID_281799195" MODIFIED="1536507969106" TEXT="weil wir ihn speichern m&#xfc;ssen"/>
<node CREATED="1536507960432" ID="ID_164121163" MODIFIED="1536507962403" TEXT="im Stack"/>
</node>
<node CREATED="1536508021816" ID="ID_1317784150" MODIFIED="1536508682562" TEXT="m&#xfc;ssen zwei Funktoren speichern">
<icon BUILTIN="smily_bad"/>
<node CREATED="1536508097204" ID="ID_1486255600" MODIFIED="1536508101760" TEXT="unvermeidbar, egal wo"/>
<node CREATED="1536508116330" ID="ID_156138966" MODIFIED="1536508135549">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
da sich die Iteratoren <i>wirklich</i>&#160;unterscheiden k&#246;nnen d&#252;rfen
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1536508169610" ID="ID_1935713564" MODIFIED="1536508703334" TEXT="beide Funktoren direkt in expandChildren() verwendet">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1536508188208" ID="ID_220313082" MODIFIED="1536508708301" TEXT="&#xe4;u&#xdf;erer Adapter-Funktor ruft inneren Basis-Funktor">
<icon BUILTIN="smily_bad"/>
<node CREATED="1536508254591" ID="ID_1794037057" MODIFIED="1536508268217" TEXT="mehr Overhead wie alte L&#xf6;sung"/>
<node CREATED="1536508268765" ID="ID_1221492112" MODIFIED="1536508288165" TEXT="aber genauso viel wie f&#xfc;r die anderen F&#xe4;lle (neue L&#xf6;sung)"/>
<node CREATED="1536508292026" ID="ID_775504670" MODIFIED="1536508307124" TEXT="verwendet gleichen Code, Funktor-struct f&#xe4;llt weg"/>
</node>
</node>
</node>
<node CREATED="1536508310935" ID="ID_838394264" MODIFIED="1536508324120" TEXT="Entscheidung: type erasure">
<icon BUILTIN="forward"/>
<node CREATED="1536508326877" ID="ID_206041639" MODIFIED="1536508777424" TEXT="die gesamte neue L&#xf6;sung ist etwas aufwendiger zur Laufzeit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wobei der konkrete Overhead noch nicht wirklich klar ist;
</p>
<p>
h&#228;ngt davon ab, wie geschickt der Optimizer ist, und was man konkret als Funktoren angibt.
</p>
<p>
</p>
<p>
Vermutlich haben wir hier
</p>
<ul>
<li>
zwingend eine Indirektion durch einen Funktions-Pointer (weil eine Type Erasure stattfindet)
</li>
<li>
m&#246;glicherweise eine zus&#228;tzliche Heap-Allocation (es sei denn, der Optimizer ist wirklich clever)
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="down"/>
</node>
<node CREATED="1536508343419" ID="ID_1905482399" MODIFIED="1536508782549" TEXT="und hat daf&#xfc;r einfacheren Code und klarere Template-Argumente">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und <b>das</b>&#160;ist das Argument, das sticht
</p>
</body>
</html></richcontent>
<icon BUILTIN="up"/>
</node>
<node CREATED="1536508376894" ID="ID_1216206461" MODIFIED="1536508787136" TEXT="Erhalten der alten L&#xf6;sung w&#xfc;rde zwei redundante Code-Pfade erfordern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...will sagen, wenn schon eine neue L&#246;sung, dann von A bis Z
</p>
</body>
</html></richcontent>
<icon BUILTIN="up"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536514206125" HGAP="-18" ID="ID_1018008959" MODIFIED="1536514219722" TEXT="Implementierung umschreiben" VSHIFT="13">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536453419141" FOLDED="true" ID="ID_564310637" MODIFIED="1536533077535" TEXT="vereinfachen">
<icon BUILTIN="button_ok"/>
<node CREATED="1536515844176" ID="ID_1550470066" MODIFIED="1536515856523" TEXT="nested Functor f&#xe4;llt weg"/>
<node CREATED="1536515857230" ID="ID_1234982362" MODIFIED="1536515868816" TEXT="zugeh&#xf6;rige Builder fallen weg"/>
<node CREATED="1536515869405" ID="ID_1548641638" MODIFIED="1536515881255" TEXT="alle darauf aufbauenden Typen sind &#xfc;berfl&#xfc;ssig"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1535893137527" ID="ID_994961372" MODIFIED="1535893142488" TEXT="Verwendungen">
<icon BUILTIN="info"/>
<node CREATED="1535893144518" ID="ID_1137736223" MODIFIED="1535893214860" TEXT="ViewSpec solver im UI">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
Suche wird geleitet durch die ViewSpecDSL
</li>
<li>
hinter dem (opaquen) TreeExplorer steckt die konkrete UI-Topologie
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1535893231835" ID="ID_637460742" MODIFIED="1535893326431" TEXT="Such-Pr&#xe4;dikate auf EventLog">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
EventLog ist ein Test-Hilfsmittel,
</p>
<p>
um Unit-Tests &#252;ber UI-Bus-Interaktionen schreiben zu k&#246;nnen.
</p>
<p>
Es gibt hierzu Test-Varianten, die jeden Aufruf in ein internes Log notieren.
</p>
<p>
Im Test verwendet man dann eine Pattern-Such-DSL,
</p>
<p>
hinter der sich eine verkettete Suche mit Backtracking verbirgt
</p>
</body>
</html></richcontent>
<node COLOR="#338800" CREATED="1535893353955" FOLDED="true" ID="ID_1665477644" MODIFIED="1537409248653" TEXT="bestehende L&#xf6;sung umstellen">
<linktarget COLOR="#3eccac" DESTINATION="ID_1665477644" ENDARROW="Default" ENDINCLINATION="-4110;-2852;" ID="Arrow_ID_1163013232" SOURCE="ID_1626597975" STARTARROW="None" STARTINCLINATION="1631;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535893608745" ID="ID_11389264" MODIFIED="1535893673457" TEXT="Idee: Auswertungs-State">
<icon BUILTIN="idea"/>
<node CREATED="1535893623463" ID="ID_371015216" MODIFIED="1535893629458" TEXT="als State Core im Iterator"/>
<node CREATED="1535893631990" ID="ID_129119743" MODIFIED="1535893641848" TEXT="h&#xe4;lt den Quell-Iterator"/>
<node CREATED="1535893643956" ID="ID_279421694" MODIFIED="1535893667251" TEXT="delegiert / wrappt">
<icon BUILTIN="help"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535893707036" ID="ID_257876647" MODIFIED="1536533157472" TEXT="Aufgabe: Filter erweiterbar machen">
<arrowlink COLOR="#62909b" DESTINATION="ID_650057716" ENDARROW="Default" ENDINCLINATION="99;93;" ID="Arrow_ID_1700598512" STARTARROW="None" STARTINCLINATION="-240;-19;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535899922873" ID="ID_1971708144" MODIFIED="1535937992260" TEXT="bestehende Aufrufe in EventMatch konsolidieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1535934086931" ID="ID_805705448" MODIFIED="1535934155059" TEXT="internes API f&#xfc;r die Such-Konfiguration einf&#xfc;hren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...so da&#223; es nur noch wenige Zugangs-Punkte zum unterliegenden Iterator gibt
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535934121614" ID="ID_757923717" MODIFIED="1535937964888" TEXT="umstellen von IterTools -&gt; TreeExplorer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1535938792363" ID="ID_428321880" MODIFIED="1535938844914" TEXT="CursorGear direkt als Core verwenden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
TreeExplorer macht das Wrappen f&#252;r uns automatisch,
</p>
<p>
und au&#223;erdem haben wir nun ein direktes API f&#252;r die Laufrichtung
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535938028929" ID="ID_1910123172" MODIFIED="1537320149375" TEXT="Backtracking Search-Engine einbauen">
<arrowlink COLOR="#23408f" DESTINATION="ID_1801538785" ENDARROW="Default" ENDINCLINATION="20;-55;" ID="Arrow_ID_1048873840" STARTARROW="None" STARTINCLINATION="-120;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1535939763441" ID="ID_132867774" MODIFIED="1535939780642" TEXT="mu&#xdf; &quot;nur noch&quot; Cursor gegen neue State-Core austauschen"/>
<node CREATED="1535939781302" ID="ID_285459121" MODIFIED="1535939796824" TEXT="diese h&#xe4;lt den Cursor plus einen Stack mit den Filtern"/>
<node COLOR="#338800" CREATED="1537058259201" FOLDED="true" ID="ID_1249469718" MODIFIED="1537320577437" TEXT="Anpassungen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537058272183" ID="ID_1629184923" MODIFIED="1537059375100" TEXT="Alles per Filter-Chain machen">
<icon BUILTIN="button_ok"/>
<node CREATED="1537058280542" ID="ID_1820744744" MODIFIED="1537058284929" TEXT="ist zwar aufwendiger..."/>
<node CREATED="1537058285286" ID="ID_1430429521" MODIFIED="1537058383182" TEXT="aber das einzig Sinnvolle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn durch das Backtracking
</p>
<p>
w&#252;rde man nun ziemlich undurchsichtige Misch-Zust&#228;nde bekommen.
</p>
<p>
Und: jeder direkt gesetzte Filter k&#246;nnte die Invariante im Expander verletzen
</p>
<p>
(weil er einen Kind-Iterator leer machen k&#246;nnte, ohne da&#223; dieser gePOPpt wird)
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1537058418739" ID="ID_232136872" MODIFIED="1537059386568" TEXT="Umstellung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537058434897" ID="ID_1021441779" MODIFIED="1537059381029" TEXT="attachNextSerchStep">
<icon BUILTIN="button_ok"/>
<node CREATED="1537058445064" ID="ID_1377843323" MODIFIED="1537058450843" TEXT="kompletten Filter-Konfigurator"/>
<node CREATED="1537058451527" ID="ID_1849109468" MODIFIED="1537058459138" TEXT="stets auch die Richtung setzen"/>
<node CREATED="1537316776292" ID="ID_507846374" MODIFIED="1537316870949" TEXT="hier nun stets einen Schritt machen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um &quot;H&#228;ngenbleiben&quot; auf dem gleichen Element auszuschlie&#223;en.
</p>
<p>
Vorsicht: um sauber genau einen Schritt machen zu k&#246;nnen, m&#252;ssen wir explizit vor&#252;bergehend den Filter abschalten
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5174b2" DESTINATION="ID_256131209" ENDARROW="Default" ENDINCLINATION="-241;-10;" ID="Arrow_ID_73536182" STARTARROW="None" STARTINCLINATION="169;19;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537058470628" ID="ID_244817932" MODIFIED="1537059384506" TEXT="refineSerach">
<icon BUILTIN="button_ok"/>
<node CREATED="1537058473468" ID="ID_1720204552" MODIFIED="1537058480839" TEXT="ebenfalls kompletten Filter-Konfigurator"/>
<node CREATED="1537058485338" ID="ID_738059771" MODIFIED="1537058694225" TEXT="Vorsicht: das gibt nun zus&#xe4;ztliche L&#xf6;sungen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil wir uns bisher bei allen vorausgegangenen Bedingungen
</p>
<p>
auf den ersten Match &quot;festgebissen&quot; haben, und nur &#252;ber den Iterator mit der
</p>
<p>
zuletzt gesetzen Bedingung weiter iteriert haben.
</p>
<p>
</p>
<p>
</p>
<p>
K&#252;nftig gibt es nach jedem Fail ein Backtracking.
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1537058600555" ID="ID_717984419" MODIFIED="1537058656433" TEXT="sollte aber bei reinen AND-Klauseln egal sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h es findet zwar ein Backtracking statt, aber wenn alle konjunktiven Klauseln gesetzt sind,
</p>
<p>
sollte sich erneut ein FAIL ergeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1537058662202" ID="ID_654601259" MODIFIED="1537058688483" TEXT="und blo&#xdf; zus&#xe4;tzlichen overhead bei NOT-Match-Tests bewirken"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537059388025" FOLDED="true" ID="ID_1276869558" MODIFIED="1537320566920" TEXT="Tests scheitern...">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537059395184" ID="ID_77123611" MODIFIED="1537316730803" TEXT="EventLog_test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
est-event-log-test.cpp:228:&#160;&#160;verify_callLogging: (log.ensureNot(&quot;fun&quot;).after(&quot;fun&quot;).after(&quot;fun2&quot;))
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1537059455216" ID="ID_318014472" MODIFIED="1537309403475">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Verdacht: <b>Negation</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1537230016114" ID="ID_1768475576" MODIFIED="1537309001137" TEXT="nein... es war bisher kaputt">
<icon BUILTIN="broken-line"/>
<node CREATED="1537230071267" ID="ID_325369118" MODIFIED="1537230244388" TEXT="und funktioniert jetzt korrekt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
fun after fun matcht auf den immer gleichen Record
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1537230078498" ID="ID_746060961" MODIFIED="1537230098331" TEXT="wir setzen am vorherigen Match auf"/>
<node CREATED="1537230100031" ID="ID_831756745" MODIFIED="1537230107546" TEXT="das ist &#xfc;berraschend"/>
<node COLOR="#435e98" CREATED="1537230108686" ID="ID_256131209" MODIFIED="1537316863454" TEXT="sollten wir das &#xe4;ndern?">
<arrowlink COLOR="#73a3ae" DESTINATION="ID_1088562812" ENDARROW="Default" ENDINCLINATION="255;0;" ID="Arrow_ID_1747758330" STARTARROW="None" STARTINCLINATION="191;47;"/>
<linktarget COLOR="#5174b2" DESTINATION="ID_256131209" ENDARROW="Default" ENDINCLINATION="-241;-10;" ID="Arrow_ID_73536182" SOURCE="ID_507846374" STARTARROW="None" STARTINCLINATION="169;19;"/>
<icon BUILTIN="help"/>
<node CREATED="1537230118588" ID="ID_173358506" MODIFIED="1537308994452" TEXT="principle of least surprise">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1537230125716" ID="ID_2590903" MODIFIED="1537308991177" TEXT="aber...">
<icon BUILTIN="button_cancel"/>
<node CREATED="1537230132898" ID="ID_595305834" MODIFIED="1537230142973" TEXT="manche Tests haben das ausgen&#xfc;tzt">
<node CREATED="1537230371514" ID="ID_1967930414" MODIFIED="1537230375734" TEXT="real world?"/>
</node>
<node CREATED="1537230143633" ID="ID_1378112667" MODIFIED="1537230158723" TEXT="brauche dann eigene Einstiegs-Methode">
<node CREATED="1537308984470" ID="ID_1575859366" MODIFIED="1537308986984" TEXT="besser so"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537309349547" ID="ID_1102778316" MODIFIED="1537315501823" TEXT="bestehende Tests korrigieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537309372867" FOLDED="true" ID="ID_1847253086" MODIFIED="1537312895344" TEXT="verify_simpleUsage">
<icon BUILTIN="button_ok"/>
<node CREATED="1537312791212" ID="ID_510039930" MODIFIED="1537312803182" TEXT="weiterer Fehler"/>
<node CREATED="1537312804010" ID="ID_1081351208" MODIFIED="1537312892636" TEXT="vorherigien Filter vor dem Step abschalten">
<arrowlink COLOR="#cb8fa1" DESTINATION="ID_665208250" ENDARROW="Default" ENDINCLINATION="55;0;" ID="Arrow_ID_1772260988" STARTARROW="None" STARTINCLINATION="-39;46;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537309378682" ID="ID_129678233" MODIFIED="1537315494792" TEXT="verify_callLogging">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537316714860" ID="ID_84746570" MODIFIED="1537320053126" TEXT="Tests zur Klarstellung erg&#xe4;nzen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537059402359" ID="ID_1670401833" MODIFIED="1537320056202" TEXT="BusTerm_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537320056985" ID="ID_1069836812" MODIFIED="1537320066440" TEXT="AbstractTangible_test">
<icon BUILTIN="button_ok"/>
<node CREATED="1537320067432" ID="ID_1996707326" MODIFIED="1537320080797" TEXT="der hat diesen ganzen Umbau ausgel&#xf6;st">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1537230718644" ID="ID_1760678465" MODIFIED="1537320265399" TEXT="Fix">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537230726491" ID="ID_1088562812" MODIFIED="1537315479387" TEXT="before / after gehen stets einen Schritt">
<linktarget COLOR="#73a3ae" DESTINATION="ID_1088562812" ENDARROW="Default" ENDINCLINATION="255;0;" ID="Arrow_ID_1747758330" SOURCE="ID_256131209" STARTARROW="None" STARTINCLINATION="191;47;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1537312702960" HGAP="37" ID="ID_665208250" MODIFIED="1537315479387" VSHIFT="15">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und zwar mit <i>abgeschaltetem </i>Filter
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
f&#252;r diesen einen Schritt
</p>
<p>
mu&#223; die Filter-Funktion vor&#252;bergehend deaktiviert werden,
</p>
<p>
damit wir exakt das n&#228;chste / vorhergehende Element bekommen
</p>
</body>
</html></richcontent>
<linktarget COLOR="#cb8fa1" DESTINATION="ID_665208250" ENDARROW="Default" ENDINCLINATION="55;0;" ID="Arrow_ID_1772260988" SOURCE="ID_1081351208" STARTARROW="None" STARTINCLINATION="-39;46;"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537230751079" FOLDED="true" ID="ID_1776084088" MODIFIED="1537315479388" TEXT="neue reine Filter-Funktionen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537230790179" ID="ID_1688121233" MODIFIED="1537308959793" TEXT="wechseln nur den Filter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537230809608" ID="ID_132845471" MODIFIED="1537308961598" TEXT="attached as Step">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1537230937167" ID="ID_83896289" MODIFIED="1537230950961" TEXT="Namen">
<node CREATED="1537230952405" ID="ID_36863841" MODIFIED="1537230954560" TEXT="locate"/>
<node CREATED="1537230955156" ID="ID_1450598514" MODIFIED="1537230957952" TEXT="locateMatch"/>
<node CREATED="1537230958684" ID="ID_288175427" MODIFIED="1537230961695" TEXT="locateEvent"/>
<node CREATED="1537230962475" ID="ID_1446509249" MODIFIED="1537230964919" TEXT="locateCall"/>
</node>
<node COLOR="#338800" CREATED="1537230778540" ID="ID_985799795" MODIFIED="1537308964650" TEXT="diese auch f&#xfc;r den Einstieg verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536368106394" FOLDED="true" ID="ID_1324169393" MODIFIED="1537409235841" TEXT="in eigene Translation-Unit verschieben">
<icon BUILTIN="button_ok"/>
<node CREATED="1537059357301" ID="ID_1501687281" MODIFIED="1537059360761" TEXT="Beobachtungen">
<node CREATED="1536368121224" ID="ID_684768731" MODIFIED="1536368139195">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
die Search-Engine bl&#228;ht die Debug-Infos <b>gewaltig</b>&#160;auf
</p>
</body>
</html></richcontent>
<node CREATED="1536368144661" ID="ID_184622907" MODIFIED="1537058233640" TEXT="BusTerm_test = 13.1 MB">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1536368166242" ID="ID_280400966" MODIFIED="1537058245743" TEXT="EventLog_test = 6.2 MB">
<icon BUILTIN="smiley-angry"/>
</node>
</node>
<node CREATED="1537058044500" ID="ID_637125647" MODIFIED="1537058178984" TEXT="Aber: Such-Iterator im Event-Log ist nicht der Hauptschuldige">
<icon BUILTIN="idea"/>
<node CREATED="1537058071056" ID="ID_1523796232" MODIFIED="1537058162420" TEXT="Versuchsweise auskommentiert"/>
<node CREATED="1536368144661" ID="ID_1550616773" MODIFIED="1537058237543" TEXT="BusTerm_test = 11 MB">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1536368166242" ID="ID_1244843669" MODIFIED="1537058249425" TEXT="EventLog_test = 4 MB">
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
<node CREATED="1537059265873" ID="ID_798187553" MODIFIED="1537059347543" TEXT="leider merkt man aber die Umstellung auf IterChainSearch">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1536368144661" ID="ID_1266326166" MODIFIED="1537320654812" TEXT="BusTerm_test = 14.6 MB">
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1536368166242" ID="ID_1222359374" MODIFIED="1537320670162" TEXT="EventLog_test = 7.8 MB">
<icon BUILTIN="smiley-angry"/>
</node>
</node>
<node CREATED="1537408492185" ID="ID_1391232995" MODIFIED="1537408509710" TEXT="nach Umstellung: hat nicht sonderlich viel gebracht">
<icon BUILTIN="smily_bad"/>
<node CREATED="1536368144661" ID="ID_1457614262" MODIFIED="1537408979742" TEXT="BusTerm_test = 11.7 MB">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1537408924511" ID="ID_764968453" MODIFIED="1537408971969" TEXT="AbstractTangible_test = 8.7">
<icon BUILTIN="smiley-neutral"/>
</node>
<node CREATED="1536368166242" ID="ID_40278059" MODIFIED="1537408966779" TEXT="EventLog_test = 4.5 MB">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1537409213000" ID="ID_980087931" MODIFIED="1537409228912" TEXT="aber: event-log.os = 5 MB">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1537059850803" ID="ID_253192903" MODIFIED="1537059853438" TEXT="Plan">
<node CREATED="1537059854290" ID="ID_1281790716" MODIFIED="1537059867700" TEXT="der Typ der Search-Engine mu&#xdf; nicht verborgen werden"/>
<node CREATED="1537059868337" ID="ID_138143272" MODIFIED="1537059878979" TEXT="es kann daher ein direktes Objektfeld bleiben"/>
<node CREATED="1537059879759" ID="ID_893108945" MODIFIED="1537059904472" TEXT="alle Suchpr&#xe4;dikate sind Lambdas -&gt; Template Argumente"/>
<node CREATED="1537059905107" ID="ID_133126017" MODIFIED="1537059924085" TEXT="d.h. auch die Such-Funktionen m&#xfc;ssen nach hinten in das CPP gedr&#xfc;ckt werden"/>
<node COLOR="#338800" CREATED="1537059925313" ID="ID_1283278546" MODIFIED="1537400192425" TEXT="Problem Var-Arg">
<icon BUILTIN="button_ok"/>
<node CREATED="1537059941287" ID="ID_1072965326" MODIFIED="1537059944938" TEXT="Argument-Match"/>
<node CREATED="1537059945310" ID="ID_1104771437" MODIFIED="1537059950057" TEXT="RegExp-Sequenz"/>
<node CREATED="1537059950597" ID="ID_1688685593" MODIFIED="1537059976646" TEXT="beide erzeugen aber einen STL-container als Intermediary">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1537059978146" ID="ID_1403964414" MODIFIED="1537059984405" TEXT="d.h. man kann dazwischen schneiden"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537059994048" ID="ID_1556879726" MODIFIED="1537408486805" TEXT="Umbau">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537060007341" ID="ID_137118669" MODIFIED="1537402606149" TEXT="eigene Translation-Unit EventLog.cpp anlegen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537060024891" ID="ID_416527676" MODIFIED="1537407285711" TEXT="Ctor nach hinten schieben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537060040409" ID="ID_440163527" MODIFIED="1537407287283" TEXT="Auswerte-Logik nach hinten schieben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537060054767" ID="ID_1081334498" MODIFIED="1537407288629" TEXT="Problem: private Matcher-Builder">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537060094809" ID="ID_442340693" MODIFIED="1537407293640" TEXT="in freie Template-Funktionen verwandeln">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537060267290" ID="ID_1006625301" MODIFIED="1537407322172" TEXT="die direkten Filter-Konfigurier-Funktionen ebenso">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
geht gar nicht anders, denn diese sind templates
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537060121158" ID="ID_1857002867" MODIFIED="1537407306625" TEXT="Such-Funktionen nach hinten reichen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1535893799799" ID="ID_706866636" MODIFIED="1535938019075" TEXT="Auswertungs-Stack">
<icon BUILTIN="idea"/>
<node CREATED="1535893826972" ID="ID_352546105" MODIFIED="1535894073967" TEXT="aktueller Frame">
<node CREATED="1535894074891" ID="ID_1972842519" MODIFIED="1535923151832" TEXT="== aktuell wirksamer Suchfilter"/>
<node CREATED="1535894076546" ID="ID_880245387" MODIFIED="1535894084445" TEXT="schie&#xdf;t Suchposition ein"/>
</node>
<node CREATED="1535893989214" ID="ID_875812160" MODIFIED="1535894010499">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Invariante</u>: <b>pullMatch</b>()
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node CREATED="1535894029921" ID="ID_152779506" MODIFIED="1535894037411" TEXT="den Stack schrittweise hochsteigen"/>
</node>
</node>
<node COLOR="#338800" CREATED="1535894097279" FOLDED="true" ID="ID_1801538785" MODIFIED="1537050317551" TEXT="als eigene Lib-Klasse bauen">
<linktarget COLOR="#23408f" DESTINATION="ID_1801538785" ENDARROW="Default" ENDINCLINATION="20;-55;" ID="Arrow_ID_1048873840" SOURCE="ID_1910123172" STARTARROW="None" STARTINCLINATION="-120;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1535894115317" ID="ID_1507592237" MODIFIED="1536018340937" TEXT="Design-Frage: wie konkret?">
<icon BUILTIN="help"/>
<node CREATED="1536018209730" ID="ID_1130583934" MODIFIED="1536018221348" TEXT="nur das generische Auswertungs-Schema"/>
<node CREATED="1536018222528" ID="ID_1509547591" MODIFIED="1536018255176" TEXT="die einzelnen Auswertungs-Schritte als Funktor (Monaden-Stil)"/>
<node CREATED="1536018255860" ID="ID_1267468732" MODIFIED="1536018275981" TEXT="der unterliegende Iterator als Template-Parameter"/>
<node CREATED="1536018293535" ID="ID_361886715" MODIFIED="1536018315757" TEXT="Abk&#xfc;rzung f&#xfc;r direkten Wert-equality-Match"/>
<node CREATED="1536018276593" ID="ID_1222260775" MODIFIED="1536018287299" TEXT="prekonfigurierte Builder-Funktionen f&#xfc;r Standardf&#xe4;lle"/>
</node>
<node COLOR="#338800" CREATED="1536018364845" ID="ID_1351452920" MODIFIED="1537050037422" TEXT="Implementierung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018375244" ID="ID_1906913554" MODIFIED="1536717634181" TEXT="Kern: Explore-Mechanismus">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018644456" ID="ID_477475522" MODIFIED="1536329729458" TEXT="Signatur der Explore-Funktion festlegen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018705511" ID="ID_1131109871" MODIFIED="1536329731179" TEXT="greedy Tiefensuche">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018802738" ID="ID_1560348563" MODIFIED="1536353099280" TEXT="Abbruchbedingung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018816272" ID="ID_40740226" MODIFIED="1536353104580" TEXT="Ende der Filterkette">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018829583" ID="ID_722941976" MODIFIED="1536353106355" TEXT="aktueller Filter ersch&#xf6;pft">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536340043113" FOLDED="true" ID="ID_1162927294" MODIFIED="1536353155727" TEXT="aktuellen Zustand als Argument">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536340051461" ID="ID_1232898317" MODIFIED="1536345629500" TEXT="Wichtig: Referenz">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1232898317" ENDARROW="Default" ENDINCLINATION="550;0;" ID="Arrow_ID_1329838760" SOURCE="ID_1977741990" STARTARROW="None" STARTINCLINATION="109;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536340255596" ID="ID_1394539187" MODIFIED="1536340348029" TEXT="&#xfc;berfl&#xfc;ssige Kopie erstellt">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1536340275802" ID="ID_1689368781" MODIFIED="1536340292559" TEXT="im Aufruf des inneren (grwrappten) Funktors">
<icon BUILTIN="info"/>
</node>
<node CREATED="1536340301958" ID="ID_932937045" MODIFIED="1536340319264" TEXT="das reingegebene Argument zeigt noch (korrekt) auf die aktuelle Pipeline"/>
<node CREATED="1536340325843" ID="ID_1834736142" MODIFIED="1536340342005" TEXT="aber das eingwickelte Lambda sieht eine const&amp; auf eine Kopie"/>
</node>
<node COLOR="#338800" CREATED="1536342792784" ID="ID_363834044" MODIFIED="1536342806527" TEXT="doppeltes Wrappen unn&#xf6;tig">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536342807526" ID="ID_1490056918" MODIFIED="1536342900054" TEXT="stattdessen im vector&lt;Step&gt; wrappen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. die <i>einzelnen</i>&#160;Steps in der Pipeline direkt wrappen.
</p>
<p>
Dann ist au&#223;en herum keine Anpassung der Argumente mehr notwendig,
</p>
<p>
und man kann die Expand-Funktion direkt als std::function-Objekt durchgeben
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1536340063062" ID="ID_1554385479" MODIFIED="1536340152896" TEXT="und zwar const&amp;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...um den Expand-Funktor zu zwingen, eine Kopie zu machen;
</p>
<p>
es sollte die Filter-Konfiguration auf der Kopie manipuliert werden,
</p>
<p>
w&#228;hrend das Original auf dem Auswertungs-Stack liegen bleibt,
</p>
<p>
f&#252;r sp&#228;teres Backtracking...
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1536345349807" ID="ID_219089137" MODIFIED="1536345462776" TEXT="TreeExplorer strippen">
<icon BUILTIN="button_ok"/>
<node CREATED="1536345360133" ID="ID_23274093" MODIFIED="1536345384449" TEXT="wird immer noch au&#xdf;ern herumgewickelt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit man stets weitere Builder-Funktionen auf der Pipeline aufrufen kann
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536345386770" ID="ID_1554908631" MODIFIED="1536345421597" TEXT="wir brauchen aber den Filter-Iterator selber">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil wir <i>diesen</i>&#160;manipulieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536345422997" ID="ID_1977741990" MODIFIED="1536345460034" TEXT="nur so kann man eine Referenz auf den Zustand in den Expand-Funktor geben">
<arrowlink DESTINATION="ID_1232898317" ENDARROW="Default" ENDINCLINATION="550;0;" ID="Arrow_ID_1329838760" STARTARROW="None" STARTINCLINATION="109;0;"/>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536018862802" ID="ID_1044555993" MODIFIED="1536329736419" TEXT="abgeleiteten Frame konstruieren">
<linktarget COLOR="#65a7b1" DESTINATION="ID_1044555993" ENDARROW="Default" ENDINCLINATION="70;92;" ID="Arrow_ID_575633930" SOURCE="ID_1532889609" STARTARROW="None" STARTINCLINATION="149;-3;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1536857187385" FOLDED="true" ID="ID_1180686110" MODIFIED="1537022182370" TEXT="Bug! Referenz auf *this">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1536857213605" ID="ID_1051501156" MODIFIED="1536857238050" TEXT="...und dann moved man *this aus dem Builder!!!">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1536857284075" ID="ID_887891479" MODIFIED="1536857344032" TEXT="brauche *this...">
<icon BUILTIN="info"/>
<node CREATED="1536857289235" ID="ID_1909570040" MODIFIED="1536857313452" TEXT="in configureFilterChain"/>
<node CREATED="1536857326814" ID="ID_149310473" MODIFIED="1536857328426" TEXT="this-&gt;depth()"/>
<node CREATED="1536857336620" ID="ID_1691329557" MODIFIED="1536857806626" TEXT="this-&gt;stepChain_">
<linktarget COLOR="#d22d65" DESTINATION="ID_1691329557" ENDARROW="Default" ENDINCLINATION="147;-23;" ID="Arrow_ID_828211693" SOURCE="ID_396903078" STARTARROW="None" STARTINCLINATION="1;-33;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536857741221" ID="ID_1903828771" MODIFIED="1536958903408" TEXT="bricht das ganze Konzept hier zusammen??">
<icon BUILTIN="forward"/>
<node COLOR="#435e98" CREATED="1536880103264" HGAP="27" ID="ID_1970250282" MODIFIED="1536958907215" TEXT="so schaugts aus...." VSHIFT="-10">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1536857782632" ID="ID_396903078" MODIFIED="1536857806626" TEXT="stepChain_ ist das Problem">
<arrowlink COLOR="#d22d65" DESTINATION="ID_1691329557" ENDARROW="Default" ENDINCLINATION="147;-23;" ID="Arrow_ID_828211693" STARTARROW="None" STARTINCLINATION="1;-33;"/>
</node>
<node CREATED="1536880086127" ID="ID_1559582643" MODIFIED="1536882591818" TEXT="depth wohl noch ein Gr&#xf6;&#xdf;eres">
<node CREATED="1536882781354" ID="ID_1998865921" MODIFIED="1536882788421" TEXT="weil daran die Abbruchbedingung h&#xe4;ngt"/>
<node CREATED="1536882789057" ID="ID_170176785" MODIFIED="1536882873905" TEXT="und depth sich aber automatisch ergibt -&gt; Backtracking"/>
</node>
<node CREATED="1536882920310" ID="ID_1625878480" MODIFIED="1536882937553" TEXT="eigentlich m&#xfc;&#xdf;te...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nach der &#187;reinen Lehre&#171;
</p>
</body>
</html></richcontent>
<node CREATED="1536882938955" ID="ID_475907399" MODIFIED="1536882951373" TEXT="der Baum entweder sich selber entfalten k&#xf6;nnen">
<node CREATED="1536883521914" ID="ID_857765324" MODIFIED="1536883531340" TEXT="und dazu den Chain in sich tragen"/>
<node CREATED="1536883532120" ID="ID_153639655" MODIFIED="1536883537739" TEXT="und auch seinen eigenen Level kennen"/>
</node>
<node CREATED="1536882952177" ID="ID_563964508" MODIFIED="1536882961539" TEXT="oder von au&#xdf;erhalb entfaltet werden">
<node CREATED="1536883544846" ID="ID_224633668" MODIFIED="1536883607066" TEXT="dann aber auch die Entfaltung von au&#xdf;en bekommen"/>
<node CREATED="1536883607966" ID="ID_1870181162" MODIFIED="1536883618816" TEXT="also klassich-imperativ"/>
<node CREATED="1536883623932" ID="ID_567889201" MODIFIED="1536883629455" TEXT="nix Monade!"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1536958857294" ID="ID_1302534828" MODIFIED="1536958940320" TEXT="Fazit: nur der zweite Ansatz ist durchf&#xfc;hrbar">
<arrowlink COLOR="#81445a" DESTINATION="ID_1848331022" ENDARROW="Default" ENDINCLINATION="72;-412;" ID="Arrow_ID_1608996048" STARTARROW="None" STARTINCLINATION="672;68;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1536969411521" HGAP="36" ID="ID_1686255544" MODIFIED="1536969491348" TEXT="und selbst der braucht eine Art Hintert&#xfc;r" VSHIFT="8">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...insofern wir n&#228;mlich zwingend auf den jeweilign Kind-<i>Iterator</i>&#160;zugreifen m&#252;ssen.
</p>
<p>
Nicht nur auf den aktuellen Wert (=dereferenzierter Iterator, d.h. die Funktion yield())
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536018406232" FOLDED="true" ID="ID_1330264339" MODIFIED="1537050129790" TEXT="Schritte als Funktoren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018684754" FOLDED="true" ID="ID_1076606298" MODIFIED="1536326570743" TEXT="geeignete Signatur f&#xfc;r die Schritt-Funktoren">
<icon BUILTIN="button_ok"/>
<node CREATED="1536184281271" ID="ID_1736323474" MODIFIED="1536184299802" TEXT="Problem: Funktor-Signatur zu Beginn nicht bekannt">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1536184313018" ID="ID_306473960" MODIFIED="1536184367056" TEXT="es w&#xfc;rde gen&#xfc;gen, wenn der Werttyp kompatibel ist">
<icon BUILTIN="info"/>
</node>
<node CREATED="1536184383689" ID="ID_1457889497" MODIFIED="1536184509943">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wir <i>m&#252;ssen </i>hier eine Festlegung treffen
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil die Ergebnisse der einzelnen Schritt-Funktoren,
</p>
<p>
jeweils in den Auswertungs-Stack gepackt werden sollen.
</p>
<p>
</p>
<p>
Daher m&#252;ssen sie untereinander kompatibel sein.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1536184509936" ID="ID_936035440" MODIFIED="1536184832177" TEXT="pragmatische Wahl: Kopie des Basis-Filters">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
im typischen Fall kopiert man den Basis-Iterator,
</p>
<p>
und manipuliert dann einige Einstellungen auf diesem.
</p>
<p>
</p>
<p>
Wir k&#246;nnten diese Kopie-Semantik sogar <i>erzwingen,</i>
</p>
<p>
indem wir als Argument-Typ des Schritt-Funktors eine const&amp; vorgeben
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536185340920" ID="ID_1706168706" MODIFIED="1536185362297" TEXT="also: konstruiere Pipeline mit Filter"/>
<node CREATED="1536185364045" ID="ID_301562283" MODIFIED="1536185381295" TEXT="dann: Filter -&gt; Filter als Funktor vorgeben"/>
<node COLOR="#338800" CREATED="1536194368432" FOLDED="true" ID="ID_665607293" MODIFIED="1536274950954" TEXT="kniffelig in der Praxis">
<icon BUILTIN="smiley-angry"/>
<node CREATED="1536194407802" ID="ID_752443094" MODIFIED="1536194421332" TEXT="der &quot;Filter&quot;-Typ ist in einen TreeExplorer gewrappt"/>
<node CREATED="1536194422544" ID="ID_1594827200" MODIFIED="1536194440618" TEXT="konkret ist der Quell-Typ aber nur ein IterableDecorator"/>
<node CREATED="1536194493975" ID="ID_1706559693" MODIFIED="1536194563398" TEXT="und der doppelt gewrappter Funktor....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...den ich mache, um den Adapter in jedem Einzelfall zu bekommen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536194565261" ID="ID_892309176" MODIFIED="1536194581751" TEXT="...f&#xfc;hrt dazu, da&#xdf; der innere Funktor ein Template ist"/>
<node CREATED="1536194582411" ID="ID_427362932" MODIFIED="1536194600916" TEXT="und deshalb mit IterableDecorator&amp; ge-probed wird"/>
<node CREATED="1536195443615" ID="ID_1532213156" MODIFIED="1536195450119" TEXT="Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1536195452006" ID="ID_1758963929" MODIFIED="1536195513457" TEXT="IterableDecorator hat einen Wildcard-Konstruktor"/>
<node CREATED="1536195515142" ID="ID_207755200" MODIFIED="1536271102169" TEXT="deshalb scheint die Konvertierung string -&gt; IterableDecorator m&#xf6;glich">
<linktarget COLOR="#d83e76" DESTINATION="ID_207755200" ENDARROW="Default" ENDINCLINATION="262;10;" ID="Arrow_ID_1979852913" SOURCE="ID_360255766" STARTARROW="None" STARTINCLINATION="262;5;"/>
</node>
<node CREATED="1536195621631" ID="ID_1458745075" MODIFIED="1536195633265" TEXT="...was dann aber im eingewickelten MutableFunctor scheitert"/>
<node CREATED="1536195633854" ID="ID_1469022446" MODIFIED="1536195641136" TEXT="(und ohnehin ein Schmarrrn w&#xe4;re)"/>
</node>
<node CREATED="1536195694269" ID="ID_260759561" MODIFIED="1536273228593" TEXT="L&#xf6;sung?">
<icon BUILTIN="button_ok"/>
<node CREATED="1536195707299" ID="ID_1061111376" MODIFIED="1536273251780" TEXT="der innere Funktor ist generisch">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1536195819221" ID="ID_730902625" MODIFIED="1536270305176" TEXT="auf den flexiblen Adapter verzichten">
<icon BUILTIN="button_cancel"/>
<node CREATED="1536270307241" ID="ID_1232849452" MODIFIED="1536270310156" TEXT="bringt nix"/>
<node CREATED="1536270310936" ID="ID_1638227415" MODIFIED="1536270381734" TEXT="string -&gt; IterableDecorator greift trotzdem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....und f&#228;llt dann beim Instantiieren des Template auf die Schnautze
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536271061916" ID="ID_360255766" MODIFIED="1536271107605" TEXT="ist ein grunds&#xe4;tzliches Problem">
<arrowlink COLOR="#d83e76" DESTINATION="ID_207755200" ENDARROW="Default" ENDINCLINATION="262;10;" ID="Arrow_ID_1979852913" STARTARROW="None" STARTINCLINATION="262;5;"/>
<icon BUILTIN="broken-line"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536271137786" ID="ID_618430280" MODIFIED="1536273236978" TEXT="Fehl-Konvertierung gezielt unterbinden">
<icon BUILTIN="forward"/>
<node CREATED="1536271169845" ID="ID_481868916" MODIFIED="1536271374301">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sofern eine Initialisierung ausidem Source-Iterator <i>m&#246;glich ist</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536271209768" ID="ID_1767817102" MODIFIED="1536271396476" TEXT="...weil es dann grunds&#xe4;tzch nicht notwendig ist, eigens etwas zu tun"/>
</node>
</node>
<node CREATED="1536273280517" ID="ID_422856174" MODIFIED="1536273415840">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und sonst ist das <i>nicht wirklich</i>&#160;&quot;kniffelig&quot;
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...blo&#223; sind die zig-fach geschachtelten Template-Typen,
</p>
<p>
die dann die Intantiierungs-Call-Hierarchie bev&#246;lkern,
</p>
<p>
nahezu unlesbar....
</p>
<p>
</p>
<p>
</p>
<p>
AAber ... wenn es erst mal duch den Compiler ist,
</p>
<p>
dann <i>sollte </i>der Optimizer diese gesamten x-fachen Wrapper nahezu restlos entfernen
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
</node>
<node CREATED="1536273453876" HGAP="46" ID="ID_1094128800" MODIFIED="1536326529585" TEXT="verwende nun BoundFunctor&lt;Filter(Filter const&amp;)&gt; als Signatur" VSHIFT="5">
<icon BUILTIN="info"/>
<node CREATED="1536273527418" ID="ID_180233427" MODIFIED="1536273554776">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konsequenz: jede Argument-Funktion wird <i>nochmal</i>&#160;gewrappt
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1536273556422" ID="ID_368248341" MODIFIED="1536273569201" TEXT="...und kann damit auch ein generisches Lambda sein">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536018696977" ID="ID_1710558292" MODIFIED="1536326467718" TEXT="Sequenz solcher Funktoren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536018923378" FOLDED="true" ID="ID_1163666446" MODIFIED="1537050128222" TEXT="Pipeline konstruieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018931433" ID="ID_1532889609" MODIFIED="1536717484882" TEXT="treeExplorer-Konfiguration">
<arrowlink COLOR="#65a7b1" DESTINATION="ID_1044555993" ENDARROW="Default" ENDINCLINATION="70;92;" ID="Arrow_ID_575633930" STARTARROW="None" STARTINCLINATION="149;-3;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536353107155" FOLDED="true" HGAP="33" ID="ID_1163131751" MODIFIED="1536717615755" TEXT="Problem: Basis-Layer" VSHIFT="37">
<arrowlink COLOR="#4471b4" DESTINATION="ID_942897075" ENDARROW="Default" ENDINCLINATION="37;-79;" ID="Arrow_ID_537236489" STARTARROW="None" STARTINCLINATION="30;44;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536353117930" ID="ID_625995057" MODIFIED="1536353132265" TEXT="hinzugef&#xfc;gt f&#xfc;r &quot;leeren&quot; Zustand">
<icon BUILTIN="info"/>
</node>
<node CREATED="1536353133264" ID="ID_597888311" MODIFIED="1536353144626" TEXT="Backtracking in leeren Zustand">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1536357642662" ID="ID_77507334" MODIFIED="1536357654371" TEXT="Basis-Layer wird eigentlich nie mehr besucht">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536353280436" FOLDED="true" ID="ID_967254721" MODIFIED="1536717612628" TEXT="Problem: clearFilter()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536353286739" ID="ID_1451254899" MODIFIED="1536353295077" TEXT="bauchen wir das &#xfc;berhaupt">
<icon BUILTIN="help"/>
<node CREATED="1536353310976" ID="ID_809196267" MODIFIED="1536353322688" TEXT="&quot;Filter komplett abschalten&quot;">
<icon BUILTIN="info"/>
</node>
<node CREATED="1536353297546" ID="ID_1841672356" MODIFIED="1536353306185" TEXT="war erst mal nur f&#xfc;r Test">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536353335500" ID="ID_698525366" MODIFIED="1536717475219" TEXT="mu&#xdf; Stack der partiellen Auswertungen verwerfen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wir sind irgendwo im Baum, nicht auf dem Basis-Layer.
</p>
<p>
Und der Basis-Layer steht irgendwo, nicht an der aktuellen Position.
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#60a2d5" DESTINATION="ID_33678789" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_1930258825" STARTARROW="None" STARTINCLINATION="106;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536717586774" ID="ID_47823025" MODIFIED="1536717611106" TEXT="mit HIlfsfunktion im TreeExplorer / Expander einfach zu implementieren">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536115788134" ID="ID_1444917457" MODIFIED="1536281847097" TEXT="Problem: Basis-Typ inferieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536115842002" ID="ID_1601482334" MODIFIED="1536121336222" TEXT="resultiert aus treeExplorer-Aufruf">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536121365113" ID="ID_1114285918" MODIFIED="1536121373905" TEXT="const STL container unterst&#xfc;tzen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536115852336" ID="ID_1044191557" MODIFIED="1536281849860" TEXT="mu&#xdf; aber geeignete Funktoren binden">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536018420398" ID="ID_41628967" MODIFIED="1537050023015" TEXT="Adaptieren der Quell-Datensequenz">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018880168" ID="ID_1619721301" MODIFIED="1536326442522" TEXT="macht normalerweise TreeExplorer">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1619721301" ENDARROW="Default" ENDINCLINATION="129;0;" ID="Arrow_ID_1721152439" SOURCE="ID_1700266521" STARTARROW="None" STARTINCLINATION="76;-5;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018887223" ID="ID_832237706" MODIFIED="1537050024641" TEXT="speziell: gear switch">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536018442123" ID="ID_829730232" MODIFIED="1536329759111" TEXT="Abk&#xfc;rzung f&#xfc;r direkten Match">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018985450" ID="ID_1700266521" MODIFIED="1536329755895" TEXT="Wert-Typ deduzieren">
<arrowlink DESTINATION="ID_1619721301" ENDARROW="Default" ENDINCLINATION="129;0;" ID="Arrow_ID_1721152439" STARTARROW="None" STARTINCLINATION="76;-5;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536019008151" ID="ID_29813547" MODIFIED="1536329757422" TEXT="equality comparision in Lambda">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536018471975" ID="ID_1115030606" MODIFIED="1537050027130" TEXT="Variante f&#xfc;r bidirektionale Suche">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018956285" ID="ID_128441804" MODIFIED="1537050078736" TEXT="einfach CursorGear als Quelle verwenden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1536357666667" FOLDED="true" ID="ID_886527146" MODIFIED="1537050144836" TEXT="Design-Kritik">
<icon BUILTIN="button_ok"/>
<node CREATED="1536357672802" ID="ID_2301559" MODIFIED="1536357696186" TEXT="aktuelles Design ist minimalistisch aber nicht elegant">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1536357853649" ID="ID_1868098250" MODIFIED="1536357864980" TEXT="API geradliniger als die interne Struktur">
<node CREATED="1536357700806" ID="ID_484166025" MODIFIED="1536357804847" TEXT="der Basis-Layer ist aufgrund des API vorhanden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn
</p>
<ul>
<li>
es ist praktisch, zun&#228;chst &quot;leer&quot; zu konstruieren
</li>
<li>
es ist verst&#228;ndlicher, wenn alle Bedingungen symmetrisch angegeben werden
</li>
<li>
es ist nat&#252;rlich, da&#223; ein &quot;leerer&quot; Filter alles durchl&#228;&#223;t
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1536357809367" ID="ID_118025251" MODIFIED="1536357830652" TEXT="die clearFilter()-Funktion folgt derselben Logik">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Filter leer == alles durchlassen
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1536357878006" ID="ID_1225195123" MODIFIED="1537050011562" TEXT="Aufr&#xe4;umen und nachr&#xfc;sten">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536357891412" FOLDED="true" ID="ID_942897075" MODIFIED="1536717539462" TEXT="den Basis-Layer eliminieren">
<linktarget COLOR="#4471b4" DESTINATION="ID_942897075" ENDARROW="Default" ENDINCLINATION="37;-79;" ID="Arrow_ID_537236489" SOURCE="ID_1163131751" STARTARROW="None" STARTINCLINATION="30;44;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536357900635" ID="ID_646733499" MODIFIED="1536533192790" TEXT="brauche einen &quot;leer&quot;-Status im Filter">
<icon BUILTIN="button_ok"/>
<node CREATED="1536367745114" ID="ID_945289619" MODIFIED="1536367753030" TEXT="explizit als bool-Flag">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1536367754089" ID="ID_649387933" MODIFIED="1536533189307" TEXT="im Filter-Funktor verstecken">
<arrowlink COLOR="#67ac9b" DESTINATION="ID_109911994" ENDARROW="Default" ENDINCLINATION="1326;0;" ID="Arrow_ID_1556921295" STARTARROW="None" STARTINCLINATION="142;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536357917385" ID="ID_1615410357" MODIFIED="1536539160556" TEXT="wenn leer, dann direkt den Basis-Layer konfigurieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536357952068" ID="ID_876149668" MODIFIED="1536539163737" TEXT="nur an die Kette anf&#xfc;gen, wenn nicht leer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1536539178616" HGAP="1" ID="ID_708494808" MODIFIED="1536632461895" TEXT="defekt" VSHIFT="20">
<icon BUILTIN="broken-line"/>
<node COLOR="#338800" CREATED="1536539306399" ID="ID_639133520" MODIFIED="1536632455687" TEXT="Basis-Layer wird zwei mal gepullt">
<icon BUILTIN="button_ok"/>
<node CREATED="1536539323716" ID="ID_1627599615" MODIFIED="1536539353260" TEXT="einmal beim direkten Rekonfigurieren"/>
<node CREATED="1536539357408" ID="ID_834480997" MODIFIED="1536539373834" TEXT="dann nochmal generisch"/>
<node COLOR="#338800" CREATED="1536541001266" ID="ID_1480503625" MODIFIED="1536632457387" TEXT="in else-Zweig ziehen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536539386764" ID="ID_487266350" MODIFIED="1536632452032" TEXT="ersch&#xf6;pfter Iter bricht ab">
<arrowlink COLOR="#c5789c" DESTINATION="ID_1288939799" ENDARROW="Default" ENDINCLINATION="99;3;" ID="Arrow_ID_1528021143" STARTARROW="None" STARTINCLINATION="-35;27;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536539286897" FOLDED="true" ID="ID_1288939799" MODIFIED="1536717548060" TEXT="overconstrained triggert Assertion">
<linktarget COLOR="#c5789c" DESTINATION="ID_1288939799" ENDARROW="Default" ENDINCLINATION="99;3;" ID="Arrow_ID_1528021143" SOURCE="ID_487266350" STARTARROW="None" STARTINCLINATION="-35;27;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536631251921" HGAP="51" ID="ID_588077559" MODIFIED="1536631280009" TEXT="sollte stattdessen leer werden" VSHIFT="23">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536357967826" FOLDED="true" ID="ID_634133289" MODIFIED="1536717583623" TEXT="clearFilter()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536357973769" ID="ID_33678789" MODIFIED="1536358316984" TEXT="brauche Unterst&#xfc;tzung vom Expander">
<linktarget COLOR="#60a2d5" DESTINATION="ID_33678789" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_1930258825" SOURCE="ID_698525366" STARTARROW="None" STARTINCLINATION="106;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1536357986087" ID="ID_1097583555" MODIFIED="1536716860209" TEXT="rootCurrent()">
<arrowlink COLOR="#5c8eb4" DESTINATION="ID_255912594" ENDARROW="Default" ENDINCLINATION="1465;0;" ID="Arrow_ID_1700114612" STARTARROW="None" STARTINCLINATION="798;71;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536358193211" ID="ID_601406114" MODIFIED="1536716881154" TEXT="hebt aktuelle Sequenz auf Root-Level"/>
<node COLOR="#338800" CREATED="1536358204137" ID="ID_1724606451" MODIFIED="1536716878774" TEXT="verwirft den sonstigen Stack komplett"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536792181982" ID="ID_548701484" MODIFIED="1536846067609" TEXT="search direkt per Pr&#xe4;dikat">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. direkt das Pr&#228;dikat, und nicht eine Funktion, die den Filter konfiguriert
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1536792241949" ID="ID_613611906" MODIFIED="1536792249583" TEXT="setzt direkt nur ein neues Pr&#xe4;dikat"/>
<node CREATED="1536792250124" ID="ID_10955924" MODIFIED="1536792257390" TEXT="spart viel Syntax ein">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1536845264898" ID="ID_1033092941" MODIFIED="1536845289109" TEXT="Problem: capture forward">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1536845290596" ID="ID_1184113483" MODIFIED="1536845467915" TEXT="Lamda soll eine &quot;universelle referenz&quot; capturen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1536845309386" ID="ID_1593606355" MODIFIED="1536845460398" TEXT="Ausweg: forward-into captured value">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536845374585" ID="ID_794602132" LINK="https://stackoverflow.com/a/20669290" MODIFIED="1536845438985" TEXT="geht seit C++14"/>
<node CREATED="1536845439219" ID="ID_372370252" MODIFIED="1536845455950" TEXT="nur Eclipse / CDT mault herum">
<icon BUILTIN="smily_bad"/>
<node CREATED="1536845496960" ID="ID_1490455562" MODIFIED="1536845539474" TEXT="und deshalb...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...habe ich noch gar nicht gemerkt, da&#223; das geht,
</p>
<p>
und manchen komischen Workaround implementiert.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1536845594971" ID="ID_1942437093" MODIFIED="1536845602373" TEXT="Eclipse updaten?">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536958590136" ID="ID_1848331022" MODIFIED="1537050002466" TEXT="Refactoring Pipeline-Struktur">
<linktarget COLOR="#81445a" DESTINATION="ID_1848331022" ENDARROW="Default" ENDINCLINATION="72;-412;" ID="Arrow_ID_1608996048" SOURCE="ID_1302534828" STARTARROW="None" STARTINCLINATION="672;68;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1536958603857" ID="ID_610488133" MODIFIED="1536958622137" TEXT="das urspr&#xfc;ngliche Implementierungs-Konzept scheitert">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1536958626605" ID="ID_1277097786" MODIFIED="1536958638227" TEXT="aber ich will an dem Pipeline-Konzept festhalten">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1536958647378" ID="ID_270574796" MODIFIED="1536958666418" TEXT="Konsequenz: Schlu&#xdf; mit der Magie">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1536958668327" ID="ID_392267635" MODIFIED="1536977591699" TEXT="keine geheimnisvollen Lambda-Closures mehr">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536958680150" FOLDED="true" ID="ID_1572201908" MODIFIED="1537043844149" TEXT="zwei Layer verwenden">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536958702987" ID="ID_1313964418" MODIFIED="1536977597184" TEXT="Basis == trivialer Explorer">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536958719665" ID="ID_806425486" MODIFIED="1536977595267" TEXT="macht lediglich eine Kopie des Filters">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536958727368" ID="ID_1206856632" MODIFIED="1536958732419" TEXT="nichts mehr automatisch"/>
</node>
<node COLOR="#338800" CREATED="1536958733950" ID="ID_374374485" MODIFIED="1537043822570" TEXT="Dekorator == Steuer-Logik">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536958744325" ID="ID_151094681" MODIFIED="1536977615339" TEXT="h&#xe4;lt den stepChain_">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536958772594" FOLDED="true" ID="ID_365283571" MODIFIED="1537043830287" TEXT="klinkt sich in iterNext ein">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1536958792215" ID="ID_519507996" MODIFIED="1536973216960" TEXT="TreeExplorer: custom-Layer">
<arrowlink COLOR="#61afb3" DESTINATION="ID_686602920" ENDARROW="Default" ENDINCLINATION="-230;613;" ID="Arrow_ID_1710661685" STARTARROW="None" STARTINCLINATION="1241;-1305;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1536973229630" ID="ID_1567071992" MODIFIED="1536973238830" TEXT="brauche doch keinen Custom-Layer">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1536973239964" ID="ID_1858748865" MODIFIED="1536973282118" TEXT="ist besser ohne....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil ich dann auf dem IterChainSearch unmittelbar die builder-Funktionen definieren kann
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1536977661129" ID="ID_700598895" MODIFIED="1537022064594" TEXT="Vorsicht: brauche nochmal IterableDecorator">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn: TreeExplorer == IterableDecorator&lt; Pipeline &gt;
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1536977678590" ID="ID_747407291" MODIFIED="1537022078175" TEXT="sonst wird meine spezielle IterNext() nicht aufgerufen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der oberste Layer, also hier IterChainSearch
</p>
<p>
ist selbst ein StateCore. Also brauche ich noch einen Dekocator
</p>
<p>
Wenn der fehlt, wird der n&#228;chste darunterliegende Decorator gepullt,
</p>
<p>
und der wickellt direkt den Expander ein
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1537022084564" ID="ID_447764404" MODIFIED="1537022104224" TEXT="brauche doch einen top-Level TreeExplorer + custom-Layer">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1537022109392" ID="ID_1885636592" MODIFIED="1537022142275" STYLE="fork" TEXT="pragmatisch: direkt auch operator++ &#xfc;berschreiben">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536958815668" ID="ID_327461551" MODIFIED="1536977621476">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
konfiguriert <i>danach direkt</i>&#160;den Filter
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536969507092" ID="ID_1318810550" MODIFIED="1536977610592" TEXT="braucht dazu eine Hintert&#xfc;r im Explorer-Layer">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536969537728" ID="ID_1955805225" MODIFIED="1536969691123" TEXT="kann/darf diese nicht f&#xfc;r Basis-Iterator nutzen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil der Basis-Iterator (also der Template-Parameter SRC)
</p>
<p>
explizit und absichtlich einen anderen Typ haben <i>k&#246;nnte,</i>&#160;als der expandierte Kind-Iterator.
</p>
<p>
Das ist ein wesentliches Feature dieses Expander-Designs, w&#252;rde aber leider eine
</p>
<p>
komplett generische Accessor-Funktion unm&#246;glich machen (das Template w&#252;rde in
</p>
<p>
einem Solchen Fall insgesamt vom Compiler zur&#252;ckgewiesen)
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1537022195013" ID="ID_1801625619" MODIFIED="1537050004022" TEXT="Korrektheit der Auswertungs-Logik">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537022206627" FOLDED="true" ID="ID_983878679" MODIFIED="1537050008982" TEXT="mit komplexem Funktor">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1537022226504" ID="ID_1825074472" MODIFIED="1537024319743" TEXT="faul?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sausage-bacon-tomato-and-sausage-spam-spam-bacon-spam-tomato-and-spam-spam-bacon-tomato-and-spam-bacon-tomato-and-spam-tomato-and-spam
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1537024323509" ID="ID_22995423" MODIFIED="1537024327665" TEXT="ja">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1537024330564" ID="ID_1923248765" MODIFIED="1537024353996" TEXT="das Element, auf das wir backtracken, kommt raus"/>
</node>
<node COLOR="#338800" CREATED="1537024363024" ID="ID_197150338" MODIFIED="1537024376343" TEXT="mu&#xdf; nach Backtracking explizit neu aufsetzen und hochspulen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1537024386500" ID="ID_792998865" MODIFIED="1537024403713" TEXT="schon besser....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sausage-bacon-tomato-and-spam-spam-bacon-spam-tomato-and-spam-bacon-tomato-and-bacon-tomato-and-tomato-and
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1537022216506" ID="ID_794497840" MODIFIED="1537050005604" TEXT="mit Backtracking">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1535894132587" ID="ID_1888561007" MODIFIED="1537050042593" TEXT="Unit-Test: IterChainSearch_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018569210" ID="ID_1083474400" MODIFIED="1536018578102" TEXT="Test-Fixture">
<icon BUILTIN="button_ok"/>
<node CREATED="1536018580388" ID="ID_186304417" MODIFIED="1536018584425" TEXT="lovely spam">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1536121351659" ID="ID_1756544626" MODIFIED="1536121358722" TEXT="const container">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1536018539621" ID="ID_1857591081" MODIFIED="1536717648741" TEXT="simpleSearch()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018544936" ID="ID_1750921303" MODIFIED="1537050039988" TEXT="chainedIteration()">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1536018552912" ID="ID_385004210" MODIFIED="1537050041216" TEXT="backtracking()">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1536015468698" ID="ID_1045359957" MODIFIED="1557498707236" TEXT="utils">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536015471377" ID="ID_1732583592" MODIFIED="1557498707236" TEXT="regex-Iteratoren">
<icon BUILTIN="hourglass"/>
<node CREATED="1536015489143" ID="ID_979562288" MODIFIED="1557498707236" TEXT="std::sregex_token_itertor"/>
<node CREATED="1536015509308" ID="ID_1011220828" MODIFIED="1557498707236" TEXT="geschickt verpacken"/>
<node CREATED="1536015513076" ID="ID_849722427" MODIFIED="1557498707236" TEXT="den Regex-Include opaque halten"/>
<node CREATED="1536015525154" ID="ID_1039059758" MODIFIED="1557498707236" TEXT="soll mal in util.hpp"/>
</node>
</node>
</node>
<node CREATED="1540682664865" ID="ID_1702211999" MODIFIED="1557498707236" TEXT="Metaprogramming">
<node CREATED="1540682674455" ID="ID_1625152878" MODIFIED="1557498707236" TEXT="Typliste filtern">
<node CREATED="1540682680286" ID="ID_1172485112" MODIFIED="1557498707236" TEXT="nach canConvert">
<node CREATED="1540682731631" ID="ID_1059841081" MODIFIED="1557498707236" TEXT="die Typen, in die man umwandeln kann">
<icon BUILTIN="info"/>
</node>
<node CREATED="1540682747461" ID="ID_1097757447" MODIFIED="1557498707236" TEXT="sinnvoll zum Binden an Rec&lt;GenNode&gt;">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1540682686558" ID="ID_349304672" MODIFIED="1557498707236" TEXT="aber das eigentliche Problem ist...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wie bekommt man dann den konvertierten Wert 'raus.
</p>
<p>
Visitor ist entweder void, oder bool
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1482524641484" ID="ID_1651495185" MODIFIED="1557498707236" TEXT="Architektur">
<node CREATED="1544199543455" ID="ID_970297070" MODIFIED="1557498707236" TEXT="Struktur">
<node CREATED="1544199550166" ID="ID_16943853" MODIFIED="1557498707236" TEXT="Layer">
<node CREATED="1544199559524" ID="ID_1685135526" MODIFIED="1557498707236" TEXT="rein gedankliche Gliederung"/>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1544199565372" FOLDED="true" ID="ID_39523665" MODIFIED="1557498707236" TEXT="(neue)Namen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
denke etwa seit einem halben Jahr dar&#252;ber nach.
</li>
<li>
bisher hatte ich mich nicht getraut...
</li>
<li>
im September mit Benny besprochen (per Mail). Seine Reaktion klang sogar begeistert; das hat mich ermutigt
</li>
<li>
nat&#252;rlich ist es eine Menge Arbeit, aber jetzt, wo ich allein bin, kann ich sowas einfach durchziehen, ohne da&#223; es zerredet wird
</li>
</ul>
</body>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1544199568851" ID="ID_1812468720" MODIFIED="1544199771897" TEXT="Stage">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node COLOR="#435e98" CREATED="1544199791747" ID="ID_852392563" MODIFIED="1544199874242" TEXT="interaction layer">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544199811227" ID="ID_799439008" MODIFIED="1544199868636">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bisher <i>&quot;GUI&quot;</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544199916181" ID="ID_398666439" MODIFIED="1544199920920" TEXT="stage and backstage"/>
</node>
<node CREATED="1544199570723" ID="ID_1872450664" MODIFIED="1544199772984" TEXT="Steam">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node COLOR="#435e98" CREATED="1544199800697" ID="ID_778136654" MODIFIED="1544199879626" TEXT="translation layer">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544199822802" ID="ID_1885697959" MODIFIED="1544199858919">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bisher <i>&quot;Proc-Layer&quot;</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544199922788" ID="ID_40712142" MODIFIED="1544199936342" TEXT="where does the actual magic happen?"/>
</node>
<node CREATED="1544199573307" ID="ID_730329516" MODIFIED="1544199773973" TEXT="Vault">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node COLOR="#435e98" CREATED="1544199808170" ID="ID_1715886507" MODIFIED="1544199883499" TEXT="adaptation layer">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544199828825" ID="ID_830501554" MODIFIED="1544199848431">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bisher <i>&quot;Backend&quot;</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544199952785" ID="ID_1989078064" MODIFIED="1544199955148" TEXT="deep down"/>
</node>
</node>
</node>
</node>
<node CREATED="1531419748046" ID="ID_1791265013" MODIFIED="1557498707236" TEXT="Lebenszyklus">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419790153" ID="ID_1605635763" MODIFIED="1557498707236" TEXT="#1145 define startup sequence">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419814485" ID="ID_373568821" MODIFIED="1557498707236" TEXT="#1146 complete application startup sequence">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419837826" ID="ID_719335579" MODIFIED="1557498707236" TEXT="#1147 establish UI start-up sequence">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531420231598" ID="ID_1997153046" MODIFIED="1557498707236" TEXT="#1148 populate initial session">
<arrowlink COLOR="#665692" DESTINATION="ID_1392317817" ENDARROW="Default" ENDINCLINATION="-1993;202;" ID="Arrow_ID_609042013" STARTARROW="Default" STARTINCLINATION="1943;108;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
<node CREATED="1482524498822" ID="ID_431883229" MODIFIED="1557498707236" TEXT="Datenstrom"/>
<node CREATED="1482524516371" ID="ID_396707258" MODIFIED="1557498707236" TEXT="Event-Sourcing">
<node CREATED="1539135156755" ID="ID_1302245670" MODIFIED="1557498707236" TEXT="vermittelnder Tr&#xe4;ger">
<node CREATED="1539134733747" ID="ID_1189184036" MODIFIED="1557498707236" TEXT="DiffConstituent">
<linktarget COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-767;-123;" ID="Arrow_ID_156898929" SOURCE="ID_353086867" STARTARROW="None" STARTINCLINATION="-1608;-84;"/>
<linktarget COLOR="#4e31e2" DESTINATION="ID_1189184036" ENDARROW="Default" ENDINCLINATION="-432;-65;" ID="Arrow_ID_1794591374" SOURCE="ID_1179407482" STARTARROW="None" STARTINCLINATION="-1379;-131;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1539134841549" ID="ID_818387120" MODIFIED="1557498707236" TEXT="neues Konzept">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1539134848420" ID="ID_4911843" MODIFIED="1557498707236" TEXT="ein selbstbez&#xfc;glicher substanzloser Strukturkern"/>
<node CREATED="1539134911707" ID="ID_847488848" MODIFIED="1557498707236" TEXT="DiffConstituent -&gt; emanation as diff"/>
<node CREATED="1539395579133" ID="ID_589161293" MODIFIED="1557498707236" TEXT="Anforderungen">
<node CREATED="1539395591547" ID="ID_1807468145" MODIFIED="1557498707236" TEXT="Population-Diff erzeugen"/>
<node CREATED="1539395603034" ID="ID_1342955865" MODIFIED="1557498707236" TEXT="Delta-Diff erzeugen">
<node CREATED="1539395609169" ID="ID_1189203662" MODIFIED="1557498707236" TEXT="mu&#xdf; exakt den vorherigen Stand kennen"/>
<node CREATED="1539395620120" ID="ID_1953087376" MODIFIED="1557498707236" TEXT="Stichwort: asynchrone Kommunkiation">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
GUI und Session schicken Nachrichten.
</p>
<p>
W&#228;hrend der Builder l&#228;uft, kann das GUI schon weitere Nachrichten geschickt haben,
</p>
<p>
die dann noch in der ProcDispatcher-Queue h&#228;ngen. Daher kann sich die Antwort
</p>
<p>
als Resultat auf einen Builder-Lauf noch auf einen vorherigen Zustand beziehen.
</p>
<p>
Es kann aber auch ein Builder-Lauf die kummulierten Ergebnisse von mehreren Commands behandeln.
</p>
<p>
In jedem Fall mu&#223; der DiffConstituent genau wissen, was der zuletzt geschickte Stand war,
</p>
<p>
damit er einen Diff erzeugt, der garantiert auf der anderen Seite anwendbar ist.
</p>
<p>
Denn letzteres ist bei uns eine Grundannahme. Es gibt keine ungef&#228;hren Diffs!
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1544840221709" ID="ID_790020807" MODIFIED="1557498707236" TEXT="Aufbereiten gem&#xe4;&#xdf; &#xbb;systematisches UI-Modell&#xab;">
<arrowlink COLOR="#5f7288" DESTINATION="ID_531041967" ENDARROW="Default" ENDINCLINATION="-964;-27;" ID="Arrow_ID_603305631" STARTARROW="None" STARTINCLINATION="1678;0;"/>
</node>
</node>
</node>
<node CREATED="1539270491013" ID="ID_1435731309" MODIFIED="1557498707236" TEXT="Problem der korrekten Diff-Struktur">
<arrowlink COLOR="#d47366" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="590;-127;" ID="Arrow_ID_308349501" STARTARROW="None" STARTINCLINATION="915;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1482524530842" FOLDED="true" ID="ID_606738640" MODIFIED="1557498707236" TEXT="Dependency-Injection">
<icon BUILTIN="wizard"/>
<node CREATED="1515975589922" ID="ID_367021032" MODIFIED="1538868806804" TEXT="Architektur">
<icon BUILTIN="yes"/>
<node CREATED="1522738923747" ID="ID_1842493496" MODIFIED="1522738930926" TEXT="feste Ordnung der Komponenten"/>
<node CREATED="1522738931490" ID="ID_1729361793" MODIFIED="1522738935077" TEXT="Lebenszyklus"/>
</node>
<node COLOR="#338800" CREATED="1515975593614" ID="ID_79714950" MODIFIED="1538868845282" TEXT="Technik">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Fr&#252;hjahr 2018 komplett &#252;berarbeitet.
</p>
<p>
L&#246;sung scheint nun &quot;rund&quot; zu sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1515975596673" ID="ID_1304673048" MODIFIED="1515975599660" TEXT="f&#xfc;r Services">
<node CREATED="1515975622405" ID="ID_962877206" MODIFIED="1515975633971" TEXT="Dependency-Injection-Manager">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1515975635484" ID="ID_225934542" MODIFIED="1538868853937" TEXT="einfache L&#xf6;sungen">
<icon BUILTIN="forward"/>
<node CREATED="1515975650458" ID="ID_1359158691" MODIFIED="1522738941329" TEXT="Serivice by-Name">
<linktarget COLOR="#b6829b" DESTINATION="ID_1359158691" ENDARROW="Default" ENDINCLINATION="1134;-1646;" ID="Arrow_ID_927211935" SOURCE="ID_1305671938" STARTARROW="None" STARTINCLINATION="1359;916;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1515975677462" ID="ID_1848164117" MODIFIED="1515975685784" TEXT="Problem: Lebenszyklus">
<node COLOR="#338800" CREATED="1492094235291" FOLDED="true" HGAP="36" ID="ID_451964727" MODIFIED="1538868745863" TEXT="#1086 unify Depend singleton and instance management" VSHIFT="-20">
<linktarget COLOR="#7188b5" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="2227;-4042;" ID="Arrow_ID_1654818003" SOURCE="ID_871055051" STARTARROW="None" STARTINCLINATION="775;393;"/>
<linktarget COLOR="#5c71a3" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="767;-2073;" ID="Arrow_ID_1454095581" SOURCE="ID_1714114896" STARTARROW="None" STARTINCLINATION="1892;380;"/>
<linktarget COLOR="#8697be" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="200;-562;" ID="Arrow_ID_1211717131" SOURCE="ID_1032947061" STARTARROW="None" STARTINCLINATION="1387;-152;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1520722130803" FOLDED="true" ID="ID_1194364308" MODIFIED="1538868658036" TEXT="Anforderungen">
<icon BUILTIN="yes"/>
<node CREATED="1520722192387" ID="ID_1178804552" MODIFIED="1520722204325" TEXT="leicht zu verwenden">
<node CREATED="1520722210416" ID="ID_18853847" MODIFIED="1520722214920" TEXT="access by-name"/>
<node CREATED="1520722205225" ID="ID_187805501" MODIFIED="1520722209444" TEXT="klare einfache Syntax"/>
<node CREATED="1520722223159" ID="ID_1464262858" MODIFIED="1520722243728" TEXT="geringer Overhead beim Zugriff"/>
</node>
<node CREATED="1520722250315" ID="ID_1739587251" MODIFIED="1520722257494" TEXT="Standard-Fall: Singleton">
<node CREATED="1520722258346" ID="ID_601560365" MODIFIED="1520722263109" TEXT="meint: lazy initialisation"/>
</node>
<node CREATED="1520722285614" ID="ID_243579470" MODIFIED="1520722297840" TEXT="rekonfigurierbar als Service">
<node CREATED="1520722553009" ID="ID_186796738" MODIFIED="1520722562724" TEXT="Service-Instanz kontrolliert Lebenszyklus"/>
<node CREATED="1520722565023" ID="ID_705029613" MODIFIED="1520722569219" TEXT="kann geschlossen werden"/>
</node>
<node CREATED="1520722582981" ID="ID_412048061" MODIFIED="1520722588312" TEXT="Konfigurierbarkeit" VGAP="2">
<node CREATED="1520722616336" ID="ID_609325041" MODIFIED="1520722635842" TEXT="Policy">
<node CREATED="1520722600227" ID="ID_1619106434" MODIFIED="1520722604870" TEXT="klar"/>
<node CREATED="1520722606698" ID="ID_1509953000" MODIFIED="1520722608430" TEXT="sicher"/>
<node CREATED="1520722594371" ID="ID_1430939011" MODIFIED="1520722647022" TEXT="ad hoc"/>
</node>
<node CREATED="1520722662066" ID="ID_1398252383" MODIFIED="1520722668845" TEXT="Eigenschaften">
<node CREATED="1520722689638" ID="ID_555318445" MODIFIED="1520722702296" TEXT="Service"/>
<node CREATED="1520723536370" ID="ID_98564224" MODIFIED="1520723551009" TEXT="Mockbarkeit"/>
<node CREATED="1520722720322" ID="ID_1574090447" MODIFIED="1520722762564" TEXT="Implementierung"/>
</node>
<node CREATED="1521081597008" FOLDED="true" HGAP="23" ID="ID_198915567" MODIFIED="1538868640692" TEXT="Design-Schlu&#xdf;folgerungen" VSHIFT="11">
<icon BUILTIN="info"/>
<node CREATED="1521081661071" ID="ID_500707872" MODIFIED="1533608414048" TEXT="L&#xf6;sung-1">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
war im Einsatz seit Beginn der Lumiera-Projektes.
</p>
<p>
Wurde aufgegeben da
</p>
<ul>
<li>
die Policies komplexe L&#246;sungsvarianten implementierten, die nie gebraucht wurden
</li>
<li>
die Implementierung einen t&#252;ckischen Fehler in CLang aufgedeckt hat
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1521081684036" ID="ID_1402765741" MODIFIED="1521081692822" TEXT="Polycy-based"/>
<node CREATED="1521081693419" ID="ID_889786982" MODIFIED="1521081703773" TEXT="Spezialisierung des Depend-Templates"/>
<node CREATED="1521081709169" ID="ID_390237547" MODIFIED="1521081723794" TEXT="ein zentraler Header, wird per depend.hpp includiert"/>
<node CREATED="1521081724766" ID="ID_1002030069" MODIFIED="1521081739408" TEXT="erfordert Forwards aller zu spezialisierenden Payload-Typen"/>
</node>
<node CREATED="1521081775631" ID="ID_1326847098" MODIFIED="1533608414048" TEXT="L&#xf6;sung-2">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Im Einsatz seit der Behebung des CLang-Problems bis heute (3/2018).
</p>
<p>
Wird nun aufgegeben, da sich auf dieser Basis keine DI implementieren l&#228;&#223;t,
</p>
<p>
welche auf einem Service mit explizitem Lebenszyklus beruht.
</p>
<p>
Au&#223;erdem stellte sich diese L&#246;sung als ziemlich fragil heraus
</p>
<p>
und ben&#246;tigt diverse Laufzeit-Konsistenzchecks, die den Implementierungscode schwer lesbar machen
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1521081796836" ID="ID_1599810209" MODIFIED="1521081803975" TEXT="Zuweisung eines Factory-Funktors"/>
<node CREATED="1521082335930" ID="ID_1689932476" MODIFIED="1521082347044" TEXT="via Depend-Instanz-Initialisierung"/>
<node CREATED="1521082503275" ID="ID_230807085" MODIFIED="1521082510286" TEXT="erst zur Laufzeit"/>
<node CREATED="1521082510738" ID="ID_1074113096" MODIFIED="1521082525452" TEXT="jederzeit und an beliebiger Stelle m&#xf6;glich"/>
<node CREATED="1521082548173" ID="ID_1948451513" MODIFIED="1521082559567" TEXT="Konsistenz nur per Laufzeit-Check"/>
<node CREATED="1521082560611" ID="ID_1943270534" MODIFIED="1521082576132" TEXT="fragil da von Init-Ordnung abh&#xe4;ngig"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1521082621363" ID="ID_1344462005" MODIFIED="1538868598480" TEXT="L&#xf6;sung-NEU">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1521082670076" ID="ID_916083959" MODIFIED="1521160630521" TEXT="geeignete Technik gesucht">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1521082703384" FOLDED="true" ID="ID_510028220" MODIFIED="1533608416343" TEXT="Anforderungen / W&#xfc;nsche">
<icon BUILTIN="idea"/>
<node CREATED="1521082629322" ID="ID_1026313608" MODIFIED="1521082657826" TEXT="Storage und Zugriffs-Steuerung in einem Modul zusammen"/>
<node CREATED="1521083235390" ID="ID_816115467" MODIFIED="1521153348286" TEXT="Konfiguration ad hoc, am Ort des Service-Providers"/>
<node CREATED="1521083250124" ID="ID_914104558" MODIFIED="1521154409699" TEXT="Optional per Mix-In an die Provider-Instanz gebunden"/>
<node CREATED="1521083332673" ID="ID_1445046036" MODIFIED="1521083346179" TEXT="tempor&#xe4;r global schattierbar f&#xfc;r Test-Mocking"/>
<node CREATED="1521083598077" ID="ID_1129579564" MODIFIED="1521083604836" TEXT="Problem Konsistenz">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1521158992344" ID="ID_985106186" MODIFIED="1538868483324" TEXT="Fazit">
<icon BUILTIN="forward"/>
<node CREATED="1521159000968" ID="ID_1381648131" MODIFIED="1521159186533">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Bei <i>diesem</i>&#160;Wunsch-Profil bleibt nur eine Variante von <b>L&#246;sung-2</b>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn nur eine dynamische Laufzeit-Factory erm&#246;glicht, <i>jederzeit</i>&#160; den Konstruktionsmodus zu wechseln
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1521159238935" ID="ID_1109622706" MODIFIED="1521159663752" TEXT="Ein Instanz-Pointer ist zwingend notwendig und auch besser">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn nur ein Instanz-Pointer kann umgebogen oder auf NULL zur&#252;ckgesetzt werden.
</p>
<p>
Der einzige Ausweg aus diesem Dilemma w&#228;re eine statische L&#246;sung,
</p>
<p>
in der bereits durch den #include von lib/depend.hpp endg&#252;ltig klar w&#228;re,
</p>
<p>
was f&#252;r eine Art von Dependency-Factory zum Einsatz kommen soll. Denn nur auf <i>diesem</i>
</p>
<p>
Weg k&#246;nnte der Optimiser unmittelbar auf eine Singleton-Instanz im statischen Speicher
</p>
<p>
zugreifen, nach einem Check auf ein atomic&lt;bool&gt;.
</p>
<p>
</p>
<p>
Eine solche statische L&#246;sung allerdings widerspricht nicht nur meinen W&#252;nschen,
</p>
<p>
sondern w&#228;re auch architektonisch ung&#252;nstig, denn dadurch
</p>
<ul>
<li>
entsteht eine zentrale DI-Konfiguration
</li>
<li>
erfolgt eine R&#252;ckverkopplung von lib/depend.hpp auf die Applikations-Struktur
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1521159870784" ID="ID_1588722588" MODIFIED="1521160019955" TEXT="der Zugang zur DependencyFactory ist stets ein virtueller Funktionsaufruf">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn er mu&#223; komplett generisch sein, und lib/depend.hpp darf keinerlei Kenntnis
</p>
<p>
&#252;ber die konkrete DependencyFactory voraussetzen. Denn sonst w&#252;rden wir die
</p>
<p>
Freiheit der dynamischen Laufzeit-Konfiguration verlieren.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521160020971" ID="ID_1097297428" MODIFIED="1521160553255" TEXT="Deshalb sollte die Factory konventionell implementiert werden, nicht als Lambda">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn ein Lambda kann in dieser Lage grunds&#228;tzlich keinen optimierungs-Vorteil bringen,
</p>
<p>
und die konventionelle L&#246;sung hat demgegen&#252;ber den Vorteil, da&#223; sie Struktur und Kontrakt explizit macht.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521160107759" ID="ID_669924852" MODIFIED="1521239034598" TEXT="Das Konsistenz-Problem ist in Wirklichkeit ein Architekturproblem">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn es l&#228;uft darauf hinaus, da&#223; die Nutzung eines Dienstes zwar <i>on demand</i>&#160;erfolgt,
</p>
<p>
jedoch <i>stets erst nach</i>&#160;seiner Bereitstellung. So etwas l&#228;&#223;t sich niemals &#252;ber einzelne
</p>
<p>
technische Einrichtungen l&#246;sen, denn es ist eine Frage des Aufbaues der gesamten Applikation.
</p>
<p>
Es gibt hierf&#252;r nur zwei L&#246;sungswege
</p>
<ul>
<li>
dynamisch: man definiert alle Abh&#228;ngigkeiten durch Regeln und zieht das System nach Bedarf konsistent hoch, was bedingt, da&#223; <i>alle </i>Abh&#228;ngigkeiten &#252;ber diesen Mechanismus laufen m&#252;ssen
</li>
<li>
statisch: man strukturiert das System so, da&#223; Nutzer erst nach dem Hochfahren der von ihnen ben&#246;tigten Subsysteme aktiv sein k&#246;nnen
</li>
</ul>
</body>
</html></richcontent>
<linktarget COLOR="#a9c1bb" DESTINATION="ID_669924852" ENDARROW="Default" ENDINCLINATION="795;125;" ID="Arrow_ID_949036001" SOURCE="ID_1505788760" STARTARROW="None" STARTINCLINATION="779;51;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1520722136029" FOLDED="true" ID="ID_1922898574" MODIFIED="1538868655666" TEXT="Problem: double checked locking">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1520725664365" ID="ID_1453945091" MODIFIED="1520725671423" TEXT="was bringt C++11?">
<node CREATED="1520725673123" ID="ID_574000501" LINK="http://preshing.com/20130930/double-checked-locking-is-fixed-in-cpp11/" MODIFIED="1520726129608" TEXT="Jeff Preshings: double-checked-locking-is-fixed-in-cpp11"/>
<node CREATED="1520726409894" ID="ID_1296403824" LINK="http://www.modernescpp.com/index.php/thread-safe-initialization-of-a-singleton" MODIFIED="1520726425377" TEXT="Rainer Grimm: thread local initialization of singletons"/>
</node>
<node COLOR="#338800" CREATED="1520726342863" ID="ID_1875729983" MODIFIED="1531584013606" TEXT="moderne L&#xf6;sung">
<icon BUILTIN="button_ok"/>
<node CREATED="1520726350894" ID="ID_47446040" MODIFIED="1522421521283" TEXT="Atomics">
<icon BUILTIN="button_ok"/>
<node CREATED="1522421526272" ID="ID_406901713" MODIFIED="1522421532577" TEXT="Performance sehr gut"/>
<node CREATED="1522421537122" ID="ID_1012365029" MODIFIED="1522421553659" TEXT="nahe an einem direkten lokalen Zugriff"/>
<node CREATED="1522421554271" ID="ID_1930807074" MODIFIED="1522421564034" TEXT="etwa halb so schnell wie DCL alleine"/>
<node CREATED="1522421564582" ID="ID_596046075" MODIFIED="1522421575992" TEXT="Zugriff etwa 1 Nanosekunde">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1520726354878" ID="ID_1241761015" MODIFIED="1522421518773" TEXT="vorgeschaltetes thread_local">
<icon BUILTIN="button_cancel"/>
<node CREATED="1520726364612" ID="ID_818685184" MODIFIED="1520726369804" TEXT="Performance nicht klar">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1521160832611" ID="ID_1479783938" MODIFIED="1521161094120">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>scheidet</i>&#160;f&#252;r unser Nutzungsmuster aus
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn es bedutet effektiv, da&#223; viele Instanz-Zeiger &quot;herumfliegen&quot;,
</p>
<p>
welche man in einer zentralen Registry erfassen m&#252;&#223;te, um sie bei Bedarf
</p>
<p>
wieder auf NULL zur&#252;cksetzen zu k&#246;nnen.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1520722149761" ID="ID_39179906" MODIFIED="1531584013616" TEXT="neue Implementierung" VGAP="6">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521160662691" FOLDED="true" ID="ID_1475127406" MODIFIED="1538868666397" TEXT="Design Syntax und Nutzungsmuster">
<icon BUILTIN="button_ok"/>
<node CREATED="1521161117092" ID="ID_672223000" MODIFIED="1521161119935" TEXT="Syntax">
<node CREATED="1521161120859" ID="ID_1236102866" MODIFIED="1521161279265" TEXT="Depend&lt;Bla&gt; instance"/>
<node CREATED="1521161130050" ID="ID_1706757665" MODIFIED="1521161170232" TEXT="instance().doIt()"/>
<node CREATED="1521161171324" ID="ID_744864215" MODIFIED="1521330199058" TEXT="DependInject&lt;Bla&gt;::useSingleton&lt;UnterBla&gt;"/>
<node CREATED="1521161572133" ID="ID_1327949928" MODIFIED="1521330165247" TEXT="DependInject&lt;Bla&gt;::ServiceInstance&lt;UnterBla&gt; service{p1, p2, p3}"/>
<node CREATED="1521161634205" ID="ID_619508229" MODIFIED="1521330190739" TEXT="DependInject&lt;Bla&gt;::Local&lt;UnterBla&gt; mock"/>
<node CREATED="1521161919893" ID="ID_1606842354" MODIFIED="1521161929704" TEXT="mock-&gt;doItSpecial()"/>
</node>
<node CREATED="1521207954859" ID="ID_631339002" MODIFIED="1521418307590" TEXT="Analyse">
<icon BUILTIN="idea"/>
<node CREATED="1521208242178" ID="ID_539882602" MODIFIED="1533608414052" TEXT="erforderliche Mechanismen">
<icon BUILTIN="info"/>
<node COLOR="#338800" CREATED="1521208254376" FOLDED="true" ID="ID_1933406851" MODIFIED="1533608416347" TEXT="Singleton">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521208339124" ID="ID_287433738" MODIFIED="1521696567487" TEXT="Closure &#xfc;ber konkreten Ctor">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208339124" ID="ID_826329078" MODIFIED="1521696572039" TEXT="(optional)Closure mit speziellen Argumenten">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209708336" ID="ID_1667188609" MODIFIED="1521332921903" TEXT="Storage f&#xfc;r UnterBla-Instanz bereitstellen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208380663" ID="ID_1434723425" MODIFIED="1521332927022" TEXT="neuen lazy-init-Service-Zugang in Depend&lt;Bla&gt; installieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208395181" ID="ID_1161468794" MODIFIED="1521332931094" TEXT="Check, ob der vorher dort bestehende Zugang bereits verwendet wurde">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208451621" ID="ID_1429591553" MODIFIED="1521332932846" TEXT="Exception aus DependInject, falls ja">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521208257336" FOLDED="true" ID="ID_1129640741" MODIFIED="1533608416349" TEXT="ServiceInstance">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521208859989" ID="ID_549061661" MODIFIED="1521387920055" TEXT="Lazy-Init-Factory deaktivieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208793630" ID="ID_1357481546" MODIFIED="1521335430941" TEXT="Service-Zugang in Depend&lt;Bla&gt; injizieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208889297" ID="ID_214019029" MODIFIED="1521335434588" TEXT="Lebenszyklus-Koppelung">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. Service-Zugang wird automatisch geschlossen,
</p>
<p>
wenn die DependInject-Instanz stirbt
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208943105" ID="ID_295121984" MODIFIED="1521335440371" TEXT="Ownership an &#xfc;bergebener Service-Impl &#xfc;bernehmen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521208724943" ID="ID_1527628667" MODIFIED="1521335442003" TEXT="smart-ptr-artiger Zugriff auf die Service-Impl">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521208339124" FOLDED="true" ID="ID_1092066450" MODIFIED="1533608416020" TEXT="(optional)Closure &#xfc;ber konkreten Ctor">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521688310369" ID="ID_1697840327" MODIFIED="1521688369496" TEXT="sinnlos">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sie werden ja sofort ausgewertet, da die Service-Instanz unmittelbar gebaut wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1521688321599" ID="ID_764253251" MODIFIED="1521688339230" TEXT="stattdessen: ctor-Argumente forwarden">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521208261887" FOLDED="true" ID="ID_384054163" MODIFIED="1533608416352" TEXT="Local">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521209044203" ID="ID_1994153994" MODIFIED="1521696576989" TEXT="(optional)Closure mit speziellen Argumenten ">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209708336" ID="ID_1870723126" MODIFIED="1521411844636" TEXT="Storage f&#xfc;r UnterBla-Instanz bereitstellen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209447572" ID="ID_1106858165" MODIFIED="1521411847148" TEXT="bestehenden Service-Zugang aus Depend&lt;Bla&gt; beiseite speichern">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209547606" ID="ID_1693604174" MODIFIED="1521411853636" TEXT="tempor&#xe4;r neuen Service-Zugang in Depend&lt;Bla&gt; installieren, an erzeugte Closure delegierend">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209759585" FOLDED="true" ID="ID_267047467" MODIFIED="1533608416021" TEXT="Lebenszyklus-Koppelung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521209811802" ID="ID_1712617923" MODIFIED="1521411860363" TEXT="f&#xfc;r die UnterBla-Instanz">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521209827775" ID="ID_280216675" MODIFIED="1521411861265" TEXT="f&#xfc;r den tempor&#xe4;r installierten Service-Zugang">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521208724943" ID="ID_221402501" MODIFIED="1521411863017" TEXT="smart-ptr-artiger Zugriff auf die Service-Impl">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521209904013" FOLDED="true" ID="ID_1098048607" MODIFIED="1533608416024" STYLE="fork" TEXT="debug/Kontroll-API">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521209958014" ID="ID_1638584681" MODIFIED="1521411938195" TEXT="Lebenszustand">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521209945287" FOLDED="true" ID="ID_42798820" MODIFIED="1533608415691" TEXT="Erzeugen/Zerst&#xf6;ren der Instanz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521411917770" ID="ID_50731939" MODIFIED="1521411938195" TEXT="YAGNI"/>
</node>
<node CREATED="1521210051457" ID="ID_1794637059" MODIFIED="1521411938195" TEXT="explizites Deinstallieren">
<icon BUILTIN="button_cancel"/>
</node>
</node>
</node>
</node>
<node CREATED="1521213011289" ID="ID_1360216253" MODIFIED="1533608414058" TEXT="Vereinheitlichung">
<icon BUILTIN="idea"/>
<node CREATED="1521213017168" FOLDED="true" ID="ID_1734833663" MODIFIED="1533608416354" TEXT="alle Varianten">
<node CREATED="1521213036670" ID="ID_1288760048" MODIFIED="1521416387077" TEXT="sind move-only">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521213116611" ID="ID_1639434185" MODIFIED="1521213127773" TEXT="enthalten eine Closure &#xfc;ber einen konkreten Ctor"/>
<node CREATED="1521213855997" ID="ID_1959805856" MODIFIED="1521213868751" TEXT="installieren eine mit dieser parametrisierte Factory"/>
<node CREATED="1521236923444" FOLDED="true" ID="ID_909632246" MODIFIED="1533608416026" TEXT="irgendwie...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1521236930715" ID="ID_1673303474" MODIFIED="1521236948604" TEXT="managen alle die Service-Instanz"/>
<node CREATED="1521236972917" ID="ID_513518069" MODIFIED="1521236991993">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>aber</b>&#160;Lebenszyklus ist an die Factory gebunden
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521236997978" ID="ID_937624268" MODIFIED="1521237012251" TEXT="...und im Fall Singleton lebt die Factory l&#xe4;nger"/>
</node>
</node>
<node CREATED="1521237050866" FOLDED="true" ID="ID_306994173" MODIFIED="1533608416355" TEXT="die Factory">
<node CREATED="1521237057169" FOLDED="true" ID="ID_1684411297" MODIFIED="1533608416027" TEXT="ist stets stateless">
<node CREATED="1521237078919" ID="ID_576191440" MODIFIED="1521237088921" TEXT="Zustand steckt im instance-Ptr"/>
<node CREATED="1521237089413" ID="ID_961860289" MODIFIED="1521237111238" TEXT="Zustand steckt im DependInject-Lebenszyklus"/>
</node>
<node CREATED="1521237387044" ID="ID_1004256215" MODIFIED="1521237394199" TEXT="speichert aber eine konkrete Closure"/>
<node CREATED="1521237410713" ID="ID_1848566975" MODIFIED="1521237417420" TEXT="der default-Fall k&#xf6;nnte generisch sein"/>
</node>
<node CREATED="1521238550267" FOLDED="true" ID="ID_722062331" MODIFIED="1533608416356" TEXT="Ort f&#xfc;r Storage">
<node CREATED="1521238557210" FOLDED="true" ID="ID_674365093" MODIFIED="1533608416029" TEXT="f&#xfc;r die Factory">
<node CREATED="1521238571832" ID="ID_53152012" MODIFIED="1521238597166" TEXT="Heap">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1521238576920" FOLDED="true" ID="ID_1251870411" MODIFIED="1533608415697" TEXT="in DependInject">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521238764190" ID="ID_1859795284" MODIFIED="1521238777840" TEXT="f&#xfc;r zwei F&#xe4;lle ist das die nat&#xfc;rliche Wahl"/>
<node CREATED="1521238796793" ID="ID_1719458168" MODIFIED="1521238815844" TEXT="den ersten Fall (Singleton) quetschen wir hier mit rein">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1521242379731" ID="ID_1396082906" MODIFIED="1521242418936" TEXT="erzwingt lokalen Typ oder opaque holder">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1521240566398" FOLDED="true" ID="ID_1596629515" MODIFIED="1533608415699" TEXT="in den Trampolin-Funktionen">
<icon BUILTIN="button_ok"/>
<node CREATED="1521242426269" ID="ID_256868222" MODIFIED="1521242434728" TEXT="normalerweise inline"/>
<node CREATED="1521242435292" ID="ID_503349041" MODIFIED="1521242454674" TEXT="automatisch heap-alloziert f&#xfc;r komplexe closure">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1521238641935" FOLDED="true" ID="ID_1638918713" MODIFIED="1533608416031" TEXT="Factory-Trampolin">
<node CREATED="1521238662196" ID="ID_1029621449" MODIFIED="1521238671488" TEXT="Heap">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1521238665347" FOLDED="true" ID="ID_1310408215" MODIFIED="1533608415701" TEXT="statisch">
<icon BUILTIN="button_ok"/>
<node CREATED="1521238747512" ID="ID_183342291" MODIFIED="1521238753603" TEXT="bietet sich an..."/>
<node CREATED="1521238754287" ID="ID_1930878495" MODIFIED="1521238758794" TEXT="pa&#xdf;t zum Design-Stil"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1521238885741" HGAP="116" ID="ID_378163884" MODIFIED="1521238895249" TEXT="Stil-Fragen" VSHIFT="-29">
<node CREATED="1521238918577" ID="ID_592274908" MODIFIED="1521238925476" TEXT="Wunsch: unscheinbar-elegant"/>
<node CREATED="1521238926208" ID="ID_1895053354" MODIFIED="1521238933626" TEXT="explizite &quot;Maschinerie&quot; vermeiden"/>
<node CREATED="1521239771475" ID="ID_658740954" MODIFIED="1521239917171" TEXT="Storage ist wenn m&#xf6;glich statisch"/>
<node BACKGROUND_COLOR="#e3d49b" COLOR="#990000" CREATED="1521238998374" ID="ID_1505788760" MODIFIED="1521239221405" TEXT="keine Architektur-Fragen technisch &quot;l&#xf6;sen&quot;">
<arrowlink COLOR="#a9c1bb" DESTINATION="ID_669924852" ENDARROW="Default" ENDINCLINATION="795;125;" ID="Arrow_ID_949036001" STARTARROW="None" STARTINCLINATION="779;51;"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1521239059741" ID="ID_1063831478" MODIFIED="1533608414063" TEXT="Grenzf&#xe4;lle ausklammern">
<node CREATED="1521239073363" ID="ID_1392431590" MODIFIED="1521239273497" STYLE="fork" TEXT="Shutdown von Singletons">
<font NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1521239466149" ID="ID_178901788" MODIFIED="1521239728744" TEXT="Local schattiert Lebensende">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Folgendes Szenario ignorieren wir:
</p>
<ul>
<li>
eine Dependency ist als Service konfiguriert
</li>
<li>
f&#252;r einen Testmock wird eine Local-Konfiguration dar&#252;bergelegt
</li>
<li>
der Service wechselt seinen Lebenszyklus-Status (aktiv/inaktiv)
</li>
</ul>
<p>
&#10233; der Service zerschie&#223;t den Local, oder der Local restauriert am Ende den bereits toten Service.
</p>
<p>
Har Har Har! Selber schuld wer sowas macht.
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521169086441" ID="ID_284471203" MODIFIED="1522557526161" TEXT="Design">
<icon BUILTIN="button_ok"/>
<node CREATED="1521240056932" ID="ID_1189728630" MODIFIED="1533608414064" TEXT="Strukturen">
<node CREATED="1521240105285" FOLDED="true" ID="ID_711335043" MODIFIED="1533608416358" TEXT="Dependency-Factory">
<node CREATED="1521240317600" FOLDED="true" ID="ID_1626104494" MODIFIED="1533608416034" TEXT="Design-1">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521240110948" ID="ID_219745040" MODIFIED="1521240117087" TEXT="ist ein Interface"/>
<node CREATED="1521240117611" ID="ID_786865088" MODIFIED="1521240124694" TEXT="nicht getemplated"/>
<node CREATED="1521240284429" ID="ID_1132898054" MODIFIED="1521240294807" TEXT="eingebettetes getyptes Trampolin"/>
<node CREATED="1521240298267" ID="ID_116565565" MODIFIED="1521240312364" TEXT="Folge: static_cast nach Factory-Aufruf"/>
</node>
<node CREATED="1521240336717" FOLDED="true" ID="ID_468626388" MODIFIED="1533608416036" TEXT="Design-2">
<icon BUILTIN="button_ok"/>
<node CREATED="1521241524730" ID="ID_267557752" MODIFIED="1521241530652" TEXT="ist generisches Front-End"/>
<node CREATED="1521241625115" ID="ID_469205839" MODIFIED="1521241635214" TEXT="bietet API zum (re)Konfigurieren"/>
<node CREATED="1521241544559" FOLDED="true" ID="ID_1174783081" MODIFIED="1533608415703" TEXT="nur eine Funktion konfigurierbar">
<node CREATED="1521241553590" ID="ID_1087180465" MODIFIED="1521241560816" TEXT="entweder ins Trampolin eingebettet"/>
<node CREATED="1521241561380" ID="ID_437866764" MODIFIED="1521241569823" TEXT="oder als Funktionszeiger"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1521245885376" ID="ID_1336783261" MODIFIED="1521416492280" TEXT="k&#xf6;nnte komplett wegfallen">
<linktarget COLOR="#b4a9c1" DESTINATION="ID_1336783261" ENDARROW="Default" ENDINCLINATION="224;0;" ID="Arrow_ID_37940927" SOURCE="ID_870619413" STARTARROW="None" STARTINCLINATION="83;-7;"/>
<icon BUILTIN="stop-sign"/>
</node>
<node COLOR="#338800" CREATED="1522389217216" FOLDED="true" ID="ID_1137026613" MODIFIED="1533608416038" TEXT="bekommt neue Rolle">
<icon BUILTIN="button_ok"/>
<node CREATED="1522389224063" ID="ID_913743224" MODIFIED="1522389235913" TEXT="speichert ctor und automatischen dtor"/>
<node CREATED="1522389236525" ID="ID_773636278" MODIFIED="1522389243256" TEXT="&#xfc;bernimmt das Managen der Objekte"/>
<node CREATED="1522389243868" ID="ID_104693188" MODIFIED="1522389252479" TEXT="ist interne Schnittstelle zur Konfiguration"/>
</node>
</node>
<node CREATED="1521242246702" FOLDED="true" ID="ID_650712800" MODIFIED="1533608416359" TEXT="DependInject">
<node CREATED="1521242468983" ID="ID_956915310" MODIFIED="1521242481313" TEXT="ist nur ein Lebenszyklus-Manager"/>
<node CREATED="1521242666204" ID="ID_219666575" MODIFIED="1521242758283" TEXT="delegiert an eine funktionale Konfig"/>
<node CREATED="1521242758775" ID="ID_594637783" MODIFIED="1521242762355" TEXT="ist komplett generisch"/>
</node>
<node CREATED="1521242784556" FOLDED="true" ID="ID_1052722676" MODIFIED="1533608416361" TEXT="Konfig-Selektor">
<node CREATED="1521242793458" ID="ID_1174857326" MODIFIED="1521242802085" TEXT="baut die Closure"/>
<node CREATED="1521242805641" ID="ID_68866373" MODIFIED="1521242811164" TEXT="baut die funktionale Konfig"/>
<node CREATED="1521242824239" ID="ID_1013563756" MODIFIED="1521242834313" TEXT="inline-wegwerf-Objekt"/>
</node>
</node>
<node CREATED="1521240053852" ID="ID_666003564" MODIFIED="1533608414069" STYLE="fork" TEXT="Detail-Fragen">
<icon BUILTIN="button_ok"/>
<node COLOR="#990000" CREATED="1521169099047" FOLDED="true" ID="ID_1183392158" MODIFIED="1533608416361" TEXT="DependencyFactory-Rahmenklasse">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521416462342" ID="ID_1333178845" MODIFIED="1521418281285" TEXT="f&#xe4;llt weg"/>
<node CREATED="1521416471820" ID="ID_870619413" MODIFIED="1521418281285" TEXT="wir arbeiten direkt mit Lambdas">
<arrowlink COLOR="#b4a9c1" DESTINATION="ID_1336783261" ENDARROW="Default" ENDINCLINATION="224;0;" ID="Arrow_ID_37940927" STARTARROW="None" STARTINCLINATION="83;-7;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521169111957" ID="ID_1706232823" MODIFIED="1521418281285" TEXT="Ort f&#xfc;r den Implementierungs-Pointer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521169130251" ID="ID_1252056818" MODIFIED="1521418281285" TEXT="Zugang f&#xfc;r DependInject">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521324229082" FOLDED="true" ID="ID_1398878858" MODIFIED="1533608416363" TEXT="Storage">
<icon BUILTIN="button_ok"/>
<node CREATED="1521324240124" ID="ID_1099103129" MODIFIED="1521418281285">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
statische Storage ist <i>irgendwie cool</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1521324275919" FOLDED="true" ID="ID_1710451095" MODIFIED="1533608416040" TEXT="sehe aber auch keinen wirklichen Vorteil">
<icon BUILTIN="smiley-neutral"/>
<node CREATED="1521324529228" ID="ID_1786667023" MODIFIED="1521418281285" TEXT="man mu&#xdf; sich nicht um die de-Allokation k&#xfc;mmern"/>
<node CREATED="1521324554465" ID="ID_1577416641" MODIFIED="1521418281285" TEXT="Storage ist garantiert vorhanden, kein out-of-Memory"/>
<node CREATED="1521324668449" ID="ID_1013908061" MODIFIED="1521418281285" TEXT="Meyers Singleton ist elegant und schnell"/>
</node>
<node CREATED="1521324321601" ID="ID_805959606" MODIFIED="1521418281285" TEXT="Nachteil: Storage ist stets belegt, auch wenn nicht notwendig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das gilt im Besonderen f&#252;r eine default-Storage als Singleton.
</p>
<p>
Wofern wir dynamisch konfigurieren (wollen), mu&#223; dieser Default stets statisch bereitgestellt werden,
</p>
<p>
selbst wenn die dynamische Konfiguration so angelegt ist, da&#223; die Storage nie ben&#246;tigt wird
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1521324883035" ID="ID_1438637057" MODIFIED="1521418281285" TEXT="Heap-Allokation k&#xf6;nnte insgesamt einfacher sein">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1521326541575" ID="ID_966508253" MODIFIED="1521418281285" TEXT="umgebaut auf Heap">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521254014422" FOLDED="true" ID="ID_961824675" MODIFIED="1533608416365" TEXT="Meyers Singleton oder explizit ausprogrammieren?">
<icon BUILTIN="help"/>
<node CREATED="1521303577633" ID="ID_1665490706" MODIFIED="1521418281285" TEXT="das w&#xe4;re die &quot;Standard-L&#xf6;sung&quot; f&#xfc;r Singletons"/>
<node CREATED="1521303616675" FOLDED="true" ID="ID_135579041" MODIFIED="1533608416043" TEXT="hier aber nicht sinnvoll...">
<node CREATED="1521303634705" FOLDED="true" ID="ID_433169847" MODIFIED="1533608415704" TEXT="weil wir explizit ein Lock halten m&#xfc;ssen">
<node CREATED="1521303738410" ID="ID_213625497" MODIFIED="1521418281286" TEXT="um den Instanz-Pointer und die Factory zu managen"/>
<node CREATED="1521303749169" ID="ID_762346402" MODIFIED="1521418281286" TEXT="und der Compiler f&#xfc;r Meyers Singleton nochmal ein Lock generiert"/>
</node>
<node CREATED="1521303775845" ID="ID_1256913997" MODIFIED="1521418281286" TEXT="weil wir unsere Singletons ggfs explizit zerst&#xf6;ren wollen"/>
<node CREATED="1521303816879" ID="ID_1463480909" MODIFIED="1521418281286" TEXT="weil wir eine Closure f&#xfc;r den Konstruktor erzeugen wollen"/>
<node CREATED="1521303847923" ID="ID_917362189" MODIFIED="1521418281286" TEXT="weil wir Abstrakte Typen explizit ausschlie&#xdf;en m&#xfc;ssen"/>
</node>
<node CREATED="1521303869768" ID="ID_712811337" MODIFIED="1521418281286" TEXT="all das w&#xe4;re auch mit Meyers Singleton irgendwie hinzubekommen....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...aber dann eben nicht mehr <i>elegant.</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521303905491" ID="ID_1749674332" MODIFIED="1521418281286" TEXT="Fazit: explizit ist besser">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521253797733" FOLDED="true" ID="ID_1640990866" MODIFIED="1533608416367" TEXT="Fehlerbehandlung">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521253803963" ID="ID_100415207" MODIFIED="1521418281286" TEXT="Installation wenn Factory bereits genutzt wurde">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521253831776" FOLDED="true" ID="ID_1332033733" MODIFIED="1533608416046" TEXT="Zugriff auf Service bevor er hochgefahren wurde">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1521253858692" ID="ID_442301762" MODIFIED="1521418281286" TEXT="t&#xfc;ckisch">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1521253867787" ID="ID_662728746" MODIFIED="1521418281286" TEXT="Lifecycle-Handle existiert erst viel sp&#xe4;ter">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1521385652999" FOLDED="true" ID="ID_1974848336" MODIFIED="1533608415707" TEXT="statischer Schutz">
<icon BUILTIN="button_cancel"/>
<node CREATED="1521385660206" FOLDED="true" ID="ID_200575604" MODIFIED="1525124215518" TEXT="fragil">
<icon BUILTIN="stop-sign"/>
<node CREATED="1521385687874" ID="ID_1561975152" MODIFIED="1521418281286" TEXT="C++ kennt keine statische Klassen-Initialisierung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1521385709463" FOLDED="true" ID="ID_713439022" MODIFIED="1525124215436" TEXT="workaround">
<node CREATED="1521385721637" ID="ID_1822970415" MODIFIED="1521418281286" TEXT="Initialisieren eines statischen member">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521385768359" FOLDED="true" ID="ID_1123247553" MODIFIED="1525124215436" TEXT="ist unzuverl&#xe4;ssig">
<node CREATED="1521385782861" ID="ID_1190214158" MODIFIED="1521418281286" TEXT="erfordert non-const member"/>
<node CREATED="1521385787980" ID="ID_81600101" MODIFIED="1521418281286" TEXT="wird vom Compiler wegoptimiert"/>
<node CREATED="1521385795059" ID="ID_1426898485" MODIFIED="1521418281286" TEXT="sofern er Wirkungslosigkeit nachweisen kann...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Und das h&#228;ngt nur von den Umst&#228;nden ab.
</p>
<p>
In einem einfachen statisch gelinkten Executable entfernt gcc die gesamte Variable sogar ohne Optimierung.
</p>
<p>
</p>
<p>
In Zukunft k&#246;nnten Compiler/Linker noch &quot;schlauer&quot; werden...
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1521386182598" ID="ID_1671815821" MODIFIED="1521418281286" TEXT="ist undurchsichtig">
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node CREATED="1521386206627" ID="ID_1928841192" MODIFIED="1521418281286" TEXT="erzeugt eh blo&#xdf; eine Fehlermeldung"/>
<node CREATED="1521386219297" ID="ID_1181038545" MODIFIED="1521418281286" TEXT="...was auch noch beim Hochfahren des Service passieren kann"/>
</node>
<node CREATED="1521386241406" ID="ID_1481722887" MODIFIED="1521418281286" TEXT="es ist ein Architektur-Problem">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521253986491" ID="ID_546204807" MODIFIED="1521418281286" TEXT="Singleton wenn Interfaceklasse abstrakt ist">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522557552545" FOLDED="true" ID="ID_399844845" MODIFIED="1533608416049" TEXT="Zugriff im statischen Shutdown">
<linktarget COLOR="#27a7a7" DESTINATION="ID_399844845" ENDARROW="Default" ENDINCLINATION="-36;283;" ID="Arrow_ID_1430148682" SOURCE="ID_1023585478" STARTARROW="None" STARTINCLINATION="104;0;"/>
<linktarget COLOR="#487bba" DESTINATION="ID_399844845" ENDARROW="Default" ENDINCLINATION="237;509;" ID="Arrow_ID_1393532861" SOURCE="ID_1003385410" STARTARROW="None" STARTINCLINATION="733;-537;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522557562543" ID="ID_442673617" MODIFIED="1522558305695" TEXT="t&#xfc;ckisches Problem">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1522557575925" FOLDED="true" ID="ID_1228603701" MODIFIED="1533608415710" TEXT="Frage: eigenen Basis-Layer im System schaffen?">
<arrowlink COLOR="#af98b6" DESTINATION="ID_736034555" ENDARROW="Default" ENDINCLINATION="2208;-356;" ID="Arrow_ID_1927977085" STARTARROW="None" STARTINCLINATION="448;721;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1522557704291" ID="ID_1761521925" MODIFIED="1522557712303" TEXT="durchdiskutiert und abgelehnt"/>
<node CREATED="1522557712890" ID="ID_898328822" MODIFIED="1522557717398" TEXT="wird sehr kompliziert"/>
<node CREATED="1522557718154" ID="ID_36441623" MODIFIED="1522557725172" TEXT="architektonisch nicht sinnvoll"/>
</node>
<node CREATED="1522557731064" FOLDED="true" ID="ID_164363356" MODIFIED="1533608415714" TEXT="Untersuchung: statische Init">
<icon BUILTIN="idea"/>
<node CREATED="1522557739071" ID="ID_1920814871" MODIFIED="1522557754025" TEXT="verh&#xe4;lt sich tats&#xe4;chlich korrekt lt. Standard"/>
<node CREATED="1522557754877" ID="ID_1831893028" MODIFIED="1522557767223" TEXT="das ClassLock wird erst on-demand erzeugt"/>
<node CREATED="1522557767787" ID="ID_405329609" MODIFIED="1522557791751">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
daher <b>mu&#223;</b>&#160;sein dtor <b>vor</b>&#160;dem dtor von DependencyFactory laufen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522557924661" FOLDED="true" ID="ID_1965837896" MODIFIED="1525124215518" TEXT="konsistent?">
<node CREATED="1522557833985" ID="ID_449005089" MODIFIED="1522557848371" TEXT="Bis zum dtor-Aufruf ist alles koh&#xe4;rent"/>
<node CREATED="1522557848983" ID="ID_612135780" MODIFIED="1522557867537" TEXT="da man nur via lib::Depend reinkommt..."/>
<node CREATED="1522557868197" ID="ID_497122193" MODIFIED="1522557918362" TEXT="wird der statische dtor nach dem letzten zugreifenden Kontext laufen"/>
<node CREATED="1522557968159" ID="ID_838129103" MODIFIED="1522557989248" TEXT="Aber ein solcher Aufruf kann selber in eine andere Translation-Unit umgeleitet worden sein"/>
<node CREATED="1522557990388" ID="ID_1629893682" MODIFIED="1522558003636" TEXT="kann daher niemals wasserdicht sein">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
<node CREATED="1522557828066" FOLDED="true" ID="ID_1861289683" MODIFIED="1533608415717" TEXT="Fazit">
<icon BUILTIN="forward"/>
<node COLOR="#338800" CREATED="1522558005906" ID="ID_1914654214" MODIFIED="1522558192841" TEXT="re-entrance w&#xe4;hrend dem dtor-Aufruf eigens behandeln">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn w&#228;hrend dem dtor existiert das Lock nicht mehr.
</p>
<p>
Man kann aber die Logik so umordnen, da&#223; der instance-Ptr nach dem eigentlichen Deleter auf NULL gesetzt wird.
</p>
<p>
Das ist <b>nicht threadsafe</b>, was aber hier akzeptabel ist (Shutdown l&#228;uft &#252;berwiegend
</p>
<p>
single-threaded, sofern man keine thread_locals einsetzt. Aber diese werden vor alle anderen
</p>
<p>
Destruktoren gesequenced. Sollte passen.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522558025471" ID="ID_408630768" MODIFIED="1522558194504" TEXT="danach spezielle Sperre einbauen, da die Factory nicht mehr existiert">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522558045236" ID="ID_269006227" MODIFIED="1522558059135" TEXT="solche Konsistenz-Checks sind wertvoll">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521160691830" FOLDED="true" ID="ID_53329830" MODIFIED="1538868707720" TEXT="Implementierung ausf&#xfc;hren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521418559868" ID="ID_592269917" MODIFIED="1521688403021" TEXT="Depend&lt;SRV&gt; Front-End">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521418571594" ID="ID_1432227459" MODIFIED="1521688407751" TEXT="DependInject&lt;SRV&gt; ersetzt dependency-factory.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521418598463" ID="ID_237484313" MODIFIED="1531584013617" TEXT="Objekterzeugung erweitern">
<icon BUILTIN="button_ok"/>
<node COLOR="#990000" CREATED="1521418618052" ID="ID_1253147848" MODIFIED="1533608414078" TEXT="auf beliebige Argumente">
<icon BUILTIN="stop-sign"/>
<node CREATED="1521688471643" ID="ID_1037697154" MODIFIED="1521688504558" TEXT="gef&#xe4;hrlich wenn Objekterzeugung lazy">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1521688505734" ID="ID_1656307893" MODIFIED="1521688520760" TEXT="der Client sieht ja nicht, wie wir die Argumente speichern"/>
<node CREATED="1521688524620" ID="ID_480802115" MODIFIED="1521688537015" TEXT="sinnvoll nur im Fall Service-Instanz">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521418627130" ID="ID_206705145" MODIFIED="1533608414078" TEXT="auf allgemeine Closures">
<icon BUILTIN="button_ok"/>
<node CREATED="1521696315169" ID="ID_914761003" MODIFIED="1521696326988" TEXT="ob das wohl geht...."/>
<node CREATED="1521696477035" ID="ID_1232450528" MODIFIED="1521696510682" TEXT="Verdammter Mist! Wird die Closure nun kopiert oder geMOVEd?"/>
<node COLOR="#338800" CREATED="1521696673440" ID="ID_1408713510" MODIFIED="1521751343055" TEXT="compile-time Checks mal verifizieren">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521696334383" FOLDED="true" ID="ID_1627167666" MODIFIED="1533608416368" TEXT="gef&#xe4;llt mir nicht wirklich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn nun wird das &quot;singleton&quot; schon ziemlich gehaltlos,
</p>
<p>
und es ist einigerma&#223;en undurchsichtig, wo nun die Instanz erzeugt wird.
</p>
<p>
</p>
<p>
Allerdings gibt es auch kein stichhaltiges Argument, dieses Feature<i>&#160;nicht</i>&#160;zu implementieren.
</p>
<p>
Es ist halt einfach nahheliegend, da&#223; man mal eine Subklasse mit abweichenden Parametern
</p>
<p>
konstruieren wollen k&#246;nnte, und es ist von der Implementierung her &quot;quasi geschenkt&quot;.
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
<node COLOR="#338800" CREATED="1522389159792" ID="ID_1574961457" MODIFIED="1522389181299" TEXT="besserer Name">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522389172206" ID="ID_14747848" MODIFIED="1522389177726" TEXT="komplettes Refactoring">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522389165095" ID="ID_533975153" MODIFIED="1522389170272" TEXT="DependencyFactory">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521433938944" ID="ID_546086969" MODIFIED="1531584013622" TEXT="double-checked-locking">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521433948534" ID="ID_176845865" MODIFIED="1533608414081" TEXT="umstellen auf atomics">
<icon BUILTIN="button_ok"/>
<node CREATED="1521779239745" FOLDED="true" ID="ID_1772115642" MODIFIED="1533608416369">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Thema</u>: Memory access order constraints
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#5a6caa" DESTINATION="ID_1416813337" ENDARROW="Default" ENDINCLINATION="-1755;162;" ID="Arrow_ID_751165448" STARTARROW="None" STARTINCLINATION="-4287;-237;"/>
<icon BUILTIN="info"/>
<node CREATED="1521783335195" ID="ID_594004742" LINK="http://en.cppreference.com/w/cpp/atomic/memory_order" MODIFIED="1521783351104" TEXT="CPP-Reference"/>
</node>
<node CREATED="1521783156564" ID="ID_1193354198" MODIFIED="1521783219950">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#45317b">Grundidee</font>: <b>synchronizes-with</b>-Beziehung herstellen <i>auf Guard-Variable</i>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521788423421" FOLDED="true" ID="ID_992901826" MODIFIED="1533608416371" TEXT="use-cases">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="forward"/>
<node CREATED="1521788428588" FOLDED="true" ID="ID_1454492096" MODIFIED="1533608416050" TEXT="lazy init">
<node CREATED="1521788443562" ID="ID_699722245" MODIFIED="1521788611886" TEXT="acquire-release ist &quot;ausreichend&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das meint zweierlei
</p>
<ul>
<li>
wir brauchen keine volle sequentielle Konsistenz
</li>
<li>
eigentlich w&#252;rde <i>consume</i>&#160;statt <i>acquire</i>&#160;gen&#252;gen,<br />aber wir verzichten auf diesen ehr theoretischen Performance-Gewinn,<br />welcher nur relevant w&#228;re, wenn wir auf ARM einen modernen Compiler einsetzen
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1521788638623" ID="ID_16016457" MODIFIED="1521788679409">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
essentiell ist, im Mutex-gesch&#252;tzten Bereich
</p>
<p>
auf einer tempor&#228;ren lokalen Instanz-Variable zu arbeiten
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1521788695911" FOLDED="true" ID="ID_326620949" MODIFIED="1533608416054" TEXT="config Singleton-sub">
<node CREATED="1521788724243" ID="ID_1337448866" MODIFIED="1521788751467" TEXT="hier wird synchronizes-with per Mutex (blocking) hergestellt"/>
<node CREATED="1521788777364" ID="ID_1496795291" MODIFIED="1521788787982" TEXT="der Atomic wird nur gelesen, um einen Fehler zu erkennen"/>
<node CREATED="1521788788546" ID="ID_1572121226" MODIFIED="1521788818778" TEXT="...es w&#xfc;rde sogar ein nicht-atomic gen&#xfc;gen"/>
<node CREATED="1521788825341" ID="ID_984179535" MODIFIED="1521788870307" TEXT="memory_order_relaxed w&#xe4;re korrekt"/>
<node CREATED="1521788871702" ID="ID_1445815040" MODIFIED="1521789034029" TEXT="aber seq_cst ist tolerierbar und lesbarer">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
warum?
</p>
<p>
weil per Definitionem dieses gesamte Konfigurations-Thema
</p>
<p>
als <i>nicht performance-kritisch</i>&#160;eingestuft wird -- und ich mehr Wert darauf lege,
</p>
<p>
die verschiedenen Belange im Quelltext nicht zu vermischen
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1521789050110" FOLDED="true" ID="ID_916308999" MODIFIED="1533608416057" TEXT="start Service">
<node CREATED="1521789241116" FOLDED="true" ID="ID_1521979010" MODIFIED="1533608415720" TEXT="Frage: besteht hier eine race-condition?">
<icon BUILTIN="help"/>
<node CREATED="1521789253954" ID="ID_1012950744" MODIFIED="1521789259925" TEXT="das ist eine Architektur-Frage"/>
<node CREATED="1521789283782" FOLDED="true" ID="ID_87566462" MODIFIED="1525124215518" TEXT="&quot;Ja&quot; w&#xfc;rde bedeuten....">
<node CREATED="1521789292172" ID="ID_1709140060" MODIFIED="1521789340386" TEXT="da&#xdf; Konkurrenz zwischen Singleton und Service vorgesehen ist"/>
<node CREATED="1521789342638" ID="ID_1682448407" MODIFIED="1521789361687" TEXT="und wir m&#xfc;&#xdf;ten in diesem Fall mit CAS den Service ver&#xf6;ffentlichen"/>
</node>
<node CREATED="1521789364195" ID="ID_603083662" MODIFIED="1521789452318" TEXT="die Antwort ist eindeutig &quot;Nein&quot;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es gilt schlichtweg als Architektur-Fehler, wenn hier eine Kollision geschiet.
</p>
<p>
Und es gibt keinen sinnvollen Weg, wie die Applikation dann weiterarbeiten kann.
</p>
<p>
Daher werfen wir ja auch error::Fatal
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1521789511870" ID="ID_553276693" MODIFIED="1521789526160" TEXT="Konsistenz-check und Service-Start im Mutex sind ausreichend"/>
<node CREATED="1521789611377" ID="ID_923887770" MODIFIED="1521789676331" TEXT="aber der Service mu&#xdf; per memory_order_release ver&#xf6;ffentlicht werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn sonst k&#246;nnte genau das gleiche Desaster passieren,
</p>
<p>
das auch in fehlerhaftem Double-Checked-Locking auftritt
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1521789904872" ID="ID_1237807951" MODIFIED="1521789930400" TEXT="...was aber durch den default (memory_order_seq_cst) mit impliziert ist">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1521789938539" FOLDED="true" ID="ID_1248059454" MODIFIED="1533608416058" TEXT="stop Service">
<node CREATED="1521789943683" ID="ID_128133787" MODIFIED="1521790025755" TEXT="v&#xf6;llig analog: instance = nullptr braucht release-Semantik"/>
<node CREATED="1521790091662" FOLDED="true" ID="ID_1518955379" MODIFIED="1533608415723" TEXT="Frage: besteht ein Race auf den Destruktor?">
<icon BUILTIN="help"/>
<node CREATED="1521790108228" ID="ID_1075157743" MODIFIED="1521790114983" TEXT="das ist wiederum eine Architektur-Frage"/>
<node CREATED="1521790115851" ID="ID_1077549103" MODIFIED="1521790219873" TEXT="theoretisch besteht er sehr wohl">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. das ganze Locking und die memory-order sch&#252;tzt uns hier <b>&#252;berhaupt nicht</b>!
</p>
<p>
Es kann sehr wohl passieren, da&#223; ein anderer Thread grade eben noch
</p>
<p>
sicht den Pointer auf den Service geholt hat, und wir dann den Service zerst&#246;ren, w&#228;hrend
</p>
<p>
der andere Thread ihn grade nutzt.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521790222356" ID="ID_168283882" MODIFIED="1521790445457">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
unsere Architektur stellt aber sicher,
</p>
<p>
da&#223; dieser Fall nicht relevant ist
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
warum?
</p>
<p>
Weil der &quot;andere Thread&quot; nur von zwei Subsystemen her kommen kann
</p>
<ul>
<li>
dem Subsystem selber, das auch den Service erzeugt.<br />Beispiel ist eine UI-Interaktion aus dem Event-Loop thread
</li>
<li>
aus einem anderen Subsystem, das vom Serivce-Provider abh&#228;ngt
</li>
</ul>
<p>
In beiden F&#228;llen stellen unsere Prinzipien zum Betreiben von Subsystemen sicher,
</p>
<p>
da&#223; dieser &quot;andere Thread&quot; nicht (mehr) aktiv sein darf, wenn der Shutdown erfolgt.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521790458636" FOLDED="true" ID="ID_1895342635" MODIFIED="1525124215518" TEXT="Ausnahme: Emergency-Shutdown">
<icon BUILTIN="broken-line"/>
<node CREATED="1521790499246" ID="ID_671183540" MODIFIED="1521790505505" TEXT="wenn ein Subsystem zusammenbricht"/>
<node CREATED="1521790506069" ID="ID_1950061016" MODIFIED="1521790513032" TEXT="sind seine Services bereits weg,"/>
<node CREATED="1521790515308" ID="ID_1260618160" MODIFIED="1521790538596" TEXT="wenn der Subsystem-Manager den Applikations-Shutdown signalisiert"/>
<node CREATED="1521790557030" ID="ID_663628696" MODIFIED="1521790571891">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
hier ist ein <b>Segfault</b>&#160;m&#246;glich
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1521791102683" FOLDED="true" ID="ID_1344381807" MODIFIED="1533608416060" TEXT="Mock">
<node CREATED="1521791122872" FOLDED="true" ID="ID_236648459" MODIFIED="1533608415725" TEXT="Generell unterstellen wir hier gutm&#xfc;tige Verh&#xe4;ltnisse">
<node CREATED="1521791137678" ID="ID_1107870970" MODIFIED="1521791147768" TEXT="Mocks sollen niemals produktiv verwendet werden"/>
<node CREATED="1521791149596" ID="ID_301182144" MODIFIED="1521791176628" TEXT="Concurrency tritt (wenn &#xfc;berhaupt) nur sehr kontrolliert auf"/>
</node>
<node CREATED="1521791233344" ID="ID_1474658967" MODIFIED="1521791269115" TEXT="auch hier erschl&#xe4;gt Mutex + default-Memory-order alle Belange">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521434009142" ID="ID_117782655" MODIFIED="1533608414088" TEXT="Performance-Messung">
<icon BUILTIN="button_ok"/>
<node CREATED="1521791686994" ID="ID_1750734364" MODIFIED="1521791753975" TEXT="Erwartetes Ergebnis: wird nur geringf&#xfc;gig langsamer">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn wir sind auf x86_64 -- und diese Plattform ist per default <i>fast &#252;berall</i>&#160;sequentially coherent
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1521866206751" ID="ID_702466096" MODIFIED="1521882798384" TEXT="Bezugspunkt: Zugriff auf bereits existierenden Service">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1521791785677" FOLDED="true" ID="ID_565916879" MODIFIED="1533608416372" TEXT="drei F&#xe4;lle">
<icon BUILTIN="forward"/>
<node COLOR="#338800" CREATED="1521791790172" ID="ID_995415475" MODIFIED="1521882801672" TEXT="Mutex f&#xfc;r jeden Zugriff">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521791805930" ID="ID_1036499157" MODIFIED="1521882803656" TEXT="L&#xf6;sung ohne Atomics (inkorrekt)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521791823055" ID="ID_1820322207" MODIFIED="1521882806238" TEXT="L&#xf6;sung mit Atomics">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521791837014" ID="ID_1625592637" MODIFIED="1521882823105" TEXT="Messwerte als Verh&#xe4;ltniszahl angeben">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522110414912" ID="ID_1861060212" MODIFIED="1531584013624" TEXT="Singleton-Erzeugung zusammenf&#xfc;hren">
<linktarget COLOR="#5f8d94" DESTINATION="ID_1861060212" ENDARROW="Default" ENDINCLINATION="-566;0;" ID="Arrow_ID_319700222" SOURCE="ID_1624172022" STARTARROW="None" STARTINCLINATION="205;-440;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522110563499" ID="ID_470760423" MODIFIED="1533608414089" TEXT="stets ausf&#xfc;hrend">
<icon BUILTIN="idea"/>
<node CREATED="1522110568307" ID="ID_311971109" MODIFIED="1522110579069" TEXT="Depend&lt;SUB&gt;"/>
<node CREATED="1522110579561" ID="ID_1773742926" MODIFIED="1522110587404" TEXT="mit SUB == konkreter Typ"/>
</node>
<node CREATED="1522110657678" ID="ID_22217041" MODIFIED="1533608414089" TEXT="Locking/Korrektheit">
<node CREATED="1522110665733" ID="ID_329494929" MODIFIED="1522110676431" TEXT="Achtung abweichender Typ!">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1522110683363" ID="ID_352813223" MODIFIED="1522110710611" TEXT="Normaler Zugang via Depend&lt;SUB&gt; wird zum Synonym"/>
<node CREATED="1522111399080" FOLDED="true" ID="ID_753159927" MODIFIED="1533608416373" TEXT="kaskadierend">
<node CREATED="1522110724165" ID="ID_879974852" MODIFIED="1522110749614" TEXT="acquire Lock&lt;SUB&gt;"/>
<node CREATED="1522110842845" ID="ID_12886357" MODIFIED="1522110920894" TEXT="store into Depend&lt;SUB&gt;::instance"/>
</node>
</node>
<node CREATED="1522110508507" ID="ID_789229743" MODIFIED="1533608414090" TEXT="F&#xe4;lle">
<node CREATED="1522110513930" FOLDED="true" ID="ID_752814721" MODIFIED="1533608416374" TEXT="normal-default">
<node CREATED="1522113463844" ID="ID_1945711876" MODIFIED="1522113489197" TEXT="nur Konstruktor / Destruktor-Funktion"/>
<node CREATED="1522113490025" ID="ID_1330140057" MODIFIED="1522113531135" TEXT="Alternativ-Behandlung f&#xfc;r nicht-instantiierbare Typen"/>
</node>
<node CREATED="1522110520777" FOLDED="true" ID="ID_336202422" MODIFIED="1533608416375" TEXT="Subclass-default">
<node CREATED="1522113128835" ID="ID_166213716" MODIFIED="1522113152107" TEXT="kaskadierenden Zugriff als Factory"/>
<node CREATED="1522113152999" ID="ID_1443678098" MODIFIED="1522113288917" TEXT="Instantiierungs-Check kann entfallen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...man <i>k&#246;nnte</i>&#160;ihn aber genausogut auch machen.
</p>
<p>
Das Argument ist: wenn wir kaskadierend aufrufen, dann ist das Ergebnis in jedem Fall korrekt,
</p>
<p>
und wird auch durch das Installieren dieses (zweiten) Zuganges in keinster Weise beeintr&#228;chtigt.
</p>
<p>
Sollte Depend&lt;SUB&gt; bereits instantiiert sein, dann auch gut.
</p>
<p>
Der kaskadierende Aufruf liest dann einfach <i>dessen</i>&#160;Instanz-Pointer
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1522110531344" FOLDED="true" ID="ID_1376369013" MODIFIED="1533608416376" TEXT="custom-ctor">
<node CREATED="1522112368219" ID="ID_774074460" MODIFIED="1522112375518" TEXT="konkreten Typ feststellen"/>
<node CREATED="1522112376154" FOLDED="true" ID="ID_1394042003" MODIFIED="1533608416062" TEXT="f&#xfc;r diesen...">
<node CREATED="1522113449575" ID="ID_644735948" MODIFIED="1522113456734" TEXT="acquire Lock&lt;SUB&gt;"/>
<node CREATED="1522112395280" ID="ID_995036578" MODIFIED="1522113339076" TEXT="Instantiierungs-Check">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hier notwendig, weil wir eine neue Factory-Funktion ablegen.
</p>
<p>
Das k&#246;nnte mit dem Factory-Management einer bereits installierten Konfiguration kollidieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522112400703" ID="ID_1562178283" MODIFIED="1522112404258" TEXT="Factory erstellen"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522200092935" ID="ID_1314237888" MODIFIED="1533608414092" TEXT="Deleter-Behandlung">
<icon BUILTIN="button_ok"/>
<node CREATED="1522200102534" FOLDED="true" ID="ID_284894079" MODIFIED="1533608416377" TEXT="bisher">
<node CREATED="1522200106373" ID="ID_1981188993" MODIFIED="1522200226028" TEXT="was die Factory zur&#xfc;ckliefert, wird nicht gemanaged">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1522200122883" ID="ID_564595724" MODIFIED="1522200229769" TEXT="der instance-Pointer bleibt bestehen, selbst wenn das Objekt weg ist">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1522200231404" ID="ID_357657857" MODIFIED="1522200238612" TEXT="ned schee">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1522200147696" FOLDED="true" ID="ID_929047067" MODIFIED="1533608416379" TEXT="gew&#xfc;nscht">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1522200152927" ID="ID_326569334" MODIFIED="1522382081602" TEXT="keine Memory-leaks">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522200167861" ID="ID_908074030" MODIFIED="1522382083234" TEXT="alles soll zerst&#xf6;rt werden">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522200189706" ID="ID_302642427" MODIFIED="1522382084962" TEXT="m&#xf6;glichst alle instance-Pointer zur&#xfc;cksetzen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522384942847" ID="ID_1152640572" MODIFIED="1522387791802" TEXT="Fehlermeldung beim Zugriff nach Zerst&#xf6;rung">
<linktarget COLOR="#639d9e" DESTINATION="ID_1152640572" ENDARROW="Default" ENDINCLINATION="-89;0;" ID="Arrow_ID_1512382393" SOURCE="ID_1741501987" STARTARROW="None" STARTINCLINATION="28;-1;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522200249626" ID="ID_215336836" MODIFIED="1522382087401" TEXT="Freunschafts-f&#xe4;hig">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522384902500" ID="ID_1741501987" MODIFIED="1533608414094" TEXT="Zugriff beim Herunterfahren">
<arrowlink COLOR="#639d9e" DESTINATION="ID_1152640572" ENDARROW="Default" ENDINCLINATION="-89;0;" ID="Arrow_ID_1512382393" STARTARROW="None" STARTINCLINATION="28;-1;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522387798572" HGAP="35" ID="ID_1522844249" MODIFIED="1522387935592" TEXT="war ein &#xfc;briggebliebener Destruktor in einem Mock" VSHIFT="12">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
zwar wird beim L&#246;schen des Mock
</p>
<p>
die urspr&#252;ngliche Factory wieder an ihren Platz zur&#252;ckgeschoben,
</p>
<p>
aber niemand sagt, da&#223; ein Move auch wirklich ein Move (swap) ist.
</p>
<p>
Mu&#223; daher diese leer gewordene tempor&#228;re Factory explizit auf Default-Zustand zur&#252;cksetzen,
</p>
<p>
damit nicht doch noch der Deleter l&#228;uft.
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1522387936585" ID="ID_1922190351" MODIFIED="1522388778471" TEXT="es w&#xe4;re besser, wenn Factory &#xfc;berhaupt nicht assignable w&#xe4;re">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und man stattdessen explizit eine <i>gef&#228;hrliche Funktion</i>&#160; aufrufen mu&#223;
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522334796724" ID="ID_1080992734" MODIFIED="1531584013626" TEXT="Funktoren zusammenf&#xfc;hren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522334843062" ID="ID_1526236017" MODIFIED="1533608414095" TEXT="DependencyFactory f&#xfc;r">
<icon BUILTIN="button_ok"/>
<node CREATED="1522334805635" ID="ID_315782435" MODIFIED="1522384992864" TEXT="Erzeugungs-Funktor"/>
<node CREATED="1522334818473" ID="ID_750129060" MODIFIED="1522334821036" TEXT="Deleter"/>
<node CREATED="1522334822001" ID="ID_644059909" MODIFIED="1522334935421" TEXT="automatisches Instanz-Management"/>
</node>
<node COLOR="#338800" CREATED="1522334859291" ID="ID_1496044958" MODIFIED="1533608414096" TEXT="korrekt handhaben">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522334896942" ID="ID_1215786079" MODIFIED="1522382047552" TEXT="default-Fall">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522334903741" ID="ID_1875541619" MODIFIED="1522382049855" TEXT="abstrakte Basisklasse">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522381984647" FOLDED="true" ID="ID_136231234" MODIFIED="1533608416379" TEXT="Klasse ohne Default-ctor">
<icon BUILTIN="button_ok"/>
<node CREATED="1522384796267" FOLDED="true" ID="ID_1913154173" MODIFIED="1533608416063" TEXT="Problem">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1522384813129" ID="ID_502713353" MODIFIED="1522384821715" TEXT="private mit Freunschaft"/>
<node CREATED="1522384822583" ID="ID_1870041254" MODIFIED="1522384845999" TEXT="std::is_constructible&lt;X&gt; kann das nicht unterscheiden"/>
</node>
<node COLOR="#338800" CREATED="1522384848011" ID="ID_834547191" MODIFIED="1522384870993" TEXT="L&#xf6;sung: duck-Detector im Rumpf von DependencyFactory">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522334912412" ID="ID_1391948557" MODIFIED="1522382053286" TEXT="custom-Funktor">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522334917035" ID="ID_259163474" MODIFIED="1522382054565" TEXT="custom-Deleter">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522367884794" ID="ID_42634215" MODIFIED="1533608414097" TEXT="Analyse der Schritte">
<icon BUILTIN="idea"/>
<node CREATED="1522367595914" FOLDED="true" ID="ID_615466863" MODIFIED="1533608416381" TEXT="Use-cases">
<node CREATED="1522367601081" FOLDED="true" ID="ID_1594593457" MODIFIED="1533608416065" TEXT="default">
<node CREATED="1522367513966" ID="ID_18197809" MODIFIED="1522381907638" TEXT="nominelle Target-Klasse">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367550688" ID="ID_1892572153" MODIFIED="1522381910426" TEXT="Objekt per default ctor erzeugen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367555520" ID="ID_1067588123" MODIFIED="1522381912781" TEXT="instanz managen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522367604945" FOLDED="true" ID="ID_681132036" MODIFIED="1533608416066" TEXT="Subclass">
<node CREATED="1522367701660" ID="ID_381217567" MODIFIED="1522381919492" TEXT="Subklasse feststellen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367650099" ID="ID_887791148" MODIFIED="1522381923778" TEXT="nur delegieren an Depend&lt;SUB&gt;">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522367617999" FOLDED="true" ID="ID_1310241568" MODIFIED="1533608416068" TEXT="custom-Functor">
<node CREATED="1522367712338" ID="ID_1169276081" MODIFIED="1522381927169" TEXT="Functor speichern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367731959" ID="ID_1766531478" MODIFIED="1522381929444" TEXT="Objekt per Funktor erzeugen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367749229" ID="ID_1580519177" MODIFIED="1522381931877" TEXT="instanz managen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1522367902872" FOLDED="true" ID="ID_272084666" MODIFIED="1533608416382" TEXT="grunds&#xe4;tzlich immer">
<node CREATED="1522367561111" ID="ID_604859300" MODIFIED="1522381935331" TEXT="instanz-Ptr NULLen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522367573173" ID="ID_1825315724" MODIFIED="1522381938038" TEXT="Factory sperren">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1525124188421" ID="ID_1086493226" MODIFIED="1525192911545" TEXT="Thema: statische Initialisierung">
<arrowlink COLOR="#9a97b5" DESTINATION="ID_1126260262" ENDARROW="Default" ENDINCLINATION="-1465;211;" ID="Arrow_ID_372705466" STARTARROW="None" STARTINCLINATION="-1025;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1525192915503" ID="ID_1930672036" MODIFIED="1525192926749" TEXT="Factory ist jetzt Meyer&apos;s Singleton">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1525192054281" ID="ID_1450620535" MODIFIED="1525192075199" TEXT="#1142 initialisation of static template members">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1525192963192" ID="ID_1702928731" MODIFIED="1533608414099" TEXT="ungekl&#xe4;rt: AppState-Factory-ctor mehrfach aufrerufen">
<icon BUILTIN="flag-pink"/>
<node CREATED="1525192993716" ID="ID_1211448815" MODIFIED="1525193027234" TEXT="und zwar ein zweites mal vom GUI-Plugin">
<icon BUILTIN="info"/>
</node>
<node CREATED="1525193011555" ID="ID_822581772" MODIFIED="1525193186771" TEXT="ungef&#xe4;hrlich, aber nicht sauber">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...da es sich ja nur um die <i>Factory</i>&#160;handelt,
</p>
<p>
nicht um das AppState-Singleton selber, welches ja ohnehin nur von main.cpp
</p>
<p>
verwendet werden sollte. Aber das deutet darauf hin, da&#223; irgend etwas mit der
</p>
<p>
Initialisierung von Statics &quot;faul&quot; ist, wenn shared objects dynamisch geladen werden.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522558319359" ID="ID_1023585478" MODIFIED="1522558353410" TEXT="Thema: Aufruf nach Zerst&#xf6;rung">
<arrowlink COLOR="#27a7a7" DESTINATION="ID_399844845" ENDARROW="Default" ENDINCLINATION="-36;283;" ID="Arrow_ID_1430148682" STARTARROW="None" STARTINCLINATION="104;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521160700669" FOLDED="true" HGAP="4" ID="ID_978221585" MODIFIED="1538868680521" TEXT="Dokumentation" VSHIFT="25">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521790595841" ID="ID_1874367277" MODIFIED="1521936684007" TEXT="Doku-Text im TiddlyWiki">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521790681557" ID="ID_1346970835" MODIFIED="1521936679674" TEXT="die generelle Haltung bez&#xfc;gl. Performance / Korrektheit">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521790613318" ID="ID_506011313" MODIFIED="1521936677400" TEXT="Diskussion der Locking / Atomic-Problematik">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521885096858" ID="ID_1403195900" MODIFIED="1521885106977" TEXT="Benchmark-Zahlen dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521790709017" ID="ID_1263887689" MODIFIED="1525124215458" TEXT="Doxygen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521790767697" ID="ID_1445751091" MODIFIED="1521936696493" TEXT="Grunds&#xe4;tzliches zu Singleton und Dependency-Injection (aktualisieren)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521790800253" ID="ID_878208550" MODIFIED="1521946968361" TEXT="Eigenes Kapitel zum Thema Double-Checked Locking">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521790816937" ID="ID_776249726" MODIFIED="1533608414100" TEXT="Grenzziehung zur Architektur">
<icon BUILTIN="button_ok"/>
<node CREATED="1521790858701" ID="ID_1382870211" MODIFIED="1521790870103" TEXT="Belange die hier nicht behandelt werden"/>
<node CREATED="1521790870898" ID="ID_662113030" MODIFIED="1521790886784">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konsequenz: das ist <b>keine Library-Implementierung</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1521790951152" ID="ID_974126504" MODIFIED="1521946981024" TEXT="Semantik der Konfigurations-Varianten beschreiben">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521790992538" ID="ID_1892242381" MODIFIED="1521947767631" TEXT="die hier ausgef&#xfc;hrte Analyse zusammenfassen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521791026749" ID="ID_1199387367" MODIFIED="1525124215459" TEXT="Doku-Subsysteme">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521791034972" ID="ID_1629095174" MODIFIED="1533608414101" TEXT="&#xfc;berlegen, wo das Architektur-Thema dargestellt werden sollte">
<icon BUILTIN="button_ok"/>
<node CREATED="1521962966238" ID="ID_1724029235" MODIFIED="1521962976832" TEXT="geh&#xf6;rt in die Architektur-Sektion"/>
<node COLOR="#338800" CREATED="1521962977140" ID="ID_1121275609" MODIFIED="1521962995498" TEXT="Neue Seite &quot;Subsystems&quot; angelegt">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521791058689" ID="ID_564899806" MODIFIED="1522025340181" TEXT="Hinweis auf die offene Flanke bei Emergency-Shutdown">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521929151045" ID="ID_1800182456" MODIFIED="1522025351449" TEXT="Doku-Seite f&#xfc;r DependencyFactory anlegen">
<icon BUILTIN="button_ok"/>
<node CREATED="1521929165380" ID="ID_15396392" MODIFIED="1521929185272" TEXT="kann in etwa der Content aus dem TiddlyWiki sein">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1521963017631" ID="ID_380828830" MODIFIED="1521963032077" TEXT="Neue Seite angelegt und von The Inner Core verlinkt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521929186281" ID="ID_1078337367" MODIFIED="1522025355714" TEXT="ein, zwei Einleitungss&#xe4;tze dazu">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521929199799" ID="ID_507602296" MODIFIED="1522738826337" TEXT="Wichtig: die Benchmark-Daten hier auch darstellen">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1520722160591" FOLDED="true" ID="ID_135546699" MODIFIED="1538868711909" TEXT="Unit-Test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521419576303" ID="ID_726128967" MODIFIED="1522042418343" TEXT="alte Tests portieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521418937870" ID="ID_906296527" MODIFIED="1522033081893" TEXT="Singleton_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521419045649" ID="ID_839295062" MODIFIED="1522035642960" TEXT="SingletonSubclass_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521419134046" ID="ID_1638082455" MODIFIED="1522037930919" TEXT="SingletonTestMock_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521419300765" ID="ID_417098537" MODIFIED="1522042501641" TEXT="DependencyFactory_test">
<linktarget COLOR="#b9274f" DESTINATION="ID_417098537" ENDARROW="Default" ENDINCLINATION="-118;36;" ID="Arrow_ID_606259386" SOURCE="ID_914313570" STARTARROW="Default" STARTINCLINATION="-127;0;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1521419730442" HGAP="42" ID="ID_657803548" MODIFIED="1533608414101" TEXT="nach der Umstellung etwas straffen" VSHIFT="-13">
<icon BUILTIN="yes"/>
<node CREATED="1522632317444" ID="ID_1018495070" MODIFIED="1522632325274" TEXT="ach was, zu faul...">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521419563657" ID="ID_733291707" MODIFIED="1522034193646" TEXT="DependencyConfiguration_test">
<icon BUILTIN="button_ok"/>
<node CREATED="1521419590709" ID="ID_914313570" MODIFIED="1522042501641" TEXT="ziemlich redundant">
<arrowlink COLOR="#b9274f" DESTINATION="ID_417098537" ENDARROW="Default" ENDINCLINATION="-118;36;" ID="Arrow_ID_606259386" STARTARROW="Default" STARTINCLINATION="-127;0;"/>
<node CREATED="1521419624065" HGAP="29" ID="ID_477987875" MODIFIED="1533608414101" TEXT="weiterhin sinnvoll?" VSHIFT="14">
<node CREATED="1521419638943" ID="ID_717613154" MODIFIED="1521419705073" TEXT="TDD w&#xe4;hrend der re-Implementirung"/>
<node CREATED="1521419657356" ID="ID_1381265753" MODIFIED="1521419674957" TEXT="der alte Test mu&#xdf; weiterhin laufen (ohne nachzudenken!)"/>
<node CREATED="1521419676825" ID="ID_92062482" MODIFIED="1521419693987" TEXT="mehr Tests schaden nie">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521433819705" ID="ID_797347707" MODIFIED="1521433827896" TEXT="&#xfc;bernehmen und aufteilen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521433807714" ID="ID_655174082" MODIFIED="1521433832327" TEXT="Assertions explizit machen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521433833942" ID="ID_841958834" MODIFIED="1521696534947" TEXT="Factory-Closure abdecken">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521696537522" ID="ID_1639668362" MODIFIED="1521696552680" TEXT="f&#xfc;r subclass-Singleton">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521696547161" ID="ID_413219021" MODIFIED="1521696551785" TEXT="f&#xfc;r Test-Mock">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521433852660" ID="ID_1581010755" MODIFIED="1521433857543" TEXT="l&#xe4;uft">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522033106576" ID="ID_278956866" MODIFIED="1525124215463" TEXT="weitere Tests...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die von der alten DependencyFactory abh&#228;ngen
</p>
</body>
</html></richcontent>
<linktarget COLOR="#15b89e" DESTINATION="ID_278956866" ENDARROW="Default" ENDINCLINATION="-6;80;" ID="Arrow_ID_1985884795" SOURCE="ID_513111416" STARTARROW="None" STARTINCLINATION="-88;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522033940685" ID="ID_447878554" MODIFIED="1522451818368" TEXT="media-access-mock-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033969821" ID="ID_1706164763" MODIFIED="1522451819727" TEXT="create-asset-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033977816" ID="ID_15822506" MODIFIED="1522451820734" TEXT="dependent-assets-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033997907" ID="ID_458476877" MODIFIED="1522451821737" TEXT="identity-of-assets-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034004825" ID="ID_1008413222" MODIFIED="1522451822955" TEXT="make-clip-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034011921" ID="ID_1809290651" MODIFIED="1522451823845" TEXT="ordering-of-assets-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034021470" ID="ID_466658369" MODIFIED="1522451824965" TEXT="builder-tool-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034029190" ID="ID_1418985959" MODIFIED="1522451825981" TEXT="testclip.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034035772" ID="ID_1574270320" MODIFIED="1522451827133" TEXT="mobject-interface-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034044775" ID="ID_984134175" MODIFIED="1522451828205" TEXT="mobject-ref-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522034052507" ID="ID_1667049787" MODIFIED="1522451830519" TEXT="placement-hierarchy-test.cpp">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1520722155112" ID="ID_1512641426" MODIFIED="1531584013635" TEXT="Integration">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521160755182" ID="ID_678080556" MODIFIED="1522428573233" TEXT="Umbenennen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1521160765588" FOLDED="true" ID="ID_1857896991" MODIFIED="1538868731786" TEXT="Konfig-Aufrufe anpassen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522033578207" HGAP="18" ID="ID_252429770" MODIFIED="1525124215470" TEXT="Name f&#xfc;r Freunschaft+" VSHIFT="-20">
<icon BUILTIN="button_ok"/>
<node CREATED="1522033614743" ID="ID_1110690522" MODIFIED="1533608414101" TEXT="friend class lib::InstanceHolder&lt;TargetObj&gt;;">
<node CREATED="1522033621114" ID="ID_1807735289" MODIFIED="1522033629872" TEXT="nicht so sexy">
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1522035656233" ID="ID_678532992" MODIFIED="1522035672143" TEXT="und std::checked_deltet&lt;TargetObj&gt; auch noch">
<icon BUILTIN="smiley-angry"/>
</node>
</node>
<node CREATED="1522033635991" ID="ID_321432260" MODIFIED="1533608414102" TEXT="k&#xf6;nnte das Depend selber sein?">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522388820751" ID="ID_721931573" MODIFIED="1522388962542" TEXT="ist doch ehr ein irref&#xfc;hrender Name">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn man n&#228;mlicht Lumiera's L&#246;sung nicht genau kennt,
</p>
<p>
k&#246;nnte sich das so lesen, als w&#228;re Depend&lt;X&gt; ein Mixin,
</p>
<p>
welches einer Klasse <i>magisch</i>&#160;eine Dependency als protected-Feld zug&#228;nglich macht.
</p>
<p>
Und dann w&#228;re es ziemlich pervasiv, sowas zum Freund zu erkl&#228;ren.
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#338800" CREATED="1522388857786" ID="ID_1151074517" MODIFIED="1522389011363">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>DependencyFactory</b>&#160;ist viel besser geeignet
</p>
</body>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522110432870" ID="ID_1624172022" MODIFIED="1522558395556" TEXT="dann m&#xfc;&#xdf;ten alle Singletons an einer Stelle erzeugt werden">
<arrowlink COLOR="#5f8d94" DESTINATION="ID_1861060212" ENDARROW="Default" ENDINCLINATION="-566;0;" ID="Arrow_ID_319700222" STARTARROW="None" STARTINCLINATION="205;-440;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522033193572" ID="ID_508353720" MODIFIED="1525124215471" TEXT="DependencyFactory">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522033199726" ID="ID_314595550" MODIFIED="1522445880917" TEXT="engine-config.h">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033210086" ID="ID_638295060" MODIFIED="1522445879580" TEXT="demo-gui-roundtrip.cpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033231644" ID="ID_1199449420" MODIFIED="1522445878005" TEXT="config-facade.h">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033250207" ID="ID_322012422" MODIFIED="1522445876212" TEXT="asset/db.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033810436" ID="ID_1074903860" MODIFIED="1522445875127" TEXT="assetmanager.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033264576" ID="ID_1266730565" MODIFIED="1522445874063" TEXT="stypemanager.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033697671" ID="ID_522765001" MODIFIED="1522445872867" TEXT="diagnostic-buffer-provider.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033733342" ID="ID_711202966" MODIFIED="1522445945626" TEXT="fake-configrules.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033740662" ID="ID_1194803087" MODIFIED="1522445974621" TEXT="dummy-session-connection.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033747205" ID="ID_1409425930" MODIFIED="1522446086935" TEXT="scope-locator.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033753484" ID="ID_1909328069" MODIFIED="1522446281045" TEXT="sess-manager-impl.hpp">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522033760875" ID="ID_1097826895" MODIFIED="1522446426755" TEXT="output-director.hpp">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522034066988" ID="ID_513111416" MODIFIED="1522729509491" TEXT="alle Mock-Tests">
<arrowlink COLOR="#15b89e" DESTINATION="ID_278956866" ENDARROW="Default" ENDINCLINATION="-6;80;" ID="Arrow_ID_1985884795" STARTARROW="None" STARTINCLINATION="-88;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521858774321" FOLDED="true" ID="ID_302686020" MODIFIED="1538868733731" TEXT="aufr&#xe4;umen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1521858779614" ID="ID_62114860" MODIFIED="1521928808594" TEXT="was ist depend4test?">
<icon BUILTIN="help"/>
<node CREATED="1521928764171" ID="ID_507085354" MODIFIED="1521928798462" TEXT="die alte Testmock-L&#xf6;sung">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1521928773218" ID="ID_1837242179" MODIFIED="1522451811958" TEXT="nach Schwenken aller Unit-Tests wegfallend">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521858791160" ID="ID_1863623429" MODIFIED="1521929094523" TEXT="brauchen wir DelStash noch?">
<icon BUILTIN="help"/>
<node CREATED="1521929071984" ID="ID_529951044" MODIFIED="1521929092199" TEXT="wird vom Advice-System genutzt"/>
<node CREATED="1521929080591" ID="ID_192438703" MODIFIED="1521929097694" TEXT="bleibt weiterhin notwendig">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521861040846" ID="ID_1297884815" MODIFIED="1531584013639" TEXT="brauchen wir singleton-ref?">
<icon BUILTIN="help"/>
<node CREATED="1521928945937" ID="ID_1967326849" MODIFIED="1521929017586" TEXT="die alte (partielle) L&#xf6;sung f&#xfc;r externe Services">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521928963447" ID="ID_1493572426" MODIFIED="1521929015463" TEXT="ziemlich eng mit den Interface-Proxies verbandelt">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1521928978853" ID="ID_47671209" MODIFIED="1533608414103" TEXT="diese sollten auf Depend umgestellt werden">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522635397309" ID="ID_1630981728" MODIFIED="1522635457722" TEXT="SessionCommandService">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635417932" ID="ID_826517015" MODIFIED="1522637771050" TEXT="DisplayService">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635433910" ID="ID_578198662" MODIFIED="1522637772168" TEXT="GuiNotification">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635450269" ID="ID_609069219" MODIFIED="1522637773412" TEXT="DummyPlayerService">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521929007449" ID="ID_451474924" MODIFIED="1522637778777" TEXT="danach kann es weg">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522635350488" ID="ID_1673980887" MODIFIED="1531584013642" TEXT="InterfaceProxy auch umstellen?">
<icon BUILTIN="help"/>
<node CREATED="1522635366958" ID="ID_70940233" MODIFIED="1522639464220" TEXT="w&#xe4;re jetzt ebenfalls denkbar">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1522638768719" ID="ID_1027038623" MODIFIED="1533608414104" TEXT="InterfaceFacadeLink">
<icon BUILTIN="button_ok"/>
<node CREATED="1522638777486" ID="ID_1287650379" MODIFIED="1522638916886" TEXT="serivce-Handle"/>
<node CREATED="1522638783717" ID="ID_357133685" MODIFIED="1522638790235" TEXT="umgeht das Interface-system">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522638791268" ID="ID_965518210" MODIFIED="1522638800868" TEXT="tja, lib::Depend macht das jetzt auch">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522638812521" FOLDED="true" ID="ID_893221959" MODIFIED="1533608416383" TEXT="nur ein einziges mal verwendet">
<icon BUILTIN="idea"/>
<node CREATED="1522638830367" ID="ID_792298822" MODIFIED="1522638835178" TEXT="PlayService"/>
<node CREATED="1522638837022" ID="ID_362446492" MODIFIED="1522638876050">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
den habe ich <b>nicht mehr</b>&#160;&#252;ber das Interface-System gemappt
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil mir das ganze C-gefrickel zu bl&#246;d geworden ist.
</p>
<p>
Also hat das hier Prototyp-Charakter!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522638877744" ID="ID_1175146695" MODIFIED="1522712862995" TEXT="sollte prototypisch-sauber umgestellt werden">
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522712059423" FOLDED="true" ID="ID_885178924" MODIFIED="1533608416384" TEXT="komplett auf lib::Depend umstellen">
<icon BUILTIN="yes"/>
<node CREATED="1522712083659" ID="ID_1397345256" MODIFIED="1522712851333" TEXT="das hei&#xdf;t: nicht einmal mehr die Fiktion einer Trennung">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1522712827196" ID="ID_61159385" MODIFIED="1522712843093" TEXT="ein sauber gebautes C++ - Inteface ist Trennung genug">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522713332342" ID="ID_1078169696" MODIFIED="1522713348764" TEXT="der OutputDirector steuert nun diesen Service">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522638949038" ID="ID_1756362217" MODIFIED="1533608414106" TEXT="interfaceproxy - Accessor">
<linktarget COLOR="#68baaa" DESTINATION="ID_1756362217" ENDARROW="Default" ENDINCLINATION="32;1321;" ID="Arrow_ID_1797728654" SOURCE="ID_1293938610" STARTARROW="None" STARTINCLINATION="-288;-420;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522638978298" ID="ID_253383763" MODIFIED="1522638984645" TEXT="der Proxy selber bleibt wohl bestehen"/>
<node CREATED="1522638985329" ID="ID_1803368145" MODIFIED="1522638997699" TEXT="der Accessor ist wieder genau ein Access-handle"/>
<node COLOR="#338800" CREATED="1522639336921" ID="ID_1332611153" MODIFIED="1522716025758" TEXT="kann komplett durch lib::Depend ersetzt werden">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522639301526" ID="ID_1959793943" MODIFIED="1533608414107" TEXT="InterfaceProxy umschreiben">
<icon BUILTIN="button_ok"/>
<node CREATED="1522639313964" ID="ID_620355867" MODIFIED="1522639322758" TEXT="er soll sich in lib::Depend einklinken"/>
<node CREATED="1522639904986" ID="ID_568095840" MODIFIED="1522639917092" TEXT="etwas wie den Holder brauchen wir weiterhin"/>
<node CREATED="1522640047991" FOLDED="true" ID="ID_965836148" MODIFIED="1533608416387" TEXT="wie funktioniert&apos;s?">
<icon BUILTIN="info"/>
<node CREATED="1522640064852" ID="ID_1332360368" MODIFIED="1522640101606">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
der Interface-<i>Anbieter</i>&#160;implementiert einen konkreten Proxy
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522640103854" ID="ID_904543861" MODIFIED="1522640126272" TEXT="dieser implementiert das Interface durch forwarden in das Interface-System"/>
<node CREATED="1522640127923" ID="ID_1407739777" MODIFIED="1522640137926" TEXT="dieser konkrete Proxy erbt von Holder"/>
<node CREATED="1522640145337" ID="ID_164293090" MODIFIED="1522640155883" TEXT="Holder ist auf das InstanceHandle getemplated"/>
<node CREATED="1522640166686" ID="ID_1356700504" MODIFIED="1522640234520" TEXT="der Holder instanziiert einen Statische Buffer f&#xfc;r den Proxy als Meyer&apos;s Singleton"/>
<node CREATED="1522640235676" FOLDED="true" ID="ID_1807301195" MODIFIED="1533608416070" TEXT="der Holder hat statische open/close">
<node CREATED="1522640247947" ID="ID_1019392965" MODIFIED="1522640254990" TEXT="diese erzeugen/zerst&#xf6;ren den Proxy"/>
<node CREATED="1522640255578" ID="ID_1613444847" MODIFIED="1522640262284" TEXT="und schalten jeweils den Accessor frei"/>
</node>
<node CREATED="1522640539147" ID="ID_1868996451" MODIFIED="1522640553196" TEXT="das InstanceHandle hat einen member FacadeLink"/>
<node CREATED="1522640554305" FOLDED="true" ID="ID_1413272395" MODIFIED="1533608416071" TEXT="dieser ist ein RAII-Handle f&#xfc;r den Proxy">
<node CREATED="1522640572550" ID="ID_1609430700" MODIFIED="1522640579377" TEXT="ctor macht openProxy"/>
<node CREATED="1522640579965" ID="ID_1368405474" MODIFIED="1522640584304" TEXT="dtor macht closeProxy"/>
</node>
<node CREATED="1522640586812" ID="ID_1577947298" MODIFIED="1522640604677" TEXT="das InstanceHandle ist Member in der Service-Implementierung"/>
</node>
<node COLOR="#338800" CREATED="1522640617752" FOLDED="true" ID="ID_312762900" MODIFIED="1533608416388" TEXT="Plan zum Umschreiben">
<icon BUILTIN="button_ok"/>
<node CREATED="1522640706787" FOLDED="true" ID="ID_1205995335" MODIFIED="1533608416074" TEXT="Idee-1">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522640624319" ID="ID_448652627" MODIFIED="1522640718658" TEXT="den Holder umbauen">
<icon BUILTIN="info"/>
</node>
<node CREATED="1522640682079" ID="ID_263562862" MODIFIED="1522640697696" TEXT="er bekommt das DependInject::ServiceInstance-Handle"/>
<node CREATED="1522642839772" ID="ID_1686904789" MODIFIED="1522642870342" TEXT="OK aber nicht wirklich inspiriert">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1522642851003" ID="ID_1594923332" MODIFIED="1522642864813" TEXT="die verwirrende doppelte Indirektion bleibt"/>
</node>
<node CREATED="1522640758484" FOLDED="true" ID="ID_1080447818" MODIFIED="1533608416078" TEXT="Idee-2">
<icon BUILTIN="button_ok"/>
<node CREATED="1522640769123" ID="ID_628473221" MODIFIED="1522640801850" TEXT="InstanceHandle selber betreibt den Proxy als Service">
<icon BUILTIN="info"/>
</node>
<node CREATED="1522640803358" ID="ID_105578434" MODIFIED="1522640833493" TEXT="sein member FacadeLink wird die DependInject::ServiceInstance"/>
<node CREATED="1522640847752" ID="ID_951535107" MODIFIED="1522640870343" TEXT="Holder und Accessor f&#xe4;llt komplett weg">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1522642882751" FOLDED="true" ID="ID_1084473697" MODIFIED="1533608415728" TEXT="Gute Idee -- zukunftsf&#xe4;hig">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1522642898548" ID="ID_1128431348" MODIFIED="1522643775604" TEXT="InstanceHandle als Typ-Marker"/>
<node CREATED="1522642909755" ID="ID_880187850" MODIFIED="1522643775604" TEXT="damit vom eigentlichen Interface-System entkoppelt"/>
<node CREATED="1522642945462" ID="ID_1624080534" MODIFIED="1522643775604" TEXT="der konkrete Proxy k&#xf6;nnte per SWIG generiert werden"/>
</node>
<node CREATED="1522640881187" FOLDED="true" ID="ID_1419416708" MODIFIED="1533608415730" TEXT="Frage: wie konstruiert man einen Proxy">
<icon BUILTIN="help"/>
<node CREATED="1522641344691" ID="ID_1154911224" MODIFIED="1522641358813" TEXT="gegenw&#xe4;rtig: bekommt das InstanceHandle"/>
<node CREATED="1522641378263" ID="ID_1762905192" MODIFIED="1522641389641" TEXT="k&#xf6;nnte aber direkt eine Interface-Ref sein"/>
</node>
<node COLOR="#338800" CREATED="1522641405299" FOLDED="true" ID="ID_676190433" MODIFIED="1533608415734" TEXT="Proxy">
<icon BUILTIN="button_ok"/>
<node CREATED="1522641413586" FOLDED="true" ID="ID_1187300065" MODIFIED="1525124215518" TEXT="Anforderungen">
<linktarget COLOR="#86d29d" DESTINATION="ID_1187300065" ENDARROW="Default" ENDINCLINATION="-35;65;" ID="Arrow_ID_1735914452" SOURCE="ID_1212106242" STARTARROW="None" STARTINCLINATION="-135;-67;"/>
<node CREATED="1522641419769" ID="ID_1008132394" MODIFIED="1522641450457" TEXT="erbt vom Business-Interface"/>
<node CREATED="1522641451309" ID="ID_535550980" MODIFIED="1522641460551" TEXT="h&#xe4;llt Ref auf C-Interface"/>
<node CREATED="1522643854048" ID="ID_728832529" MODIFIED="1522643860851" TEXT="ist konstruierbar"/>
<node CREATED="1522643863687" ID="ID_1695236696" MODIFIED="1522643867842" TEXT="nicht kopierbar"/>
<node CREATED="1522641463059" ID="ID_487803821" MODIFIED="1522641471349" TEXT="lebt nur so lange das Interface offen ist"/>
</node>
<node COLOR="#0e0099" CREATED="1522649799320" FOLDED="true" ID="ID_1473698958" MODIFIED="1525124215519" TEXT="Ort der Definition">
<icon BUILTIN="help"/>
<node CREATED="1522696074226" FOLDED="true" ID="ID_1811816913" MODIFIED="1525124215487" TEXT="G&#xfc;terabw&#xe4;gung notwendig">
<node CREATED="1522696114852" ID="ID_550024261" MODIFIED="1522696125095" TEXT="Entkoppelung Serivce / Interface"/>
<node CREATED="1522696125987" ID="ID_387527816" MODIFIED="1522696135565" TEXT="Wartbarkeit des Binding-Codes"/>
<node CREATED="1522696172285" ID="ID_958011405" MODIFIED="1522696180623" TEXT="Komplexit&#xe4;t der Implementierung"/>
</node>
<node CREATED="1522697094565" FOLDED="true" ID="ID_407823709" MODIFIED="1525124215488" TEXT="Wertung">
<node CREATED="1522697098420" ID="ID_640748324" MODIFIED="1522697195082" TEXT="Entkoppelung ist verpflichtend f&#xfc;r Plug-Ins">
<icon BUILTIN="full-1"/>
</node>
<node CREATED="1522697126545" ID="ID_942767861" MODIFIED="1522697197851" TEXT="Wartbarkeit ist eine Frage der Binding-Technologie">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1522697141710" ID="ID_1821904602" MODIFIED="1522697200469" TEXT="Komplexit&#xe4;t ist eine Folge der f&#xfc;hrenden Belange">
<icon BUILTIN="full-3"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1522697220012" FOLDED="true" ID="ID_153609314" MODIFIED="1525124215488" TEXT="Fazit">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1522697230906" ID="ID_1495746023" MODIFIED="1522697253419" TEXT="alle Bindings sind vom Instance-Handle zu entkoppeln"/>
<node CREATED="1522697255215" ID="ID_1841184306" MODIFIED="1522697273416" TEXT="f&#xfc;r jedes Binding soll eine TranslationUnit frei w&#xe4;hlbar sein"/>
<node COLOR="#338800" CREATED="1522697350106" ID="ID_138544872" MODIFIED="1522724906505" TEXT="Technik zur Entkoppelung ben&#xf6;tigt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#0e0099" CREATED="1522649812255" FOLDED="true" ID="ID_624985973" MODIFIED="1525124215519" STYLE="fork">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Modus der Definition
</p>
<p>
und Instantiierung
</p>
</body>
</html></richcontent>
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<icon BUILTIN="help"/>
<node CREATED="1522697375430" FOLDED="true" ID="ID_712460375" MODIFIED="1525124215488" TEXT="Instantiierung">
<node COLOR="#338800" CREATED="1522697381141" ID="ID_855121513" MODIFIED="1522729342788" TEXT="gesteuert nur durch Lebensdauer des InstanceHandle">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522697396899" ID="ID_1172830820" MODIFIED="1522729342788" TEXT="Code der Proxy-Instantiierung in separater TU">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522697475153" FOLDED="true" ID="ID_520808733" MODIFIED="1525124215488" TEXT="Definition">
<node CREATED="1522697495790" ID="ID_1870975704" MODIFIED="1522729342788" TEXT="von Hand geschrieben">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#990000" CREATED="1522697613893" ID="ID_1829346202" MODIFIED="1522729342788" TEXT="Idealerweise lediglich eigene TU">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1522729001386" ID="ID_242747417" MODIFIED="1522733826161" TEXT="ist mir bisher nicht gelungen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wir m&#252;ssen immer, f&#252;r jeden Proxy
</p>
<p>
explizit eine Template-Instaniierung triggern, und zwar f&#252;r
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b49ca6" DESTINATION="ID_1547993807" ENDARROW="Default" ENDINCLINATION="10;-59;" ID="Arrow_ID_1421481593" STARTARROW="None" STARTINCLINATION="323;-44;"/>
</node>
<node COLOR="#338800" CREATED="1522733831301" ID="ID_1741953995" MODIFIED="1522733846627" TEXT="Spezialisierung + explizite Template-Instanz">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522697501541" ID="ID_793991584" MODIFIED="1522729342788" TEXT="Forwading-Implementation des Business-Interface">
<icon BUILTIN="info"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522697646161" FOLDED="true" ID="ID_1020206021" MODIFIED="1525124215519" TEXT="Technologie">
<icon BUILTIN="button_ok"/>
<node CREATED="1522697675229" FOLDED="true" ID="ID_1605136526" MODIFIED="1525124215488" STYLE="fork" TEXT="Indirektion notwendig">
<node COLOR="#338800" CREATED="1522697690651" ID="ID_1244533717" MODIFIED="1522724892373" TEXT="Erzeugung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522697699297" ID="ID_891061833" MODIFIED="1522724893954" TEXT="Zerst&#xf6;rung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522697702521" ID="ID_1874387796" MODIFIED="1522724895488" TEXT="Zugriff auf Facade(Proxy)">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522697743604" FOLDED="true" ID="ID_829814208" MODIFIED="1522733898797" TEXT="m&#xf6;gliche L&#xf6;sungen">
<icon BUILTIN="forward"/>
<node CREATED="1522697764121" FOLDED="true" ID="ID_809124789" MODIFIED="1522733895572" TEXT="PImpl">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522698166313" ID="ID_904988310" MODIFIED="1522698184466" TEXT="facade::Link h&#xe4;lt einen smart-Ptr"/>
<node CREATED="1522698185030" ID="ID_53125514" MODIFIED="1522698208087" TEXT="auf die eigentliche DependInject::ServiceInstance"/>
<node CREATED="1522698222201" ID="ID_1341541114" MODIFIED="1522698292643" TEXT="facade::Link mu&#xdf; Methoden (ctor/dtor und operator) separat definieren"/>
<node CREATED="1522698295719" ID="ID_381014397" MODIFIED="1522698339173" TEXT="das ist effektiv die L&#xf6;sung &quot;separat definieren&quot; + separate Storage"/>
</node>
<node CREATED="1522697803923" FOLDED="true" ID="ID_238110365" MODIFIED="1522733895572" TEXT="freie Funktionen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522698092963" ID="ID_433421738" MODIFIED="1522698105987" TEXT="ist die bisher bestehende L&#xf6;sung">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1522698013526" ID="ID_712885279" MODIFIED="1522698021465" TEXT="k&#xf6;nnen selber komplett generisch sein"/>
<node CREATED="1522698022005" ID="ID_518407557" MODIFIED="1522698033855" TEXT="m&#xfc;ssen jeweils explizit von einem Template instantiiert werden"/>
<node CREATED="1522698034563" ID="ID_1793485859" MODIFIED="1522698091426">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
brauchen eigenen Zugriffs-Mechanismus auf ein <i>weiteres</i>&#160;Handle-Objekt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522698124263" ID="ID_475034985" MODIFIED="1522698140464" TEXT="das ist effektiv ein PImpl, das aber auch noch gemanaged werden mu&#xdf;"/>
<node CREATED="1522729383029" ID="ID_212849140" MODIFIED="1522729398784" TEXT="Vorteil: erzeugen &quot;nebenbei&quot; die Template-Instantiierung">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1522697773903" FOLDED="true" ID="ID_116063224" MODIFIED="1525124215489" TEXT="Methoden separat definieren">
<icon BUILTIN="forward"/>
<node CREATED="1522698343480" ID="ID_1548420276" MODIFIED="1522733895572" TEXT="daf&#xfc;r sorgen, da&#xdf; die Definitionen nur in der Proxy-Instantiierung (TU) sichtbar sind"/>
<node CREATED="1522698386810" ID="ID_1773412414" MODIFIED="1522733895572" TEXT="diese Definitionen m&#xfc;ssen externe Linkage bekommen (d.h. nicht inline)"/>
<node CREATED="1522698437036" ID="ID_1400832405" MODIFIED="1522733895572" TEXT="Erzeugung ist automatisch, sofern dort das InstanceHandle-Template instantiiert wird"/>
<node CREATED="1522698892532" ID="ID_584280618" MODIFIED="1522733895572" TEXT="Fazit: in einer TU mu&#xdf; (nur) eine explizite Template-Instantiierung erfolgen"/>
<node COLOR="#338800" CREATED="1522699050727" FOLDED="true" ID="ID_1923832821" MODIFIED="1522733895572" TEXT="wie auch immer">
<icon BUILTIN="button_ok"/>
<node CREATED="1522699055062" FOLDED="true" ID="ID_1759934312" MODIFIED="1525124215488" TEXT="Spezialisierung Proxy&lt;IHA&gt; + Template Instanz dieser">
<icon BUILTIN="forward"/>
<node CREATED="1522699225239" ID="ID_894223806" MODIFIED="1522733778687" TEXT="das ist praktisch die bestehende L&#xf6;sung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1522699240684" ID="ID_600377865" MODIFIED="1522733778687" TEXT="wird dort nur indirekt &#xfc;ber die Instanz der freinen Funktionen ausgel&#xf6;et"/>
</node>
<node CREATED="1522699093017" FOLDED="true" ID="ID_471646453" MODIFIED="1522733778687" TEXT="Definition einer ungetemplateten Proxy-Klasse + CRTP">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522699211944" ID="ID_1925086643" MODIFIED="1522699223507" TEXT="geht das &#xfc;berhaupt?">
<icon BUILTIN="help"/>
</node>
<node CREATED="1522702931486" ID="ID_2039076" MODIFIED="1522702953351" TEXT="CRTP-Klasse mu&#xdf; in allen anderen TU abstrakt bleiben"/>
<node CREATED="1522703026153" FOLDED="true" ID="ID_1981862674" MODIFIED="1525124215488" TEXT="M&#xf6;glichkeiten">
<icon BUILTIN="help"/>
<node CREATED="1522703031009" ID="ID_1131804681" MODIFIED="1522703033909" TEXT="PImpl"/>
<node CREATED="1522703258857" ID="ID_1322673347" MODIFIED="1522703371845" TEXT="Service-Impl (=Proxy)"/>
<node CREATED="1522703996867" FOLDED="true" ID="ID_690162584" MODIFIED="1525124215488" TEXT="Proxy ist Subklasse">
<node CREATED="1522704019688" ID="ID_1004073220" MODIFIED="1522704033386" TEXT="mu&#xdf; per Lambda erzeugt werden"/>
<node CREATED="1522704033950" ID="ID_1313113320" MODIFIED="1522704041464" TEXT="mu&#xdf; virtuellen dtor haben"/>
<node CREATED="1522704194912" ID="ID_317190411" MODIFIED="1522704592454" TEXT="Problem: konkrete Proxy-Klasse mu&#xdf; in ServiceInstance::activate">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...oder sogar den ctor, das ist egal --
</p>
<p>
denn das Problem ist, ctor (oder activate) werden aus <i>demjenigen</i>&#160;Kontext heraus aufgerufen,
</p>
<p>
der die Service-Implementierung startet und damit die Erzeugung des Proxy triggert.
</p>
<p>
</p>
<p>
Dieser Kontext darf den konkreten Typ des Proxy aber genau nicht kennen (wegen Entkopplung)&#8230;
</p>
<p>
Genau aus diesem Grunde leiten wir ja ctor/dtor der ServiceInstance(Handle)-Klasse in eine ander TU um.
</p>
<p>
</p>
<p>
<b>Problem</b>&#160;ist nun, diese umgeleiteten Funktionsdefinitionen k&#246;nnen <i>nur einen Typ</i>&#160;(Template-Parameter) bekommen, und dieser Typ&#160;wiederum mu&#223; -- zumindest als abstrakter Platzhalter -- in allen TU sichtbar sein.
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522709471957" ID="ID_170352206" MODIFIED="1522709540572" TEXT="scheint nicht l&#xf6;sbar">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
<node CREATED="1522709550450" ID="ID_1653470424" MODIFIED="1522733671833" TEXT="konnte keine ganbare L&#xf6;sung finden">
<linktarget COLOR="#4a2d79" DESTINATION="ID_1653470424" ENDARROW="Default" ENDINCLINATION="-1;58;" ID="Arrow_ID_362703203" SOURCE="ID_1800542023" STARTARROW="None" STARTINCLINATION="109;-22;"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1522709579398" FOLDED="true" ID="ID_1445259032" MODIFIED="1525124215488" TEXT="kann man spezialisieren und zugleich Instantiieren?">
<icon BUILTIN="help"/>
<node CREATED="1522720815569" ID="ID_1906873483" MODIFIED="1522733778687" TEXT="nein"/>
<node CREATED="1522720818625" ID="ID_693558811" MODIFIED="1522733778687" TEXT="wie schade">
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node CREATED="1522724948516" FOLDED="true" ID="ID_1547993807" MODIFIED="1525124215488" TEXT="explizite Instantiierung notwendig">
<linktarget COLOR="#b49ca6" DESTINATION="ID_1547993807" ENDARROW="Default" ENDINCLINATION="10;-59;" ID="Arrow_ID_1421481593" SOURCE="ID_242747417" STARTARROW="None" STARTINCLINATION="323;-44;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1522724966777" ID="ID_650754221" MODIFIED="1522733895572" TEXT="h&#xe4;&#xdf;lich und umst&#xe4;ndlich"/>
<node CREATED="1522724973625" ID="ID_1016558302" MODIFIED="1522733895572" TEXT="Code dupliziert"/>
<node COLOR="#338800" CREATED="1522724977440" FOLDED="true" ID="ID_686663661" MODIFIED="1525124215488" TEXT="bessere L&#xf6;sung?">
<icon BUILTIN="button_ok"/>
<node CREATED="1522733470671" ID="ID_1296497133" MODIFIED="1522733895572" TEXT="nicht wirklich....">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1522733478510" ID="ID_1800542023" MODIFIED="1522733895572" TEXT="Proxy erbt per CRTP geht nicht">
<arrowlink COLOR="#4a2d79" DESTINATION="ID_1653470424" ENDARROW="Default" ENDINCLINATION="-1;58;" ID="Arrow_ID_362703203" STARTARROW="None" STARTINCLINATION="109;-22;"/>
</node>
<node CREATED="1522733542453" ID="ID_239191861" MODIFIED="1522733895572" TEXT="Proxy-Instantiierung triggert nicht InstanceHandle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
obwohl es das sollte.
</p>
<p>
Aber anscheinend macht der Compiler das nur partiell,
</p>
<p>
denn es wird ja nur eine const&amp; an den ctor von Binding &#252;bergeben.
</p>
<p>
</p>
<p>
Allerdings erscheint es mir nicht sinnvoll, hier mit Tricksereien zu arbeiten!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522733618506" ID="ID_1873321000" MODIFIED="1522733895572" TEXT="man k&#xf6;nnte stattdesen Link instantiieren">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1522733629233" ID="ID_424753876" MODIFIED="1522733895572" TEXT="Code-Duplizierung durch Typedefs beseitigt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522733866272" ID="ID_762156149" MODIFIED="1522734019934" TEXT="aktuelle L&#xf6;sung erscheint ad&#xe4;quat">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sie ist zwar nicht sch&#246;n -- aber was ist an einem Interface-Binding schon &quot;sch&#246;n&quot;?
</p>
<p>
</p>
<p>
Sie ist hinreichend wartbar, sofern man sie per copy-n-pate vervielf&#228;ltigt.
</p>
<p>
Es w&#228;re sogar denkbar, in diesen Rump eine generierte Proxy-Klasse zu kleben,
</p>
<p>
da nur wenige Variable erstetzt werden m&#252;&#223;ten.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522649565217" FOLDED="true" ID="ID_1192073765" MODIFIED="1533608416390" TEXT="Probleme bei der Realisierung">
<icon BUILTIN="button_ok"/>
<node CREATED="1522649583511" ID="ID_709785832" MODIFIED="1522649600993" TEXT="Instancehandle mu&#xdf; jetzt die Proxy-Implementierung sehen"/>
<node CREATED="1522649601916" FOLDED="true" ID="ID_114261035" MODIFIED="1533608416079" TEXT="die beiden Seiten des Bindings sind damit fest verkoppelt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist ein konzeptionelles Problem.
</p>
<p>
Eigentlich m&#246;chte man durch ein Interface Entkoppelung erreichen.
</p>
<p>
</p>
<p>
Nun ist es so, da&#223;
</p>
<ul>
<li>
das Binding BusinessInterface -&gt; InterfaceSystem
</li>
<li>
InterfaceSystem -&gt; Service-Implementierung
</li>
</ul>
<p>
an der gleichen Stelle erfolgen
</p>
</body>
</html></richcontent>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522649701166" ID="ID_444680334" MODIFIED="1522649709173" TEXT="knock-out f&#xfc;r das GUI">
<icon BUILTIN="flag-pink"/>
</node>
<node CREATED="1522649711165" ID="ID_1651731483" MODIFIED="1522649729254" TEXT="erzeugt zyklische ABI-Abh&#xe4;ngigkeiten">
<icon BUILTIN="broken-line"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522649763142" ID="ID_1212106242" MODIFIED="1522649902016" TEXT="aber der Rest w&#xfc;rde sch&#xf6;n funktionieren">
<arrowlink COLOR="#86d29d" DESTINATION="ID_1187300065" ENDARROW="Default" ENDINCLINATION="-35;65;" ID="Arrow_ID_1735914452" STARTARROW="None" STARTINCLINATION="-135;-67;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#338800" CREATED="1522709629935" ID="ID_151551561" MODIFIED="1522724915985" TEXT="L&#xf6;sung zum Entkoppeln der Proxy-Definition">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522709654308" FOLDED="true" ID="ID_1059248114" MODIFIED="1533608416392" TEXT="bestehenden Code umschreiben">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522709669498" FOLDED="true" ID="ID_9288802" MODIFIED="1533608416082" TEXT="alle bestehenden Proxies">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522635397309" ID="ID_590180071" MODIFIED="1522724921600" TEXT="SessionCommandService">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635417932" ID="ID_1711611771" MODIFIED="1522724922888" TEXT="DisplayService">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635433910" ID="ID_444280759" MODIFIED="1522724924183" TEXT="GuiNotification">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635450269" ID="ID_1963184158" MODIFIED="1522724925717" TEXT="DummyPlayerService">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522709729297" FOLDED="true" ID="ID_1293938610" MODIFIED="1533608416085" TEXT="Facade-Accessoren auf lib::Depend umstellen">
<arrowlink COLOR="#68baaa" DESTINATION="ID_1756362217" ENDARROW="Default" ENDINCLINATION="32;1321;" ID="Arrow_ID_1797728654" STARTARROW="None" STARTINCLINATION="-288;-420;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522635397309" ID="ID_883916833" MODIFIED="1522710489037" TEXT="SessionCommand">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635417932" ID="ID_245882411" MODIFIED="1522710526832" TEXT="Display(Facade)">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635433910" ID="ID_1703058328" MODIFIED="1522710636764" TEXT="GuiNotification">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522635450269" ID="ID_193152767" MODIFIED="1522710900353" TEXT="DummyPlayer">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522711261733" FOLDED="true" ID="ID_1953483085" MODIFIED="1533608415735" TEXT="Play(Facade)">
<icon BUILTIN="button_ok"/>
<node CREATED="1522711269948" ID="ID_153188000" MODIFIED="1522711287118" TEXT="h&#xe4;ngt aber an dem InterfaceFacadeLink">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522709748015" ID="ID_44849308" MODIFIED="1522717910945" TEXT="bestehenden Accessor zur&#xfc;ckbauen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522709756798" ID="ID_1024028685" MODIFIED="1522717913716" TEXT="Header umorganisieren">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522709763388" ID="ID_778622044" MODIFIED="1522728945187" TEXT="Doxygen-Doku aktualisieren">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522033564057" FOLDED="true" ID="ID_1294295502" MODIFIED="1538868737001" TEXT="Nacharbeiten">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522454023039" ID="ID_1828121921" MODIFIED="1525124215498" TEXT="Folge-Probleme">
<icon BUILTIN="button_ok"/>
<node CREATED="1522454040500" ID="ID_1674154774" MODIFIED="1533608414118" TEXT="Architektur">
<node CREATED="1522454061873" FOLDED="true" ID="ID_1012349550" MODIFIED="1533608416393" TEXT="unklare statische Abh&#xe4;ngigkeiten">
<node CREATED="1522454074760" FOLDED="true" ID="ID_1884600051" MODIFIED="1533608416086" TEXT="ClassLock">
<linktarget COLOR="#8195ac" DESTINATION="ID_1884600051" ENDARROW="Default" ENDINCLINATION="-604;0;" ID="Arrow_ID_648096672" SOURCE="ID_1287049121" STARTARROW="None" STARTINCLINATION="175;-122;"/>
<node CREATED="1522454289393" ID="ID_860238388" MODIFIED="1522454304036" TEXT="verwendet ein Meyers Singleton"/>
<node CREATED="1522454304576" ID="ID_692796029" MODIFIED="1522454312395" TEXT="und damit statische Init"/>
</node>
<node COLOR="#338800" CREATED="1522454152941" FOLDED="true" ID="ID_1003385410" MODIFIED="1533608416089" TEXT="lib::Depend">
<arrowlink COLOR="#487bba" DESTINATION="ID_399844845" ENDARROW="Default" ENDINCLINATION="237;509;" ID="Arrow_ID_1393532861" STARTARROW="None" STARTINCLINATION="733;-537;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522454265837" ID="ID_405478687" MODIFIED="1522454275983" TEXT="braucht ClassLock bis zum bitteren Ende"/>
<node CREATED="1522454276667" ID="ID_1140029140" MODIFIED="1522454286502" TEXT="selbst wenn es nur darum geht, einen Fehler zu produzieren"/>
<node COLOR="#338800" CREATED="1522557434769" ID="ID_726345477" MODIFIED="1522557447919" TEXT="habe beide nun mit einem ZombieCheck gesch&#xfc;tzt">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522557456894" ID="ID_627428103" MODIFIED="1522557498811">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...und lib::Depend so umarrangiert,
</p>
<p>
da&#223; re-entrant-Aufrufe w&#228;hrend dem dtor erlaubt sind
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522454146645" FOLDED="true" ID="ID_818640049" MODIFIED="1533608416091" TEXT="Advice-System">
<linktarget COLOR="#7a8fa9" DESTINATION="ID_818640049" ENDARROW="Default" ENDINCLINATION="-384;-20;" ID="Arrow_ID_1167388040" SOURCE="ID_1527905225" STARTARROW="None" STARTINCLINATION="309;-116;"/>
<icon BUILTIN="info"/>
<node CREATED="1522454318558" ID="ID_65008261" MODIFIED="1522454338494" TEXT="braucht sicht selbst beim Runterfahren">
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1522455443139" FOLDED="true" ID="ID_57531429" MODIFIED="1533608415740" TEXT="Pfad...">
<node CREATED="1522455359030" ID="ID_1748706225" MODIFIED="1522455463636" TEXT="~AdviceSystem"/>
<node CREATED="1522455363486" ID="ID_1789501340" MODIFIED="1522455366137" TEXT="DelStash"/>
<node CREATED="1522455375636" ID="ID_890323979" MODIFIED="1522455397132" TEXT="Provision&lt;X&gt;::releaseAdviceData"/>
<node CREATED="1522455412007" ID="ID_1942444713" MODIFIED="1522455423217" TEXT="AdviceLink::releaseBuffer()"/>
<node CREATED="1522455439131" ID="ID_1655592437" MODIFIED="1522455440982" TEXT="aSys().releaseBuffer(buff, siz)"/>
<node CREATED="1522455488220" ID="ID_817525837" MODIFIED="1522455490927" TEXT="Tadaaaa!"/>
</node>
<node COLOR="#338800" CREATED="1522557127755" FOLDED="true" ID="ID_842175492" MODIFIED="1533608415742" TEXT="das ist grenzwertig">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522557139721" ID="ID_1248571887" MODIFIED="1522557151307" TEXT="es handelt sich um eine re-entrance">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1522557152331" ID="ID_1546957816" MODIFIED="1522557415704">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
so wie das Advice-System geschrieben ist,
</p>
<p>
kann und mu&#223; man das &quot;durchwinken&quot;
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
denn grunds&#228;tzlich ist das ganze Advice-System bewu&#223;t &quot;billig&quot; implementiert;
</p>
<p>
Verbesserungen sp&#228;ter willkommen....
</p>
<p>
</p>
<p>
Der Destructor r&#228;umt alle AdviceProvisions weg.
</p>
<p>
Diese werden in einen statischen Kontext geschoben, damit sie unabh&#228;ngig vom Advisor weiterleben.
</p>
<p>
Daher m&#252;ssen wir aus diesem statischen Kontext heraus wieder zur&#252;ck in's AdviceSystem kommen.
</p>
<p>
</p>
<p>
Alternative w&#228;re, eine komplett spezielle De-Allokations-Routine zu schreiben,
</p>
<p>
welche die Datenstrukturen direkt traversiert und freigibt, und dann die Provisions
</p>
<p>
abfischt und ebenfalls alles wegwirft. Machbar, erscheint aber im Mi&#223;verh&#228;ltnis
</p>
<p>
zum Level der gesamten &#252;brigen Implementierung (welche n&#228;mlich um einiges
</p>
<p>
elaborierter sein k&#246;nnte, incl. Verwendung von Atomics und einem besseren
</p>
<p>
Memory-Management.
</p>
<p>
</p>
<p>
Aber wie gesagt, das ganze Advice-System ist eine Skizze
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node CREATED="1522454344402" FOLDED="true" ID="ID_1823464628" MODIFIED="1533608416394" TEXT="Singletons">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1522454381692" ID="ID_1785213595" MODIFIED="1522454381692" TEXT="wurden bisher praktisch gar nicht runtergefahren"/>
<node CREATED="1522454384941" FOLDED="true" ID="ID_1849825340" MODIFIED="1533608416092" TEXT="zwar pro-Forma schon">
<icon BUILTIN="idea"/>
<node CREATED="1522454395011" ID="ID_1147769502" MODIFIED="1522454420012" TEXT="aber die Storage blieb stehen"/>
<node CREATED="1522454407666" ID="ID_284304272" MODIFIED="1522454412948" TEXT="und so ist es nie aufgefallen"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522455572377" FOLDED="true" ID="ID_995968267" MODIFIED="1533608416094" TEXT="Policy ist klar">
<icon BUILTIN="yes"/>
<node CREATED="1522455589150" ID="ID_720232530" MODIFIED="1522455637085" TEXT="Kein Service darf aus dem dtor eine Dependency ziehen!">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1522455619290" ID="ID_1340742552" MODIFIED="1522455634839" TEXT="im Zweifelsfalle ist ON_SHUTDOWN zu verwenden!">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node COLOR="#990000" CREATED="1522454132616" FOLDED="true" ID="ID_1054219137" MODIFIED="1533608416397" TEXT="brauchen wir einen Basis-Layer?">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1522455499003" ID="ID_323278727" MODIFIED="1522547122649" TEXT="vermutlich ja">
<icon BUILTIN="button_cancel"/>
</node>
<node COLOR="#338800" CREATED="1522547104318" ID="ID_1075985632" MODIFIED="1522547119436" TEXT="nein besser nicht">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1522455507937" FOLDED="true" ID="ID_1029197196" MODIFIED="1533608416095" TEXT="f&#xfc;r wen?">
<linktarget COLOR="#512c6f" DESTINATION="ID_1029197196" ENDARROW="Default" ENDINCLINATION="-299;0;" ID="Arrow_ID_845867084" SOURCE="ID_22169859" STARTARROW="None" STARTINCLINATION="1419;0;"/>
<node CREATED="1522455514361" ID="ID_1288380071" MODIFIED="1522455518148" TEXT="ClassLock"/>
<node CREATED="1522455519448" ID="ID_77194477" MODIFIED="1522455527347" TEXT="Application-Object?"/>
<node CREATED="1522455527838" ID="ID_483432379" MODIFIED="1522455530186" TEXT="Nobug?"/>
</node>
<node CREATED="1522455653525" FOLDED="true" ID="ID_1606025045" MODIFIED="1533608416097" TEXT="wie?">
<node CREATED="1522455656181" FOLDED="true" ID="ID_1878626771" MODIFIED="1533608415744" TEXT="Schwartz-Counter">
<linktarget COLOR="#b12341" DESTINATION="ID_1878626771" ENDARROW="Default" ENDINCLINATION="166;90;" ID="Arrow_ID_1822166267" SOURCE="ID_695551107" STARTARROW="None" STARTINCLINATION="385;46;"/>
<icon BUILTIN="stop-sign"/>
<node CREATED="1522557054805" ID="ID_618759088" MODIFIED="1522557106032" TEXT="nein, besser gleich ganz wegwerfen">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1522557070059" ID="ID_286421321" MODIFIED="1522557102288" TEXT="Meyer&apos;s Singleton + ZombieCheck">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1522455662692" ID="ID_402293175" MODIFIED="1522455685565" TEXT="und zwar richtig implementiert">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522455672003" ID="ID_1633730200" MODIFIED="1522455677646" TEXT="mit Atomic"/>
</node>
</node>
</node>
<node CREATED="1522454162939" ID="ID_867445269" MODIFIED="1533608414127" TEXT="Subklassen-Konfig">
<node CREATED="1522454176426" ID="ID_964380935" MODIFIED="1522454188772" TEXT="mu&#xdf; jetzt in den Provider-Scope"/>
<node CREATED="1522454189359" ID="ID_1178508604" MODIFIED="1522454200306" TEXT="dieser ist meist nicht so offensichtlich klar"/>
<node COLOR="#338800" CREATED="1522454200902" FOLDED="true" ID="ID_1367664577" MODIFIED="1533608416398" TEXT="ConfigRules">
<linktarget COLOR="#8fbeb3" DESTINATION="ID_1367664577" ENDARROW="Default" ENDINCLINATION="-268;0;" ID="Arrow_ID_1637829369" SOURCE="ID_1789329281" STARTARROW="None" STARTINCLINATION="26;-32;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1522454211157" ID="ID_1826864875" MODIFIED="1522454217672" TEXT="Subclass MockConfigRules"/>
<node CREATED="1522454218267" ID="ID_1085608506" MODIFIED="1522628399085" TEXT="in die ConfigManager-Implementierung verelgt"/>
<node CREATED="1522454239657" ID="ID_746728834" MODIFIED="1522628416235" TEXT="passiert nun ON_GLOBAL_INIT"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522018567685" ID="ID_1619059123" MODIFIED="1525124215499" TEXT="Frage: was ist mit AppState?">
<icon BUILTIN="help"/>
<node CREATED="1522018581283" ID="ID_132446315" MODIFIED="1533608414128" TEXT="macht es Sinn, das via Depend zug&#xe4;nglich zu machen?">
<icon BUILTIN="forward"/>
<node CREATED="1522630308841" ID="ID_1688145864" MODIFIED="1522630349227" TEXT="Ja">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1522630312898" ID="ID_23962719" MODIFIED="1522630325291" TEXT="Wird zwar von lumiera::Config hochgezogen"/>
<node CREATED="1522630325999" ID="ID_976681959" MODIFIED="1522630344624" TEXT="...welches aber selber schon per lib::Depend instantiiert wird"/>
</node>
<node CREATED="1522018593697" ID="ID_1730197219" MODIFIED="1522018623361" TEXT="ist bisher ein Meyer&apos;s Singleton"/>
<node CREATED="1522018623861" ID="ID_1923633930" MODIFIED="1522018631776" TEXT="aber lebt bereits im globalen Speicher"/>
<node CREATED="1522630364690" ID="ID_1442746804" MODIFIED="1522630460073" TEXT="ABER: LifecycleRegistry mu&#xdf; Meyer&apos;s Singleton bleiben">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil Nobug-Init ON_BASIC_INIT braucht,
</p>
<p>
und lib::Depend wiederum von Nobug-Init abh&#228;ngig ist.
</p>
<p>
</p>
<p>
Also w&#252;rde DependencyFactory&lt;LifecycleRegistry&gt; aufgerufen,
</p>
<p>
bevor es statisch initialisiert sein kann...
</p>
</body>
</html></richcontent>
<icon BUILTIN="clanbomber"/>
</node>
<node COLOR="#338800" CREATED="1522630297899" ID="ID_365546675" MODIFIED="1522630305978" TEXT="umgestellt auf lib::Depend">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1521433694233" ID="ID_1951071885" MODIFIED="1525124215500" STYLE="fork" TEXT="Nebenbei: Schwartz-Counter in ClassLock abl&#xf6;sen">
<arrowlink COLOR="#735d7e" DESTINATION="ID_715588139" ENDARROW="Default" ENDINCLINATION="1087;0;" ID="Arrow_ID_1384015103" STARTARROW="None" STARTINCLINATION="-84;86;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1521433723421" ID="ID_1813539288" MODIFIED="1522557016686" TEXT="Meyers Singleton ist seit C++11 wasserdicht">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1521433748650" ID="ID_1831581678" MODIFIED="1522557016686">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und heute w&#252;rde ich den Code <i>so</i>&#160;nicht mehr schreiben
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
<node COLOR="#734e81" CREATED="1522451891933" ID="ID_695551107" MODIFIED="1522558416047" TEXT="...und er ist jetzt sogar kamputt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
genauer:
</p>
<p>
er ist nicht kaputt, sondern hat sehr gut funktioniert und diesen Unfug festgestellt.
</p>
<p>
N&#228;mlich da&#223; unser lib::Depend ein ClassLock braucht, um einen Fehler zu melden.
</p>
<p>
Das ist, f&#252;r sich betrachtet, eigentlich unvermeidlich, aber verlangt dann auch
</p>
<p>
nach einer grundlegenden L&#246;sung. D.h. einem <i>echten</i>&#160;Schwartz-Counter.
</p>
<p>
Nicht einem, der in einem Meyer's Singleton steckt...
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#b12341" DESTINATION="ID_1878626771" ENDARROW="Default" ENDINCLINATION="166;90;" ID="Arrow_ID_1822166267" STARTARROW="None" STARTINCLINATION="385;46;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1521160792856" FOLDED="true" ID="ID_367925099" MODIFIED="1538868739224" TEXT="System l&#xe4;uft wie zuvor">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522457229331" ID="ID_1130290094" MODIFIED="1522632193064" TEXT="Test-Suite">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522457238099" ID="ID_1287049121" MODIFIED="1522597557304" TEXT="ClassLock schl&#xe4;gt Alarm">
<arrowlink COLOR="#8195ac" DESTINATION="ID_1884600051" ENDARROW="Default" ENDINCLINATION="-604;0;" ID="Arrow_ID_648096672" STARTARROW="None" STARTINCLINATION="175;-122;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522457377743" ID="ID_157728376" MODIFIED="1522628243174" TEXT="DefsManager_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522630494375" ID="ID_787599487" MODIFIED="1533608414128" TEXT="PlacementHierarchy_test">
<icon BUILTIN="button_ok"/>
<node CREATED="1522632143740" ID="ID_1275561066" MODIFIED="1522632156461" TEXT="&lt;atomic&gt; includiert stdbool.h"/>
<node CREATED="1522632157338" ID="ID_4818535" MODIFIED="1522632168332" TEXT="und der macht #define false false"/>
<node CREATED="1522632168896" ID="ID_547171089" MODIFIED="1522632176011" TEXT="der Test hat #ifdef false"/>
<node CREATED="1522632177543" ID="ID_319056454" MODIFIED="1522632185383" TEXT="Hurgha">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522632197852" ID="ID_453425962" MODIFIED="1522632208940" TEXT="GR&#xdc;&#xdc;&#xdc;&#xdc;&#xdc;&#xdc;&#xdc;N">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1522457303466" ID="ID_28369083" MODIFIED="1522597732907" TEXT="Advice-System verpfuscht">
<icon BUILTIN="button_cancel"/>
<node CREATED="1522457315568" ID="ID_1527905225" MODIFIED="1522628482100" TEXT="Policy-Verletzung">
<arrowlink COLOR="#7a8fa9" DESTINATION="ID_818640049" ENDARROW="Default" ENDINCLINATION="-384;-20;" ID="Arrow_ID_1167388040" STARTARROW="None" STARTINCLINATION="309;-116;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#338800" CREATED="1522597569180" ID="ID_602663488" MODIFIED="1522597663372" TEXT="naja... nicht sch&#xf6;n aber OK">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es ruft sich selbst rekursiv auf, via Depend&lt;AdviceSystem&gt;
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1522597604367" ID="ID_1036644185" MODIFIED="1522597629034" TEXT="Alternative w&#xe4;re aufwendig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...n&#228;mlich eine ganz spezielle, dedzierte Aufr&#228;um-Routine schreiben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522597631464" ID="ID_1772415968" MODIFIED="1522597644885" TEXT="...und dazu ist das Advice-System zu experimentell"/>
</node>
<node COLOR="#338800" CREATED="1522457395749" ID="ID_1439882391" MODIFIED="1522628434994" TEXT="Subclass-Singleton">
<icon BUILTIN="button_ok"/>
<node CREATED="1522457406523" ID="ID_715525481" MODIFIED="1522628426366" TEXT="wer ist schuld?">
<icon BUILTIN="help"/>
</node>
<node COLOR="#338800" CREATED="1522628298319" ID="ID_1789329281" MODIFIED="1522628490770" TEXT="ein Nebeneffekt der Konfiguration f&#xfc;r ConfigResolver">
<arrowlink COLOR="#8fbeb3" DESTINATION="ID_1367664577" ENDARROW="Default" ENDINCLINATION="-268;0;" ID="Arrow_ID_1637829369" STARTARROW="None" STARTINCLINATION="26;-32;"/>
<icon BUILTIN="info"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1515975745485" ID="ID_132088730" MODIFIED="1515976000614" TEXT="Konzept">
<icon BUILTIN="info"/>
<node CREATED="1515975966400" ID="ID_1072605894" MODIFIED="1515975968459" TEXT="man hat ein statisches Front-End, d.h. by-name access"/>
<node CREATED="1515975976014" ID="ID_842891656" MODIFIED="1515975977346" TEXT="hinter dem liegt eine Factory"/>
<node CREATED="1515975984502" ID="ID_65481597" MODIFIED="1515975985545" TEXT="die Instanz kann von innen her wieder geschlossen werden"/>
<node CREATED="1515975995564" ID="ID_1901876074" MODIFIED="1515975996512" TEXT="wenn geschlossen, dann Fehler werfen"/>
</node>
</node>
<node CREATED="1515976632168" ID="ID_346073460" MODIFIED="1515976637675" TEXT="Verdrahtung">
<node CREATED="1522738962198" ID="ID_66084476" MODIFIED="1522738989254" TEXT="per ctor-Parameter bei Services"/>
<node CREATED="1522738949663" ID="ID_1169687839" MODIFIED="1522738958530" TEXT="per closure"/>
<node CREATED="1522738993353" ID="ID_134172826" MODIFIED="1522739006692" TEXT="per rekursivem Depend + Lifecycle"/>
</node>
</node>
<node CREATED="1515975646354" FOLDED="true" ID="ID_1049835373" MODIFIED="1538868858623" TEXT="Singleton">
<icon BUILTIN="idea"/>
<node COLOR="#338800" CREATED="1515976424292" ID="ID_357830540" MODIFIED="1515976443809" TEXT="meist gut genug">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1515976448409" ID="ID_775751243" MODIFIED="1515976453931" TEXT="Probleme">
<node CREATED="1515976471557" ID="ID_1775190424" MODIFIED="1515976477336" TEXT="Lebenszyklus tricky"/>
<node CREATED="1515976478852" ID="ID_443463816" MODIFIED="1515976504093" TEXT="API / Subklasse"/>
<node CREATED="1515976504801" ID="ID_1385819621" MODIFIED="1515976664450" TEXT="Test/Mocking">
<arrowlink COLOR="#c1a9ac" DESTINATION="ID_896967532" ENDARROW="Default" ENDINCLINATION="46;-116;" ID="Arrow_ID_618937075" STARTARROW="None" STARTINCLINATION="-41;116;"/>
</node>
<node CREATED="1515976514776" ID="ID_1223148072" MODIFIED="1515976595813" TEXT="Themen vermischt">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1515976519135" ID="ID_39360808" MODIFIED="1515976524490" TEXT="Service-Zugang"/>
<node CREATED="1515976525150" ID="ID_55041678" MODIFIED="1515976530322" TEXT="on-demand creation"/>
<node CREATED="1515976545956" ID="ID_1469471746" MODIFIED="1515976549743" TEXT="Lebenszyklus"/>
<node CREATED="1515976550427" ID="ID_321725023" MODIFIED="1515976560934" TEXT="Konfiguration / Parametrisierung"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1515975600368" ID="ID_896967532" MODIFIED="1515976656307" TEXT="f&#xfc;r Unit-Tests">
<linktarget COLOR="#c1a9ac" DESTINATION="ID_896967532" ENDARROW="Default" ENDINCLINATION="46;-116;" ID="Arrow_ID_618937075" SOURCE="ID_1385819621" STARTARROW="None" STARTINCLINATION="-41;116;"/>
<node COLOR="#338800" CREATED="1522506758042" ID="ID_1422898694" MODIFIED="1522506783584" TEXT="DependInject&lt;I&gt;::Local&lt;MOC&gt;">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#990000" CREATED="1522457000411" FOLDED="true" ID="ID_736034555" MODIFIED="1557498707236" TEXT="Basis-System">
<linktarget COLOR="#af98b6" DESTINATION="ID_736034555" ENDARROW="Default" ENDINCLINATION="2208;-356;" ID="Arrow_ID_1927977085" SOURCE="ID_1228603701" STARTARROW="None" STARTINCLINATION="448;721;"/>
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522457035478" ID="ID_1692167558" MODIFIED="1522556857858" TEXT="#1133 dependable base system">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1522457044789" ID="ID_22169859" MODIFIED="1522457177939" TEXT="f&#xfc;r einige minimale Einrichtungen">
<arrowlink COLOR="#512c6f" DESTINATION="ID_1029197196" ENDARROW="Default" ENDINCLINATION="-299;0;" ID="Arrow_ID_845867084" STARTARROW="None" STARTINCLINATION="1419;0;"/>
</node>
<node CREATED="1522506451269" ID="ID_55500881" MODIFIED="1522506467912" TEXT="Anforderungen">
<icon BUILTIN="yes"/>
<node CREATED="1522506486504" ID="ID_1878547223" MODIFIED="1522547691142" TEXT="Scope jeweils f&#xfc;r einen Payload-Typ"/>
<node CREATED="1522506518348" ID="ID_1014457759" MODIFIED="1522547692821" TEXT="gemeinsame statische Storage f&#xfc;r diesen Typ"/>
<node CREATED="1522506636907" ID="ID_662985730" MODIFIED="1522547695756" TEXT="ctor/dtor f&#xfc;r Payload werden aufgerufen">
<node CREATED="1522511826327" ID="ID_200801018" MODIFIED="1522511828746" TEXT="ctor">
<node CREATED="1522518918379" ID="ID_261980616" MODIFIED="1522518931653" TEXT="bevor Payload ben&#xf6;tigt wird"/>
</node>
<node CREATED="1522511829358" ID="ID_509925407" MODIFIED="1522511830546" TEXT="dtor">
<node CREATED="1522518935777" ID="ID_1823418824" MODIFIED="1522518941700" TEXT="&quot;m&#xf6;glichst sp&#xe4;t&quot;"/>
<node CREATED="1522518942263" ID="ID_203967064" MODIFIED="1522518945211" TEXT="aber zuverl&#xe4;ssig"/>
</node>
<node CREATED="1522514043309" ID="ID_1380359037" MODIFIED="1522514045656" TEXT="wann?">
<node CREATED="1522514050796" ID="ID_191668372" MODIFIED="1522514056079" TEXT="pro Typ">
<node CREATED="1522518875353" ID="ID_1629001557" MODIFIED="1522518882228" TEXT="ist das &#xfc;berhaupt m&#xf6;glich?"/>
<node CREATED="1522518882744" ID="ID_1818509600" MODIFIED="1522518901851" TEXT="l&#xe4;uft wieder auf ein Template-generiertes Static hinaus">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1522514056835" ID="ID_1693314028" MODIFIED="1522514067974" TEXT="f&#xfc;r alle DependableBase">
<node CREATED="1522514071649" ID="ID_433197904" MODIFIED="1522514079988" TEXT="erfordert DelStash"/>
<node CREATED="1522514086711" ID="ID_1216342984" MODIFIED="1522514117422" TEXT="an einem sicheren Ort"/>
<node CREATED="1522514120075" ID="ID_664406309" MODIFIED="1522514130012" TEXT="Idee: shared_ptr hierf&#xfc;r">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1522514148983" ID="ID_1331551985" MODIFIED="1522514165872" TEXT="jede neue DependableBase registriert sich"/>
<node CREATED="1522514307456" ID="ID_930138927" MODIFIED="1522514332529" TEXT="Problem: Deregistrierung von Eintr&#xe4;gen aus shared libs">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1522541153861" ID="ID_1598087575" MODIFIED="1522541200548" TEXT="Problem: mu&#xdf; auch jeden einzelnen ctor tracken">
<icon BUILTIN="stop-sign"/>
</node>
</node>
</node>
</node>
<node CREATED="1522506685708" ID="ID_172729748" MODIFIED="1522547698341" TEXT="...allerdings &#xfc;ber einen Refcount f&#xfc;r den Scope"/>
<node CREATED="1522506808180" ID="ID_962156028" MODIFIED="1522547700284" TEXT="Refcount verwendet Atomics"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522518973331" ID="ID_136789565" MODIFIED="1522518988634" TEXT="Design-Dilemma">
<icon BUILTIN="broken-line"/>
<node CREATED="1522519009127" ID="ID_989945730" MODIFIED="1522519024864" TEXT="einfache Statics &quot;sollten&quot; lokal funktionieren"/>
<node CREATED="1522519025972" ID="ID_714585131" MODIFIED="1522519142036" TEXT="das Problem ist, wenn man sich auf externe Statics abst&#xfc;tzt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das kann ziemlich indirekt passieren.
</p>
<p>
Beispiel ist das ClassLock. Das ist ein Front-End, und verwendet verdeckt wieder einen Static.
</p>
<p>
Und genau <i>daf&#252;r</i>&#160;gibt es anscheinend keine Garantieren
</p>
</body>
</html></richcontent>
<node CREATED="1522541262254" ID="ID_1609622536" MODIFIED="1522541279648" TEXT="genauer: wenn man sich auf on-demand (local) statics abst&#xfc;tzt"/>
<node CREATED="1522541280331" ID="ID_296029834" MODIFIED="1522541319853">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
C++ h&#228;llt die Erzeugungs/Zerst&#246;rungs-Reihenfolge <b>exakt</b>&#160;ein
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522541321043" ID="ID_966332775" MODIFIED="1522541356223">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
d.h. wenn das local static <i>sp&#228;ter erzeugt</i>&#160;wird, wird es <b>vor</b>&#160; dem Hauptobjekt zerst&#246;rt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1522519161785" ID="ID_608910503" MODIFIED="1522519198800" TEXT="aus Gr&#xfc;nden der Code-Organisation will man aber nicht immer alles in ein Objekt packen"/>
<node CREATED="1522519253645" ID="ID_1316230973" MODIFIED="1522519267958" TEXT="aber eine wirklich wasserdichte, genersche L&#xf6;sung ist komplex bis unm&#xf6;glich"/>
<node CREATED="1522519269002" ID="ID_1313794115" MODIFIED="1522519283292" TEXT="und statt einer halb-wasserdichten L&#xf6;sung k&#xf6;nnte man ja einfache Statics verwenden"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522519308709" ID="ID_1997666438" MODIFIED="1522547255792" TEXT="Beschlu&#xdf;">
<icon BUILTIN="yes"/>
<node CREATED="1522547261520" ID="ID_539336828" MODIFIED="1522547285145" TEXT="das ist insgesamt eine schlechte Idee">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1522547285877" ID="ID_1921668956" MODIFIED="1525124102526">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Statische Initialisierung funktioniert <b>pr&#228;zise</b>, korrekt und <b>zuverl&#228;ssig</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#9e9bae" DESTINATION="ID_1126260262" ENDARROW="Default" ENDINCLINATION="-1485;213;" ID="Arrow_ID_1269745634" STARTARROW="None" STARTINCLINATION="-1534;0;"/>
</node>
<node CREATED="1522547330726" ID="ID_994306275" MODIFIED="1522547749968" TEXT="C++ stellt das eigens sicher -- man mu&#xdf; es nur erst mal verstehen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Der Aufruf von Konstrukturen statischer Objekte konstituiert eine (dynamische) Reihenfolge.
</p>
<p>
Desktuktoren werden exakt r&#252;ckw&#228;rts in dieser Reihenfolge aufgerufen.
</p>
<p>
Statische Objektfelder werden vor der ersten Verwendung der Klassen<b>definition</b>&#160; initialisiert
</p>
<p>
Dagegen Funktions-lokale statische Variablen werden initialisiert, wenn der Kontrollflu&#223; sie zum ersten mal ber&#252;hrt.
</p>
<p>
Wenn ein Konstruktor ein statisches Feld verwendet, dann wird dieses Feld vor dem Konstruktor erzeugt.
</p>
<p>
</p>
<p>
Beachte: in jedem dieser F&#228;lle wird auch die o.g. Reihenfolge konstituiert.
</p>
<p>
</p>
<p>
<u>Corollar</u>: wenn man ein Meyer's Singleton erst indirekt aus dem Implementierungs-Code verwendet,
</p>
<p>
so wird es garantiert zerst&#246;rt, <i>bevor</i>&#160;der Destruktor des aufrufenden Objekts l&#228;uft.
</p>
<p>
Hallo ClassLock...
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1522547752788" ID="ID_1333812920" MODIFIED="1522547762343" TEXT="eine handgeschriebene L&#xf6;sung kann da nicht besser sein"/>
<node CREATED="1522547763547" ID="ID_1065493509" MODIFIED="1522547771413" TEXT="und verschiebt nur das Problem nach hinten"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522457113044" ID="ID_1913798256" MODIFIED="1522547725898" TEXT="umzustellen">
<icon BUILTIN="stop-sign"/>
<node CREATED="1522457119491" ID="ID_715588139" MODIFIED="1522547714913" TEXT="ClassLock">
<linktarget COLOR="#735d7e" DESTINATION="ID_715588139" ENDARROW="Default" ENDINCLINATION="1087;0;" ID="Arrow_ID_1384015103" SOURCE="ID_1951071885" STARTARROW="None" STARTINCLINATION="-84;86;"/>
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1522457132025" ID="ID_828796576" MODIFIED="1522547718346" TEXT="Applikation-Objekt?">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522547772617" ID="ID_671236738" MODIFIED="1522556847447" TEXT="besser nur einen Zombie-Check bereitstellen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1482524535575" ID="ID_387248900" MODIFIED="1557498707236" TEXT="Extension-System"/>
<node CREATED="1482524569705" ID="ID_1815572475" MODIFIED="1557498707236" TEXT="Parametrisierung"/>
</node>
<node CREATED="1448314890907" ID="ID_411012156" MODIFIED="1557498707236" POSITION="right" TEXT="Session">
<icon BUILTIN="go"/>
<node CREATED="1481688464060" ID="ID_53574817" MODIFIED="1557498707236" TEXT="Architektur">
<node CREATED="1481688469507" ID="ID_1691953889" MODIFIED="1557498707236" TEXT="Session-Subsystem">
<node CREATED="1481688478057" ID="ID_1082882066" MODIFIED="1557498707236" TEXT="&#xe4;quivalent zum ProcDispatcher"/>
<node CREATED="1481688490000" ID="ID_579694361" MODIFIED="1557498707236" TEXT="koordiniert die Abl&#xe4;ufe in Proc"/>
</node>
<node CREATED="1481688500943" ID="ID_1821833408" MODIFIED="1557498707236" TEXT="Session ist eine interne Datenstruktur">
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484377665971" HGAP="28" ID="ID_641757454" MODIFIED="1557498707236" TEXT="Logik" VSHIFT="5">
<icon BUILTIN="hourglass"/>
<node CREATED="1538939499138" ID="ID_367201519" MODIFIED="1557498707236" TEXT="open Session">
<node CREATED="1538939507425" ID="ID_389830085" MODIFIED="1557498707236" TEXT="new Session">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477784813895" ID="ID_1478381189" MODIFIED="1557498707236">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Aufgabe</u>: <i><font color="#821b58" size="4">produce dummy content</font></i>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#f9b709" DESTINATION="ID_1478381189" ENDARROW="Default" ENDINCLINATION="-1009;-357;" ID="Arrow_ID_1072548081" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-87;103;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1538939511688" ID="ID_936661226" MODIFIED="1557498707236" TEXT="existing Session"/>
</node>
</node>
<node CREATED="1481688517437" HGAP="24" ID="ID_241232196" MODIFIED="1557498707236" TEXT="Lifecycle" VSHIFT="8">
<icon BUILTIN="info"/>
<node CREATED="1481688521532" ID="ID_1825349679" MODIFIED="1557498707236" TEXT="Session startet on demand"/>
<node CREATED="1481688529539" ID="ID_1972961763" MODIFIED="1557498707236" TEXT="SessionManager ist zust&#xe4;ndig"/>
<node CREATED="1481688544921" ID="ID_1934560784" MODIFIED="1557498707236" TEXT="wenn Session geladen, ist ProcDispatcher freigegeben"/>
<node CREATED="1481688562830" ID="ID_708961458" MODIFIED="1557498707236" TEXT="SessionSubsystem startet processing loop im ProcDispatcher"/>
<node CREATED="1481777252497" ID="ID_1789585729" MODIFIED="1557498707236" TEXT="Shutdown">
<linktarget COLOR="#5a97df" DESTINATION="ID_1789585729" ENDARROW="Default" ENDINCLINATION="3225;0;" ID="Arrow_ID_1930701586" SOURCE="ID_1392452935" STARTARROW="None" STARTINCLINATION="2096;-122;"/>
<node CREATED="1481777297635" ID="ID_483368010" MODIFIED="1557498707236" TEXT="Deadlock-Gefahr">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1481777308978" ID="ID_1380229085" MODIFIED="1557498707236" TEXT="Lebensdauer der Session-Datenstruktur">
<node CREATED="1481777328479" ID="ID_1668359018" MODIFIED="1557498707236" TEXT="unabh&#xe4;ngig vom Session-Subsystem">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1481777343548" ID="ID_354877994" MODIFIED="1557498707236" TEXT="irgendwann post main()"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534025083017" ID="ID_1484082332" MODIFIED="1557498707236" TEXT="weiterlaufende Render-Prozesse">
<linktarget COLOR="#eb4053" DESTINATION="ID_1484082332" ENDARROW="Default" ENDINCLINATION="568;0;" ID="Arrow_ID_936372806" SOURCE="ID_1126518975" STARTARROW="Default" STARTINCLINATION="291;0;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1481777355747" ID="ID_1804595708" MODIFIED="1557498707236" TEXT="Subsystem-&gt;end">
<node CREATED="1481777368330" ID="ID_1933237483" MODIFIED="1557498707236" TEXT="Halte-Nachricht"/>
<node COLOR="#338800" CREATED="1481777374801" ID="ID_1844558240" MODIFIED="1557498707236" TEXT="sicherstellen, da&#xdf; Loop anh&#xe4;lt">
<arrowlink COLOR="#10f1a2" DESTINATION="ID_1748096848" ENDARROW="Default" ENDINCLINATION="-480;-82;" ID="Arrow_ID_506637666" STARTARROW="None" STARTINCLINATION="-200;38;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1483654823454" ID="ID_397283548" MODIFIED="1557498707236" TEXT="shutdown -&gt; requireAction"/>
<node CREATED="1483654831773" ID="ID_911489519" MODIFIED="1557498707236" TEXT="shutdown-Trigger macht Notify"/>
<node CREATED="1483654846083" ID="ID_1926442698" MODIFIED="1557498707236" TEXT="Loop-Thread wacht auf"/>
<node CREATED="1483654853850" ID="ID_934617670" MODIFIED="1557498707236" TEXT="...und f&#xe4;llt aus der Loop heraus"/>
</node>
<node CREATED="1481777397542" ID="ID_1147135932" MODIFIED="1557498707236" TEXT="DispatcherLoop stirbt"/>
<node CREATED="1481777410972" ID="ID_457965735" MODIFIED="1557498707236" TEXT="sigTerm"/>
<node CREATED="1483927907096" ID="ID_1366384241" MODIFIED="1557498707236" TEXT="destruktor setzt auch PImpl auf NULL">
<icon BUILTIN="idea"/>
<node CREATED="1483927920718" ID="ID_409709261" MODIFIED="1557498707236" TEXT="niemand sonst fa&#xdf;t den PImpl an"/>
<node CREATED="1483927929773" ID="ID_1082393310" MODIFIED="1557498707237" TEXT="atomar wg. Lock auf ProcDispatcher"/>
</node>
</node>
</node>
</node>
<node CREATED="1533401481917" HGAP="31" ID="ID_1634540822" MODIFIED="1557498707237" TEXT="Struktur" VSHIFT="-19">
<icon BUILTIN="hourglass"/>
<node CREATED="1533918273704" ID="ID_1490841818" MODIFIED="1557498707237" TEXT="Modell">
<node CREATED="1533918279368" ID="ID_90099848" MODIFIED="1557498707237" TEXT="Assets">
<node CREATED="1533918370708" ID="ID_1044798440" MODIFIED="1557498707237" TEXT="Arten">
<node CREATED="1533918396480" ID="ID_1371207426" MODIFIED="1557498707237" TEXT="Media"/>
<node CREATED="1533918387145" ID="ID_421009475" MODIFIED="1557498707237" TEXT="Proc"/>
<node CREATED="1533918391201" ID="ID_1099238975" MODIFIED="1557498707237" TEXT="Struct"/>
<node CREATED="1533918403071" ID="ID_277977903" MODIFIED="1557498707237" TEXT="Meta"/>
</node>
<node CREATED="1533918425908" ID="ID_1069430929" MODIFIED="1557498707237" TEXT="Einordnung">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534001954612" ID="ID_1527156035" MODIFIED="1557498707237" TEXT="Probleme">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534001984536" ID="ID_1186986383" MODIFIED="1557498707237" TEXT="#1156 clarify distinction between asset::Struct and asset::Meta">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534002074828" ID="ID_867232883" MODIFIED="1557498707237" TEXT="Asymetrie in asset::Category">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1534002102456" ID="ID_101543995" MODIFIED="1557498707237" TEXT="benutzer-orientiert"/>
<node CREATED="1534002106999" ID="ID_354946108" MODIFIED="1557498707237" TEXT="GUI ist aber noch nicht gebaut"/>
<node CREATED="1534002113086" ID="ID_1894075831" MODIFIED="1557498707237" TEXT="Audio und Video werden eigens unterschieden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...obwohl die betreffenden Assets in die Kategorie &quot;Medien&quot; fallen,
</p>
<p>
und wir einen eigenen StreamType definieren wollen, also explizit die Art der Medien offen lassen.
</p>
<p>
Ganz prominent fehlt hier also z.B: MIDI
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1534002180893" ID="ID_1074039128" MODIFIED="1557498707237" TEXT="daf&#xfc;r erscheint die Unterscheidung STRUCT vs. META schwammig"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534002037961" ID="ID_95419141" MODIFIED="1557498707237" TEXT="Erzeugung und Lebenszyklus">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1534002202098" ID="ID_1411648485" MODIFIED="1557498707237" TEXT="diese Auto-Regisierung"/>
<node CREATED="1534002225888" ID="ID_138566211" MODIFIED="1557498707237" TEXT="smart-Ptr als Handle nicht immer sinnvoll">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...n&#228;mlich genau <i>nicht</i>&#160;f&#252;r alle Assets,
</p>
<p>
die Aufgrund von Klassifikationen automatisch bereits existieren
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1534024950739" ID="ID_1395279965" MODIFIED="1557498707237" TEXT="Races und m&#xf6;gliche Kollisionen &#xfc;berall">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1534025017601" ID="ID_1126518975" MODIFIED="1557498707237" TEXT="Zusammenhang mit dem Session-Lebenszyklus">
<arrowlink COLOR="#eb4053" DESTINATION="ID_1484082332" ENDARROW="Default" ENDINCLINATION="568;0;" ID="Arrow_ID_936372806" STARTARROW="Default" STARTINCLINATION="291;0;"/>
</node>
</node>
</node>
<node CREATED="1533918431595" FOLDED="true" ID="ID_1121251191" MODIFIED="1557498707237" TEXT="ErrorLog(Asset)">
<linktarget COLOR="#68788a" DESTINATION="ID_1121251191" ENDARROW="Default" ENDINCLINATION="-1644;0;" ID="Arrow_ID_146013003" SOURCE="ID_1117749960" STARTARROW="None" STARTINCLINATION="-4766;280;"/>
<node CREATED="1533997520937" ID="ID_130549036" MODIFIED="1533997523524" TEXT="Typ">
<node CREATED="1533918806369" ID="ID_1198682609" MODIFIED="1533918809694" TEXT="Media">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1533918810848" ID="ID_29240989" MODIFIED="1533918815271" TEXT="Struct">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1533918821511" ID="ID_1150910919" MODIFIED="1533997535081" TEXT="Meta">
<icon BUILTIN="forward"/>
<node CREATED="1533919635505" ID="ID_353835069" MODIFIED="1533919642476" TEXT="pa&#xdf;t soweit schon"/>
<node CREATED="1533920004719" ID="ID_402802807" MODIFIED="1533994722201" TEXT="was hei&#xdf;t hier &quot;immutable&quot;?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Meta-Assets sind per Definition <i>&quot;immutable&quot;</i><br />Es gibt einen Builder
</p>
</body>
</html></richcontent>
<node CREATED="1533994326945" ID="ID_1821159631" MODIFIED="1533994327255" TEXT="Eigenschaften des Log"/>
<node CREATED="1533994327584" ID="ID_780339362" MODIFIED="1533994784549" TEXT="Filter, Persistenz, Warnschwellen, Weiterleitung"/>
<node CREATED="1533994328152" ID="ID_538198315" MODIFIED="1533994328390" TEXT="k&#xf6;nnen bei bestehendem Log nicht ge&#xe4;ndert werden"/>
</node>
</node>
</node>
<node CREATED="1533997546077" ID="ID_1270326369" MODIFIED="1533997549209" TEXT="Rolle">
<node CREATED="1533997550413" ID="ID_1832028422" MODIFIED="1533997561821">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>das</i>&#160;ErrorLog
</p>
</body>
</html></richcontent>
<node CREATED="1533997846989" ID="ID_1324960272" MODIFIED="1533997854911" TEXT="zun&#xe4;chst nur Platzhalter">
<node CREATED="1533997938232" ID="ID_40537012" MODIFIED="1533997995641" TEXT="brauche EntryID&lt;ErrorLog&gt;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....weil hier ein allgemeines Schema entsteht:
</p>
<p>
jede Aktion, die in das UI &quot;reflektiert&quot; wird, erfolgt, indem man eine Nachricht
</p>
<p>
&#252;ber den UI-Bus schickt, an einen Empf&#228;nger mit bekannter ID.
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1533997855707" ID="ID_663263517" MODIFIED="1533997862414" TEXT="nomineller Empf&#xe4;nger"/>
<node CREATED="1533997863858" ID="ID_680229716" MODIFIED="1533997880164" TEXT="entspricht dem UI">
<node CREATED="1533997895182" ID="ID_1179742637" MODIFIED="1533997924871">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
dort gibt es eine <b>ErrorLogView</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1533997901765" ID="ID_361019548" MODIFIED="1535891607125">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und den Controller: <b>NotificationHub</b>
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#a9aac1" DESTINATION="ID_70134302" ENDARROW="Default" ENDINCLINATION="-1984;0;" ID="Arrow_ID_1885125683" STARTARROW="None" STARTINCLINATION="803;-67;"/>
</node>
</node>
<node CREATED="1533997881703" ID="ID_405103584" MODIFIED="1533997890166" TEXT="Persistenz">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1533997570242" ID="ID_503070656" MODIFIED="1533997575269" TEXT="spezielle Detail-Logs">
<node CREATED="1534002311748" ID="ID_440257353" MODIFIED="1534002317208" TEXT="geplant/Idee">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1533997581280" ID="ID_398592361" MODIFIED="1533997591029" TEXT="Idee: Verallgemeinerung auf Logs">
<icon BUILTIN="idea"/>
<node CREATED="1533997595735" ID="ID_459951978" MODIFIED="1533997703292" TEXT="selbstreferentielle Struktur">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das ist diese Idee, da&#223; eine Struktur sich selbst meta-repr&#228;sentiert;
</p>
<p>
dadurch werden Meta-Operationen auf gleiche Ebene gestellt wie normale Struktur-Manipulationen
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1533997603741" ID="ID_1980534712" MODIFIED="1533997832361" TEXT="die Command und Event-Logs k&#xf6;nnten repr&#xe4;sentiert sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und dadruch w&#252;rden History-Operationen wie
</p>
<ul>
<li>
undo
</li>
<li>
redo
</li>
<li>
repeat command
</li>
</ul>
<p>
...zu ganz normalen Manipulationen der Session, w&#252;rden ihrerseits geloggt und historisiert
</p>
<p>
und verlieren ihren <i>magischen Charakter</i>&#160;au&#223;erhalb der Event-Sourcing-Struktur
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1533918281880" ID="ID_1584868520" MODIFIED="1557498707237" TEXT="MObject"/>
</node>
<node CREATED="1533401497075" ID="ID_598742497" MODIFIED="1557498707237" TEXT="Struktur-&#xc4;nderungen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401543765" ID="ID_1439915831" MODIFIED="1557498707237" TEXT="erkennen">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1533401549900" ID="ID_98267055" MODIFIED="1557498707237" TEXT="Builder?"/>
</node>
<node CREATED="1533401523656" ID="ID_1710492737" MODIFIED="1557498707237" TEXT="Diff-Generierung">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401384155" ID="ID_1106740084" MODIFIED="1557498707237" TEXT="#1153 define foundation for live diff updates Session -&gt; UI">
<linktarget COLOR="#a47f9a" DESTINATION="ID_1106740084" ENDARROW="Default" ENDINCLINATION="2561;-1079;" ID="Arrow_ID_1276188897" SOURCE="ID_1494781570" STARTARROW="None" STARTINCLINATION="1703;327;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401567737" ID="ID_464225987" MODIFIED="1557498707237" TEXT="populationDiff">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401584887" ID="ID_181123777" MODIFIED="1557498707237" TEXT="aktuellen Zustand reflektieren">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401596470" ID="ID_1892595651" MODIFIED="1557498707237" TEXT="vorl&#xe4;ufig: hart gecodet">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node CREATED="1539270417847" ID="ID_1555798999" MODIFIED="1557498707237" TEXT="korrekte Diff-Struktur">
<linktarget COLOR="#cbada9" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="1069;-129;" ID="Arrow_ID_46239762" SOURCE="ID_1136748343" STARTARROW="None" STARTINCLINATION="-474;40;"/>
<linktarget COLOR="#d47366" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="713;-263;" ID="Arrow_ID_971172326" SOURCE="ID_1387553695" STARTARROW="None" STARTINCLINATION="-1999;120;"/>
<linktarget COLOR="#d47366" DESTINATION="ID_1555798999" ENDARROW="Default" ENDINCLINATION="590;-127;" ID="Arrow_ID_308349501" SOURCE="ID_1435731309" STARTARROW="None" STARTINCLINATION="915;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1539270427702" ID="ID_1895500225" MODIFIED="1557498707237" TEXT="der Diff mu&#xdf; gewisse Regeln einhalten"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1539270457106" ID="ID_1865797145" MODIFIED="1557498707237" TEXT="diese sind implizit und lokal">
<icon BUILTIN="clanbomber"/>
<node CREATED="1539382866228" ID="ID_961794575" MODIFIED="1557498707237" TEXT="Timeline">
<node CREATED="1539386837229" ID="ID_563098407" MODIFIED="1557498707237" TEXT="sofort bei Population...">
<icon BUILTIN="yes"/>
<node CREATED="1539382950953" ID="ID_150037135" MODIFIED="1557498707237" TEXT="ID + Record"/>
<node CREATED="1539382957680" ID="ID_1525067830" MODIFIED="1557498707237" TEXT="Attribut ATTR_fork -&gt; ID + Record"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1539388046730" ID="ID_1028444200" MODIFIED="1557498707237" TEXT="Entscheidung: besser so">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1539388094636" ID="ID_545613641" MODIFIED="1557498707237" TEXT="Alternative w&#xe4;re...">
<node CREATED="1539388104018" ID="ID_1338813705" MODIFIED="1557498707237" TEXT="erst mal BOTTOM- Track-ID verwenden"/>
<node CREATED="1539388120696" ID="ID_532223861" MODIFIED="1557498707237" TEXT="dann Track-Attibut zuweisen"/>
<node CREATED="1539388127375" ID="ID_91044288" MODIFIED="1557498707237" TEXT="ggfs schon bestehende Objekte werkegeln"/>
<node CREATED="1539388139030" ID="ID_1167639326" MODIFIED="1557498707237" TEXT="w&#xfc;rde funkionieren, aber...">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1539388158555" ID="ID_1745880313" MODIFIED="1557498707237" TEXT="besser geleich Exception werfen">
<arrowlink COLOR="#ea3f19" DESTINATION="ID_946219609" ENDARROW="Default" ENDINCLINATION="305;-104;" ID="Arrow_ID_22622466" STARTARROW="None" STARTINCLINATION="-367;13;"/>
</node>
</node>
</node>
</node>
<node CREATED="1541547600640" HGAP="79" ID="ID_659707505" MODIFIED="1560172942629" TEXT="Element-IDs m&#xfc;ssen eindeutig sein" VSHIFT="10">
<arrowlink COLOR="#c9876a" DESTINATION="ID_1850412206" ENDARROW="Default" ENDINCLINATION="369;179;" ID="Arrow_ID_1229280605" STARTARROW="None" STARTINCLINATION="586;-203;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1541547743885" ID="ID_1112550435" MODIFIED="1557498707237" TEXT="wegen UI-Bus-Routing"/>
<node CREATED="1541547751020" ID="ID_566590492" MODIFIED="1557498707237" TEXT="Aber: Attribute werden lokal erzeugt"/>
</node>
</node>
<node CREATED="1539270417847" ID="ID_946219609" MODIFIED="1557498707237" TEXT="Reaktion auf Diff-Fehler">
<linktarget COLOR="#d47366" DESTINATION="ID_946219609" ENDARROW="Default" ENDINCLINATION="713;-263;" ID="Arrow_ID_1085344706" SOURCE="ID_19523487" STARTARROW="Default" STARTINCLINATION="-1999;120;"/>
<linktarget COLOR="#ea3f19" DESTINATION="ID_946219609" ENDARROW="Default" ENDINCLINATION="305;-104;" ID="Arrow_ID_22622466" SOURCE="ID_1745880313" STARTARROW="None" STARTINCLINATION="-367;13;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node CREATED="1533400671533" HGAP="45" ID="ID_1357977461" MODIFIED="1557498707237" TEXT="Command-Ausf&#xfc;hrung" VSHIFT="-27">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1533400693522" ID="ID_217032156" MODIFIED="1557498707237" TEXT="Commands sollen geloggt werden">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533400707072" ID="ID_1192893155" MODIFIED="1557498707237" TEXT="#211 handling pattern for dispatch">
<linktarget COLOR="#ca91c2" DESTINATION="ID_1192893155" ENDARROW="Default" ENDINCLINATION="1415;0;" ID="Arrow_ID_207842771" SOURCE="ID_1072134705" STARTARROW="None" STARTINCLINATION="2581;0;"/>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1533400727749" ID="ID_345730150" MODIFIED="1557498707237" TEXT="wartet auf Storage-Backend-Entscheidung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1533400742979" HGAP="21" ID="ID_748308949" MODIFIED="1557498707237" TEXT="vorl&#xe4;ufiger Hack" VSHIFT="15">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1533400757737" ID="ID_1656760024" MODIFIED="1557498707237" TEXT="Pr&#xe4;fix &quot;test&quot; vor CommandID">
<icon BUILTIN="info"/>
</node>
<node COLOR="#338800" CREATED="1533400770320" ID="ID_1945470515" MODIFIED="1557498707237" TEXT="solche Commands werden vom Dispatcher direkt ausgef&#xfc;hrt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1481778538165" FOLDED="true" HGAP="37" ID="ID_522398894" MODIFIED="1557498707237" TEXT="ProcDispatcher" VSHIFT="12">
<icon BUILTIN="button_ok"/>
<node CREATED="1481826274018" HGAP="18" ID="ID_1916296972" MODIFIED="1518487921096" TEXT="Requirements" VSHIFT="-7">
<icon BUILTIN="button_ok"/>
<node CREATED="1481826329819" ID="ID_1238318698" MODIFIED="1518487921096" TEXT="enqueue commands concurrently">
<node CREATED="1481827297122" ID="ID_860095678" MODIFIED="1518487921096" TEXT="FIFO for regular commands"/>
<node CREATED="1481827312024" ID="ID_850193431" MODIFIED="1518487921096" TEXT="LIFO for priority requests">
<node CREATED="1482712100745" ID="ID_1387300775" MODIFIED="1518487921096" TEXT="vorerst nicht implementiert">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1481826431861" ID="ID_328583048" MODIFIED="1518487921096" TEXT="process sequentially"/>
<node CREATED="1481826441884" ID="ID_952327020" MODIFIED="1518487921096" TEXT="until queue is empty"/>
<node CREATED="1481826997930" ID="ID_576341056" MODIFIED="1518487921096" TEXT="provide a check point">
<node CREATED="1481827040748" ID="ID_406205627" MODIFIED="1518487921096" TEXT="when">
<icon BUILTIN="help"/>
<node CREATED="1481827019615" ID="ID_1169845292" MODIFIED="1518487921096" TEXT="after each command"/>
<node CREATED="1481827024942" ID="ID_137101226" MODIFIED="1518487921096" TEXT="after each builder run"/>
</node>
<node CREATED="1481827051787" ID="ID_1911969568" MODIFIED="1518487921096" TEXT="why">
<icon BUILTIN="help"/>
<node CREATED="1483747048432" ID="ID_1165337571" MODIFIED="1518487921096" TEXT="to ensure sane state logic"/>
<node CREATED="1483747065326" ID="ID_896973402" MODIFIED="1518487921096" TEXT="allow to wait for disabled state">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...necessary when closing the session;
</p>
<p>
we need to wait for the current command or builder run to be completed
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1481827548073" ID="ID_690689259" MODIFIED="1518487921096" TEXT="manage entries">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...noch nicht implementiert 1/17
</p>
</body>
</html></richcontent>
<icon BUILTIN="bell"/>
<node CREATED="1481827558336" ID="ID_1026688096" MODIFIED="1518487921096" TEXT="match current session"/>
<node CREATED="1481827647491" ID="ID_1849886325" MODIFIED="1518487921096" TEXT="aggregate similar"/>
<node CREATED="1481827652539" ID="ID_313823253" MODIFIED="1518487921096" TEXT="supersede"/>
</node>
</node>
<node CREATED="1481917572639" FOLDED="true" HGAP="74" ID="ID_190109346" MODIFIED="1538871216075" TEXT="operational..." VSHIFT="-27">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1481917612602" ID="ID_567971228" MODIFIED="1518487921096" TEXT="Loop l&#xe4;uft stets, aber blockt ggfs"/>
<node CREATED="1481917641910" ID="ID_1157396234" MODIFIED="1518487921096" TEXT="anf&#xe4;nglich idle --&gt; schlafen"/>
<node CREATED="1481918441020" ID="ID_584625018" MODIFIED="1518487921096" TEXT="Command-Queue wird ohne Verz&#xf6;gerung abgearbeitet"/>
<node CREATED="1481918465680" ID="ID_973127249" MODIFIED="1518487921096" TEXT="Builder startet">
<node CREATED="1481918475295" ID="ID_1997533333" MODIFIED="1518487921096" TEXT="nach kurzer Idle-Periode"/>
<node CREATED="1481918481102" ID="ID_335740959" MODIFIED="1518487921096" TEXT="nach l&#xe4;ngerer Command-Abarbeitung"/>
</node>
<node CREATED="1481917691047" ID="ID_714937554" MODIFIED="1518487921096" TEXT="&#xc4;nderung der Umst&#xe4;nde">
<node CREATED="1481917700998" ID="ID_470084004" MODIFIED="1518487921096" TEXT="kommt stets &#xfc;ber Interface"/>
<node CREATED="1481917726683" ID="ID_962119246" MODIFIED="1518487921096" TEXT="weckt den Loop-Thread auf"/>
<node CREATED="1481917766837" ID="ID_1794908304" MODIFIED="1518487921097" TEXT="ist atomar (locking)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Guard beim Zugang &#252;ber das Interface
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1481918074269" ID="ID_1984339005" MODIFIED="1518487921097">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nur sie</i>&#160;ist atomar
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1481918117831" ID="ID_924462902" MODIFIED="1518487921097" TEXT="asynchron">
<icon BUILTIN="info"/>
<node CREATED="1481918130245" ID="ID_1624017067" MODIFIED="1518487921097">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>nur ein Thread</b>&#160;f&#252;r Commands und Builder
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#171ccb" DESTINATION="ID_1214851922" ENDARROW="Default" ENDINCLINATION="53;-5;" ID="Arrow_ID_1745317422" STARTARROW="None" STARTINCLINATION="42;2;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1481918174199" ID="ID_364234189" MODIFIED="1518487921097" TEXT="essentiell f&#xfc;r Konsitenz der Session"/>
<node CREATED="1481918181254" ID="ID_1313994065" MODIFIED="1518487921097" TEXT="stellt bereits sicher, da&#xdf; der Builder blockt"/>
</node>
<node CREATED="1481918194356" ID="ID_1233041580" MODIFIED="1518487921097" TEXT="einf&#xfc;gen neuer Commands"/>
<node CREATED="1481918273490" ID="ID_1214851922" MODIFIED="1518487921097" TEXT="n&#xe4;chstes Command starten">
<arrowlink COLOR="#010de6" DESTINATION="ID_1857790160" ENDARROW="Default" ENDINCLINATION="86;0;" ID="Arrow_ID_1735750125" STARTARROW="Default" STARTINCLINATION="127;3;"/>
<linktarget COLOR="#171ccb" DESTINATION="ID_1214851922" ENDARROW="Default" ENDINCLINATION="53;-5;" ID="Arrow_ID_1745317422" SOURCE="ID_1624017067" STARTARROW="None" STARTINCLINATION="42;2;"/>
</node>
<node CREATED="1481918291351" ID="ID_1857790160" MODIFIED="1518487921097" TEXT="Builder-Lauf initiieren">
<linktarget COLOR="#010de6" DESTINATION="ID_1857790160" ENDARROW="Default" ENDINCLINATION="86;0;" ID="Arrow_ID_1735750125" SOURCE="ID_1214851922" STARTARROW="Default" STARTINCLINATION="127;3;"/>
</node>
<node CREATED="1481918212722" ID="ID_1376599707" MODIFIED="1518487921097" TEXT="Shutdown-Triggger"/>
<node CREATED="1481918222577" ID="ID_1588368762" MODIFIED="1518487921097" TEXT="Sperre setzen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1481918517018" HGAP="11" ID="ID_916331172" MODIFIED="1518487921097" TEXT="Sperre" VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node CREATED="1481918524673" ID="ID_1705856370" MODIFIED="1518487921097" TEXT="verhindert Command- und Builder-start">
<icon BUILTIN="info"/>
</node>
<node CREATED="1481918547182" ID="ID_920627724" MODIFIED="1518487921097" TEXT="bestehende Commands / Builder-L&#xe4;ufe werden noch abgeschlossen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1481920722100" ID="ID_1378897740" MODIFIED="1531584182083" TEXT="SessionManager mu&#xdf; auf Sperre warten">
<linktarget COLOR="#5a97df" DESTINATION="ID_1378897740" ENDARROW="Default" ENDINCLINATION="2126;95;" ID="Arrow_ID_1446486242" SOURCE="ID_284397306" STARTARROW="None" STARTINCLINATION="2592;-81;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1481926040310" ID="ID_667460598" MODIFIED="1518487921097" TEXT="Deadlock wenn der Session-Thread selber auf diese Sperre wartet">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1482197251133" ID="ID_1245878337" MODIFIED="1518487921097">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ticket <font color="#e90426">#1054</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1482197270202" ID="ID_221875120" MODIFIED="1518487921097" TEXT="neues API auf unserem Thread-Wrapper schaffen">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1482197280297" ID="ID_1142010083" MODIFIED="1518487921097" TEXT="rein technisch bereits heute m&#xf6;glich">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482197292263" ID="ID_669497196" MODIFIED="1518487921097" TEXT="jeder Lumiera-Thread speichert &quot;self&quot; in thread local storage">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und &quot;self&quot; == LumieraThrea* == &quot;handle&quot; (im Wrapper).
</p>
<p>
</p>
<p>
D.h. solange der Wrapper lebt (!), kann er selber leicht feststellen, ob die aktuelle Ausf&#252;hrung
</p>
<p>
auch in einem Thread stattfindet, der
</p>
<ul>
<li>
von unserem Threadpool gestartet wurde
</li>
<li>
ein Thread-Handle hat, das mit dem Handle dieses Wrappers identisch ist.
</li>
</ul>
<p>
</p>
<p>
Das Sch&#246;ne bei diesem Ansatz ist, da&#223; man daf&#252;r weder das Handle exponieren mu&#223;,
</p>
<p>
noch irgendwelche komischen Policies aufmachen. Solange es das Objekt gibt, klappt das.
</p>
<p>
OO rocks!
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
</node>
</node>
</node>
<node CREATED="1481828583551" HGAP="148" ID="ID_436508747" MODIFIED="1518487921097" TEXT="Aufbau" VSHIFT="-35">
<icon BUILTIN="button_ok"/>
<node CREATED="1481828611347" ID="ID_160907866" MODIFIED="1518487921097" TEXT="Front-End"/>
<node CREATED="1481828614827" ID="ID_1752707995" MODIFIED="1518487921097" TEXT="DispatcherLoop PImpl"/>
<node CREATED="1481828624042" ID="ID_1970372601" MODIFIED="1518487921097" TEXT="Looper f&#xfc;r Schleifen-Logik"/>
<node CREATED="1481828639584" ID="ID_1344182776" MODIFIED="1518487921097" TEXT="CommandQueue"/>
</node>
<node CREATED="1481778549940" FOLDED="true" HGAP="50" ID="ID_676848252" MODIFIED="1538871208928" TEXT="DispatcherLoop" VSHIFT="1">
<icon BUILTIN="button_ok"/>
<node CREATED="1481778741546" ID="ID_684867533" MODIFIED="1518487921097" TEXT="&#xf6;ffnet Session-Interface">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481778565298" ID="ID_1803510423" MODIFIED="1518487921097" TEXT="Schleifen-Logik">
<node CREATED="1481778570153" ID="ID_6904207" MODIFIED="1518487921097" TEXT="beruht auf CondVar / wait"/>
<node CREATED="1481831352239" ID="ID_947882756" MODIFIED="1518487921097" TEXT="Looper-Hilfskomponente"/>
<node CREATED="1481831372092" ID="ID_411828431" MODIFIED="1518487921097" TEXT="mu&#xdf;...">
<icon BUILTIN="yes"/>
<node CREATED="1481831398297" ID="ID_1100709659" MODIFIED="1518487921097" TEXT="aufwachen wenn Commands anstehen"/>
<node CREATED="1481831722406" ID="ID_462123533" MODIFIED="1518487921097" TEXT="aufwachen wenn Checkpoint"/>
<node CREATED="1481831408415" ID="ID_1091888781" MODIFIED="1518487921097" TEXT="aufwachen bei Shutdown"/>
<node CREATED="1481831432220" ID="ID_1256743195" MODIFIED="1518487921097" TEXT="Shutdown-Flag verwalten"/>
<node CREATED="1481831886448" ID="ID_1022163658" MODIFIED="1518487921097" TEXT="Betriebszustand">
<icon BUILTIN="info"/>
<node CREATED="1481831945472" ID="ID_756400184" MODIFIED="1518487921097" TEXT="arbeitend"/>
<node CREATED="1481831948240" ID="ID_349500680" MODIFIED="1518487921097" TEXT="Leerlauf"/>
<node CREATED="1481831950160" ID="ID_602481733" MODIFIED="1518487921097" TEXT="gesperrt"/>
<node CREATED="1481831965253" ID="ID_1644273707" MODIFIED="1518487921097" TEXT="sterbend"/>
</node>
<node CREATED="1481831638089" ID="ID_209292609" MODIFIED="1518487921097" TEXT="Builder steuern">
<arrowlink COLOR="#5242a4" DESTINATION="ID_1311208726" ENDARROW="Default" ENDINCLINATION="2;-45;" ID="Arrow_ID_313252247" STARTARROW="None" STARTINCLINATION="-186;-13;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481831642376" ID="ID_1301681872" MODIFIED="1518487921097" TEXT="Checkpoint bieten">
<icon BUILTIN="button_ok"/>
<node CREATED="1482365008444" ID="ID_1520027430" MODIFIED="1518487921097" TEXT="warum">
<icon BUILTIN="help"/>
</node>
<node CREATED="1482365012947" ID="ID_10844185" MODIFIED="1518487921097" TEXT="um zuverl&#xe4;ssig anhalten zu k&#xf6;nnen"/>
<node CREATED="1482712199900" ID="ID_1990071363" MODIFIED="1518487921097" TEXT="Checkpoint == Zustand ausgeglichen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482712212930" ID="ID_1065088226" MODIFIED="1518487921097" TEXT="das hei&#xdf;t">
<icon BUILTIN="info"/>
<node CREATED="1482712227048" ID="ID_172281578" MODIFIED="1518487921097" TEXT="keine schwebenden Zustands&#xe4;nderungen"/>
<node CREATED="1482712235016" ID="ID_943771142" MODIFIED="1518487921097" TEXT="Alle zustands-Relevanten &#xc4;nderungen sind ausgewertet"/>
<node CREATED="1482712250461" ID="ID_610930154" MODIFIED="1518487921097" TEXT="alle Pr&#xe4;dikate spiegeln den wirklichen Zustand wider"/>
<node CREATED="1482712261876" ID="ID_47966817" MODIFIED="1518487921097">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Kontrollflu&#223; ist <i>nicht</i>&#160;in einer Arbeitsfunktion
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1481831747042" ID="ID_134003952" MODIFIED="1518487921097" TEXT="sperrbar sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und dann nur noch
</p>
<ul>
<li>
auf Shutdown reagieren
</li>
<li>
mitbekommen wenn die Sperre aufgehoben wird
</li>
</ul>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1481778590790" ID="ID_1748096848" MODIFIED="1538871175327" TEXT="Anhalten">
<linktarget COLOR="#10f1a2" DESTINATION="ID_1748096848" ENDARROW="Default" ENDINCLINATION="-480;-82;" ID="Arrow_ID_506637666" SOURCE="ID_1844558240" STARTARROW="None" STARTINCLINATION="-200;38;"/>
<node CREATED="1481778666820" ID="ID_1860590145" MODIFIED="1518487921097" TEXT="Trigger-Variable im Looper">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1481917462421" ID="ID_200909201" MODIFIED="1518487921097" TEXT="shutdown-Trigger ebenda">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1481917478412" ID="ID_594556769" MODIFIED="1518487921097" TEXT="kombiniert enabled und shutdown">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1481778708207" FOLDED="true" HGAP="50" ID="ID_1311208726" MODIFIED="1538871203865" TEXT="Builder-Steuerung">
<linktarget COLOR="#5242a4" DESTINATION="ID_1311208726" ENDARROW="Default" ENDINCLINATION="2;-45;" ID="Arrow_ID_313252247" SOURCE="ID_209292609" STARTARROW="None" STARTINCLINATION="-186;-13;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1481828478741" ID="ID_1706868067" MODIFIED="1518487921097" TEXT="Hysterese"/>
<node CREATED="1481828498618" ID="ID_321199314" MODIFIED="1518487921097" TEXT="nach neuem Command, mit kleiner Verz&#xf6;gerung"/>
<node CREATED="1481828520176" ID="ID_239973202" MODIFIED="1518487921097" TEXT="bei voller Schlange mit Toleranzschwelle"/>
<node CREATED="1481828568129" ID="ID_295162940" MODIFIED="1518487921097" TEXT="Builder-Lauf ist monolithisch"/>
<node CREATED="1481928858318" ID="ID_1695005029" MODIFIED="1518487921097" TEXT="verdecken...">
<node CREATED="1481928864549" ID="ID_515765693" MODIFIED="1518487921097" TEXT="wenn gesperrt"/>
<node CREATED="1481928867893" ID="ID_1200076817" MODIFIED="1518487921097" TEXT="wenn in Shutdown"/>
</node>
<node CREATED="1481928874500" ID="ID_73724471" MODIFIED="1518487921097" TEXT="idle-timeout">
<node CREATED="1481928882723" ID="ID_770033134" MODIFIED="1518487921097" TEXT="dynamisch steuern">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481928888035" ID="ID_927205346" MODIFIED="1518487921097" TEXT="kurz, wenn der Builder laufen mu&#xdf;">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481928913687" ID="ID_696704157" MODIFIED="1518487921097" TEXT="lang sonst">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1481928939300" ID="ID_1625916543" MODIFIED="1518487921097" TEXT="kein Timeout wenn gesperrt">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1481928958233" ID="ID_350657817" MODIFIED="1518487921097" TEXT="Builder-Lauf erzwingen">
<icon BUILTIN="button_ok"/>
<node CREATED="1481928966167" ID="ID_1511723472" MODIFIED="1518487921097" TEXT="wenn lange Timeout-Spanne &#xfc;berschritten"/>
<node CREATED="1481928978223" ID="ID_106761868" MODIFIED="1518487921097" TEXT="Implementierung erfordert Zeitmessung">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1482365133332" ID="ID_99275973" MODIFIED="1518487921097" TEXT="moderne / zeitgem&#xe4;&#xdf;e Implementierung">
<icon BUILTIN="help"/>
</node>
<node CREATED="1482365613228" ID="ID_1195899391" MODIFIED="1518487921097">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>billig:</i>&#160;unsere Zeit-Lib nutzen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1482430715396" ID="ID_1005651794" MODIFIED="1518487921098" TEXT="nicht besonders sch&#xf6;n">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1482430724019" ID="ID_880234680" MODIFIED="1518487921098" TEXT="sollte mit std::chrono integrieren">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1482202066204" HGAP="23" ID="ID_41541843" MODIFIED="1518487921098" TEXT="L&#xf6;sungnsansatz" VSHIFT="16">
<icon BUILTIN="help"/>
<node CREATED="1482202080675" ID="ID_12774028" MODIFIED="1518487921098" TEXT="CommandQueue mu&#xdf; helfen und dirty-state verwalten">
<icon BUILTIN="button_cancel"/>
<node CREATED="1482202099752" ID="ID_434677221" MODIFIED="1518487921098" TEXT="geht, weil sie wei&#xdf;, wann ein Command wirklich l&#xe4;uft"/>
<node CREATED="1482202114630" ID="ID_1833945556" MODIFIED="1518487921098" TEXT="unsch&#xf6;n, weil wir nun massive Kopplung haben"/>
</node>
<node CREATED="1482202127252" ID="ID_1720469294" MODIFIED="1518487921098" TEXT="Looper in State-machine verwandeln">
<icon BUILTIN="button_ok"/>
<node CREATED="1482202136235" ID="ID_239151488" MODIFIED="1518487921098" TEXT="schwierig">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1482202142818" ID="ID_1412852448" MODIFIED="1518487921098" TEXT="ben&#xf6;tigt Hilfe von der DispatcherLoop">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1482202156416" ID="ID_1161547825" MODIFIED="1518487921098" TEXT="geht aber: nach jedem WHILE-Durchlauf">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482202165423" ID="ID_1845799711" MODIFIED="1518487921098" TEXT="schaut sauberer aus">
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1482202187620" ID="ID_259250017" MODIFIED="1518487921098" TEXT="geht das &#xfc;berhaupt">
<icon BUILTIN="help"/>
<node CREATED="1482375716922" ID="ID_1702615812" MODIFIED="1518487921098" TEXT="ja">
<icon BUILTIN="forward"/>
</node>
<node CREATED="1482375724321" ID="ID_218202011" MODIFIED="1518487921098" TEXT="einfacher trap-door-Mechanismus">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1482375737327" ID="ID_1980564250" MODIFIED="1518487921098" TEXT="tendentiell bereits schwer zu verstehen">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1482202207242" ID="ID_1287224856" MODIFIED="1518487921098" TEXT="Test">
<icon BUILTIN="button_ok"/>
<node CREATED="1482202211049" ID="ID_1159832087" MODIFIED="1518487921098" TEXT="komplexen Ablauf als Szenario durchspielen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1482375826635" ID="ID_1275445978" MODIFIED="1518487921098" TEXT="beinhaltet auch einen Timeout">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1482202223536" ID="ID_374030732" MODIFIED="1518487921098">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Logik im Looper auf Basis
</p>
<p>
generischer &#220;berlegungen implementiert
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1482202243253" ID="ID_1342399342" MODIFIED="1518487921098" TEXT="verh&#xe4;lt er sich dann richtig">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1533401628689" HGAP="7" ID="ID_36032481" MODIFIED="1557498707237" TEXT="Builder" VSHIFT="9">
<font NAME="SansSerif" SIZE="16"/>
<icon BUILTIN="hourglass"/>
<node COLOR="#435e98" CREATED="1533401646479" ID="ID_305001887" MODIFIED="1557498707237" TEXT="das gro&#xdf;e wartende MEGA-Integrations-Thema">
<font NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
<node CREATED="1448314932726" ID="ID_669869188" MODIFIED="1557498707237" POSITION="right" TEXT="Render">
<icon BUILTIN="stop"/>
<node CREATED="1512923568305" ID="ID_1329323311" MODIFIED="1557498707237" TEXT="Player">
<node CREATED="1512923658341" ID="ID_1855109590" MODIFIED="1557498707237" TEXT="Interface"/>
<node CREATED="1512923661892" ID="ID_1580804608" MODIFIED="1557498707237" TEXT="Control"/>
<node CREATED="1512923672275" ID="ID_1369059082" MODIFIED="1557498707237" TEXT="Wiring"/>
<node CREATED="1512923682530" ID="ID_1204903801" MODIFIED="1557498707237" TEXT="Planning">
<node CREATED="1512925214070" ID="ID_491842947" MODIFIED="1557498707237" TEXT="1.Entwurf">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512925217693" ID="ID_704714253" MODIFIED="1557498707237" TEXT="steckengeblieben">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1512925253328" ID="ID_922277724" MODIFIED="1557498707237" TEXT="JobTicket"/>
<node CREATED="1512925246057" FOLDED="true" ID="ID_181262071" MODIFIED="1557498707237" TEXT="JobPlanning">
<linktarget COLOR="#5379b5" DESTINATION="ID_181262071" ENDARROW="Default" ENDINCLINATION="-150;-386;" ID="Arrow_ID_1786254694" SOURCE="ID_1543264108" STARTARROW="Default" STARTINCLINATION="-1298;0;"/>
<node CREATED="1535892806131" ID="ID_513357674" MODIFIED="1535892890103" TEXT="k&#xf6;nnte eine Monade sein.....?">
<arrowlink COLOR="#6c79a2" DESTINATION="ID_1502143527" ENDARROW="Default" ENDINCLINATION="-522;742;" ID="Arrow_ID_616092581" STARTARROW="None" STARTINCLINATION="238;0;"/>
<icon BUILTIN="help"/>
</node>
<node CREATED="1535891554587" ID="ID_185594200" MODIFIED="1535891663091" TEXT="entwerfe einen IterExplorer">
<arrowlink COLOR="#625975" DESTINATION="ID_409327286" ENDARROW="Default" ENDINCLINATION="-843;1771;" ID="Arrow_ID_86323098" STARTARROW="None" STARTINCLINATION="-493;-1123;"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1512923592590" ID="ID_540019681" MODIFIED="1557498707237" TEXT="Engine"/>
<node CREATED="1512923605740" ID="ID_319280946" MODIFIED="1557498707237" TEXT="Fixture"/>
<node CREATED="1512923629577" ID="ID_617347424" MODIFIED="1557498707237" TEXT="Backend"/>
<node CREATED="1512923647255" ID="ID_1800845122" MODIFIED="1557498707237" TEXT="Plug-in"/>
</node>
<node BACKGROUND_COLOR="#c9d1da" COLOR="#2d2198" CREATED="1439664045448" HGAP="240" ID="ID_21531707" MODIFIED="1557498707237" POSITION="left" TEXT="Info" VSHIFT="-500">
<edge COLOR="#b4a9e3"/>
<font NAME="SansSerif" SIZE="16"/>
<node CREATED="1439664217489" ID="ID_104059794" MODIFIED="1557498707237" TEXT="GTK-3">
<node CREATED="1439664230168" ID="ID_235548644" LINK="https://wiki.gnome.org/Projects/GTK%2B/Inspector" MODIFIED="1557498707237" TEXT="GKT+ Inspector">
<icon BUILTIN="idea"/>
<node CREATED="1439664318604" ID="ID_1327496126" MODIFIED="1557498707237" TEXT="keyboard shortcut">
<node CREATED="1439664330354" ID="ID_257893375" MODIFIED="1557498707237" TEXT="SHIFT-Ctrl I"/>
<node CREATED="1439664339353" ID="ID_559550607" MODIFIED="1557498707237" TEXT="aktivieren via dconf">
<node CREATED="1538693388521" ID="ID_1129767870" MODIFIED="1557498707237" TEXT="per Editor">
<node CREATED="1439664358287" ID="ID_1044303564" MODIFIED="1557498707237" TEXT="apt-get install dconf-editor"/>
<node CREATED="1439664574202" ID="ID_1254903463" MODIFIED="1557498707237" TEXT="org &gt; gtk &gt; settings &gt; debug"/>
</node>
<node CREATED="1538693397856" ID="ID_469176877" MODIFIED="1557498707237" TEXT="Kommandozeile">
<node CREATED="1538693413542" ID="ID_1265168543" MODIFIED="1557498707237" TEXT="gsettings set org.gtk.Settings.Debug enable-inspector-keybinding true"/>
</node>
</node>
</node>
<node CREATED="1538693418285" ID="ID_1301334145" MODIFIED="1557498707237" TEXT="direkt mit Applikation starten">
<node CREATED="1538693436099" ID="ID_1197910975" MODIFIED="1557498707237" TEXT="GTK_DEBUG=interactive target/lumiera"/>
</node>
<node CREATED="1538693451665" ID="ID_599439426" MODIFIED="1557498707237" TEXT="seit GTK+ 3.14 in der Standard-Distro">
<icon BUILTIN="info"/>
</node>
<node CREATED="1439664638857" ID="ID_1095180651" MODIFIED="1557498707237">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>saugeil</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1534634232557" HGAP="31" ID="ID_1467351006" MODIFIED="1557498707237" TEXT="Konzepte" VSHIFT="-22">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
<node CREATED="1534635219848" ID="ID_1769333890" MODIFIED="1557498707237" TEXT="show / hide">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1534635236910" ID="ID_1635567005" MODIFIED="1557498707237" TEXT="das zentrale Konzept in GTK">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1534635271809" ID="ID_545450309" MODIFIED="1557498707237" TEXT="GTK == Event-Framework">
<node CREATED="1534635363429" ID="ID_1102578851" MODIFIED="1557498707237" TEXT="GTK interessiert sich nur indirekt f&#xfc;r den Lebenszyklus"/>
<node CREATED="1534635380794" ID="ID_121089426" MODIFIED="1557498707237" TEXT="...insofern Callbacks nicht in toten Speicher zeigen d&#xfc;rfen"/>
<node CREATED="1534635400479" ID="ID_1808051725" MODIFIED="1557498707237" TEXT="was aber sonst mit den &quot;Objekten&quot; passiert, ist GTK egal"/>
<node CREATED="1534635412070" ID="ID_1070513169" MODIFIED="1557498707237" TEXT="am Ende gehen alle Refcounts ohnehin auf Null"/>
<node CREATED="1534635426684" ID="ID_995597401" MODIFIED="1557498707237" TEXT="und wenn nicht, drof jeschissen"/>
</node>
<node CREATED="1534635260267" ID="ID_287252267" MODIFIED="1557498707237" TEXT="was verborgen ist, bekommt keine Events">
<icon BUILTIN="back"/>
</node>
<node CREATED="1534635309500" ID="ID_717136118" MODIFIED="1557498707237" TEXT="Container">
<node CREATED="1534635317179" ID="ID_921739364" MODIFIED="1557498707237" TEXT="verbergen rekursiv"/>
<node CREATED="1534635322938" ID="ID_1532459469" MODIFIED="1557498707237" TEXT="show_all zeigt rekursiv an"/>
</node>
</node>
<node CREATED="1534634259498" FOLDED="true" ID="ID_1900017952" MODIFIED="1557498707238" TEXT="&quot;Schlie&#xdf;en&quot;">
<linktarget COLOR="#6f7ab9" DESTINATION="ID_1900017952" ENDARROW="Default" ENDINCLINATION="-2264;0;" ID="Arrow_ID_1220603071" SOURCE="ID_146943890" STARTARROW="None" STARTINCLINATION="-6278;0;"/>
<icon BUILTIN="button_cancel"/>
<node CREATED="1534634292477" ID="ID_1867321008" MODIFIED="1534634310281">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das Konzept <b>gibts nicht</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1534634334767" ID="ID_1445477599" MODIFIED="1534634373419">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
GTK-Widget: <b>hide</b>()
</p>
</body>
</html></richcontent>
<node CREATED="1534634379762" ID="ID_83493459" MODIFIED="1534634386116" TEXT="es wird unmapped">
<node CREATED="1534634403766" ID="ID_1515267212" MODIFIED="1534634426295" TEXT="keine Screen-Space-Zuordnung mehr"/>
<node CREATED="1534634426883" ID="ID_586184038" MODIFIED="1534634431582" TEXT="es wird nicht mehr gezeichnet"/>
</node>
<node CREATED="1534634386704" ID="ID_131269615" MODIFIED="1534634394739" TEXT="es wird aus dem Event-Processing herausgenommen"/>
</node>
<node CREATED="1534634453703" ID="ID_289385917" MODIFIED="1534634468974">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
GObject: <b>unref</b>()
</p>
</body>
</html></richcontent>
<node CREATED="1534634472325" ID="ID_180385322" MODIFIED="1534634490430" TEXT="Glib hat ein refcounting Memory-Management"/>
<node CREATED="1534634502817" ID="ID_1557422702" MODIFIED="1534634512131" TEXT="das betrifft nur das Memory-Managment"/>
<node CREATED="1534634512864" ID="ID_952501435" MODIFIED="1534634524762" TEXT="jeder Client ist verantwortlich, seine Referenzen freizugeben"/>
</node>
<node CREATED="1534635126901" ID="ID_868113400" MODIFIED="1534635131976" TEXT="gtk_widget_destroy">
<node CREATED="1534635139155" ID="ID_1958818389" MODIFIED="1534635155125" TEXT="l&#xf6;st ein DESTROY-Signal aus"/>
<node CREATED="1534635156137" ID="ID_1010364630" MODIFIED="1534635215323" TEXT="macht sonst nur Refcount-Zeugs"/>
<node CREATED="1534635167295" ID="ID_418523562" MODIFIED="1534635211504" TEXT="keinerlei Auswirkung auf die Sichtbarkeit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...in der Praxis aber entsteht indirekt eine Auswirkung,
</p>
<p>
insofern Container auf das DESTROY-Signal ihrer Kinder reagieren
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1535629105141" ID="ID_387236763" MODIFIED="1557498707238" TEXT="Layout">
<font NAME="SansSerif" SIZE="14"/>
<node CREATED="1535629144783" ID="ID_603397185" MODIFIED="1557498707238" TEXT="Phasen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1535629172787" ID="ID_1666976097" MODIFIED="1557498707238" TEXT="mapped">
<icon BUILTIN="help"/>
<node CREATED="1537577522482" ID="ID_629476344" MODIFIED="1557498707238" TEXT="einem GDK-Fenster mit Koordinaten zugeordnet"/>
<node CREATED="1540645314073" ID="ID_1765305895" MODIFIED="1557498707238" TEXT="ausgel&#xf6;st durch show/hide"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1535629169164" ID="ID_1301809885" MODIFIED="1557498707238" TEXT="realized">
<icon BUILTIN="help"/>
<node CREATED="1537577511892" ID="ID_194223971" MODIFIED="1557498707238" TEXT="wird sichtbar"/>
<node CREATED="1540645329431" ID="ID_919909299" MODIFIED="1557498707238" TEXT="initial bei Fenster-Allokation; sp&#xe4;ter als Folge von mapped"/>
</node>
</node>
<node CREATED="1535629240762" ID="ID_860094095" MODIFIED="1537576497171" STYLE="fork" TEXT="Platzierung">
<edge COLOR="#b4a9e3" STYLE="bezier" WIDTH="thin"/>
<linktarget COLOR="#6277b2" DESTINATION="ID_860094095" ENDARROW="Default" ENDINCLINATION="-1778;-100;" ID="Arrow_ID_761942436" SOURCE="ID_228360739" STARTARROW="None" STARTINCLINATION="-6486;0;"/>
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1535629255856" ID="ID_66989854" MODIFIED="1535630246025" TEXT="size_request">
<node CREATED="1535629316512" ID="ID_82343540" MODIFIED="1535630246025" TEXT="minimale oder nat&#xfc;rliche Gr&#xf6;&#xdf;e"/>
<node CREATED="1535629328246" ID="ID_1797361390" MODIFIED="1535630246025" TEXT="Widget wird niemals kleiner gemacht"/>
<node CREATED="1540647597892" ID="ID_699204853" MODIFIED="1540647691526" TEXT="Widget::queue_resize">
<arrowlink DESTINATION="ID_1615887419" ENDARROW="Default" ENDINCLINATION="401;-36;" ID="Arrow_ID_1278323856" STARTARROW="None" STARTINCLINATION="1411;0;"/>
</node>
</node>
<node CREATED="1542308892655" ID="ID_1949284500" MODIFIED="1542308896395" TEXT="Allocation">
<node CREATED="1542308900630" ID="ID_1615499339" MODIFIED="1542309643703" TEXT="Container ruft gtk_widget_size_allocate()">
<arrowlink COLOR="#7573ab" DESTINATION="ID_1103556230" ENDARROW="Default" ENDINCLINATION="763;-59;" ID="Arrow_ID_1309280117" STARTARROW="None" STARTINCLINATION="537;121;"/>
<icon BUILTIN="full-1"/>
<node CREATED="1542309002344" ID="ID_779294890" MODIFIED="1542309017723" TEXT="maximal zugewiesener Platz f&#xfc;r dieses Widget"/>
<node CREATED="1542309018222" ID="ID_1596717915" MODIFIED="1542309025592" TEXT="einschlie&#xdf;lich aller Dekoraktion und Margins"/>
<node CREATED="1542309064955" ID="ID_1797123207" MODIFIED="1542309079391" TEXT="dieser Ausgangs-Wert wird nicht gespeichert">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1542308951807" ID="ID_1662312599" MODIFIED="1542308985044">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Widget berechnet <i>adjusted allocation</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-2"/>
<node CREATED="1542308982045" ID="ID_657933396" MODIFIED="1542308982045" TEXT="gtk_widget_get_allocation"/>
<node CREATED="1542309030741" ID="ID_1042993819" MODIFIED="1544310843729" TEXT="tats&#xe4;chlich f&#xfc;r das Widget selber verf&#xfc;gbarer Platz">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...also <i>abz&#252;glich</i>&#160;Dekoration und Margin
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1542308990570" ID="ID_1371068296" MODIFIED="1542309000371" TEXT="stets komplett in der zugewiesenen Allocation enthalten"/>
</node>
</node>
<node CREATED="1535629360298" ID="ID_872009465" MODIFIED="1535630246025" TEXT="Widget::property_expand()">
<node CREATED="1535629434440" ID="ID_384811116" MODIFIED="1535630246025" TEXT="bool">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1535629385583" ID="ID_147722143" MODIFIED="1544310843744" TEXT="nur wenn es zus&#xe4;tzlichen Platz gibt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...was der Fall sein kann in einer Box oder einem Grid,
</p>
<p>
sofern das Widget mit entsprechendem Modus eingef&#252;gt wurde
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535629439847" ID="ID_1925784750" MODIFIED="1535630246025" TEXT="Widget dehnt sich aus, um verf&#xfc;gbaren Platz einzunehmen">
<icon BUILTIN="info"/>
</node>
<node CREATED="1535630122372" ID="ID_1833778868" MODIFIED="1535630246025" TEXT="hat keinen Getter / Setter"/>
<node CREATED="1535629472923" ID="ID_927038398" MODIFIED="1535630246025" TEXT="es gibt vexpand und hexpand">
<node CREATED="1535630137082" ID="ID_793513557" MODIFIED="1535630246025" TEXT="nur f&#xfc;r eine Richtung"/>
<node CREATED="1535630147960" ID="ID_701726630" MODIFIED="1535630246025" TEXT="diese haben Getter/Setter"/>
</node>
</node>
</node>
</node>
<node CREATED="1537575934664" ID="ID_849901633" MODIFIED="1557498707238" TEXT="Style">
<font NAME="SansSerif" SIZE="13"/>
<node CREATED="1538706283719" ID="ID_311272365" MODIFIED="1557498707238" TEXT="CSS">
<node CREATED="1538706287605" ID="ID_811190435" LINK="https://developer.gnome.org/gtk3/stable/chap-css-properties.html" MODIFIED="1557498707238" TEXT="unterst&#xfc;tzte properties">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1537575947102" ID="ID_161652920" MODIFIED="1557498707238" TEXT="StyleContext">
<node CREATED="1537575960276" ID="ID_376188043" MODIFIED="1557498707238" TEXT="enth&#xe4;lt mehrere StyleProvider"/>
</node>
<node CREATED="1537575973946" ID="ID_1131360657" MODIFIED="1557498707238" TEXT="StyleProvider">
<node CREATED="1537575987001" ID="ID_1223531940" MODIFIED="1557498707238" TEXT="GtkCssStyleProvider">
<node CREATED="1537576001423" ID="ID_707384345" MODIFIED="1557498707238" TEXT="interpretiert ein CSS-Stylesheet"/>
</node>
</node>
<node CREATED="1537576031611" ID="ID_1494464724" MODIFIED="1557498707238" TEXT="Widgets">
<node CREATED="1537576035498" ID="ID_1813123190" MODIFIED="1557498707238" TEXT="definieren jeweils die Styles, die sie verwenden">
<node CREATED="1537577874195" ID="ID_385552696" MODIFIED="1557498707238" TEXT="style-context zum Widget beziehen"/>
<node CREATED="1537577885042" ID="ID_9820896" MODIFIED="1557498707238" TEXT="diesem Context die spezielle Klasse hinzuf&#xfc;gen"/>
<node CREATED="1537577901032" ID="ID_1836919045" MODIFIED="1557498707238" TEXT="diese Klasse kann nun im CSS-Selektor verwendet werden"/>
<node CREATED="1537577914422" ID="ID_1220237808" MODIFIED="1557498707238" TEXT="geht einfach per GTKmm">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Glib::RefPtr&lt;StyleContext&gt; context = widget-&gt;get_style_context();
</p>
<p>
context-&gt;add_class(&quot;ohMy&quot;);
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
<node CREATED="1537577929540" ID="ID_644837001" MODIFIED="1557498707238" TEXT="fr&#xfc;her ging das nur direkt in C">
<icon BUILTIN="ksmiletris"/>
</node>
<node COLOR="#803457" CREATED="1537577957752" ID="ID_36168340" LINK="https://stackoverflow.com/questions/37609381/how-to-set-a-specific-css-class-to-a-widget-in-gtk3-c" MODIFIED="1557498707238" TEXT="C-Beispiel auf Stackoverflow"/>
<node COLOR="#803457" CREATED="1537577957752" ID="ID_1015117751" LINK="https://stackoverflow.com/questions/37609381/how-to-set-a-specific-css-class-to-a-widget-in-gtk3-c" MODIFIED="1557498707238" TEXT="C++-L&#xf6;sung auf Stackoverflow">
<linktarget COLOR="#c1a9a9" DESTINATION="ID_1015117751" ENDARROW="Default" ENDINCLINATION="56;152;" ID="Arrow_ID_1206355372" SOURCE="ID_903275997" STARTARROW="None" STARTINCLINATION="68;8;"/>
</node>
</node>
</node>
<node CREATED="1537576059351" ID="ID_1816365537" MODIFIED="1557498707238" TEXT="k&#xf6;nnen spezielle &quot;Regions&quot; haben">
<node CREATED="1537576068734" ID="ID_1594476628" MODIFIED="1557498707238" TEXT="was ist das">
<icon BUILTIN="help"/>
</node>
<node CREATED="1537658489614" ID="ID_1012337146" MODIFIED="1557498707238" TEXT="Doku gibt einen Baum an: &quot;CSS nodes&quot;"/>
<node CREATED="1537658542249" ID="ID_956543325" MODIFIED="1557498707238" TEXT="das ist die tats&#xe4;chliche Widget-Struktur"/>
</node>
<node CREATED="1535629240762" ID="ID_1174884362" MODIFIED="1537576577055" STYLE="fork" TEXT="CustomWidgets">
<edge COLOR="#b4a9e3" STYLE="bezier" WIDTH="thin"/>
<linktarget COLOR="#6277b2" DESTINATION="ID_1174884362" ENDARROW="Default" ENDINCLINATION="-2315;-45;" ID="Arrow_ID_380937946" SOURCE="ID_1432671260" STARTARROW="None" STARTINCLINATION="-7413;0;"/>
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1537576079756" HGAP="32" ID="ID_111059124" MODIFIED="1537658672181" TEXT="siehe Tutorial" VSHIFT="-6">
<arrowlink DESTINATION="ID_334736261" ENDARROW="Default" ENDINCLINATION="228;-492;" ID="Arrow_ID_84377619" STARTARROW="None" STARTINCLINATION="930;-42;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#990000" CREATED="1537658616952" HGAP="24" ID="ID_940676428" LINK="https://stackoverflow.com/questions/52452878/can-tags-in-gtktextbuffer-be-styled-with-css" MODIFIED="1537658665006" TEXT="habe selber auf Stackoverflow gefragt..." VSHIFT="-8">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1537658818388" ID="ID_1554071957" MODIFIED="1537658827087" TEXT="M&#xf6;glichkeiten">
<node CREATED="1537577389028" ID="ID_1690083237" MODIFIED="1537577400334" TEXT="k&#xf6;nnen einen eigenen Widget-Namen setzen"/>
<node CREATED="1537577364840" ID="ID_927285198" MODIFIED="1537577379929" TEXT="k&#xf6;nnen custom-Properties haben">
<node CREATED="1537577410065" ID="ID_1611025546" MODIFIED="1537577422244" TEXT="das ist ein Proxy-Member"/>
<node CREATED="1537577424000" ID="ID_742914876" MODIFIED="1537577434658" TEXT="onRealize kann der Wert abgeholt werden"/>
</node>
<node CREATED="1537658737815" ID="ID_1865147889" MODIFIED="1537658764823" TEXT="k&#xf6;nnen Basis-Widgets mit Klasse auszeichnen">
<node CREATED="1537658770555" ID="ID_920908371" MODIFIED="1537658777916" TEXT="nicht klar, ob das in C++ geht">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1537658785336" ID="ID_903275997" MODIFIED="1538609485588" TEXT="Beispiel">
<arrowlink COLOR="#c1a9a9" DESTINATION="ID_1015117751" ENDARROW="Default" ENDINCLINATION="56;152;" ID="Arrow_ID_1206355372" STARTARROW="None" STARTINCLINATION="68;8;"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1535632661385" ID="ID_1021079796" MODIFIED="1557498707238" TEXT="Hierarchie">
<node CREATED="1535632673655" ID="ID_849385989" MODIFIED="1557498707238" TEXT="Gdk::Window">
<node CREATED="1535632686045" ID="ID_20909674" MODIFIED="1557498707238">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ein Widget <i>kann</i>&#160;einem G<b>D</b>K-Window zugeordnet sein
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535632728343" ID="ID_1087443097" MODIFIED="1557498707238" TEXT="dieses repr&#xe4;sentiert den low-level Screen-Space"/>
<node CREATED="1535632754900" ID="ID_1804383493" MODIFIED="1557498707238" TEXT="diese Zuordnung hei&#xdf;t &quot;mapping&quot;"/>
<node CREATED="1535632903512" ID="ID_653149380" MODIFIED="1557498707238" TEXT="Gtk::Widget::get_parent_window ()">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1535632766298" ID="ID_651213437" MODIFIED="1557498707238" TEXT="Container">
<node CREATED="1535632771490" ID="ID_54072996" MODIFIED="1557498707238" TEXT="machen sich beim Hinzuf&#xfc;gen den Kindern bekannt"/>
<node CREATED="1535632789207" ID="ID_1814287136" MODIFIED="1557498707238" TEXT="Gtk::Widget::get_parent ()">
<node CREATED="1535632854135" ID="ID_1093554517" MODIFIED="1557498707238" TEXT="Gtk::Container *"/>
<node CREATED="1535632860126" ID="ID_710254808" MODIFIED="1557498707238" TEXT="kann NULL sein"/>
</node>
<node CREATED="1535633353996" ID="ID_1722614856" MODIFIED="1557498707238" TEXT="Gtk::Widget::get_toplevel ()"/>
<node CREATED="1535633447375" ID="ID_1390203707" LINK="https://developer.gnome.org/gtkmm/3.22/classGtk_1_1Widget.html#ad65bedf64acfd0401abbe489312fba8e" MODIFIED="1557498707238" TEXT="Widget * Gtk::Widget::get_ancestor(GType widget_type)"/>
</node>
<node CREATED="1535633140424" ID="ID_293762905" MODIFIED="1557498707238" TEXT="WidgetPath">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1535633147295" ID="ID_14373153" MODIFIED="1557498707238" TEXT="Konzept ist mir nicht klar">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
8/2018:
</p>
<p>
ist das eine Sequenz von konkreten Objekten, die ineinander verschachtelt sind?
</p>
<p>
oder ist es eine Vererbungs-Hierarchie, wie sie f&#252;r das CSS-Styling ben&#246;tigt wird?
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1535633221189" ID="ID_623946936" MODIFIED="1557498707238" TEXT="beachte: hier werden Typen (GType) gespeichert">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1535633267727" ID="ID_168272548" MODIFIED="1557498707238" TEXT="Gtk::Widget::get_path()">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1477523681978" HGAP="14" ID="ID_400257229" MODIFIED="1557498707238" TEXT="Richtlinien" VSHIFT="11">
<node CREATED="1477523701544" ID="ID_1802991794" MODIFIED="1557498707238" TEXT="empfohlen">
<node CREATED="1477523709342" ID="ID_781118281" MODIFIED="1557498707238" TEXT="Box">
<node CREATED="1477524273619" ID="ID_216152004" MODIFIED="1557498707238" TEXT="pack_start() / pack_end()"/>
<node COLOR="#ca1b00" CREATED="1477524282122" ID="ID_1542686719" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-multi-item-containers.html.en#per-child-packing-options" MODIFIED="1557498707238" TEXT="packing options">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1477523710854" ID="ID_1520577996" MODIFIED="1557498707238" TEXT="Grid"/>
</node>
<node CREATED="1477523714526" ID="ID_654535915" MODIFIED="1557498707238" TEXT="Application verwenden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nicht mehr das <i>klassische</i>&#160;gtk::Main
</p>
<p>
</p>
<p>
Wozu das?
</p>
<ul>
<li>
Design: Main war ein Singleton; aber sein dtor hat auch Plattform-Aufr&#228;um-Arbeiten gemacht
</li>
<li>
Framework: anscheinend ist hier eine Tendenz in Richtung auf ein integriertes Framework im Gange; im Besonderen will man &quot;Aktionen&quot; direkt aus dem Desktop aufrufen k&#246;nnen<br />
</li>
</ul>
</body>
</html></richcontent>
<arrowlink COLOR="#627292" DESTINATION="ID_185528211" ENDARROW="Default" ENDINCLINATION="22;-122;" ID="Arrow_ID_390519319" STARTARROW="None" STARTINCLINATION="-31;42;"/>
</node>
</node>
</node>
<node CREATED="1495221220040" HGAP="43" ID="ID_782313223" MODIFIED="1557498707238" TEXT="Framework" VSHIFT="-20">
<linktarget COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-981;-106;" ID="Arrow_ID_1912776282" SOURCE="ID_1636078216" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<linktarget COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-1088;-39;" ID="Arrow_ID_234165792" SOURCE="ID_433225506" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<linktarget COLOR="#677ab7" DESTINATION="ID_782313223" ENDARROW="Default" ENDINCLINATION="-652;20;" ID="Arrow_ID_315633048" SOURCE="ID_1894791438" STARTARROW="None" STARTINCLINATION="-2111;0;"/>
<node CREATED="1533388030963" FOLDED="true" ID="ID_1973994334" MODIFIED="1557498707238" TEXT="main context">
<node CREATED="1533388053839" ID="ID_970610402" MODIFIED="1533388063674" TEXT="abstrahierte &quot;main loop&quot;">
<node CREATED="1533388065237" ID="ID_1853196275" MODIFIED="1533388071944" TEXT="es gibt einen default_main_context"/>
<node CREATED="1533388072628" ID="ID_1382049092" MODIFIED="1533388077743" TEXT="dieser wird on demand erzeugt"/>
<node CREATED="1533388078595" ID="ID_1456212114" MODIFIED="1533388091037" TEXT="dieser wird von den run()-Funktionen &quot;gepullt&quot;"/>
</node>
<node CREATED="1533388113350" FOLDED="true" ID="ID_1546795729" MODIFIED="1538589961840" TEXT="Glib::signal_idle()">
<node CREATED="1533388147720" ID="ID_1897188155" MODIFIED="1533388158218" TEXT="&#xfc;bergebene Closure l&#xe4;uft erst in der Event-Loop"/>
<node CREATED="1533388162662" ID="ID_1573817854" MODIFIED="1533388168352" TEXT="kann aber schon vorher hinzugef&#xfc;gt werden"/>
<node CREATED="1533388185290" ID="ID_1158890484" MODIFIED="1533388238450" TEXT="verwendet main_context_default">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und erzeugt diesen on demand auch neu
</p>
</body>
</html></richcontent>
<node CREATED="1533388264550" ID="ID_32738634" MODIFIED="1533388282104" TEXT="gmain.c : g_source_attach"/>
<node CREATED="1533388282692" ID="ID_1259525027" MODIFIED="1533388301765" TEXT="gmain.c : g_main_context_default"/>
</node>
<node CREATED="1533388309295" ID="ID_775603522" MODIFIED="1533388317610" TEXT="man kann connect_once() macne"/>
</node>
<node CREATED="1533388128579" FOLDED="true" ID="ID_580405745" MODIFIED="1538589960352" TEXT="Glib::signal_timeout()">
<linktarget COLOR="#5568a6" DESTINATION="ID_580405745" ENDARROW="Default" ENDINCLINATION="-472;0;" ID="Arrow_ID_244184105" SOURCE="ID_1586631508" STARTARROW="None" STARTINCLINATION="-2132;-72;"/>
<node CREATED="1533388319102" ID="ID_1118350475" MODIFIED="1533388324553" TEXT="analog wie signal_idle()"/>
<node CREATED="1533388325053" ID="ID_1341702889" MODIFIED="1533388334672" TEXT="Timeout in Millisekunden"/>
<node CREATED="1533388335188" ID="ID_980760340" MODIFIED="1533388343815" TEXT="bedeutet Delay, nicht pr&#xe4;zises Timing">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1495221242285" ID="ID_185528211" MODIFIED="1557498707238" TEXT="Applikation">
<linktarget COLOR="#627292" DESTINATION="ID_185528211" ENDARROW="Default" ENDINCLINATION="22;-122;" ID="Arrow_ID_390519319" SOURCE="ID_654535915" STARTARROW="None" STARTINCLINATION="-31;42;"/>
<node CREATED="1495221272545" FOLDED="true" ID="ID_624250153" MODIFIED="1557498707238" TEXT="Gtk::Application">
<node CREATED="1495222327564" ID="ID_175461027" MODIFIED="1518487921099" TEXT="initialisiert Gio::Application"/>
<node CREATED="1495222337235" ID="ID_348472460" MODIFIED="1518487921099" TEXT="setzt ggfs. die Applikations-ID"/>
<node CREATED="1495223436241" ID="ID_1015366549" MODIFIED="1518487921099" TEXT="Application::run">
<node CREATED="1495223445527" ID="ID_1531454773" MODIFIED="1518487921099" TEXT="optional mit Window">
<node CREATED="1495223506111" ID="ID_992095337" MODIFIED="1518487921099" TEXT="macht aber nur window-&gt;show"/>
<node CREATED="1495223513438" ID="ID_1178606368" MODIFIED="1541088154146" TEXT="allerdings im activate-Callback">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
warum?
</p>
<p>
nur wegen ApplictationWindow!
</p>
<p>
Denn dieses setzte eine &quot;Registrierung&quot; voraus.
</p>
<p>
Alles in ein Framework zwingen. Alternativlos, capisce?
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1495223451598" ID="ID_1042773331" MODIFIED="1518487921099" TEXT="startet Gio::Application::run"/>
</node>
</node>
<node CREATED="1495221280336" FOLDED="true" ID="ID_1925569425" MODIFIED="1557498707238" TEXT="Gio::Application">
<node COLOR="#435e98" CREATED="1533309749035" HGAP="-6" ID="ID_274394313" MODIFIED="1533309768489" TEXT="entspricht GApplication in C" VSHIFT="-20">
<icon BUILTIN="info"/>
</node>
<node CREATED="1495221530614" ID="ID_1085605910" MODIFIED="1533306146656" TEXT="initialisiert das Framework">
<arrowlink DESTINATION="ID_1615155508" ENDARROW="Default" ENDINCLINATION="-27;-158;" ID="Arrow_ID_152226640" STARTARROW="None" STARTINCLINATION="-209;0;"/>
</node>
<node CREATED="1495221537366" ID="ID_381245884" MODIFIED="1518487921099" TEXT="stellt eine dBus-Verbindung bereit"/>
<node CREATED="1495221546252" ID="ID_771692992" MODIFIED="1518487921099" TEXT="erbt von Gio::ActionGroup und ActionMap"/>
<node CREATED="1533307013028" HGAP="32" ID="ID_1511454400" MODIFIED="1533608414135" TEXT="on activation" VSHIFT="16">
<node CREATED="1533307054478" ID="ID_1200897297" MODIFIED="1533307059929" TEXT="g_application_activate">
<node CREATED="1533307252691" ID="ID_11609503" MODIFIED="1533307276116" TEXT="gapplication.c (ca line 2220)"/>
<node CREATED="1533307297630" ID="ID_312502406" MODIFIED="1533307298225" TEXT="g_signal_emit (application, g_application_signals[SIGNAL_ACTIVATE], 0)"/>
</node>
<node CREATED="1533307413701" ID="ID_1516098159" MODIFIED="1533307416809" TEXT="aufgerufen von">
<node CREATED="1533307417845" ID="ID_1665005953" MODIFIED="1533307423040" TEXT="Gio::Application"/>
<node CREATED="1533307444641" ID="ID_1571069781" MODIFIED="1533307445757" TEXT="g_application_real_local_command_line">
<node CREATED="1533307489459" ID="ID_849008375" MODIFIED="1533307492846" TEXT="das ist class-&gt;local_command_line"/>
<node CREATED="1533307886653" ID="ID_322984790" MODIFIED="1541088154184" TEXT="wird auch von Gtkmm so erhalten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...allerdings eingepackt in eine vfunc,
</p>
<p>
welche ggfs C++ - Exceptions f&#228;ngt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1533307599332" ID="ID_1228966939" MODIFIED="1533307626966" TEXT="aufgerufen von g_application_run">
<arrowlink DESTINATION="ID_1602611708" ENDARROW="Default" ENDINCLINATION="262;0;" ID="Arrow_ID_1688106140" STARTARROW="None" STARTINCLINATION="-50;95;"/>
</node>
</node>
</node>
<node CREATED="1533309080840" ID="ID_1911292426" MODIFIED="1533309083211" TEXT="verwendet">
<node CREATED="1533309084015" ID="ID_103827073" MODIFIED="1533309275410" TEXT="vom Framework...">
<linktarget COLOR="#6280a2" DESTINATION="ID_103827073" ENDARROW="Default" ENDINCLINATION="-1131;-99;" ID="Arrow_ID_138401663" SOURCE="ID_574887736" STARTARROW="None" STARTINCLINATION="1028;-75;"/>
<node CREATED="1533309088679" ID="ID_603142056" MODIFIED="1533309096553" TEXT="um ein Fenster nach start darzustellen"/>
<node CREATED="1533309142479" ID="ID_1556321232" MODIFIED="1533309146650" TEXT="Gtk::Application::run(Window&amp;)"/>
</node>
<node CREATED="1533311444004" ID="ID_1806268533" MODIFIED="1541088154201" TEXT="notwendig weil....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nur wegen dem ganzen Registrierungs-Glump.
</p>
<p>
Ein &quot;GTK-Application-Window&quot; ist auch irgendwie registriert und h&#228;ngt am Bus.
</p>
<p>
Frag mich nicht wie. Jedenfalls kann man das nicht im Konstruktor von Gtk::Application machen.
</p>
<p>
<i>Nur</i>&#160;das ist der Grund. Es <i>geht gar nicht</i>&#160;um die Event-Loop
</p>
</body>
</html></richcontent>
<linktarget COLOR="#949fb4" DESTINATION="ID_1806268533" ENDARROW="Default" ENDINCLINATION="-1845;-608;" ID="Arrow_ID_1146394851" SOURCE="ID_1211339520" STARTARROW="None" STARTINCLINATION="-474;0;"/>
<icon BUILTIN="idea"/>
</node>
<node COLOR="#435e98" CREATED="1533309280940" ID="ID_1482488845" MODIFIED="1541088154207" TEXT="Stand 8/2018 keine anderen Treffer">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
suche (case insensitive) nach application_activate
</p>
<ul>
<li>
treffer auf APPLICATION_ACTIVATE in g_application_activate()
</li>
<li>
die Treffer in Gtk::Application
</li>
<li>
diverse false positives mit anderen &quot;Activation&quot;-Signalen, z.B. in Aktionen oder Buttons
</li>
</ul>
</body>
</html></richcontent>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1533309516556" ID="ID_459213298" MODIFIED="1541088154213">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nicht durch <b>gtk_main</b>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wichtige Einsicht:
</p>
<ul>
<li>
gtk_main ist Toolit ohne Framework
</li>
<li>
bietet keine solchen Lebenszyklus-Signale
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1495223467588" HGAP="27" ID="ID_666842762" MODIFIED="1533608414137" TEXT="run" VSHIFT="12">
<icon BUILTIN="back"/>
<node CREATED="1533306448070" ID="ID_1602611708" MODIFIED="1533307626966" TEXT="g_application_run(gobj(), argc, argv)">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1602611708" ENDARROW="Default" ENDINCLINATION="262;0;" ID="Arrow_ID_1688106140" SOURCE="ID_1228966939" STARTARROW="None" STARTINCLINATION="-50;95;"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1495223902619" ID="ID_11620264" MODIFIED="1518487921099" TEXT="behandelt Argumente"/>
<node CREATED="1495223912401" ID="ID_1575164060" MODIFIED="1518487921099" TEXT="falls Service: wartet auf Nachricht vom dBus"/>
<node CREATED="1533307972881" ID="ID_1094265011" MODIFIED="1533308000083">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
beachte: <b>ruft nicht gtk_main</b>&#160;sondern macht das &#196;quivalent
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1495224012668" ID="ID_566886010" MODIFIED="1518487921099" TEXT="Event-Loop">
<node CREATED="1495224031057" ID="ID_1352224458" MODIFIED="1518487921099" TEXT="use-count"/>
<node CREATED="1495224034585" ID="ID_1852291898" MODIFIED="1518487921099" TEXT="bestimmt, ob die Loop weiter l&#xe4;uft"/>
<node CREATED="1495224111895" ID="ID_1808871678" MODIFIED="1518487921099" TEXT="g_main_context_iteration">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1495224682595" HGAP="35" ID="ID_1221113124" MODIFIED="1518487921099" TEXT="g_main_context_iterate" VSHIFT="7">
<linktarget COLOR="#4da894" DESTINATION="ID_1221113124" ENDARROW="Default" ENDINCLINATION="-37;92;" ID="Arrow_ID_603815905" SOURCE="ID_355427981" STARTARROW="None" STARTINCLINATION="17;-42;"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1495224577105" FOLDED="true" HGAP="33" ID="ID_1924897671" MODIFIED="1557498707238" TEXT="Gtk::Main" VSHIFT="10">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1495224595638" ID="ID_1774384379" MODIFIED="1518487921099" TEXT="@deprecated">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1495224609188" ID="ID_1615155508" MODIFIED="1533608414139">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
initialisiert das
</p>
<p>
Framework
</p>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1615155508" ENDARROW="Default" ENDINCLINATION="-27;-158;" ID="Arrow_ID_152226640" SOURCE="ID_1085605910" STARTARROW="None" STARTINCLINATION="-209;0;"/>
<node CREATED="1495224862227" ID="ID_762530588" MODIFIED="1518487921099" TEXT="init_gtkmm_internals"/>
<node CREATED="1495224890119" ID="ID_137730290" MODIFIED="1518487921099" TEXT="statische funktion"/>
<node CREATED="1532795620784" ID="ID_1850885017" MODIFIED="1533608414140" TEXT="gtk_init">
<linktarget COLOR="#87a8bf" DESTINATION="ID_1850885017" ENDARROW="Default" ENDINCLINATION="-195;-45;" ID="Arrow_ID_960670945" SOURCE="ID_377749143" STARTARROW="None" STARTINCLINATION="416;0;"/>
<icon BUILTIN="back"/>
<node CREATED="1532796724776" ID="ID_685469322" MODIFIED="1532796729971" TEXT="bleibt weiterhin bestehen"/>
<node CREATED="1532796730560" ID="ID_727373355" MODIFIED="1532796741082" TEXT="wird von jeder Applikations-Klasse aufgerufen"/>
<node CREATED="1533305525992" ID="ID_1048078112" MODIFIED="1533305987413" TEXT="stellt elementare Initialisierung sicher">
<node CREATED="1533305546669" ID="ID_717378410" MODIFIED="1541088154260" TEXT="gtk_init_check">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
gboolean
</p>
<p>
gtk_init_check (int&#160;&#160;&#160;&#160;*argc,
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;char ***argv)
</p>
<p>
{
</p>
<p>
&#160;&#160;gboolean ret;
</p>
<p>
</p>
<p>
&#160;&#160;if (!gtk_parse_args (argc, argv))
</p>
<p>
&#160;&#160;&#160;&#160;return FALSE;
</p>
<p>
</p>
<p>
&#160;&#160;ret = GDK_PRIVATE_CALL (gdk_display_open_default) () != NULL;
</p>
<p>
</p>
<p>
&#160;&#160;if (gtk_get_debug_flags () &amp; GTK_DEBUG_INTERACTIVE)
</p>
<p>
&#160;&#160;&#160;&#160;gtk_window_set_interactive_debugging (TRUE);
</p>
<p>
</p>
<p>
&#160;&#160;return ret;
</p>
<p>
}
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1533305661254" ID="ID_1064217503" MODIFIED="1533305671871" TEXT="parse commandline">
<node CREATED="1533305895966" ID="ID_1828704033" MODIFIED="1533305900774" TEXT="init gettext"/>
<node CREATED="1533305890638" ID="ID_1711757539" MODIFIED="1533305894930" TEXT="keine weitere Magie"/>
</node>
<node CREATED="1533305672436" ID="ID_1662141734" MODIFIED="1533305683502" TEXT="open/attach to windowing system"/>
<node CREATED="1533305684102" ID="ID_41618780" MODIFIED="1533305691437" TEXT="enable interactive debugging"/>
</node>
</node>
<node CREATED="1533305534919" ID="ID_1905259387" MODIFIED="1533305545069" TEXT="terminiert ohne Windowing-System">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1532795594468" ID="ID_681479502" MODIFIED="1541088154286" TEXT="Main::init_gtkmm_internals">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
void Main::init_gtkmm_internals()
</p>
<p>
{
</p>
<p>
&#160;&#160;static bool init_done = false;
</p>
<p>
</p>
<p>
&#160;&#160;if(!init_done)
</p>
<p>
&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;Glib::init();
</p>
<p>
&#160;&#160;&#160;&#160;Gio::init();
</p>
<p>
</p>
<p>
&#160;&#160;&#160;&#160;// Populate the map of GTypes to C++ wrap_new() functions.
</p>
<p>
&#160;&#160;&#160;&#160;Pango::wrap_init();
</p>
<p>
#ifdef GTKMM_ATKMM_ENABLED
</p>
<p>
&#160;&#160;&#160;&#160;Atk::wrap_init();
</p>
<p>
#endif //GTKMM_ATKMM_ENABLED
</p>
<p>
&#160;&#160;&#160;&#160;Gdk::wrap_init();
</p>
<p>
&#160;&#160;&#160;&#160;Gtk::wrap_init();
</p>
<p>
</p>
<p>
&#160;&#160;&#160;&#160;init_done = true;
</p>
<p>
&#160;&#160;}
</p>
<p>
}
</p>
</body>
</html></richcontent>
<linktarget COLOR="#679cc6" DESTINATION="ID_681479502" ENDARROW="Default" ENDINCLINATION="-182;-16;" ID="Arrow_ID_1451320473" SOURCE="ID_1106606369" STARTARROW="None" STARTINCLINATION="273;0;"/>
<icon BUILTIN="info"/>
<node CREATED="1532794577245" ID="ID_1061673956" MODIFIED="1532794580305" TEXT="was macht das?">
<node CREATED="1532796682566" ID="ID_1741006267" MODIFIED="1532796691801" TEXT="Glib, Gio und Pango initialisieren"/>
<node CREATED="1532796692445" ID="ID_1058977996" MODIFIED="1532796706398" TEXT="Wrapper-Mechanismus f&#xfc;r Gtk+-&quot;Objekte&quot; initialisieren"/>
<node COLOR="#435e98" CREATED="1533303515053" ID="ID_806534769" MODIFIED="1533303521236" TEXT="im Detail....">
<icon BUILTIN="info"/>
<node CREATED="1533302528747" ID="ID_436589291" MODIFIED="1533302531718" TEXT="Glib::init"/>
<node CREATED="1533302532330" ID="ID_1077746701" MODIFIED="1533302534862" TEXT="Gio::init">
<node CREATED="1533302535642" ID="ID_669104938" MODIFIED="1533302538965" TEXT="Glib::init">
<node CREATED="1533302837329" ID="ID_1446415127" MODIFIED="1533302841899" TEXT="wiederum...">
<node CREATED="1533302842944" ID="ID_974899245" MODIFIED="1533302853323" TEXT="Gio::wrap_init()"/>
<node CREATED="1533302853959" ID="ID_872170516" MODIFIED="1533302861305" TEXT="Gio::wrap_register_init()"/>
</node>
</node>
<node CREATED="1533302544745" ID="ID_358165246" MODIFIED="1533302550260" TEXT="Gio::wrap_init()">
<node CREATED="1533302581788" ID="ID_1825151057" MODIFIED="1533302612899" TEXT="viele Aufrufe Glib::wrap_register(...)"/>
<node CREATED="1533302590130" ID="ID_815735282" MODIFIED="1533302604205" TEXT="richtet C++-Bindings ein"/>
<node CREATED="1533302617511" ID="ID_1544414198" MODIFIED="1533302640740" TEXT="sonst keine Funktionalit&#xe4;t ersichtlich">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1532794561968" ID="ID_1365959028" MODIFIED="1532796658012" TEXT="ist das zukunfts-fest?">
<icon BUILTIN="button_ok"/>
<node CREATED="1532796634853" ID="ID_1398685017" MODIFIED="1532796646840" TEXT="in application.cc gibts die gleiche Funktion">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1532796648307" ID="ID_8715855" MODIFIED="1532796654824" TEXT="kein Grund zur Sorge">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1495224625466" ID="ID_668309036" MODIFIED="1533325422859" TEXT="run">
<node CREATED="1495224647071" ID="ID_660577000" MODIFIED="1533608414143" TEXT="gtk_main">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1495224649943" ID="ID_1753452940" MODIFIED="1518487921099" TEXT="g_main_loop_run">
<node CREATED="1495224690714" ID="ID_355427981" MODIFIED="1518487921099" TEXT="g_main_context_iterate">
<arrowlink COLOR="#4da894" DESTINATION="ID_1221113124" ENDARROW="Default" ENDINCLINATION="-37;92;" ID="Arrow_ID_603815905" STARTARROW="None" STARTINCLINATION="17;-42;"/>
</node>
</node>
<node CREATED="1533308108853" ID="ID_650869075" MODIFIED="1533308136078" TEXT="entspricht (im Kern) g_application_run">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1533309576891" ID="ID_1533505296" MODIFIED="1533309583947" TEXT="ohne Lebenzyklus-Management">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
</node>
</node>
<node CREATED="1495224989674" HGAP="18" ID="ID_381583771" MODIFIED="1557498707238" TEXT="Verh&#xe4;ltnis beider" VSHIFT="9">
<icon BUILTIN="idea"/>
<node CREATED="1495225019502" ID="ID_1829681403" MODIFIED="1557498707238" TEXT="beide machen in etwas das Gleiche"/>
<node CREATED="1495225006920" ID="ID_1631847350" MODIFIED="1557498707238" TEXT="Application ist generischer"/>
<node CREATED="1495226503104" ID="ID_1991720691" MODIFIED="1557498707238" TEXT="es geht dabei um Desktop-Integration"/>
<node CREATED="1533308053493" ID="ID_281791270" MODIFIED="1557498707238" TEXT="Gio::Application ruft g_application_run">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und das ist <i>nicht</i>&#160;gtk_main,
</p>
<p>
aber macht in etwa die gleichen Operationen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1495225050138" ID="ID_1077152710" MODIFIED="1557498707238" TEXT="gtk_main beruht heute auf Gio">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t, es wurde &quot;retrofitted&quot;.
</p>
<p>
die Lib Gio bietet ein generisches &quot;Main-Loop-Framework&quot;,
</p>
<p>
in dem ein Main-Context gepollt wird, solange, bis ein use-count auf Null geht.
</p>
<p>
Gtk-Main verwendet inzwischen den gleichen Mechanismus
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1501848602610" FOLDED="true" ID="ID_1830965770" MODIFIED="1557498707238" TEXT="Threading">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501848605874" ID="ID_420183704" MODIFIED="1518487921099" TEXT="nur ein GUI-Thread">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501848662730" ID="ID_699612019" MODIFIED="1518487921099" TEXT="absichtlich nicht treadsafe">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1501848672921" ID="ID_1641235315" MODIFIED="1518487921099" TEXT="SigC++ nicht Threadsafe">
<icon BUILTIN="clanbomber"/>
<node CREATED="1501848716179" ID="ID_969916851" MODIFIED="1518487921099" TEXT="alle Signals + Slots nur im GUI-Thread"/>
<node CREATED="1501848914377" ID="ID_1614034013" MODIFIED="1541088154375" TEXT="Vorsicht: Desktuktoren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
der springende Punkt mit sigc::trackable ist,
</p>
<p>
da&#223; Desktuktoren automatisch die Signale abkoppeln.
</p>
<p>
Dieser Vorgang ist <b>nicht threadsafe</b>. Folglich m&#252;ssen
</p>
<p>
auch die <b>Destruktoen</b>&#160;im GUI-Thread laufen.
</p>
<p>
Das ist eine subtile Falle.
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1501848728354" ID="ID_1420494100" MODIFIED="1518487921099">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
alles was von sigc::<b>trackable</b>&#160;erbt
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1501848774883" ID="ID_1801418640" MODIFIED="1518487921099" TEXT="Glib::Dispatcher">
<icon BUILTIN="idea"/>
<node CREATED="1501848781850" ID="ID_356349390" MODIFIED="1541088154387">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
f&#252;r <b>alles</b>&#160;aus GTKmm zu verwenden
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...gemeint ist:
</p>
<p>
alles das nicht aus dem GUI-Thread heraus geschieht
</p>
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1501848836523" ID="ID_649355856" MODIFIED="1518487921099" TEXT="Dispatcher im GUI-Thread erzeugen">
<icon BUILTIN="clanbomber"/>
<node CREATED="1501861717318" ID="ID_852290990" MODIFIED="1518487921099" TEXT="braucht einen Glib::MainContext"/>
<node CREATED="1501861732604" ID="ID_958721843" MODIFIED="1518487921100" TEXT="und den gibts, wenn gtk_init gelaufen ist"/>
</node>
<node CREATED="1501848867535" ID="ID_1897804143" MODIFIED="1518487921100" TEXT="emit -&gt; Event-Loop"/>
</node>
<node CREATED="1501849055902" ID="ID_569777034" MODIFIED="1518487921100" TEXT="Policy">
<icon BUILTIN="yes"/>
<node CREATED="1501849060757" ID="ID_1858198840" MODIFIED="1518487921100" TEXT="Mutterklasse statt Singletons"/>
<node CREATED="1501849075795" ID="ID_374275577" MODIFIED="1518487921100" TEXT="alle Aufrufe via Facade"/>
</node>
</node>
<node CREATED="1477785704584" ID="ID_528329491" MODIFIED="1557498707238" TEXT="event handling">
<node CREATED="1477785727469" ID="ID_129787833" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/chapter-signals.html.en" MODIFIED="1557498707238" TEXT="Guide: Kapitel &quot;Signals&quot;"/>
<node CREATED="1477785747138" ID="ID_4618201" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-xeventsignals.html.en" MODIFIED="1557498707238" TEXT="speziell Details zu event Handlern: X event signals">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1477785807338" ID="ID_80062368" MODIFIED="1557498707238" TEXT="wie">
<icon BUILTIN="info"/>
<node CREATED="1477785809930" ID="ID_596393977" MODIFIED="1557498707238" TEXT="signal connect()"/>
<node COLOR="#ca1b00" CREATED="1477785830295" ID="ID_94782325" MODIFIED="1557498707238" TEXT="-- oder --"/>
<node CREATED="1477785818920" ID="ID_1600280983" MODIFIED="1557498707238" TEXT="on_xxx() &#xfc;berschreiben">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1600280983" ENDARROW="Default" ENDINCLINATION="893;0;" ID="Arrow_ID_1707544457" SOURCE="ID_111966354" STARTARROW="None" STARTINCLINATION="893;0;"/>
</node>
</node>
<node CREATED="1477785856731" ID="ID_63204089" MODIFIED="1557498707238" TEXT="R&#xfc;ckgabewert: true == fertig behandelt"/>
</node>
<node CREATED="1504215708147" ID="ID_975007807" MODIFIED="1557498707238" TEXT="Widget">
<node CREATED="1535630469053" ID="ID_608304313" MODIFIED="1557498707238" TEXT="konkret...">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<node CREATED="1535630478836" ID="ID_51688888" MODIFIED="1557498707238" TEXT="Container">
<node CREATED="1535629240762" FOLDED="true" ID="ID_1889724128" MODIFIED="1542295961314" STYLE="fork">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Gtk::<b>Expander</b>
</p>
</body>
</html></richcontent>
<edge COLOR="#b4a9e3" STYLE="bezier" WIDTH="thin"/>
<linktarget COLOR="#4561ae" DESTINATION="ID_1889724128" ENDARROW="Default" ENDINCLINATION="-1778;-100;" ID="Arrow_ID_219393455" SOURCE="ID_1047933726" STARTARROW="None" STARTINCLINATION="-6486;0;"/>
<font NAME="SansSerif" SIZE="12"/>
<node CREATED="1535630679569" ID="ID_1488556262" MODIFIED="1535630685068" TEXT="ein Kind-Widget"/>
<node CREATED="1535630685712" ID="ID_848335172" MODIFIED="1535630699099" TEXT="ein/ausklapp-Handle">
<node CREATED="1535630699999" ID="ID_895008056" MODIFIED="1535630702610" TEXT="immer sichtbar"/>
<node CREATED="1535630703150" ID="ID_1252755884" MODIFIED="1535630710185" TEXT="animierter Pfeil-Button"/>
<node CREATED="1535630710781" ID="ID_194514515" MODIFIED="1535630724687" TEXT="Label-Text als ctor-Param"/>
</node>
<node CREATED="1535630745440" ID="ID_1732954181" MODIFIED="1535630748668" TEXT="Verhalten">
<node CREATED="1535557122205" ID="ID_523553375" MODIFIED="1541088154443" TEXT="resize_toplevel (=true by default)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...ob beim Expand/Collapse das umschlie&#223;ende Widget resized werden soll
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535631187965" ID="ID_586010488" MODIFIED="1541088154449" TEXT="expanded (=false by default)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ob eingeklappt oder ausgeklappt
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1535631368701" ID="ID_1441730618" MODIFIED="1535631388301" TEXT="platziert Kind-Widget as-is">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1535631390194" ID="ID_356344952" MODIFIED="1535631402732" TEXT="in dessen nat&#xfc;rlicher Gr&#xf6;&#xdf;e"/>
<node CREATED="1535631403576" ID="ID_518089172" MODIFIED="1541088154461" TEXT="verh&#xe4;lt sich anders als Frame">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ein Frame setzt beim Kind property_expand() = true,
</p>
<p>
was dazu f&#252;hrt, da&#223; das Kind stets allen verf&#252;gbaren Platz nimmt
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1541455966429" ID="ID_973601831" MODIFIED="1557498707238">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Gtk::<b>Grid</b>
</p>
</body>
</html></richcontent>
<node COLOR="#435e98" CREATED="1541455995128" ID="ID_275278278" MODIFIED="1557498707238" TEXT="(ersetzt Gtk::Table @deprecated)">
<font NAME="SansSerif" SIZE="10"/>
</node>
<node CREATED="1541456025225" ID="ID_1914314588" MODIFIED="1557498707238" TEXT="expand und Fill wie bei Gtk::Box"/>
</node>
</node>
<node CREATED="1538583396203" FOLDED="true" ID="ID_243616989" MODIFIED="1557498707238" TEXT="TextView">
<linktarget COLOR="#3251a9" DESTINATION="ID_243616989" ENDARROW="Default" ENDINCLINATION="-2060;-1360;" ID="Arrow_ID_794678010" SOURCE="ID_1836686899" STARTARROW="None" STARTINCLINATION="-3506;-148;"/>
<node CREATED="1538583408897" ID="ID_1222725022" MODIFIED="1538583418805" TEXT="das Editor-Widget">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1538583420272" ID="ID_438604441" MODIFIED="1538583449944" TEXT="Model == Buffer">
<node CREATED="1538583478040" ID="ID_511541932" MODIFIED="1538583483915" TEXT="kann getauscht werden"/>
<node CREATED="1538583484647" ID="ID_457973011" MODIFIED="1538583504768" TEXT="Buffer gemeinsam verwenden"/>
</node>
<node CREATED="1538583507988" HGAP="72" ID="ID_1806257929" MODIFIED="1538583518616" TEXT="TextBuffer" VSHIFT="18">
<node CREATED="1538583533033" ID="ID_964637986" MODIFIED="1538583734951" TEXT="Konzepte">
<icon BUILTIN="info"/>
<node CREATED="1538583627852" ID="ID_1431409524" MODIFIED="1538583630676" TEXT="Position">
<node CREATED="1538583632075" ID="ID_1308223917" MODIFIED="1538583654421">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
stets <i>zwischen </i>den Zeichen
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1538583655744" ID="ID_415292974" MODIFIED="1538583682595">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Danke</b>! endlich bekommt das mal jemand korrekt hin
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1538583535896" ID="ID_81892828" MODIFIED="1538583539908" TEXT="TextIterator">
<node CREATED="1538583541231" ID="ID_1777219378" MODIFIED="1538583544571" TEXT="fl&#xfc;chtig"/>
<node CREATED="1538583546679" ID="ID_1182183621" MODIFIED="1538583555801" TEXT="kann intelligent navigieren">
<node CREATED="1538583567436" ID="ID_750990432" MODIFIED="1538583573647" TEXT="Zeichen"/>
<node CREATED="1538583573995" ID="ID_881520087" MODIFIED="1538583579166" TEXT="n&#xe4;chstes Wort"/>
<node CREATED="1538583579754" ID="ID_198678641" MODIFIED="1538583582742" TEXT="n&#xe4;chste Zeile"/>
</node>
<node CREATED="1538583556374" ID="ID_661377638" MODIFIED="1538583562128" TEXT="wei&#xdf; viel &#xfc;ber seine Position"/>
</node>
<node CREATED="1538583588689" ID="ID_1850195952" MODIFIED="1538583593741" TEXT="TextMark">
<node CREATED="1538583596768" ID="ID_281650917" MODIFIED="1538583612602" TEXT="dauerhafte Positionsmarke"/>
<node CREATED="1538583613326" ID="ID_1642730307" MODIFIED="1538583618193" TEXT="wandert mit"/>
<node CREATED="1538583618989" ID="ID_870667973" MODIFIED="1538583624848" TEXT="left/right gravity"/>
</node>
<node CREATED="1538583722679" ID="ID_80198934" MODIFIED="1538583725898" TEXT="TextTag">
<node CREATED="1538583726990" ID="ID_679389681" MODIFIED="1538583730874" TEXT="Formatierung / Markup"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1540643603185" ID="ID_1214860125" MODIFIED="1557498707238" TEXT="allgemein">
<node CREATED="1540643609173" ID="ID_1927927594" MODIFIED="1557498707238" TEXT="Lebenszyklus">
<node CREATED="1540645438704" ID="ID_1754311679" MODIFIED="1557498707238" TEXT="erzeugen"/>
<node CREATED="1540645441115" ID="ID_1343924195" MODIFIED="1557498707238" TEXT="verdrahten"/>
<node CREATED="1540645446023" ID="ID_1278449395" MODIFIED="1557498707238" TEXT="map"/>
<node CREATED="1540645449535" ID="ID_751713031" MODIFIED="1557498707238" TEXT="realize"/>
<node CREATED="1540645512438" ID="ID_1832277082" MODIFIED="1557498707238" TEXT="draw"/>
<node CREATED="1540645490897" ID="ID_1262425717" MODIFIED="1557498707238" TEXT="unrealize"/>
<node CREATED="1540645493913" ID="ID_1545070072" MODIFIED="1557498707238" TEXT="unmap"/>
<node CREATED="1540645497224" ID="ID_715226869" MODIFIED="1557498707238" TEXT="destroy"/>
</node>
<node CREATED="1540643613003" ID="ID_404660547" MODIFIED="1557498707239" TEXT="virtuelle Methoden">
<node CREATED="1540643621458" ID="ID_893370871" MODIFIED="1557498707239" TEXT="Widget hat eine Art VTable"/>
<node CREATED="1540643627593" ID="ID_1653985182" MODIFIED="1557498707239" TEXT="diese Methoden bilden den Lebenszyklus ab"/>
<node COLOR="#435e98" CREATED="1540643649134" ID="ID_863932581" LINK="https://developer.gnome.org/gtk3/stable/GtkWidget.html#GtkWidgetClass" MODIFIED="1557498707239" TEXT="Doku">
<font BOLD="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1540647187314" ID="ID_1715030005" MODIFIED="1557498707239" TEXT="C++">
<node CREATED="1540647217067" ID="ID_470384964" MODIFIED="1557498707239" TEXT="signal_size_allocate()">
<arrowlink COLOR="#1d47b3" DESTINATION="ID_1813983433" ENDARROW="Default" ENDINCLINATION="124;0;" ID="Arrow_ID_416269388" STARTARROW="None" STARTINCLINATION="58;0;"/>
</node>
<node CREATED="1540647190676" ID="ID_1813983433" MODIFIED="1557498707239" TEXT="on_size_allocate (Allocation&amp;)">
<linktarget COLOR="#1d47b3" DESTINATION="ID_1813983433" ENDARROW="Default" ENDINCLINATION="124;0;" ID="Arrow_ID_416269388" SOURCE="ID_470384964" STARTARROW="None" STARTINCLINATION="58;0;"/>
</node>
</node>
</node>
<node CREATED="1540645789033" ID="ID_1271246005" MODIFIED="1557498707239" TEXT="Framework-Verbindung">
<node CREATED="1540645818461" ID="ID_217892151" MODIFIED="1557498707239" TEXT="weitgehend automatisch"/>
<node CREATED="1540645822628" ID="ID_1316474474" MODIFIED="1557498707239" TEXT="alle Property-&#xc4;nderungen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;hren automatisch dazu, da&#223; das Widget
</p>
<p>
ggfs. neu gemapped und invalidiert wird, woraufhin es neu gezeichnet wird
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1540645864503" ID="ID_1092751510" MODIFIED="1557498707239" TEXT="Gtk::Widget::queue_draw_region">
<node CREATED="1540645872375" ID="ID_925460502" MODIFIED="1557498707239" TEXT="hiermit kann man explizit Neuzeichnen anfordern"/>
<node CREATED="1540645882388" ID="ID_1140702189" MODIFIED="1557498707239" TEXT="nur n&#xf6;tig bei custom-Draw">
<icon BUILTIN="yes"/>
</node>
</node>
<node CREATED="1540645903497" ID="ID_1615887419" MODIFIED="1557498707239" TEXT="Gtk::Widget::queue_resize">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1615887419" ENDARROW="Default" ENDINCLINATION="401;-36;" ID="Arrow_ID_1278323856" SOURCE="ID_699204853" STARTARROW="None" STARTINCLINATION="1411;0;"/>
<node CREATED="1540645905746" ID="ID_1768274251" MODIFIED="1557498707239" TEXT="wenn das Widget einen ge&#xe4;nderten Size-Request hat"/>
<node CREATED="1540645971349" ID="ID_1857749199" MODIFIED="1557498707239" TEXT="expliziter Aufruf normalerweise nie notwendig">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
</node>
<node CREATED="1540646156591" ID="ID_1103556230" MODIFIED="1557498707239" TEXT="Gtk::Widget::size_allocate(Allocation const&amp;) ">
<linktarget COLOR="#59699c" DESTINATION="ID_1103556230" ENDARROW="Default" ENDINCLINATION="-876;0;" ID="Arrow_ID_72712594" SOURCE="ID_841316619" STARTARROW="None" STARTINCLINATION="-1659;0;"/>
<linktarget COLOR="#7573ab" DESTINATION="ID_1103556230" ENDARROW="Default" ENDINCLINATION="763;-59;" ID="Arrow_ID_1309280117" SOURCE="ID_1615499339" STARTARROW="None" STARTINCLINATION="537;121;"/>
<node CREATED="1540646197649" ID="ID_1973894224" MODIFIED="1557498707239" TEXT="kann ein Container auf einem Kind-Widget aufrufen"/>
<node CREATED="1540646207146" ID="ID_781482261" MODIFIED="1557498707239" TEXT="Folge: Framework adjustiert die Allocation (f&#xfc;r Margins)"/>
<node CREATED="1540646220099" ID="ID_219594395" MODIFIED="1557498707239" TEXT="und ruft die virtuelle Funktion adjust_size_allocation"/>
<node CREATED="1540646275479" ID="ID_1278063707" MODIFIED="1557498707239" TEXT="und invalideiert -&gt; redraw">
<arrowlink COLOR="#6396d3" DESTINATION="ID_1112354648" ENDARROW="Default" ENDINCLINATION="332;0;" ID="Arrow_ID_322983898" STARTARROW="None" STARTINCLINATION="130;7;"/>
</node>
</node>
</node>
</node>
<node CREATED="1477526858307" ID="ID_676269117" MODIFIED="1557498707239" TEXT="custom widget">
<node COLOR="#ca1b00" CREATED="1477526864162" ID="ID_1385929770" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1557498707239" TEXT="Beispiel">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1385929770" ENDARROW="Default" ENDINCLINATION="1055;0;" ID="Arrow_ID_1314305180" SOURCE="ID_426069181" STARTARROW="None" STARTINCLINATION="1055;0;"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1477527104426" ID="ID_334736261" MODIFIED="1557498707239" TEXT="custom style properties">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...k&#246;nnen vom CSS-Stylesheet aus gesetzt werden.
</p>
<p>
Siehe Beschreibung im Beispiel/Tutorial
</p>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_334736261" ENDARROW="Default" ENDINCLINATION="228;-492;" ID="Arrow_ID_84377619" SOURCE="ID_111059124" STARTARROW="None" STARTINCLINATION="930;-42;"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1540645596907" ID="ID_783586168" MODIFIED="1557498707239" TEXT="virtuelle Funktionen &#xfc;berlagern">
<node CREATED="1540645608249" ID="ID_1150066023" MODIFIED="1557498707239" TEXT="on_draw">
<node CREATED="1540645612137" ID="ID_1200550229" MODIFIED="1557498707239" TEXT="f&#xfc;r custom drawing"/>
</node>
</node>
<node CREATED="1540647442009" ID="ID_303011961" MODIFIED="1557498707239" TEXT="oder: an Signale anh&#xe4;ngen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ist of einfacher und der bevorzugete Weg.
</p>
<p>
Im Besonderen kann man sich an Signale <i>anderer Widgets</i>&#160;anh&#228;ngen
</p>
</body>
</html></richcontent>
<node CREATED="1540647521382" ID="ID_1112354648" LINK="https://developer.gnome.org/gtk3/stable/GtkWidget.html#GtkWidget-draw" MODIFIED="1557498707239" TEXT="signal_draw()">
<linktarget COLOR="#6396d3" DESTINATION="ID_1112354648" ENDARROW="Default" ENDINCLINATION="332;0;" ID="Arrow_ID_322983898" SOURCE="ID_1278063707" STARTARROW="None" STARTINCLINATION="130;7;"/>
<node CREATED="1540647528517" ID="ID_1601064030" MODIFIED="1557498707239" TEXT="man kann den gegebenen Cairo-Kontext &#xe4;ndern">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1540647547755" ID="ID_577859258" MODIFIED="1557498707239" TEXT="die Clip-Region ist auf den tats&#xe4;chlich zu zeichnenden Bereich gesetzt">
<linktarget COLOR="#5e86ca" DESTINATION="ID_577859258" ENDARROW="Default" ENDINCLINATION="-1325;0;" ID="Arrow_ID_1966515866" SOURCE="ID_1534655843" STARTARROW="None" STARTINCLINATION="-1797;81;"/>
</node>
<node CREATED="1554476229422" ID="ID_1814758951" MODIFIED="1557498707239" TEXT="dirty-region des Widget">
<node CREATED="1554476290649" ID="ID_1743268737" MODIFIED="1557498707239" TEXT="der Bereich welcher tats&#xe4;chlich neu gezeichnet werden mu&#xdf;">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1554476255621" ID="ID_752995095" LINK="https://developer.gnome.org/gdk3/stable/gdk3-Cairo-Interaction.html#gdk-cairo-get-clip-rectangle" MODIFIED="1557498707239" TEXT="gdk-cairo-get-clip-rectangle()"/>
<node CREATED="1554476262846" ID="ID_712481438" LINK="https://developer.gnome.org/cairo/stable/cairo-cairo-t.html#cairo-copy-clip-rectangle-list" MODIFIED="1557498707239" TEXT="cairo-copy-clip-rectangle-list()">
<node CREATED="1554476717302" ID="ID_1025440579" LINK="https://developer.gnome.org/cairo/stable/cairo-cairo-t.html#cairo-clip-extents" MODIFIED="1557498707239" TEXT="Cairo: cairo-clip-extents()"/>
<node CREATED="1554477039164" ID="ID_1129826506" LINK="https://www.cairographics.org/documentation/cairomm/reference/classCairo_1_1Context.html#a7211a6110201b959ee46c47aa173b12a" MODIFIED="1557498707239" TEXT="CairoContext::get_clip_extents()"/>
</node>
</node>
</node>
</node>
<node CREATED="1554476592342" ID="ID_1236197922" LINK="https://developer.gnome.org/cairo/stable/cairo-cairo-t.html" MODIFIED="1557498707239" TEXT="Zeichnen: Cairo-Context">
<icon BUILTIN="info"/>
<node CREATED="1554476799366" ID="ID_977796922" LINK="https://www.cairographics.org/documentation/cairomm/reference/" MODIFIED="1557498707239" TEXT="Cairomm"/>
<node CREATED="1554476906923" ID="ID_437420072" MODIFIED="1557498707239" TEXT="Cairo-Doku(allgemein)"/>
<node CREATED="1554476956084" ID="ID_541824716" LINK="https://www.cairographics.org/documentation/cairomm/reference/classCairo_1_1Context.html" MODIFIED="1557498707239" TEXT="CairoContext(C++)"/>
</node>
</node>
<node CREATED="1476375676818" ID="ID_1029920942" MODIFIED="1557498707239" TEXT="Canvas">
<node CREATED="1476375696215" ID="ID_1397403295" MODIFIED="1557498707239" TEXT="GtkDrawingArea">
<node CREATED="1476375709157" ID="ID_981405457" MODIFIED="1557498707239" TEXT="custom drawing"/>
</node>
<node CREATED="1476375702166" ID="ID_290806424" MODIFIED="1557498707239" TEXT="GtkLayout">
<icon BUILTIN="idea"/>
<node CREATED="1476375715644" ID="ID_1233704735" MODIFIED="1557498707239" TEXT="scrollable"/>
<node CREATED="1476375723915" ID="ID_72518723" MODIFIED="1557498707239" TEXT="can place sub-widgets"/>
<node CREATED="1476375733298" ID="ID_1024321268" MODIFIED="1557498707239" TEXT="allows custom drawing"/>
<node CREATED="1476468254712" HGAP="64" ID="ID_1424353399" MODIFIED="1557498707239" TEXT="Eigenschaften" VSHIFT="45">
<icon BUILTIN="pencil"/>
<node CREATED="1476468265399" HGAP="2" ID="ID_257790579" MODIFIED="1557498707239" TEXT="Test-Setup schaffen" VSHIFT="-15">
<node CREATED="1476468390830" ID="ID_1922633406" MODIFIED="1557498707239" TEXT="soll">
<icon BUILTIN="yes"/>
<node CREATED="1476468393174" ID="ID_412857359" MODIFIED="1557498707239" TEXT="schnell gehen"/>
<node CREATED="1476468395941" ID="ID_1419405883" MODIFIED="1557498707239" TEXT="nicht das UI kaputtmachen"/>
<node CREATED="1476468402085" ID="ID_1171941848" MODIFIED="1557498707239" TEXT="realistisch sein"/>
</node>
</node>
<node COLOR="#338800" CREATED="1476468272510" FOLDED="true" ID="ID_150722005" MODIFIED="1557498707239" TEXT="Untersuchung">
<icon BUILTIN="button_ok"/>
<node CREATED="1477595404814" HGAP="37" ID="ID_1078486680" MODIFIED="1518487921100" TEXT="Goals" VSHIFT="-12">
<icon BUILTIN="yes"/>
<node CREATED="1476468292804" ID="ID_283291482" MODIFIED="1518487921100" TEXT="overlapping widgets"/>
<node CREATED="1476468292805" ID="ID_140846763" MODIFIED="1518487921100" TEXT="resizing of widgets"/>
<node CREATED="1476468292805" ID="ID_1075320324" MODIFIED="1541088154684" TEXT="partially covered widgets">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....how does the event dispatching deal with partially covered widgets
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1476468292805" ID="ID_1670607748" MODIFIED="1541088154692" TEXT="tabbing / focus order">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...for embedded widgets
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1476468292805" ID="ID_472068538" MODIFIED="1518487921100" TEXT="custom drawing and widget drawing"/>
</node>
<node CREATED="1477595408918" ID="ID_387371672" MODIFIED="1518487921100" TEXT="Tasks">
<node CREATED="1477595418669" ID="ID_1316314985" MODIFIED="1518487921100" TEXT="# place some simple widgets (Buttons)">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-1"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1477601706168" ID="ID_130395672" MODIFIED="1518487921100" TEXT="Kind-Klasse anlegen"/>
<node CREATED="1477601712063" ID="ID_1720776876" MODIFIED="1518487921100" TEXT="Kinder managen"/>
</node>
<node CREATED="1477595418669" ID="ID_517122292" MODIFIED="1518487921100" TEXT="# learn how to draw">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-2"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1477788816168" ID="ID_904860978" MODIFIED="1518487921100" TEXT="documentation">
<icon BUILTIN="info"/>
<node CREATED="1477788823751" ID="ID_111966354" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/chapter-drawingarea.html.en" MODIFIED="1518487921100" TEXT="read the custom drawing chapter">
<arrowlink DESTINATION="ID_1600280983" ENDARROW="Default" ENDINCLINATION="893;0;" ID="Arrow_ID_1707544457" STARTARROW="None" STARTINCLINATION="893;0;"/>
</node>
<node CREATED="1477788855234" ID="ID_426069181" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1518487921100" TEXT="read the example code of a custom widget">
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1385929770" ENDARROW="Default" ENDINCLINATION="1055;0;" ID="Arrow_ID_1314305180" STARTARROW="None" STARTINCLINATION="1055;0;"/>
</node>
<node CREATED="1477789514451" ID="ID_84890591" LINK="https://www.cairographics.org/documentation/cairomm/reference/" MODIFIED="1518487921100" TEXT="Cairomm API-doc"/>
</node>
<node CREATED="1477784938038" ID="ID_93104177" MODIFIED="1518487921100" TEXT="how-to...">
<icon BUILTIN="button_ok"/>
<node CREATED="1477788718965" ID="ID_1354942176" MODIFIED="1518487921100" TEXT="derived class"/>
<node CREATED="1477788722228" ID="ID_720985572" MODIFIED="1518487921100" TEXT="override on_draw()"/>
<node CREATED="1477788731163" ID="ID_421749777" MODIFIED="1518487921100" TEXT="invoke inherited on_draw()">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1477788749289" ID="ID_1466181075" MODIFIED="1541088154747" TEXT="returns false">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...meaning, &quot;this event is not yet fully processed&quot;,
</p>
<p>
i.e. the enclosing parent widget also gets a chance to redraw itself
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1477791881630" HGAP="37" ID="ID_1823256674" MODIFIED="1518487921100" TEXT="coordinates" VSHIFT="11">
<icon BUILTIN="button_ok"/>
<node CREATED="1477791885614" ID="ID_380369648" MODIFIED="1518487921100">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<font color="#bd0053">Warning</font>: allocation is the <i>visible</i>&#160;area
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1477791921953" ID="ID_555455740" MODIFIED="1518487921100" TEXT="...not the extension of the canvas!"/>
<node CREATED="1477841655353" ID="ID_1533125137" MODIFIED="1518487921100" TEXT="adjust to compensate">
<icon BUILTIN="idea"/>
<node CREATED="1477841600713" ID="ID_1319450558" LINK="http://stackoverflow.com/questions/40325668/scrollable-drawing-in-gtklayout" MODIFIED="1541088154768" TEXT="Question: can the framework adjust for us">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
asked on stackoverflow...
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1477841687997" ID="ID_1267996486" MODIFIED="1533608414144" TEXT="explicitly by code">
<node CREATED="1477841706107" ID="ID_1685967940" MODIFIED="1518487921100" TEXT="use get_value() from adjustment"/>
<node CREATED="1477841728496" ID="ID_935017463" MODIFIED="1518487921100" TEXT="because this represents coord. of visible viewport"/>
<node CREATED="1477841753180" ID="ID_501431504" MODIFIED="1541088154781" TEXT="max(value) + viewport-size == canvas size">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...as can be observed
</p>
<p>
by printing values from the on_draw() callback
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1477841809741" FOLDED="true" ID="ID_1400891730" MODIFIED="1533608416399" TEXT="context-&gt;translate">
<node CREATED="1477841816516" ID="ID_642580279" MODIFIED="1518487921100" TEXT="by -value"/>
<node CREATED="1477841842512" ID="ID_1549119493" MODIFIED="1518487921100" TEXT="allows us to use absolute coords."/>
<node CREATED="1477841854807" ID="ID_1202368941" MODIFIED="1518487921100" TEXT="clipping happens automatically"/>
<node CREATED="1477841860278" ID="ID_208350074" MODIFIED="1518487921100" TEXT="need to ctx-&gt;save() and ctx-&gt;restore()">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...otherwise adjustment values will cummulate,
</p>
<p>
causing us to adjust too much
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1477843534095" ID="ID_1261380784" MODIFIED="1518487921100" TEXT="Problem: widget extension">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1477843543126" ID="ID_1096450231" MODIFIED="1518487921100" TEXT="seems to be defined only after drawing it"/>
<node CREATED="1478032584364" ID="ID_1961636905" MODIFIED="1518487921100" TEXT="need to find the right signal">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1478032598165" ID="ID_275509060" MODIFIED="1533608414145" TEXT="need to get foreach working">
<icon BUILTIN="yes"/>
<node CREATED="1478032633704" ID="ID_1067159761" MODIFIED="1518487921101" TEXT="Hint: show_all_children"/>
<node CREATED="1478032642310" ID="ID_246127915" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-containers.html.en" MODIFIED="1518487921101" TEXT="Tutorial: custom container"/>
<node CREATED="1478037794935" FOLDED="true" HGAP="41" ID="ID_614099643" MODIFIED="1533608416400" TEXT="geht doch" VSHIFT="38">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1478037802776" ID="ID_1706111079" MODIFIED="1518487921101" TEXT="keine Ahnung warums neulich einen SEGFAULT gab"/>
<node CREATED="1478037818037" ID="ID_1257597772" MODIFIED="1518487921101" TEXT="wichtig: Funktor inline bestehen lassen"/>
<node CREATED="1478037849449" ID="ID_171841689" MODIFIED="1518487921101" TEXT="habe diesmal sogar ein Lambda verwendet">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1478037888539" ID="ID_1261247197" MODIFIED="1533608414146" TEXT="wie">
<icon BUILTIN="idea"/>
<node CREATED="1478037893658" ID="ID_1711061664" MODIFIED="1518487921101" TEXT="trigger-Variable"/>
<node CREATED="1478037899458" FOLDED="true" ID="ID_132096735" MODIFIED="1533608416401" TEXT="im on_draw()-Callback">
<node CREATED="1478037908465" ID="ID_1414994452" MODIFIED="1518487921101" TEXT="erst hier sind die Allokationen gesetzt"/>
<node CREATED="1478037916303" ID="ID_1781865207" MODIFIED="1518487921101" TEXT="konnte keine anderen sinnvollen callbacks finden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...die anderen, die noch in Frage kommen w&#252;rden,
</p>
<p>
sind nur f&#252;r den Fall, da&#223; ein Widget neu instantiiert wird
</p>
<p>
oder neu in das Window-System gemappt wird.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1478037986046" ID="ID_1293899679" MODIFIED="1518487921101">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
on_check_resize() wird nicht aufgerufen
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1478038003892" ID="ID_477362495" MODIFIED="1518487921101" TEXT="rufe foreach mit inline-Lambda auf"/>
<node CREATED="1478038011427" ID="ID_399044896" MODIFIED="1518487921101" TEXT="melde per max in die lokalen Variablen zur&#xfc;ck"/>
<node CREATED="1478038020338" ID="ID_541293489" MODIFIED="1518487921101" TEXT="Layout-&gt;set_size()"/>
</node>
</node>
</node>
<node CREATED="1477784943797" ID="ID_298493039" MODIFIED="1518487921101" TEXT="layering">
<icon BUILTIN="button_ok"/>
<node CREATED="1477791842091" ID="ID_671463871" MODIFIED="1518487921101" TEXT="depends on order of parent call"/>
<node CREATED="1477791849578" ID="ID_96793101" MODIFIED="1518487921101" TEXT="and on order of cairo draw operations">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1477784949533" ID="ID_1496795315" MODIFIED="1518487921101" TEXT="custom styling"/>
</node>
<node CREATED="1477595418670" ID="ID_770195423" MODIFIED="1518487921101" TEXT="# place a huge number of widgets, to scrutinise scrolling and performance">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-3"/>
</node>
<node CREATED="1477595418670" ID="ID_423514526" MODIFIED="1518487921101" TEXT="# place widgets overlapping / irregularily">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-4"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1477668663507" ID="ID_1576657272" MODIFIED="1518487921101" TEXT="order: later on top">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477668674577" ID="ID_431152757" MODIFIED="1518487921101" TEXT="place widgets out of sight">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477694911349" ID="ID_93004070" MODIFIED="1518487921101" TEXT="widgets beyond the scrollable area">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1477595418670" ID="ID_1370967982" MODIFIED="1518487921101" TEXT="# bind signals to those widgets, to verify event dispatching">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-5"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477595418670" ID="ID_1603374862" MODIFIED="1518487921101" TEXT="# bind some further signal(s) to the GtkLayout container">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-6"/>
</node>
<node CREATED="1477595418670" ID="ID_496085779" MODIFIED="1518487921101" TEXT="# hide and re-show a partially and a totally overlapped widget">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-7"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477595418670" ID="ID_1516591439" MODIFIED="1518487921101" TEXT="# move and delete widgets">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-8"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1477703725690" ID="ID_554135449" MODIFIED="1518487921101" TEXT="move">
<icon BUILTIN="button_ok"/>
<node CREATED="1477703730073" ID="ID_1070867956" MODIFIED="1518487921101" TEXT="foreach doesn&apos;t work">
<icon BUILTIN="smiley-angry"/>
</node>
<node CREATED="1479424603959" ID="ID_194428894" MODIFIED="1541088154846" TEXT="works on second attempt">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...keine Ahnung, was ich beim ersten Mal falsch gemacht habe.
</p>
<p>
jedenfalls hab ich da sofort beim ersten Aufruf der Closure einen SEGFAULT bekommen.
</p>
<p>
</p>
<p>
Auch im zweiten Anlauf habe ich ein Lambda verwendet.
</p>
<p>
M&#246;glicherweise ist der einzige Unterschied, da&#223; ich es nun aus dem draw-callback
</p>
<p>
aufrufe, und da&#223; demgegen&#252;ber bei der ersten Verwendung die Allocation des jeweiligen
</p>
<p>
Kind-Widgets noch gar nicht festgelegt war (denn das passiert erst beim draw).
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
<node CREATED="1477703741232" ID="ID_942790225" MODIFIED="1518487921101" TEXT="get_children returns copy">
<icon BUILTIN="smiley-oh"/>
</node>
</node>
<node CREATED="1477748350140" ID="ID_1672717051" MODIFIED="1518487921101" TEXT="align all in a row">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477749635577" ID="ID_592134506" MODIFIED="1518487921101" TEXT="delete arbitrary children">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1477595418670" ID="ID_1275908576" MODIFIED="1518487921101" TEXT="# expand an existing widget (text change)">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-9"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1477595418670" ID="ID_700977265" MODIFIED="1518487921101" TEXT="# build a custom &quot;&apos;&apos;clip&apos;&apos;&quot; widget">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-1"/>
<icon BUILTIN="full-0"/>
</node>
<node CREATED="1477595418670" ID="ID_1708640864" MODIFIED="1518487921101" TEXT="# retrofit all preceding tests to use this &quot;&apos;&apos;clip&apos;&apos;&quot; widget">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-1"/>
<icon BUILTIN="full-1"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1504215729848" ID="ID_518260540" MODIFIED="1557498707239" TEXT="howto">
<node CREATED="1446515847047" ID="ID_290915762" MODIFIED="1557498707239" TEXT="GtkCssProvider">
<node CREATED="1446515865029" ID="ID_1503616150" MODIFIED="1557498707239" TEXT="parsing errors"/>
<node CREATED="1477784584821" ID="ID_1810760662" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1557498707239" TEXT="Beispiel im GTKmm-Guide (custom widget)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
in der Implementierung, mywidget.cc
</p>
<p>
ist eine komplette Sequenz, wie man einen CSS-StyleProvider setzt
</p>
<p>
und auch ein Signal f&#252;r Parse-Fehler anschlie&#223;t
</p>
</body>
</html></richcontent>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1600;-25;" ID="Arrow_ID_1610122569" SOURCE="ID_1164942946" STARTARROW="None" STARTINCLINATION="-840;95;"/>
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1504215750653" ID="ID_110831069" MODIFIED="1557498707239" TEXT="Textanzeige">
<node CREATED="1504215755484" ID="ID_1858414199" MODIFIED="1557498707239" TEXT="TextView widget"/>
<node CREATED="1504215761547" ID="ID_925639969" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-examples.html.en" MODIFIED="1557498707239">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Beispiel im <font color="#d4020a">Guide</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504215825762" ID="ID_429138159" MODIFIED="1557498707239" TEXT="zur letzten Zeile scrollen">
<linktarget COLOR="#9bbabd" DESTINATION="ID_429138159" ENDARROW="Default" ENDINCLINATION="-1413;0;" ID="Arrow_ID_1025095859" SOURCE="ID_653669269" STARTARROW="None" STARTINCLINATION="-1151;202;"/>
<node CREATED="1504220167228" ID="ID_622474093" MODIFIED="1557498707239" TEXT="scroll_to(iterator) ist ungenau">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1504215849336" ID="ID_832996389" MODIFIED="1557498707239" TEXT="Marker setzen">
<icon BUILTIN="idea"/>
<node CREATED="1504220053691" ID="ID_905781900" MODIFIED="1557498707239" TEXT="benannt oder anonym"/>
<node CREATED="1504220061178" ID="ID_474843943" MODIFIED="1557498707239" TEXT="&quot;Gravity&quot; beachten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<ul>
<li>
left gravity: Marker bleibt beim Einf&#252;gen an dieser Stelle links von der Einf&#252;gung stehen
</li>
<li>
right gravity: Marker wird durch Einf&#252;gen an dieser Stelle nach rechts geschoben
</li>
</ul>
<p>
Beachte: der Text-Cursor (Marker &quot;insert&quot;) hat right gravity
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1504215832746" ID="ID_751207346" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-multithread-example.html.en" MODIFIED="1557498707239">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Multithreded-Beispiel
</p>
<p>
im Guide demonstriert das
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504219929260" ID="ID_1037649590" MODIFIED="1557498707239" TEXT="Trick: Cursor ist ein Marker namens &quot;insert&quot;">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1534511566130" HGAP="93" ID="ID_833641481" MODIFIED="1557498707239" TEXT="libGDL" VSHIFT="-58">
<linktarget COLOR="#39478f" DESTINATION="ID_833641481" ENDARROW="Default" ENDINCLINATION="-1307;0;" ID="Arrow_ID_214595057" SOURCE="ID_358403014" STARTARROW="None" STARTINCLINATION="-2073;0;"/>
<node CREATED="1534511647623" ID="ID_586745535" MODIFIED="1557498707239" TEXT="&quot;Gnome Docking Library&quot;">
<node CREATED="1534511675819" ID="ID_458805224" MODIFIED="1557498707239" TEXT="wird auch von Anjuta genutzt"/>
<node CREATED="1534511663333" ID="ID_1116756676" MODIFIED="1557498707239" TEXT="historisch: Gnome Design Library"/>
</node>
<node CREATED="1534511978427" ID="ID_409550752" MODIFIED="1557498707240" TEXT="Dokumentation">
<node CREATED="1534511984706" ID="ID_463901760" MODIFIED="1557498707240" TEXT="kaum online zu fnden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node COLOR="#435e98" CREATED="1534511992737" ID="ID_555023917" LINK="file:///Werk/devel/a/gdlmm3-3.7.3/doc/reference/html/inherits.html" MODIFIED="1557498707240" TEXT="GDLmm Doxygen im Quellbaum">
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="info"/>
</node>
<node COLOR="#435e98" CREATED="1534512202029" ID="ID_1785775758" LINK="file:///Werk/devel/a/gdl-3.28.0/docs/reference/html/index.html" MODIFIED="1557498707240" TEXT="die GDL-Doxygen ist etwas ergiebiger">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1534511695553" ID="ID_1631118283" MODIFIED="1557498707240" TEXT="Begriffe">
<node CREATED="1534512435774" HGAP="58" ID="ID_560032324" MODIFIED="1557498707240" TEXT="Widgets...." VSHIFT="-12">
<node CREATED="1534512446077" ID="ID_1284930136" MODIFIED="1557498707240" TEXT="gdl::Dock">
<arrowlink DESTINATION="ID_657079851" ENDARROW="Default" ENDINCLINATION="118;-10;" ID="Arrow_ID_1904059368" STARTARROW="None" STARTINCLINATION="118;-10;"/>
</node>
<node CREATED="1534512456307" ID="ID_1461586214" MODIFIED="1557498707240" TEXT="gdl::DockNotebook">
<node COLOR="#84292b" CREATED="1534512627860" ID="ID_1972742181" MODIFIED="1557498707240" TEXT=" nicht GDLmm">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1534512470265" ID="ID_1122516503" MODIFIED="1557498707240" TEXT="gdl::DockPaned">
<node COLOR="#84292b" CREATED="1534512627860" ID="ID_570071709" MODIFIED="1557498707240" TEXT=" nicht GDLmm">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1534512476873" ID="ID_405367338" MODIFIED="1557498707240" TEXT="gdl::DockItem">
<arrowlink DESTINATION="ID_1059219569" ENDARROW="Default" ENDINCLINATION="125;-6;" ID="Arrow_ID_315465766" STARTARROW="None" STARTINCLINATION="107;-19;"/>
</node>
<node CREATED="1534512482992" ID="ID_615241196" MODIFIED="1557498707240" TEXT="gdl::DockBar"/>
</node>
<node CREATED="1534511737131" ID="ID_1114860371" MODIFIED="1557498707240" TEXT="DockObject">
<node CREATED="1534512301864" ID="ID_949111740" MODIFIED="1557498707240" TEXT="abstrakte Basisklasse">
<node CREATED="1534512313238" ID="ID_614492337" MODIFIED="1557498707240" TEXT="&quot;for all docking widgets&quot;"/>
<node CREATED="1534512329540" ID="ID_661309088" MODIFIED="1557498707240" TEXT="implementiert GtkBuildable"/>
</node>
<node CREATED="1534512053505" ID="ID_1534912911" MODIFIED="1557498707240" TEXT="Subklassen">
<node CREATED="1534512059048" ID="ID_657079851" MODIFIED="1557498707240" TEXT="gdl::Dock">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_657079851" ENDARROW="Default" ENDINCLINATION="118;-10;" ID="Arrow_ID_1904059368" SOURCE="ID_1284930136" STARTARROW="None" STARTINCLINATION="118;-10;"/>
<node CREATED="1534512361544" ID="ID_172039334" MODIFIED="1557498707240" TEXT="docking area"/>
</node>
<node CREATED="1534512065896" ID="ID_1059219569" MODIFIED="1557498707240" TEXT="gdl::DockItem">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1059219569" ENDARROW="Default" ENDINCLINATION="125;-6;" ID="Arrow_ID_315465766" SOURCE="ID_405367338" STARTARROW="None" STARTINCLINATION="107;-19;"/>
<node CREATED="1534512387109" ID="ID_173562614" MODIFIED="1557498707240" TEXT="Adds docking capability to its child widget">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
A dock item is a container widget that can be docked at different place.
</p>
<p>
It accepts a single child and adds a grip allowing the user to click on it
</p>
<p>
to drag and drop the widget.
</p>
<p>
</p>
<p>
The grip is implemented as a GdlDockItemGrip
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1534512072391" ID="ID_1008938926" MODIFIED="1557498707240" TEXT="gdl::DockPlaceholder">
<node CREATED="1534512416601" ID="ID_1452643437" MODIFIED="1557498707240" TEXT="A widget marking a docking place"/>
</node>
</node>
</node>
<node CREATED="1534511742274" ID="ID_11568474" MODIFIED="1557498707240" TEXT="DockMaster"/>
<node CREATED="1534512085021" ID="ID_269318967" MODIFIED="1557498707240" TEXT="DockLayout"/>
<node CREATED="1534512093148" ID="ID_767756183" MODIFIED="1557498707240" TEXT="DockBar">
<node CREATED="1534512097459" ID="ID_1126576292" MODIFIED="1557498707240" TEXT="h&#xe4;lt minimierte Docks als Icons">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node CREATED="1534511699368" ID="ID_243375657" MODIFIED="1557498707240" TEXT="C++ Bindings"/>
</node>
<node CREATED="1482365415326" HGAP="71" ID="ID_886002365" MODIFIED="1557498707240" TEXT="Standard C++" VSHIFT="-25">
<node CREATED="1482365430484" ID="ID_1414724077" MODIFIED="1557498707240" TEXT="chrono">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1482365434203" ID="ID_1026694670" MODIFIED="1557498707240" TEXT="lernen">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1482365448257" ID="ID_1648116305" MODIFIED="1557498707240">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ticket <font color="#ba0c3f">#886</font>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1512178947582" ID="ID_1778761323" MODIFIED="1557498707240">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Lessons
</p>
<p>
learned
</p>
</body>
</html></richcontent>
<node CREATED="1512178960281" ID="ID_1847018554" MODIFIED="1557498707240" TEXT="SFINAE">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512178984189" ID="ID_226963358" MODIFIED="1557498707240" TEXT="Fehler im Check scheitern stillschweigend">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1512179012761" ID="ID_1425607905" MODIFIED="1557498707240">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
auf <i>incomplete type</i>&#160;achten
</p>
</body>
</html></richcontent>
<node CREATED="1512179030982" ID="ID_895612426" MODIFIED="1557498707240" TEXT="sizeof()"/>
<node CREATED="1512179035013" ID="ID_1663591306" MODIFIED="1557498707240" TEXT="member-pointer"/>
<node CREATED="1512179039109" ID="ID_746391928" MODIFIED="1557498707240">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Vorsicht bei
</p>
<p>
mutually dependent templates
</p>
</body>
</html></richcontent>
<node CREATED="1512179063250" ID="ID_933791979" MODIFIED="1557498707240" TEXT="w&#xe4;hrend der Instantiierung....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
kann eines der Templates im Zyklus vorr&#252;bergehend als &quot;incomplete&quot; gelten.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512179134400" ID="ID_1738202679" MODIFIED="1557498707240" TEXT="....kann die Metafunktion scheitern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wenn man dummerweise auf verschlungenen Pfaden
</p>
<p>
genau in dieser Phase die Metafunktion anfragt,
</p>
<p>
kann der betreffende Check stillschweigend scheitern.
</p>
<p>
</p>
<p>
Konsequenz: man w&#228;hlt dann z.B. eine subtil falsche Spezialisierung.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1512179201831" ID="ID_1577563892" MODIFIED="1557498707240" TEXT="t&#xfc;ckischer Fehler">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1450488895106" ID="ID_1586185818" MODIFIED="1557498707240" TEXT="Threading">
<node CREATED="1450488902049" ID="ID_1126260262" MODIFIED="1557498707240" TEXT="static init">
<linktarget COLOR="#9a97b5" DESTINATION="ID_1126260262" ENDARROW="Default" ENDINCLINATION="-1465;211;" ID="Arrow_ID_372705466" SOURCE="ID_1086493226" STARTARROW="None" STARTINCLINATION="-1025;0;"/>
<linktarget COLOR="#9e9bae" DESTINATION="ID_1126260262" ENDARROW="Default" ENDINCLINATION="-1485;213;" ID="Arrow_ID_1269745634" SOURCE="ID_1921668956" STARTARROW="None" STARTINCLINATION="-1534;0;"/>
<node CREATED="1450489361187" ID="ID_1013681859" LINK="http://stackoverflow.com/a/17803616/444796" MODIFIED="1557498707240" TEXT="Zusammenfassung (SO)">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1525123890877" ID="ID_558698687" LINK="http://en.cppreference.com/w/cpp/language/initialization#Non-local_variables" MODIFIED="1557498707240" TEXT="ausf&#xfc;hrlich in der CPPreference">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1525130640512" ID="ID_856205786" LINK="https://stackoverflow.com/a/1825872/444796" MODIFIED="1557498707240" TEXT="wichtig: Triggern der statischen Instanz (SO)">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1525191808145" ID="ID_228531407" MODIFIED="1557498707240" TEXT="ungekl&#xe4;rtes Problem mit Initialisierungs-Reihenfolge">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1525191859371" ID="ID_1136158199" MODIFIED="1557498707240" TEXT="tritt auf in statischem init-Kontext">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn ein Template ein statisches member-Feld hat,
</p>
<p>
dann ist zus&#228;tzlich eine getemplatete <i>Definition</i>&#160;dieses Feldes notwendig.
</p>
<p>
Diese wird erst generiert, wenn der erste <b>odr-use</b>&#160;des statischen Member-Feldes passiert.
</p>
<p>
Dieser odr-use kann nun z.B. aus einer Funktion des Template heraus erfolgen
</p>
<p>
Allerdings beobachte ich, da&#223; dann der ctor-Aufruf zur Initialisierung erst <i>nach dem Zugriff</i>&#160;auf
</p>
<p>
das member-Feld passiert, sofern der Aufruf und damit die Instanz des umschlie&#223;enden Template
</p>
<p>
selber aus einem statischen Initialisierungs-Kontext heraus erfolgt.
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1525192054281" ID="ID_414612523" MODIFIED="1557498707240" TEXT="#1142 initialisation of static template members">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1525192237928" ID="ID_1523643615" MODIFIED="1557498707240" TEXT="Demo-Beispiel: g++ --std=gnu++14 blei.cpp -o blei">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
</p>
<p>
#include &lt;iostream&gt;
</p>
<p>
</p>
<p>
using std::cout;
</p>
<p>
using std::endl;
</p>
<p>
</p>
<p>
template&lt;typename T&gt;
</p>
<p>
class Factory
</p>
<p>
&#160;&#160;{
</p>
<p>
&#160;&#160;public:
</p>
<p>
&#160;&#160;&#160;&#160;T val;
</p>
<p>
&#160;&#160;&#160;
</p>
<p>
&#160;&#160;&#160;&#160;Factory()
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;: val{}
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cout &lt;&lt; &quot;Factory-ctor&#160;&#160;val=&quot;&lt;&lt;val&lt;&lt;endl;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;}
</p>
<p>
&#160;&#160;};
</p>
<p>
</p>
<p>
</p>
<p>
template&lt;typename T&gt;
</p>
<p>
class Front
</p>
<p>
&#160;&#160;{
</p>
<p>
&#160;&#160;public:
</p>
<p>
&#160;&#160;&#160;&#160;static Factory&lt;T&gt; fac;
</p>
<p>
&#160;&#160;&#160;
</p>
<p>
&#160;&#160;&#160;&#160;Front()
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cout &lt;&lt; &quot;Front-ctor&#160;&#160;&#160;&#160;val=&quot;&lt;&lt;fac.val&lt;&lt;endl;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;fac.val += 100;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;}
</p>
<p>
&#160;&#160;&#160;
</p>
<p>
&#160;&#160;&#160;&#160;T&amp;
</p>
<p>
&#160;&#160;&#160;&#160;operate ()
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cout &lt;&lt; &quot;Front-operate val=&quot;&lt;&lt;fac.val&lt;&lt;endl;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;++ fac.val;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return fac.val;
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;}
</p>
<p>
&#160;&#160;};
</p>
<p>
</p>
<p>
template&lt;typename T&gt;
</p>
<p>
Factory&lt;T&gt; Front&lt;T&gt;::fac;
</p>
<p>
</p>
<p>
</p>
<p>
namespace {
</p>
<p>
&#160;&#160;Front&lt;int&gt; front;
</p>
<p>
&#160;&#160;int global_int = front.operate();
</p>
<p>
}
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
int
</p>
<p>
main (int, char**)
</p>
<p>
&#160;&#160;{
</p>
<p>
&#160;&#160;&#160;&#160;Front&lt;int&gt; fint;
</p>
<p>
&#160;&#160;&#160;
</p>
<p>
&#160;&#160;&#160;&#160;int&amp; i = fint.operate();
</p>
<p>
&#160;&#160;&#160;&#160;cout &lt;&lt; &quot;main:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;val=&quot;&lt;&lt;i&lt;&lt;endl;
</p>
<p>
&#160;&#160;&#160;&#160;cout &lt;&lt; &quot;global_int.......=&quot;&lt;&lt;global_int&lt;&lt;endl;
</p>
<p>
&#160;&#160;&#160;
</p>
<p>
&#160;&#160;&#160;&#160;return 0;
</p>
<p>
&#160;&#160;}
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1450489388912" ID="ID_1935538293" MODIFIED="1557498707240" TEXT="function-static">
<icon BUILTIN="info"/>
<node CREATED="1450489395711" ID="ID_1661542298" MODIFIED="1557498707240" TEXT="when ctrl flow enters first"/>
<node CREATED="1450489412364" ID="ID_965405072" LINK="http://stackoverflow.com/a/8102145/444796" MODIFIED="1557498707240" TEXT="threadsafe since C++11"/>
<node CREATED="1450489421795" ID="ID_12247357" MODIFIED="1557498707240" TEXT="lives until the end of the program"/>
</node>
</node>
<node CREATED="1521779331036" FOLDED="true" ID="ID_1416813337" MODIFIED="1557498707240" TEXT="memory access ordering">
<linktarget COLOR="#5a6caa" DESTINATION="ID_1416813337" ENDARROW="Default" ENDINCLINATION="-1755;162;" ID="Arrow_ID_751165448" SOURCE="ID_1772115642" STARTARROW="None" STARTINCLINATION="-4287;-237;"/>
<node CREATED="1521779387708" ID="ID_663855061" MODIFIED="1521779394271" TEXT="C++ memory model"/>
<node CREATED="1521779395219" ID="ID_1890752917" MODIFIED="1521779403446" TEXT="C++11 Atomic library"/>
<node CREATED="1521783284922" ID="ID_970193431" MODIFIED="1521783295429" TEXT="Quellen &amp; Erl&#xe4;uterungen">
<icon BUILTIN="info"/>
<node CREATED="1521783300728" ID="ID_789225244" LINK="http://preshing.com/20120913/acquire-and-release-semantics/" MODIFIED="1521783329728" TEXT="Blog: Preshing on Programming"/>
<node CREATED="1521783335195" ID="ID_722067069" LINK="http://en.cppreference.com/w/cpp/atomic/memory_order" MODIFIED="1521783351104" TEXT="CPP-Reference"/>
</node>
<node CREATED="1521779409601" ID="ID_1607777448" MODIFIED="1525124215504" TEXT="fences vs. barriers vs ordering constraints">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das sind verschiedene Blickwinkel auf das gleiche Thema
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
<node CREATED="1521779467554" ID="ID_257299836" MODIFIED="1521779468925" TEXT="fence">
<node CREATED="1521779469969" ID="ID_178160333" MODIFIED="1521779473476" TEXT="total-global"/>
<node CREATED="1521779489966" ID="ID_113452488" MODIFIED="1521779500040" TEXT="das ganze System sieht alle &#xc4;nderungen"/>
<node CREATED="1521779502213" ID="ID_503013735" MODIFIED="1521779525101" TEXT="Keine Umordnung durch Compiler oder CPU"/>
</node>
<node CREATED="1521779532728" ID="ID_263784335" MODIFIED="1521779534459" TEXT="barrier">
<node CREATED="1521779535264" ID="ID_1004323525" MODIFIED="1521779541691" TEXT="bestimmte Umordnungen werden verboten"/>
<node CREATED="1521779542351" ID="ID_219555790" MODIFIED="1521780205692" TEXT="vier Typen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Bedeutung dieser Schreibweise:
</p>
<ul>
<li>
der erste Zugriff liegt vor der Barriere, der zweite danach
</li>
<li>
die Barriere garantiert jeweils nur, da&#223; der zweitgenannte Zugriff nicht vor den erstgenannten verschoben werden kann
</li>
</ul>
</body>
</html></richcontent>
<node CREATED="1521779549150" ID="ID_754401646" MODIFIED="1521779560424" TEXT="ReadRead"/>
<node CREATED="1521779561540" ID="ID_177816200" MODIFIED="1521779564336" TEXT="ReadWrite"/>
<node CREATED="1521779565188" ID="ID_1059751946" MODIFIED="1521779570999" TEXT="WriteWrite"/>
<node CREATED="1521779572470" ID="ID_853931655" MODIFIED="1521779576702" TEXT="WriteRead"/>
</node>
<node CREATED="1521779611813" ID="ID_1803991638" MODIFIED="1521779620277" TEXT="Vorsicht">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1521779621764" ID="ID_818642871" MODIFIED="1521779630422" TEXT="garantiert keine Atomizit&#xe4;t"/>
<node CREATED="1521779631386" ID="ID_548078416" MODIFIED="1521779642021" TEXT="garantiert keine data-dependency consistency"/>
</node>
</node>
<node CREATED="1521779647000" ID="ID_641325372" MODIFIED="1521779651836" TEXT="constraints">
<node CREATED="1521779654007" ID="ID_1897577946" MODIFIED="1521779668209" TEXT="werden an eine (meist atomare) Guard-Variable gebunden"/>
<node CREATED="1521779776975" ID="ID_594964930" MODIFIED="1521779831563" TEXT="erzeugen Relation f&#xfc;r Zugriffe auf Payload">
<node CREATED="1521779923346" ID="ID_725815164" MODIFIED="1521779936380" TEXT="geregelt wird Sichtbarkeit von &#xc4;nderungen"/>
<node CREATED="1521779943743" ID="ID_433064665" MODIFIED="1521779963241" TEXT="Payload == bestimmte nicht-atomare Variablen"/>
<node CREATED="1521779978451" ID="ID_459766743" MODIFIED="1521779988549" TEXT="welche?">
<node CREATED="1521779990345" ID="ID_6762933" MODIFIED="1521779995036" TEXT="normalerweise &quot;alle&quot;"/>
<node CREATED="1521779996480" ID="ID_1211879916" MODIFIED="1521780022216" TEXT="f&#xfc;r &quot;consume&quot;-Semantik aber nur solche mit data-dependency"/>
</node>
<node CREATED="1521780026668" ID="ID_1047639499" MODIFIED="1521780044109" TEXT="Zusammenhang wird durch Nutzungspattern hergestellt">
<node CREATED="1521780047969" ID="ID_1812009696" MODIFIED="1521780057251" TEXT="Zugriff/Mutation nur..."/>
<node CREATED="1521780057775" ID="ID_216370648" MODIFIED="1521780074977" TEXT="wenn Signaliisierung via Guard sichtbar wird"/>
<node CREATED="1521780076253" ID="ID_708835482" MODIFIED="1521780116390">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
eine <i>Solche</i>&#160;konstituiert die synchronizes-with-Beziehuung
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1521779841462" ID="ID_1131913901" MODIFIED="1521779896124">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Grundbeziehung</b>: synchronizes-with
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1521780332842" ID="ID_968730029" MODIFIED="1521780339536" TEXT="Mutex">
<icon BUILTIN="idea"/>
<node CREATED="1521780355015" ID="ID_1565927718" MODIFIED="1521780366841" TEXT="erzeugt einen vollen Fence auf beiden Seiten"/>
<node CREATED="1521780375364" ID="ID_816580184" MODIFIED="1521780391453" TEXT="d.h. am Eingang und Ausgang gelten alle vier barriers"/>
<node CREATED="1521780411423" ID="ID_1904243826" MODIFIED="1521780423585" TEXT="das impliziert auch Atomizit&#xe4;t"/>
<node CREATED="1521780424149" ID="ID_1787016583" MODIFIED="1521780430670" TEXT="aber">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1521780432156" ID="ID_583365135" MODIFIED="1521780487933">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das gilt nur im Rahmen der <b>synchronizes-with</b>-Beziehung
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521780488708" ID="ID_945270217" MODIFIED="1521780517520">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, nur f&#252;r einen <b>vom gleichen Mutex gesch&#252;tzen</b>&#160; Bereich!
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521782262223" HGAP="30" ID="ID_1323377815" MODIFIED="1521782807539" TEXT="Typisches Gegenbeispiel: Double Checked Locking" VSHIFT="18">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
In der <i>naiven Implementierung</i>&#160;greift der pr&#252;fende Thread auf die instance-Variable
</p>
<p>
<i>ohne jedwede Beziehung</i>&#160;zum anderen Thread zu; er verwendet keinen Mutex und keinen Atomic.
</p>
<p>
Und genau deshalb kann er das Setzen des Instanz-Pointers sehen, ohne da&#223; eine
</p>
<p>
Ordnungsbeziehung zur der restlichen Initialisierung oder lazy computation besteht.
</p>
<p>
</p>
<p>
Fix: die Beziehung herstellen. Das ist verursacht stets zus&#228;tzliche Kosten.
</p>
<p>
</p>
<p>
Allerdinsg nicht auf einer Plattform, die ohnehin sequentiell-konsistent ist. Wie &quot;zum Beispiel&quot; x86/64
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1521791354104" HGAP="-1" ID="ID_287671137" MODIFIED="1521791364604" TEXT="grunds&#xe4;tzlich...." VSHIFT="7">
<node CREATED="1521791365590" ID="ID_1571110438" MODIFIED="1521791379580">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
...haben wir es hier mit einem <b>Pattern</b>&#160;zu tun
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521791417311" ID="ID_668833788" MODIFIED="1521791528549">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
ich nenne es &quot;<b>synchronised visibility cones</b>&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1521791441996" ID="ID_656786136" MODIFIED="1521791513129">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Dieses errichtet die Fiktion,
</p>
<p>
als w&#252;rden wir nur auf einer gemeinsamen (shared) Instanz arbeiten.
</p>
<p>
In Realit&#228;t arbeiten mehrere Threads/Cores mit mehreren Entit&#228;ten
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1521791567491" ID="ID_328701027" MODIFIED="1521791613112" TEXT="Code mu&#xdf; das Bestehen der Beziehung aktiv pr&#xfc;fen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und andernfalls &#252;berhaupt vermeiden,
</p>
<p>
die shared zone anzufassen!
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1491098340549" ID="ID_938211341" MODIFIED="1557498707240" TEXT="Toolchain">
<node CREATED="1491098346053" ID="ID_1333373693" MODIFIED="1557498707240" TEXT="Doxygen">
<node CREATED="1491098370281" ID="ID_1904535196" MODIFIED="1557498707240" TEXT="Konfig"/>
<node CREATED="1491098373816" ID="ID_1022990703" MODIFIED="1557498707240" TEXT="Fallen">
<node CREATED="1491099064125" ID="ID_651937703" MODIFIED="1557498707240" TEXT="Dateien ohne @file werden nicht dokumentiert"/>
<node CREATED="1491099088362" ID="ID_1507484869" MODIFIED="1557498707240" TEXT="Template-Parameter in Klassennamen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn eine getemplatete Klasse zum Qualifizieren eines Feldes verwendet wird,
</p>
<p>
dann m&#252;ssen die formalen Template-Parameter in spitzen Klammern mit angegeben werden.
</p>
<p>
D.h. Doxygen ist hier genauso penibel wie C++ selber
</p>
<p>
</p>
<p>
Beispiel
</p>
<p>
Query&lt;RES&gt;::resolveBy
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1491099311253" ID="ID_307124479" MODIFIED="1557498707240">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
@param hat <b>stets</b>&#160;einen Parameternamen als Argument
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...der ist <i>nicht</i>&#160;optional
</p>
<p>
vielmehr wird blindlings immer das erste Wort genommen.
</p>
<p>
Wenn der Parameter selber nicht benannt ist (z.B. pure virtual function),
</p>
<p>
kann man ersatzweise einfach einen Typnamen angeben.
</p>
<p>
Sofern alle Parameter dokumentiert sind, klappt das.
</p>
<p>
sonst kommt Doxygen durcheinander
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1491098382888" ID="ID_1568153886" MODIFIED="1557498707240" TEXT="Probleme">
<node CREATED="1491098385823" ID="ID_801230289" MODIFIED="1557498707240" TEXT="Auto-Links">
<node CREATED="1491098393405" ID="ID_1408589913" MODIFIED="1557498707240" TEXT="funktionieren in vielen F&#xe4;llen nicht"/>
<node CREATED="1491098402197" ID="ID_1572559975" MODIFIED="1557498707240" TEXT="Verdacht: mu&#xdf; Namespaces qualifizieren?"/>
<node CREATED="1491098427785" ID="ID_719835617" MODIFIED="1557498707240" TEXT="Beispiel: alle Unit-Tests">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....haben in ihrem @file-Kommentar
</p>
<p>
einen Verweis \ref DieserUnit_test
</p>
<p>
Und obwohl das der exakte Klassennahme ist,
</p>
<p>
und obwohl genau diese Klasse im Klassenindex zu finden ist
</p>
<p>
wird hier kein Link erzeugt
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1491098487889" ID="ID_1401713015" MODIFIED="1557498707240" TEXT="Sqlite-Support">
<node CREATED="1491098494497" ID="ID_1565133197" MODIFIED="1557498707241" TEXT="ist wohl noch sehr vorl&#xe4;ufig"/>
<node CREATED="1491098499712" ID="ID_1643743799" MODIFIED="1557498707241" TEXT="wenn eine Sqlite-DB gefunden wird...."/>
<node CREATED="1491098515845" ID="ID_1313255620" MODIFIED="1557498707241" TEXT="produziert er jede Menge Constraint-Verletzungen"/>
<node CREATED="1491098525396" ID="ID_1962242264" MODIFIED="1557498707241" TEXT="Tip: Sqlite-DB wegl&#xf6;schen!!!"/>
</node>
</node>
</node>
<node CREATED="1538838573613" ID="ID_1610361741" MODIFIED="1557498707241" TEXT="Graphic">
<node CREATED="1538838576956" ID="ID_1174319279" MODIFIED="1557498707241" TEXT="SVG-Icons">
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1557498707241" TEXT="Anleitung">
<linktarget COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-459;-144;" ID="Arrow_ID_421953450" SOURCE="ID_1898190659" STARTARROW="None" STARTINCLINATION="-861;94;"/>
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1557498707241" TEXT="SVG in data/icons/svg"/>
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1557498707241" TEXT="Dokument-Gr&#xf6;&#xdf;e anscheinend egal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wird zwar vom Skript ausgelesen,
</p>
<p>
aber nicht weiterverwendet.
</p>
<p>
Die Icon-Gr&#246;&#223;en ergeben sich aus den Boxes auf 'plate'
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1557498707241" TEXT="braucht &apos;artwork:&apos;-Layer"/>
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1557498707241" TEXT="braucht Sub-Layer &apos;plate&apos;">
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1557498707241" TEXT="dort bounding-boxes"/>
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1557498707241" TEXT="deren Gr&#xf6;&#xdf;e in PX ist die Icon-Gr&#xf6;&#xdf;e"/>
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1557498707241" TEXT="brauche 16, 22, 32"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1437693678626" HGAP="117" ID="ID_1536988357" MODIFIED="1557498707241" POSITION="left" TEXT="Doku" VSHIFT="-47">
<node CREATED="1437693687650" ID="ID_1484874437" MODIFIED="1557498707241" TEXT="Sound-Systeme">
<node CREATED="1437693693617" ID="ID_955932218" LINK="https://wiki.debian.org/Sound" MODIFIED="1557498707241" TEXT="siehe die Debian-&#xdc;bersichtsseite">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...im Besonderen die guten Diagramme f&#252;r Pulse, ALSA und Jack
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522933281517" HGAP="79" ID="ID_1743316782" MODIFIED="1557498707241" POSITION="left" TEXT="Entwicklung" VSHIFT="-6">
<edge COLOR="#9e7171" STYLE="linear"/>
<font NAME="SansSerif" SIZE="16"/>
<node CREATED="1522933436743" ID="ID_669941386" MODIFIED="1557498707241" TEXT="Architektur">
<node CREATED="1522933471266" ID="ID_1652255203" MODIFIED="1557498707241" TEXT="GUI">
<node COLOR="#435e98" CREATED="1522933474914" FOLDED="true" ID="ID_1612113311" MODIFIED="1561238415968" TEXT="Backbone">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1522934000737" ID="ID_1881825617" MODIFIED="1557498707241" TEXT="brauche top-Level">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1561238405397" ID="ID_1386160088" MODIFIED="1561238413453" TEXT="verbesserte Dependency-Injection">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1522934018175" ID="ID_463339540" MODIFIED="1561238164819" TEXT="mu&#xdf; Komponente allozieren k&#xf6;nnen">
<linktarget COLOR="#34a79a" DESTINATION="ID_463339540" ENDARROW="Default" ENDINCLINATION="355;0;" ID="Arrow_ID_636625875" SOURCE="ID_34008801" STARTARROW="None" STARTINCLINATION="55;1;"/>
<icon BUILTIN="hourglass"/>
<node COLOR="#435e98" CREATED="1561238166116" ID="ID_1440602260" MODIFIED="1561238254089" TEXT="neues m&#xe4;chtiges Framework hierf&#xfc;r angelegt">
<node COLOR="#338800" CREATED="1561238195872" ID="ID_403413272" MODIFIED="1561238208076" TEXT="UI-Koordinaten">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1561238199759" ID="ID_1160624360" MODIFIED="1561238207378" TEXT="ein Resolver-Mechanismus">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561238209064" ID="ID_470273768" MODIFIED="1561238232000" TEXT="TODO: Implementierung auf real-existierendem GUI">
<icon BUILTIN="hourglass"/>
<node CREATED="1561238233366" ID="ID_947719044" MODIFIED="1561238242701" TEXT="es existiert noch nicht real">
<icon BUILTIN="smily_bad"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1561238181398" ID="ID_796742878" MODIFIED="1561238255857" TEXT="vorl&#xe4;ufige Abk&#xfc;rzungs-L&#xf6;sung bereitgestellt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522933478066" ID="ID_533257050" MODIFIED="1561238327215" TEXT="Timeline">
<icon BUILTIN="back"/>
<node COLOR="#8e0099" CREATED="1522934041940" ID="ID_706725110" MODIFIED="1561238284015" TEXT="ist kamputt">
<icon BUILTIN="smiley-angry"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1522934923858" ID="ID_369497864" MODIFIED="1561238291010" TEXT="braucht bessere Architektur">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561238293019" ID="ID_567481580" MODIFIED="1561238368727" TEXT="Komplette Reimplementierung in Arbeit">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_567481580" ENDARROW="Default" ENDINCLINATION="400;0;" ID="Arrow_ID_1010232773" SOURCE="ID_1016002524" STARTARROW="None" STARTINCLINATION="172;-4;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1561238424279" HGAP="63" ID="ID_705841731" MODIFIED="1561238454616" TEXT="hier spielt die Musik" VSHIFT="-23">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="knotify"/>
</node>
</node>
</node>
</node>
<node CREATED="1522933489912" ID="ID_909250916" MODIFIED="1557498707241" TEXT="Session">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522934151421" ID="ID_580296278" MODIFIED="1557498707241" TEXT="Element-Erzeugung implementieren">
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1522934106715" ID="ID_1908249834" MODIFIED="1557498707241" TEXT="Placement-Logik implementieren">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1522933496807" ID="ID_30713901" MODIFIED="1557498707241" TEXT="Builder">
<node CREATED="1522934179425" ID="ID_1599594477" MODIFIED="1557498707241" TEXT="keine Ahnung was der machen soll">
<icon BUILTIN="smily_bad"/>
</node>
</node>
<node CREATED="1522933500430" ID="ID_1555205420" MODIFIED="1557498707241" TEXT="Player">
<node CREATED="1522934197478" ID="ID_237029868" MODIFIED="1557498707241" TEXT="wartet auf Scheduler">
<icon BUILTIN="hourglass"/>
</node>
</node>
<node CREATED="1522933505078" ID="ID_1376308250" MODIFIED="1557498707241" TEXT="Engine">
<node CREATED="1522934210324" ID="ID_254801901" MODIFIED="1557498707241" TEXT="wartet auf Fixture/Backbone">
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node CREATED="1522933444542" ID="ID_1027224176" MODIFIED="1557498707241" TEXT="Themen">
<node CREATED="1522933640027" ID="ID_191198072" MODIFIED="1557498707241" TEXT="UI-Connection">
<icon BUILTIN="full-1"/>
<node CREATED="1522933746716" ID="ID_504819861" MODIFIED="1557498707241" TEXT="Dummy-Connection">
<node COLOR="#338800" CREATED="1522933752939" FOLDED="true" ID="ID_58888775" MODIFIED="1561238386898" TEXT="DemoGuiRoundtrip">
<icon BUILTIN="button_ok"/>
<node CREATED="1522933935346" ID="ID_1197314745" MODIFIED="1557498707241" TEXT="Knopf sendet Signale"/>
<node CREATED="1522933947737" ID="ID_59789786" MODIFIED="1557498707241" TEXT="diese werden zu Commands"/>
<node CREATED="1522933955463" ID="ID_212135952" MODIFIED="1557498707241" TEXT="diese werden in Proc ausgef&#xfc;hrt"/>
<node CREATED="1522933964302" ID="ID_504912590" MODIFIED="1557498707241" TEXT="und senden Meldungen zur&#xfc;ck"/>
<node CREATED="1522933973965" ID="ID_34008801" MODIFIED="1561238382143" TEXT="...in das Benachrichtigungsfenster">
<arrowlink COLOR="#34a79a" DESTINATION="ID_463339540" ENDARROW="Default" ENDINCLINATION="355;0;" ID="Arrow_ID_636625875" STARTARROW="None" STARTINCLINATION="55;1;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522933859797" ID="ID_1381384508" MODIFIED="1561238114886" TEXT="Dummy-Population">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1522933880242" ID="ID_1851602883" MODIFIED="1561238124538" TEXT="automatisch beim Start">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522933886401" ID="ID_1546164262" MODIFIED="1561238122259" TEXT="Pseudo-Session-Inhalte erfinden">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522933899951" ID="ID_1191671954" MODIFIED="1561238123293" TEXT="in das UI hochschieben">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1522933913837" ID="ID_1879142349" MODIFIED="1557498707241" TEXT="Ziel: man sieht was">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1561238128126" ID="ID_1016002524" MODIFIED="1561238368727" TEXT="wir arbeiten daran">
<arrowlink DESTINATION="ID_567481580" ENDARROW="Default" ENDINCLINATION="400;0;" ID="Arrow_ID_1010232773" STARTARROW="None" STARTINCLINATION="172;-4;"/>
<icon BUILTIN="smiley-oh"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1561238485225" ID="ID_1044507535" MODIFIED="1561238501604" TEXT="treibt die Entwicklung voran">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1522933624861" ID="ID_1008186406" MODIFIED="1557498707241" TEXT="Timeline-Widget">
<icon BUILTIN="full-2"/>
</node>
<node CREATED="1522933545616" ID="ID_193999125" MODIFIED="1557498707241" TEXT="Fixture">
<icon BUILTIN="full-3"/>
</node>
<node CREATED="1522933565157" ID="ID_651020600" MODIFIED="1557498707241" TEXT="Render-Jobs">
<icon BUILTIN="full-4"/>
</node>
<node CREATED="1522933604296" ID="ID_596148799" MODIFIED="1557498707241" TEXT="Node-Invocation">
<icon BUILTIN="full-5"/>
</node>
<node CREATED="1522933577884" ID="ID_1298252635" MODIFIED="1557498707241" TEXT="Frame-Dispatch">
<icon BUILTIN="full-6"/>
</node>
</node>
</node>
<node CREATED="1439176872457" HGAP="15" ID="ID_355008543" MODIFIED="1557498707241" POSITION="left" TEXT="Plattform" VSHIFT="41">
<icon BUILTIN="go"/>
<node CREATED="1439176875682" HGAP="47" ID="ID_1487331591" MODIFIED="1557498707241" TEXT="Debian/Jessie" VSHIFT="60">
<icon BUILTIN="button_ok"/>
<node CREATED="1439176890840" FOLDED="true" ID="ID_170863947" MODIFIED="1561237091609" TEXT="Probleme">
<icon BUILTIN="button_ok"/>
<node CREATED="1439176900293" ID="ID_949460307" MODIFIED="1557498707241" TEXT="Linker rpath $ORIGIN">
<icon BUILTIN="button_ok"/>
<node CREATED="1439593020264" ID="ID_356536017" LINK="https://sourceware.org/bugzilla/show_bug.cgi?id=16936" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bekannter Bug <b>binutils</b>&#160;<font color="#c72011">#16936</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439593578558" ID="ID_1155824773" LINK="http://issues.lumiera.org/ticket/965" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Lumiera-Ticket <font color="#90011d">#965</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439593646645" ID="ID_917747701" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
gel&#246;st in&#160;<font color="#4c1383">4e8e63ebe</font>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...man &quot;hilft&quot; dem Linker mit
</p>
<p style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px">
&quot;-Wl,-rpath-link=target/modules&quot;
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1439176912636" ID="ID_584884488" MODIFIED="1561237078734" TEXT="failed tests">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
laufen wieder alle
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1439176982698" HGAP="59" ID="ID_1330966528" MODIFIED="1557498707241" TEXT="Beobachtung: Meldungen im journal" VSHIFT="2"/>
<node CREATED="1439176948063" HGAP="54" ID="ID_1726494484" MODIFIED="1557498707241" TEXT="5 Thread/Parallel" VSHIFT="1">
<node CREATED="1439566266701" ID="ID_1280061419" MODIFIED="1557498707241" TEXT="h&#xe4;ngt mit ulimit zusammen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1439566274091" ID="ID_1628790738" MODIFIED="1557498707241" TEXT="ohne ulimit gehts">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
test.sh Zeile 138
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439566868460" ID="ID_620984495" MODIFIED="1557498707241" TEXT="Untersuchung">
<node CREATED="1439566872203" ID="ID_1734454643" MODIFIED="1557498707241" TEXT="ulimit -T funktioniert nicht">
<node CREATED="1439566882418" ID="ID_410204401" MODIFIED="1557498707241" TEXT="bekanntes Problem"/>
<node CREATED="1439566886513" ID="ID_1412848120" LINK="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724461" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Debian-Bug <font color="#9b0226">#724461</font>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1439588367804" ID="ID_1494433818" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
nebenbei <i>ohweh:</i>
</p>
<p>
ulimit -t 1 ist wirkungslos
</p>
</body>
</html></richcontent>
<node CREATED="1439592731687" ID="ID_715556229" MODIFIED="1557498707241">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Christian:&#160;&#160;bash -c &quot;ulimit -t 1; while :; do :; done&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439592774041" ID="ID_1603492676" MODIFIED="1557498707242" TEXT="ist reine CPU-Zeit">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
und wir verbringen unsere Zeit mit contention
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
</node>
<node CREATED="1439176927657" ID="ID_453561058" MODIFIED="1557498707242" TEXT="EntryID">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ist klar, hab ich gebrochen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1439608908133" ID="ID_1023076054" MODIFIED="1557498707242" TEXT="Problem mit der Hash-Funktion"/>
<node CREATED="1439609043316" ID="ID_1585741290" MODIFIED="1557498707242" TEXT="hatte ich schon mal untersucht"/>
<node CREATED="1439608917061" ID="ID_1631109794" LINK="http://issues.lumiera.org/ticket/587" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
siehe Ticket <font color="#991130">#587</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439609055443" ID="ID_325526736" MODIFIED="1557498707242" TEXT="Problem hat sich versch&#xe4;rft">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Kollisionen jetzt bereits nach 4000 lfd. Nummern
</p>
<p>
Vorher hatte ich erste Kollisionen nach 25000 Nummern
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439609098853" ID="ID_1076015737" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
erinnere mich an den
</p>
<p>
guten alten &quot;Knuth-Trick&quot;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439609127137" ID="ID_509487220" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wow: es gen&#252;gt,
</p>
<p>
die letzten beiden Zeichen mit der Knuth-Konstante zu spreizen,
</p>
<p>
und ich komme locker auf 100000 Nummern ohne Kollision
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1439176963604" ID="ID_582047980" MODIFIED="1561237061397" TEXT="test-lib nicht zu debuggern">
<icon BUILTIN="button_ok"/>
<node CREATED="1439177141197" FOLDED="true" ID="ID_140380975" MODIFIED="1561237041546" TEXT="Segfault in GDB">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Aug 10 04:51:39 flaucher kernel: gdb[8234]: segfault at 7ffe3fa79f50 ip 0000000000718b95 sp 00007ffe3fa79f40 error 6 in gdb[400000+574000]
</p>
<p>
Aug 10 04:51:39 flaucher kernel: traps: test-suite[8249] trap int3 ip:7ffff7deb241 sp:7fffffffe5c8 error:0
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1439477348298" ID="ID_1975408018" MODIFIED="1557498707242" TEXT="heruntergedampft auf einen Aufruf">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1439491824537" ID="ID_1765691004" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
function gebunden an ein lambda
</p>
<p>
wobei ein Argument-Typ als vom Template-Argument
</p>
<p>
der umschlie&#223;enden Funktion aufgegriffen wird
</p>
</body>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
<node CREATED="1439492258423" ID="ID_1751368693" MODIFIED="1557498707242" TEXT="Plan">
<node CREATED="1439492266470" ID="ID_730637506" MODIFIED="1557498707242" TEXT="reproduzieren auf einer sauberen VM">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1439492277444" ID="ID_840779753" LINK="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=795445" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Bugreport f&#252;r Debian/Jessie <font color="#e02f0a">#795445</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439492285635" ID="ID_1706807629" MODIFIED="1557498707242" TEXT="gdb-Version untersuchen">
<node CREATED="1439516472396" ID="ID_1002859575" MODIFIED="1557498707242" TEXT="backports">
<node CREATED="1439516512684" ID="ID_1031030614" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Git: debBild/<b>Gdb_DEB.git</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1439516477008" ID="ID_1182795741" MODIFIED="1557498707242" TEXT="Ver 7.8.2">
<icon BUILTIN="button_ok"/>
<node CREATED="1439516495534" ID="ID_413946117" MODIFIED="1557498707242" TEXT="Bau-Abh&#xe4;ngigkeiten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
bison dejagnu flex gobjc libncurses5-dev libreadline-dev liblzma-dev libbabeltrace-dev libbabeltrace-ctf-dev python3-dev
</p>
</body>
</html></richcontent>
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1439519150614" ID="ID_644868114" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>dutzende</i>&#160;Tests scheitern
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1439519171155" ID="ID_509605117" MODIFIED="1557498707242" TEXT="das scheint nicht ungew&#xf6;hnlich zu sein">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
verr&#228;terrischer Code im debian/rules
</p>
<p>
check-stamp:
</p>
<p>
ifeq ($(run_tests),yes)
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;$(MAKE) $(NJOBS) -C $(DEB_BUILDDIR)/gdb check \
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;|| echo &quot;**Tests failed, of course.**&quot;
</p>
<p>
endif
</p>
<p>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;touch $@
</p>
<p>
</p>
<p>
<b>au weia</b>&#160;LEUTE!
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#f7f2b7" CREATED="1439521655505" ID="ID_746337758" MODIFIED="1561237018921" TEXT="funktioniert, kein Segfault mehr">
<linktarget COLOR="#64c53d" DESTINATION="ID_746337758" ENDARROW="Default" ENDINCLINATION="-80;156;" ID="Arrow_ID_856102300" SOURCE="ID_1500720502" STARTARROW="None" STARTINCLINATION="404;0;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1439492295754" ID="ID_199817664" MODIFIED="1557498707242" TEXT="ggfs. upstream reporten"/>
<node CREATED="1439492301698" ID="ID_1431884134" MODIFIED="1557498707242" TEXT="workaround">
<node CREATED="1439492309920" ID="ID_1258344281" MODIFIED="1557498707242" TEXT="andere gdb-version">
<icon BUILTIN="help"/>
</node>
<node CREATED="1439492315080" ID="ID_45132365" MODIFIED="1557498707242" TEXT="clang verwenden">
<icon BUILTIN="help"/>
</node>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1561237001239" ID="ID_1500720502" MODIFIED="1561237037464" TEXT="gel&#xf6;st mit gdb &gt;= 7.8.2">
<arrowlink COLOR="#64c53d" DESTINATION="ID_746337758" ENDARROW="Default" ENDINCLINATION="-80;156;" ID="Arrow_ID_856102300" STARTARROW="None" STARTINCLINATION="404;0;"/>
</node>
</node>
<node CREATED="1439177191998" ID="ID_1188941582" MODIFIED="1557498707242" TEXT="Syslog nicht mehr STDOUT">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1439655684119" ID="ID_1194655899" MODIFIED="1557498707242" TEXT="Warnungen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
speziell: unused-function bei dem Trick mit dem std::hash macht mir Sorgen.
</p>
<p>
</p>
<p>
und tats&#228;chlich: das <i>ist</i>&#160;daneben, GCC hat Recht!
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1439644339480" ID="ID_239239923" MODIFIED="1557498707242" TEXT="Lumiera DEB">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aktualisieren und neu bauen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1439644368572" ID="ID_106785551" MODIFIED="1557498707242" TEXT="Doku: Referenz-System">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446505444775" HGAP="106" ID="ID_721807850" MODIFIED="1557498707242" TEXT="Buildsystem" VSHIFT="-5">
<node CREATED="1446505367113" ID="ID_335245102" LINK="http://issues.lumiera.org/ticket/971" MODIFIED="1557498707242">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
standard hardening-flags setzen <font color="#ba015b">#971</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1446509415481" ID="ID_180589749" MODIFIED="1557498707242" TEXT="Versionen hochsetzen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
w&#228;hle Kompatibilt&#228;t genau so, da&#223; Ubuntu-Trusty noch unterst&#252;tzt wird.
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1446509422423" ID="ID_1328716100" MODIFIED="1557498707242" TEXT="gtkmm-3.0 3.10">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446509430758" ID="ID_371171235" MODIFIED="1557498707242" TEXT="glibmm-2.4 2.39">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446509601271" ID="ID_1477664506" MODIFIED="1557498707242" TEXT="libglib2.0 2.40">
<icon BUILTIN="button_ok"/>
<node CREATED="1446510347931" ID="ID_559552800" MODIFIED="1557498707242" TEXT="direkten Check hierf&#xfc;r"/>
<node CREATED="1446510354914" ID="ID_1787485177" MODIFIED="1557498707242" TEXT="check f&#xfc;r gthread fraglich"/>
</node>
<node CREATED="1446509752707" ID="ID_1392554051" MODIFIED="1557498707242" TEXT="libgdl-3-dev 3.12">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446509983556" ID="ID_366391443" MODIFIED="1557498707242" TEXT="libcairomm-1.0-dev 1.10">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446510475202" ID="ID_514495017" MODIFIED="1557498707242" TEXT="librsvg2-dev 2.30">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446511275302" ID="ID_359693763" MODIFIED="1557498707242" TEXT="libgavl-dev 1.4">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446510776857" ID="ID_674774779" MODIFIED="1557498707242" TEXT="Kommentar: librt geh&#xf6;rt zu libc 6">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446511125266" ID="ID_1198662071" MODIFIED="1557498707242" TEXT="Kommentar zu xv, x11 und xext : TODO videodisplayer obsolet?">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1544239177727" FOLDED="true" HGAP="90" ID="ID_1414932362" MODIFIED="1557498707242" TEXT="Probleme..." VSHIFT="3">
<icon BUILTIN="go"/>
<node COLOR="#338800" CREATED="1544239202589" ID="ID_1398808684" MODIFIED="1544310874478" TEXT="an neue Layer-Struktur anpassen">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1544239214321" FOLDED="true" ID="ID_953169553" MODIFIED="1544310839749" TEXT="CSS wird in &apos;stage&apos;-Ordner installiert">
<icon BUILTIN="button_ok"/>
<node CREATED="1544239226829" ID="ID_82474485" MODIFIED="1544239233820" TEXT="ist eigentlich logisch"/>
<node CREATED="1544239234333" ID="ID_1530961275" MODIFIED="1544239247659" TEXT="eine Folge meiner Inkonsequenz">
<node CREATED="1544239248527" ID="ID_1536715197" MODIFIED="1544239262200" TEXT="ich wollte den &apos;gui&apos; Ordner in target beibehalten"/>
<node CREATED="1544239262932" ID="ID_1612950753" MODIFIED="1544239312279" TEXT="aber GuiResource installiert src -&gt; target">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
env.GuiResource(f) for f in env.Glob('stage/*.css')
</p>
</body>
</html></richcontent>
</node>
</node>
<node COLOR="#338800" CREATED="1544239314129" ID="ID_1316699242" MODIFIED="1544310685527" TEXT="L&#xf6;sungen...">
<icon BUILTIN="button_ok"/>
<node CREATED="1544239328169" ID="ID_1734838035" MODIFIED="1544310744532" TEXT="CSS in data-Ordner umziehen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1544310696005" ID="ID_1736290153" MODIFIED="1544310717171" TEXT="bliebe l&#xe4;ngerfristig eine Option">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
wenn ich doch mal noch komplexere B&#228;ume transportieren mu&#223;
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544310717868" ID="ID_1020173356" MODIFIED="1544310740018" TEXT="gef&#xe4;llt mir aber nicht">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
ich mag code-nahe Resourcen lieber beim Code selber
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-neutral"/>
</node>
</node>
<node CREATED="1544288541443" ID="ID_729362244" MODIFIED="1544310825247" TEXT="root der GUI-Ressourcen einen level tiefer legen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1544288579625" ID="ID_1342094420" MODIFIED="1544288601884" TEXT="d.h., wir behandeln nun GUI-Resourcen explizit"/>
<node CREATED="1544288602331" ID="ID_293063721" MODIFIED="1544288615109" TEXT="bisher war das Konzept &quot;Resource&quot; Applikations-global">
<node CREATED="1544310441186" ID="ID_1121330542" MODIFIED="1544310446333" TEXT="naja.... nicht wirklich"/>
<node CREATED="1544310446895" ID="ID_1245766637" MODIFIED="1544310531289" TEXT="das war nur die Absicht gewesen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
aber bei der Implementierung hab' ich dann Pragmatismus walten lassen
</p>
<ul>
<li>
&#160;Stichwort: getDirname()
</li>
<li>
effektiv ist das nur eine Ebene tief gestaffelt
</li>
<li>
alles darunter w&#228;re in ein Verzeichnis gekippt worden
</li>
</ul>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1544310749304" ID="ID_1607480762" MODIFIED="1544310785609" TEXT="geht auch nicht ohne weiteres....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
</p>
<p>
weil dann die Builder-Funktion die Quelle nicht mehr findet :-P
</p>
<p>
Dann
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544310787003" ID="ID_775636634" MODIFIED="1544310821317" TEXT="l&#xe4;uft schlie&#xdf;lich darauf hinaus, die Builder-Funktion selber anzupassen">
<arrowlink COLOR="#386599" DESTINATION="ID_910836334" ENDARROW="Default" ENDINCLINATION="156;0;" ID="Arrow_ID_1032149588" STARTARROW="None" STARTINCLINATION="89;0;"/>
</node>
</node>
<node CREATED="1544310537285" ID="ID_799797239" MODIFIED="1544310831740" TEXT="GuiResourcen aufsammeln und in ein Verzeichnis kippen">
<icon BUILTIN="back"/>
<node CREATED="1544310560595" ID="ID_910836334" MODIFIED="1544310816900" TEXT="tats&#xe4;chlich wird die Funktion env.GuiResource() genau einmal verwendet">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
n&#228;mlich im src/SConscript, wenn es um das GUI geht
</p>
</body>
</html></richcontent>
<linktarget COLOR="#386599" DESTINATION="ID_910836334" ENDARROW="Default" ENDINCLINATION="156;0;" ID="Arrow_ID_1032149588" SOURCE="ID_775636634" STARTARROW="None" STARTINCLINATION="89;0;"/>
</node>
<node CREATED="1544310594077" ID="ID_1194673968" MODIFIED="1544310628882">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und sie war ohnehin schon so geschrieben worden, da&#223; das Endresultat <i>irgendwie pa&#223;t</i>
</p>
</body>
</html></richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
<node CREATED="1544310632504" ID="ID_1500688292" MODIFIED="1544310638741" TEXT="Fazit">
<node CREATED="1544310639631" ID="ID_1925161772" MODIFIED="1544310651177" TEXT="den Tanz mit dem root-Verzeichnis einfach weglassen"/>
<node CREATED="1544310651574" ID="ID_666502203" MODIFIED="1544310655937" TEXT="kein getDirname() mehr"/>
<node CREATED="1544310656429" ID="ID_1773784100" MODIFIED="1544310667072" TEXT="und stattdessen das Ziel direkt in Setup.py auscoden"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544239360927" ID="ID_1906746912" MODIFIED="1544239423084" TEXT="deckt Folgeproblem im GUI auf">
<arrowlink COLOR="#7f244b" DESTINATION="ID_626803835" ENDARROW="Default" ENDINCLINATION="193;-461;" ID="Arrow_ID_65546348" STARTARROW="None" STARTINCLINATION="421;19;"/>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
</node>
<node CREATED="1447566875500" HGAP="35" ID="ID_773580451" MODIFIED="1557498707242" TEXT="w&#xfc;nschenswert..." VSHIFT="16">
<icon BUILTIN="bell"/>
<node CREATED="1447566892252" ID="ID_649638170" MODIFIED="1557498707242" TEXT="generische Compiler-Schalter zur Diagnose loggen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...damit man auch im Paketbau-Build-Output wenigstens einmal <i>alle</i>&#160; generischen Platform-Schalter sieht
</p>
<p>
Ich meine also: zu Beginn vom Build sollte das Buildsystem einmal eine Infozeile ausgeben
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1447566892253" ID="ID_64485556" MODIFIED="1557498707242" TEXT="clean soll .sconf_temp und *.pyc mit wegr&#xe4;umen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...denn die st&#246;ren jeweils beim erzeugen eines Hotfix/Patch im Paketbau per dpkg --commit
</p>
</body>
</html></richcontent>
</node>
</node>
</node>
<node CREATED="1447978374453" HGAP="140" ID="ID_156552320" MODIFIED="1557498707242" TEXT="Compiler" VSHIFT="-10">
<icon BUILTIN="prepare"/>
<node CREATED="1447978472591" ID="ID_281213456" MODIFIED="1557498707243" TEXT="GCC-4.9">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1447978381986" FOLDED="true" ID="ID_378439500" MODIFIED="1561237738148" TEXT="GCC-5">
<icon BUILTIN="button_ok"/>
<node CREATED="1447983098958" ID="ID_291439119" MODIFIED="1557498707243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
deprecated: <b>auto_ptr</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1447990971420" ID="ID_1499023407" MODIFIED="1557498707243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Tests mit TypeIDs <font color="#ed0b08">scheitern</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1447983008594" ID="ID_8361302" MODIFIED="1561237521960" TEXT="L&#xf6;sung f&#xfc;r std::hash finden"/>
<node COLOR="#338800" CREATED="1561237626971" ID="ID_172542353" MODIFIED="1561237649112" TEXT="August 2018">
<icon BUILTIN="button_ok"/>
<node CREATED="1561237650841" ID="ID_749683072" MODIFIED="1561237661542" TEXT="Anpassungen und Umstellung"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561237662047" ID="ID_998640781" MODIFIED="1561237692524" TEXT="Achtung: std::string wird gr&#xf6;&#xdf;er">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Grund ist die Umstellung auf inline-Storage
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1561237693445" ID="ID_795236381" MODIFIED="1561237730770" TEXT="noch offen: Umstellung auf lib::Symbol in EntryID">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
w&#228;re theoretisch jetzt m&#246;glich,
</p>
<p>
da wir nun eine vollwertige String-Tabelle haben
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
<node CREATED="1561237793933" ID="ID_938708757" MODIFIED="1561237803527" TEXT="GCC-6">
<icon BUILTIN="back"/>
<node CREATED="1561237816056" ID="ID_584388122" MODIFIED="1561237823947" TEXT="Debian/Stretch">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1561237804916" ID="ID_392420321" MODIFIED="1561237815456" TEXT="gegenw&#xe4;rtig (2019) der Referenz-Compiler"/>
</node>
<node CREATED="1561237739453" ID="ID_894802950" MODIFIED="1561237784571" TEXT="GCC-7">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1561237754266" ID="ID_646410828" MODIFIED="1561237789149" TEXT="Herbst 2018">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
waren nur minimale Anpassungen
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561237831168" ID="ID_1760455064" MODIFIED="1561237839865" TEXT="Juni 2019">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561237841287" ID="ID_1588960225" MODIFIED="1561238702212" TEXT="Probleme mit libboost 1.65">
<arrowlink COLOR="#c64162" DESTINATION="ID_584004962" ENDARROW="Default" ENDINCLINATION="295;-171;" ID="Arrow_ID_1368108105" STARTARROW="None" STARTINCLINATION="247;0;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1447978388930" ID="ID_78828927" MODIFIED="1557498707243" TEXT="Clang 3.5">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446480582168" FOLDED="true" HGAP="46" ID="ID_554745278" MODIFIED="1561237383673" TEXT="Release" VSHIFT="-5">
<icon BUILTIN="go"/>
<node CREATED="1446480601381" ID="ID_1870415321" MODIFIED="1541088155542" TEXT="release prep: clean-up obsolete information">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Doku durchk&#228;mmen nach M&#252;ll
</p>
</body>
</html></richcontent>
<font NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="full-1"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1446482192807" ID="ID_852733328" MODIFIED="1541088155549" TEXT="Debian">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hier nach offensichtlich obsoleter Info checken
</p>
<p>
<font color="#d40222">WICHTIG</font>: keine vorgreifende Infor publizieren!!!!!
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446482445325" ID="ID_1134936512" MODIFIED="1541088155556" TEXT="Build-Tutorial">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
die explizit angegebenen Paketnamen schon mal vorchecken
</p>
<p>
die Abschnitte zu den LIbraries pr&#252;fen / umschreiben
</p>
<p>
insgesamt sorgf&#228;ltig durchlesen
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1446489425420" ID="ID_1155768637" MODIFIED="1518487921104" TEXT="building from source"/>
<node CREATED="1446489431443" ID="ID_1672115205" MODIFIED="1518487921104" TEXT="building the debian way"/>
<node CREATED="1446489436395" ID="ID_52990160" MODIFIED="1518487921104" TEXT="contributing"/>
</node>
<node CREATED="1446482485648" ID="ID_718218074" MODIFIED="1518487921104" TEXT="technical/build/Dependencies">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446480725508" ID="ID_789754974" MODIFIED="1541088155586" TEXT="release prep: bump version number">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
knappe Kennzeichnung des Releases in den Kommentar
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-2"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1446480787391" ID="ID_1824008353" MODIFIED="1518487921104" TEXT="admin/scons/Setup.py"/>
<node CREATED="1446480787392" ID="ID_1638555946" MODIFIED="1518487921104" TEXT="data/config/setup.ini"/>
<node CREATED="1446480787392" ID="ID_619067196" MODIFIED="1518487921104" TEXT="doc/devel/Doxyfile"/>
<node CREATED="1446480787392" ID="ID_193733835" MODIFIED="1518487921104" TEXT="doc/devel/Doxyfile.browse"/>
</node>
<node CREATED="1446481181543" ID="ID_1995398229" MODIFIED="1541088155615" TEXT="R&#xfc;ck-Merge vom Release-Zweig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
hier geht es darum, Konsistenz im Git herzustellen.
</p>
<p>
Wenn alles korrekt gemacht wurde, d&#252;rfte es hier keinen R&#252;ckflu&#223; von &#196;nderungen geben.
</p>
<p>
Bitte auch daran denken, zuerst den DEB-Zweig zu pr&#252;fen. Diesen aber nicht zur&#252;ckmergen,
</p>
<p>
denn wir wollen keine DEB-Info im Master haben!
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-3"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1446481302159" ID="ID_1330024662" MODIFIED="1518487921104" TEXT="Release-Zweig">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481305102" ID="ID_1191774545" MODIFIED="1518487921104" TEXT="lfd Fixes von den DEBs">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481314669" ID="ID_477388235" MODIFIED="1518487921104" TEXT="Plattform-Abh&#xe4;ngigkeiten checken">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446480963028" ID="ID_83763074" MODIFIED="1541088155639" TEXT="Release-commit: Pre-release 0.pre.03">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
einzeilige Kennzeichnung wiederholen
</p>
<p>
die unmittelbaren Release-Dokumente durchgehen
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-4"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1446481123991" ID="ID_1319204482" MODIFIED="1518487921104" TEXT="README"/>
<node CREATED="1446481126974" ID="ID_537666758" MODIFIED="1518487921104" TEXT="AUTHORS">
<node CREATED="1446481146548" ID="ID_1310945179" MODIFIED="1518487921104" TEXT="GTK-UI">
<icon BUILTIN="help"/>
</node>
<node CREATED="1446481155762" ID="ID_290411770" MODIFIED="1518487921104" TEXT="setup.ini">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1446481129206" ID="ID_799927356" MODIFIED="1518487921104" TEXT="LICENSE"/>
</node>
<node CREATED="1446481516578" ID="ID_552450474" MODIFIED="1541088155672" TEXT="Release-Zweig: upgrade current release to 0.pre.03">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Merge-commit auf den Release-Zweig.
</p>
<p>
Sollte konfliktfrei sein
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-5"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481591568" ID="ID_1120064498" MODIFIED="1518487921104" TEXT="Paketieren">
<icon BUILTIN="full-6"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1446481606134" ID="ID_212330450" MODIFIED="1518487921104" TEXT="Merge release -&gt; deb">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481618196" ID="ID_1882691551" MODIFIED="1518487921104" TEXT="Paket-Beschreibung">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481637738" ID="ID_1002196753" MODIFIED="1518487921104" TEXT="Manpages">
<icon BUILTIN="bell"/>
</node>
<node CREATED="1446481646057" ID="ID_262549512" MODIFIED="1518487921104" TEXT="control">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446481655743" ID="ID_269337100" MODIFIED="1518487921104" TEXT="rules">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446481713984" ID="ID_1112453089" MODIFIED="1541088155714" TEXT="ausliefern">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das hei&#223;t bauen und hochladen
</p>
</body>
</html></richcontent>
<icon BUILTIN="full-7"/>
<node CREATED="1447566826434" HGAP="0" ID="ID_808634666" MODIFIED="1518487921104" TEXT="Bugfix-Release 0.pre.03-2" VSHIFT="-1">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1447566826434" HGAP="4" ID="ID_1582615496" MODIFIED="1518487921104" TEXT="Bugfix-Release 0.pre.03-3" VSHIFT="-14">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1446482059174" ID="ID_1294670881" MODIFIED="1518487921104">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b>Referenz</b>: Debian/Jessie (stable) : i386 and x86_64
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1447566711958" ID="ID_450859594" MODIFIED="1518487921105" TEXT="alte version war broken"/>
<node CREATED="1447566721616" ID="ID_520179523" MODIFIED="1518487921105" TEXT="32 / 64bit Probleme"/>
<node CREATED="1447566743461" ID="ID_1754275668" LINK="http://issues.lumiera.org/ticket/973" MODIFIED="1518487921105">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Probleme mit der Compile-Reihenfolge&#160; <font color="#d41807">#973</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1447566806556" ID="ID_708047854" MODIFIED="1518487921105" TEXT="neues Bugfix-Release">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446482059174" ID="ID_1693967692" MODIFIED="1518487921105" TEXT="Ubuntu/Trusty (14.LTS) : i386 and x86_64">
<icon BUILTIN="button_ok"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1446509774664" ID="ID_458867123" MODIFIED="1518487921105" TEXT="Ausnahmen f&#xfc;r libgdl-3-dev 3.8"/>
<node CREATED="1447567139480" ID="ID_183954019" MODIFIED="1518487921105" TEXT="-&gt; diese Ausnahmen in Paketdefinition &#xfc;bernommen">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1447971961407" ID="ID_1876285814" MODIFIED="1518487921105" TEXT="habe dann aber doch gdl 3.16 gebackported">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1447971982360" ID="ID_1118580069" MODIFIED="1518487921105" TEXT="Beobachtung: Paket l&#xe4;&#xdf;t sich nicht installieren">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1447971995582" ID="ID_1170070076" MODIFIED="1518487921105" TEXT="Doku-Registrierung scheitert">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1447972005940" ID="ID_876035298" MODIFIED="1541088155781" TEXT="doc-base Definition">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...f&#252;hrt sowohl eine README, alsauch ein Verzeichnis /usr/share/doc/lumiera/html auf, das (noch) nicht existiert
</p>
<p>
unter Debian/Jessie wird das ignoriert
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1447972547396" ID="ID_1950291699" MODIFIED="1541088155790">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
stelle fest: Fehler auf Trusty,
</p>
<p>
nur Warnung auf Mint
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
das hei&#223;t, da&#223; ich versuchen kann, das Problem erst mal &quot;unter den Teppich zu kehren&quot;
</p>
<p>
Die Wahrscheinlichkeit, da&#223; <i>irgend jemand</i>&#160;Lumiera unter Ubuntu/Trusty <i>installieren </i>m&#246;chte, erscheint mir akademisch
</p>
</body>
</html></richcontent>
<icon BUILTIN="bell"/>
</node>
</node>
</node>
<node CREATED="1446482059174" ID="ID_1906801117" MODIFIED="1518487921105" TEXT="Ubuntu/Vivid (15.04) : i386">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446482059175" ID="ID_1107419581" MODIFIED="1518487921105" TEXT="Ubuntu/Wily (15.10) : x86_64">
<icon BUILTIN="button_cancel"/>
<node CREATED="1447978249148" ID="ID_218315533" MODIFIED="1518487921105">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bauen mit gcc-5 <b><font color="#d90d06">scheitert</font></b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1447978292199" ID="ID_1160042901" MODIFIED="1518487921105" TEXT="ein Problem mit std::hash - Spezialisierung">
<icon BUILTIN="info"/>
</node>
<node CREATED="1447983052852" ID="ID_1130315053" MODIFIED="1541088155817" TEXT="liegt nur an fehlendem #include &lt;utility&gt;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
in lib/hash-standard.hpp
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1447990722939" ID="ID_1163368707" MODIFIED="1518487921105">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
mit gcc-5 gebaute Tests <b><font color="#d40262">scheitern</font></b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1447990760017" ID="ID_413820913" MODIFIED="1541088155831">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
bauen mit gcc-4.9 <i>nicht m&#246;glich</i>
</p>
</body>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
es gibt Probleme beim Linken mit den Boost-Libraries, die auf Ubuntu/wily mit gcc-5 gebaut sind.
</p>
</body>
</html></richcontent>
<icon BUILTIN="smily_bad"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1447990802803" ID="ID_1667893677" MODIFIED="1518487921105" TEXT="ABBRUCH"/>
</node>
<node CREATED="1446482059175" ID="ID_904094860" MODIFIED="1518487921105" TEXT="Mint/Rafaela (17.2.LTS) : x86_64">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446482249336" ID="ID_1088469455" MODIFIED="1541088155847" TEXT="Web/Doku aktualisieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Wichtig: hier nur was wirklich gebaut ist und funktioniert!
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446589479832" ID="ID_1851762530" MODIFIED="1518487921105" TEXT="alte Repos wegwerfen">
<icon BUILTIN="button_ok"/>
<node CREATED="1446589487798" ID="ID_1080472422" MODIFIED="1518487921105" TEXT="Lumi-Depot: Wheezy">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446589495445" ID="ID_1083044545" MODIFIED="1518487921105" TEXT="VBox Wheezy">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1446589502132" ID="ID_271504207" MODIFIED="1518487921105" TEXT="VBox Mint Quiana">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1446481892624" ID="ID_1020531472" MODIFIED="1518487921105" TEXT="Ticket schlie&#xdf;en">
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1439842359711" ID="ID_1982964862" MODIFIED="1561237224483" TEXT="Paket">
<icon BUILTIN="go"/>
<node COLOR="#6a1928" CREATED="1561237113163" ID="ID_1613245846" MODIFIED="1561237134536" TEXT="zu kl&#xe4;ren">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1439842379420" ID="ID_1336697213" MODIFIED="1557498707243" TEXT="gtk-Abh&#xe4;ngigkeiten"/>
<node CREATED="1446486970358" ID="ID_1758732894" MODIFIED="1561237137893" TEXT="was ist mit libXV">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
eigentlich war die nur notwendig f&#252;r das Video-Viewer Widget,
</p>
<p>
was nun leider tot ist. Wir haben noch keinen Ersatz. Deshalb lasse ich die Abh&#228;ngigkeit
</p>
<p>
bestehen, aber irgendwann m&#252;ssen wir das schon glattziehen
</p>
</body>
</html></richcontent>
<icon BUILTIN="help"/>
</node>
<node CREATED="1446505367113" ID="ID_1119934206" LINK="http://issues.lumiera.org/ticket/971" MODIFIED="1557498707243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
hardening-flags! <font color="#ba015b">#971</font>
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1478387336953" ID="ID_1320541285" MODIFIED="1557498707243" TEXT="debian/copyright">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1478387345624" ID="ID_666713431" MODIFIED="1557498707243" TEXT="sollte alle Copyright-statements korrekt zusammenfassen"/>
<node CREATED="1478387362709" ID="ID_1001009846" MODIFIED="1557498707243" TEXT="siehe Debian-Policy"/>
</node>
</node>
<node CREATED="1561237144633" HGAP="-10" ID="ID_1418254608" MODIFIED="1561237468222" TEXT="Docker-build" VSHIFT="30">
<edge COLOR="#2b265a" STYLE="linear"/>
<icon BUILTIN="prepare"/>
<node CREATED="1561237304621" ID="ID_1883389197" MODIFIED="1561237307268" TEXT="Automatisierung">
<node COLOR="#338800" CREATED="1561237242818" ID="ID_1327662353" MODIFIED="1561237253977" TEXT="automatisiert Build-Umgebung herstellen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1561237261247" ID="ID_1198806785" MODIFIED="1561237298214" TEXT="Docker-Container starten und Build-Umgebung herstellen">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1561237338252" ID="ID_1527757716" MODIFIED="1561237341096" TEXT="Container">
<node CREATED="1561237342391" ID="ID_1602439603" MODIFIED="1561237349547" TEXT="laufend">
<icon BUILTIN="back"/>
<node CREATED="1561237350859" ID="ID_1545894719" MODIFIED="1561237360470" TEXT="ubuntu:bionic">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1561237389597" FOLDED="true" ID="ID_1282777808" MODIFIED="1561237482474" STYLE="fork" TEXT="Release">
<icon BUILTIN="stop"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1561237395516" ID="ID_629494336" MODIFIED="1561237478731" TEXT="nixda">
<icon BUILTIN="flag-pink"/>
</node>
<node CREATED="1561237408778" ID="ID_410283986" MODIFIED="1561237478731" TEXT="Plan">
<icon BUILTIN="idea"/>
<node CREATED="1561237420008" ID="ID_1274423839" MODIFIED="1561237478731" TEXT="vorbereitete saubere Umgebungen"/>
<node CREATED="1561237428807" ID="ID_662721931" MODIFIED="1561237478731" TEXT="per automatischer Routine erstellen"/>
<node CREATED="1561237439894" ID="ID_16174802" MODIFIED="1561237478731" TEXT="diese jeweils zum Release per DockerHub ver&#xf6;ffentlichen"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1446356359992" HGAP="9" ID="ID_1850896628" MODIFIED="1557498707243" POSITION="left" TEXT="QA" VSHIFT="69">
<icon BUILTIN="prepare"/>
<node CREATED="1447985496639" ID="ID_1191711297" MODIFIED="1557498707243" TEXT="untersuchen">
<node CREATED="1447985501798" ID="ID_732609615" MODIFIED="1557498707243" TEXT="std::hash-Spezialisierung">
<node CREATED="1447985531602" ID="ID_515281257" LINK="http://issues.lumiera.org/ticket/722" MODIFIED="1557498707243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Ticket <font color="#d40230">#722</font>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1447985552663" ID="ID_1932953869" MODIFIED="1557498707243" TEXT="Hack ist inzwischen obsolet">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
seit gcc-4.8 ist kein static_assert mehr in der STDlib
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1447985591922" ID="ID_800130211" MODIFIED="1557498707243" TEXT="Frage: wie kann ich ein SFINAE-Br&#xfc;cke bauen"/>
<node CREATED="1447985637132" ID="ID_1680970111" MODIFIED="1557498707243" TEXT="Problem: wir haben nur einen Typparameter"/>
</node>
</node>
<node CREATED="1447567187010" ID="ID_1008538054" MODIFIED="1557498707243" TEXT="sp&#xe4;ter...">
<icon BUILTIN="bell"/>
<node CREATED="1447567193361" ID="ID_661445245" MODIFIED="1557498707243" TEXT="preliminary optimization">
<icon BUILTIN="ksmiletris"/>
<node CREATED="1447566743461" ID="ID_1971297499" LINK="http://issues.lumiera.org/ticket/973" MODIFIED="1557498707243">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Probleme mit der Compile-Reihenfolge&#160; <font color="#d41807">#973</font>
</p>
</body>
</html></richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1477665256799" ID="ID_685276209" MODIFIED="1557498707243" TEXT="&#xc4;rger">
<icon BUILTIN="smily_bad"/>
<node CREATED="1477665276421" ID="ID_714740974" MODIFIED="1557498707243" TEXT="dlclose #1034">
<node CREATED="1477665304137" ID="ID_65862146" MODIFIED="1557498707243" TEXT="Assertion, da Library nicht entladen werden kann">
<icon BUILTIN="info"/>
</node>
<node CREATED="1477665320934" ID="ID_1841226938" MODIFIED="1557498707243" TEXT="LD_DEBUG=all NOBUG_LOG=pluginloader_dbg:TRACE 2&gt;&amp;1 target/lumiera | c++filt &gt;weia">
<node CREATED="1477665330317" ID="ID_1760958407" MODIFIED="1557498707243" TEXT="weitere Untersuchung notwendig....">
<icon BUILTIN="bell"/>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1446356368070" ID="ID_768449868" MODIFIED="1557498707243" TEXT="Au Au">
<icon BUILTIN="broken-line"/>
<node CREATED="1521963965164" FOLDED="true" ID="ID_1027875371" MODIFIED="1561238596029" TEXT="komplexe Probleme">
<icon BUILTIN="go"/>
<node COLOR="#435e98" CREATED="1522025948980" ID="ID_295336770" MODIFIED="1557498707243" TEXT="3/2018">
<node COLOR="#338800" CREATED="1521964015114" FOLDED="true" ID="ID_1116388701" MODIFIED="1561238584135" TEXT="CallQueue_test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
TEST Dispatch functors into other threads: CallQueue_test .. FAILED
</p>
<p>
unexpected return value 134, expected 0
</p>
<p>
stderr was:
</p>
<p>
0000000459: INFO: suite.cpp:180: thread_1: invokeTestCase: ++------------------- invoking TEST: CallQueue_test
</p>
<p>
0000003117: CHECK: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: (globalProducerSum == globalConsumerSum)
</p>
<p>
0000003127: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/libtest-basics.so(_ZN3lib4test14CallQueue_test19verify_ThreadSafetyEv+0x24a) [0x7fdfce328a20]
</p>
<p>
0000003128: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/libtest-basics.so(_ZN3lib4test14CallQueue_test3runERSt6vectorISsSaISsEE+0x34) [0x7fdfce32764e]
</p>
<p>
0000003129: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/liblumierasupport.so(+0x1d7cb0) [0x7fdfcb7dfcb0]
</p>
<p>
0000003130: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/liblumierasupport.so(_ZN4test5Suite3runERSt6vectorISsSaISsEE+0x38f) [0x7fdfcb7e0249]
</p>
<p>
0000003131: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: ./test-suite() [0x40625e]
</p>
<p>
0000003132: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fdfc9029b45]
</p>
<p>
0000003133: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: ./test-suite() [0x4060a9]
</p>
<p>
END
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1522025982759" ID="ID_1830638050" MODIFIED="1522025987194" TEXT="reproduzierbar....">
<node CREATED="1522025990246" ID="ID_261366619" MODIFIED="1544310845450" TEXT="Auf mehreren Terminals x-mal starten">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
for I in `seq 1 50`; do target/test-suite CallQueue_test; done
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1522026027993" ID="ID_25191931" MODIFIED="1522026034036" TEXT="Anhaltspunkte">
<node CREATED="1522026034720" ID="ID_584589060" MODIFIED="1544310845469" TEXT="erstmals beobachtet unter starker System-Last">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
habe gleichzeitig erst die Testsuite gebaut mit -j 36 und dann laufen lassen.
</p>
<p>
Gleichzeitig aber auch noch das ./build-website-Skript
</p>
<p>
und eine Doxygen-Seite im Browser geladen
</p>
</body>
</html></richcontent>
</node>
<node COLOR="#990000" CREATED="1521963972811" ID="ID_1942164320" MODIFIED="1522029864550" TEXT="hab ich da was mit dem ThreadWrapper kaputt gemacht?">
<icon BUILTIN="stop-sign"/>
<node CREATED="1522026114725" ID="ID_288423678" MODIFIED="1522026122240" TEXT="hatte kurz vorher den ThreadWrapper modernisiert"/>
<node CREATED="1522026122756" ID="ID_1246030370" MODIFIED="1522026127927" TEXT="und gebe nun ein Lambda durch"/>
<node CREATED="1522026128467" ID="ID_387844871" MODIFIED="1522026139087" TEXT="verwende dabei aber perfect-forwarding-Tricks">
<icon BUILTIN="clanbomber"/>
</node>
<node COLOR="#338800" CREATED="1522029869047" ID="ID_221734956" MODIFIED="1522029880963" TEXT="Anwort: vermutlich NEIN">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1522026152280" ID="ID_156370463" MODIFIED="1522030023168" TEXT="anderer Verdacht: Objekt-Initialisierung">
<icon BUILTIN="back"/>
<node CREATED="1522026166734" ID="ID_731765048" MODIFIED="1522030021122" TEXT="das bekannte Problem"/>
<node CREATED="1522026170781" ID="ID_1581699734" MODIFIED="1522030021122" TEXT="der Thread l&#xe4;uft schon"/>
<node CREATED="1522026178860" ID="ID_917574124" MODIFIED="1522030021122" TEXT="aber das abgeleitete Objekt ist noch nicht so weit"/>
<node CREATED="1522029908986" ID="ID_1350487644" MODIFIED="1522030029028" TEXT="Jupp. Dat warsz">
<icon BUILTIN="idea"/>
<node CREATED="1522029922592" ID="ID_301766693" MODIFIED="1522030021122" TEXT="Barriere eingebaut"/>
<node CREATED="1522029928983" ID="ID_761637509" MODIFIED="1544310845562" TEXT="ist auch sinnvoll vom Testdesgin her">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
weil sich die Threads gegenseitig ihre Counter inkrementieren.
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1522029979544" ID="ID_1820534569" MODIFIED="1522030021122" TEXT="Stre&#xdf;test wiederholt, sogar mit 500 Thrads"/>
<node COLOR="#338800" CREATED="1522029995205" ID="ID_556688250" MODIFIED="1522030021122" TEXT="jetzt reproduzierbar alles sauber">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1522030032424" ID="ID_1791738866" MODIFIED="1522030091201" TEXT="Problem war fehlende Barriere nach Objekt-Initialisierung">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1522030047375" ID="ID_1979180035" MODIFIED="1544310845583" TEXT="alle anderen multithreaded-Tests durchgepr&#xfc;ft">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
alle anderen (mit Ausnahme von BusTerm_test)
</p>
<p>
verwenden globale Variable oder &#252;berhaupt keine Objektfelder
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
<node CREATED="1561238618311" ID="ID_1197206022" MODIFIED="1561238624422" TEXT="Plattform-Evolution">
<icon BUILTIN="prepare"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561238627847" ID="ID_776424925" MODIFIED="1561238634217" TEXT="Juni 2019">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561238635358" ID="ID_584004962" MODIFIED="1561238732841" TEXT="Ubuntu/Bionic - libboost 1.65">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
angeregt durch Gabriel;
</p>
<p>
er wollte &quot;versuchen, Lumiera zu bauen&quot;
</p>
</body>
</html>
</richcontent>
<linktarget COLOR="#c64162" DESTINATION="ID_584004962" ENDARROW="Default" ENDINCLINATION="295;-171;" ID="Arrow_ID_1368108105" SOURCE="ID_1588960225" STARTARROW="None" STARTINCLINATION="247;0;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1561237854717" FOLDED="true" ID="ID_682831433" MODIFIED="1561237893434" TEXT="boost::rational">
<icon BUILTIN="button_ok"/>
<node CREATED="1561237861421" ID="ID_575082452" MODIFIED="1561237891854" TEXT="erlaubt keine implizite signed/unsigned-conversion mehr">
<icon BUILTIN="info"/>
</node>
<node COLOR="#435e98" CREATED="1561237876778" ID="ID_1489512347" MODIFIED="1561237888193" TEXT="gefixt bzw. eignen Operator f&#xfc;r 1/fps definiert"/>
</node>
<node COLOR="#990000" CREATED="1561237894664" ID="ID_1271023428" MODIFIED="1561303718736" TEXT="CommandEquality_test scheitert">
<icon BUILTIN="button_cancel"/>
<node CREATED="1561237929923" ID="ID_1722173317" MODIFIED="1561237932732" TEXT="command-equality-test.cpp:169: thread_1: verifyMutationEquality: (mut_u0 != umu) ">
<icon BUILTIN="info"/>
</node>
<node CREATED="1561237934707" ID="ID_103532516" MODIFIED="1561238024555" TEXT="waren bisher ungleich wegen empty vs undef">
<node CREATED="1561238043825" ID="ID_1552996851" MODIFIED="1561238050167" TEXT="umo -&gt; empty operation function"/>
<node CREATED="1561238050854" ID="ID_1689917500" MODIFIED="1561238066157" TEXT="mut_u0 -&gt; empty UNDO function"/>
</node>
<node COLOR="#435e98" CREATED="1561238068215" ID="ID_506567611" MODIFIED="1561293990008" TEXT="war das bisherige Verhalten korrekt?">
<icon BUILTIN="help"/>
<node CREATED="1561293701116" ID="ID_755823260" MODIFIED="1561293974672">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
wann sind Funktoren <i>&#228;quivalent</i>&#160;??
</p>
</body>
</html>
</richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<u>mathematisch gilt</u>:
</p>
<p>
sie sind gleich, wenn sie f&#252;r alle gleichen Argumente das gleiche Resultat liefern.
</p>
<p>
</p>
<p>
<i>sei die Dose offen...</i>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1561293746047" ID="ID_1685820592" MODIFIED="1561293763727" TEXT="ich hatte da einen Hack im Einsatz">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1561293766313" ID="ID_503430163" MODIFIED="1561293901354" TEXT="std::function hat das Thema letztlich abgebogen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
in tr1::functional war ein equality-Operator spezifiziert
</p>
<p>
boost::function hat sich geweigert diesen zu implementieren,
</p>
<p>
weil es keine vern&#252;nftige und konsistente Implementierung gibt.
</p>
<p>
</p>
<p>
F&#252;r den C++11 - Standard hat man dann einen Kompromi&#223; geschlossen,
</p>
<p>
demnach der Vergleich mit einem NULLPTR sinnvoll (und implementierbar) ist,
</p>
<p>
aber ansonsten alle <i>validen definierten</i>&#160;Funktionen untereinander verschieden sind.
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="smiley-oh"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1561293905972" ID="ID_1691379411" MODIFIED="1561294054085" TEXT="Fazit: std::function ist nur partiell geordnet">
<arrowlink COLOR="#3044e4" DESTINATION="ID_1015641085" ENDARROW="Default" ENDINCLINATION="51;-54;" ID="Arrow_ID_44253813" STARTARROW="None" STARTINCLINATION="-282;0;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561294009342" ID="ID_1015641085" MODIFIED="1561294046278" TEXT="#294 re-evaluate command equality comparisons">
<linktarget COLOR="#3044e4" DESTINATION="ID_1015641085" ENDARROW="Default" ENDINCLINATION="51;-54;" ID="Arrow_ID_44253813" SOURCE="ID_1691379411" STARTARROW="None" STARTINCLINATION="-282;0;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1561294074429" ID="ID_1155061172" MODIFIED="1561294082271" TEXT="sinnvoller use-case?">
<node CREATED="1561294111368" ID="ID_550692627" MODIFIED="1561294116011" TEXT="bisher nur isValid()">
<node CREATED="1561294121390" ID="ID_1554085271" MODIFIED="1561294146172" TEXT="&#xbb;ist aktiviert und beruht auf dem &quot;gleichen&quot; backend&#xab;">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1561294154669" ID="ID_1700157755" MODIFIED="1561294165145" TEXT="und das backend wurde bisher...">
<node CREATED="1561294165894" ID="ID_504595200" MODIFIED="1561294171982" TEXT="auf gleiche Storage-Location"/>
<node CREATED="1561294172366" ID="ID_1176454147" MODIFIED="1561294188932">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sonst auf <i>&#196;quivalenz</i>&#160;getestet
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1561294190088" ID="ID_1198524028" MODIFIED="1561294221209">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
und genau das Letztere ist nicht <b>garantiert korrekt</b>&#160;implementierbar
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1561294330073" ID="ID_608542803" MODIFIED="1561294340821" TEXT="Commands haben Referenz-Symantik">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1561294342041" ID="ID_260507058" MODIFIED="1561294357179" TEXT="und der &#xc4;quivalenz-Begriff geh&#xf6;rt ehr zur Wert-Semantik"/>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1561294361678" ID="ID_979058533" MODIFIED="1561294387317" TEXT="&#xc4;quivalenz von Commands erscheint verzichtbar">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1561294395962" ID="ID_100338820" MODIFIED="1561294403572" TEXT="in der Praxis arbeitet man mit Command-IDs."/>
<node CREATED="1561294404352" ID="ID_499417243" MODIFIED="1561294455506">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Selbst verschiedene Closures haben selbst die noch eine eindeutige <b>Identit&#228;t</b>
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561294470021" ID="ID_1846241113" MODIFIED="1561303698905" TEXT="totmachen">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1561295990811" ID="ID_224001495" MODIFIED="1561296000279" TEXT="&#xc4;quivalenz-Check abklemmen">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#435e98" CREATED="1561296000882" ID="ID_1788095213" MODIFIED="1561303690659" TEXT="2 Tests scheitern">
<node COLOR="#338800" CREATED="1561296072919" ID="ID_1173741195" MODIFIED="1561302966818" TEXT="CommandRegistry_test">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1561296078403" ID="ID_15228506" MODIFIED="1561303686355" TEXT="CommandUse1_test">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1561305344531" ID="ID_1797228597" MODIFIED="1561308173677" TEXT="Funktion hash_value aufgeben">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1561305360584" ID="ID_503655811" MODIFIED="1561308153571" TEXT="TypeHandler f&#xfc;r BufferMetadata">
<node CREATED="1561305394029" ID="ID_1225221352" MODIFIED="1561305409873" TEXT="definiert eine Art Buffer-Typ"/>
<node CREATED="1561305410256" ID="ID_1164668948" MODIFIED="1561305416889" TEXT="basiert bisher auf dem konkreten Handler"/>
<node CREATED="1561305428408" ID="ID_1356896886" MODIFIED="1561305452650" TEXT="kann man hier auch das Identit&#xe4;gs-Argument anwenden?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
d.h. wir brauchen keine &#196;quivalenz?
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1561305463577" ID="ID_1519337489" MODIFIED="1561305477381" TEXT="folglich w&#xe4;re jeder TypeHandler ein Unikat"/>
</node>
<node COLOR="#338800" CREATED="1561308051917" ID="ID_914530129" MODIFIED="1561308171779" TEXT="pragmatische L&#xf6;sung: Type-ID">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1561308061204" ID="ID_1554244425" MODIFIED="1561308168325" TEXT="verwende die typeid(TY) der Funktoren">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561308078902" ID="ID_430150773" MODIFIED="1561308091311" TEXT="kann in&apos;s Auge gehn">
<icon BUILTIN="clanbomber"/>
<node CREATED="1561308093797" ID="ID_553457078" MODIFIED="1561308135247" TEXT="wenn jemand eine std::function&lt;void(void)&gt; direkt speichert">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1561308115205" ID="ID_1743532708" MODIFIED="1561308132530" TEXT="Regel ist aber TypeHandler::create&lt;TY&gt;()">
<icon BUILTIN="back"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561296009625" ID="ID_617134183" MODIFIED="1561296050381" TEXT="alle Vergleichs-Operatoren auf Command-Funktor-Ebene zur&#xfc;ckbauen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561296029622" ID="ID_696325144" MODIFIED="1561296050004" TEXT="die rawComparison zur&#xfc;ckbauen">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1561296041852" ID="ID_1450999034" MODIFIED="1561296049476" TEXT="Doku aktualisieren">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544239377061" ID="ID_1224449803" MODIFIED="1557498707243" TEXT="GUI-Start not yet failsafe">
<icon BUILTIN="broken-line"/>
<node COLOR="#435e98" CREATED="1544239394777" ID="ID_626803835" MODIFIED="1557498707243" TEXT="aufgedeckt durch fehlende UI-Resourcen">
<linktarget COLOR="#7f244b" DESTINATION="ID_626803835" ENDARROW="Default" ENDINCLINATION="193;-461;" ID="Arrow_ID_65546348" SOURCE="ID_1906746912" STARTARROW="None" STARTINCLINATION="421;19;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1544239428238" ID="ID_1011459246" MODIFIED="1557498707243" TEXT="wie konnte das passieren....?">
<icon BUILTIN="smily_bad"/>
</node>
<node CREATED="1544239443516" ID="ID_1433396809" MODIFIED="1557498707243" TEXT="ich hatte doch die ganze Sequenz gepr&#xfc;ft?!"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544239461493" ID="ID_138383314" MODIFIED="1557498707243" TEXT="catch-Block sitzt nicht richtig">
<arrowlink COLOR="#e02825" DESTINATION="ID_478753729" ENDARROW="Default" ENDINCLINATION="-3550;0;" ID="Arrow_ID_390741072" STARTARROW="None" STARTINCLINATION="-1804;756;"/>
<icon BUILTIN="clanbomber"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544240822252" ID="ID_110235945" MODIFIED="1557498707243" TEXT="#1192 Lumiera hangs on failed GUI start">
<arrowlink COLOR="#e5221e" DESTINATION="ID_1795051800" ENDARROW="Default" ENDINCLINATION="-43;971;" ID="Arrow_ID_127697886" STARTARROW="None" STARTINCLINATION="-235;72;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1544310988414" FOLDED="true" ID="ID_134908056" MODIFIED="1557498707243" TEXT="ProcDispatcher macht idle-Loop">
<arrowlink COLOR="#ce3649" DESTINATION="ID_71855569" ENDARROW="Default" ENDINCLINATION="105;0;" ID="Arrow_ID_1871191743" STARTARROW="None" STARTINCLINATION="181;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1544311004661" ID="ID_1064987345" MODIFIED="1544311012720" TEXT="Symptom: CPU-Last im Ruhezustand"/>
<node CREATED="1544311014140" ID="ID_392351205" MODIFIED="1544320819468" TEXT="Grund: f&#xe4;llt sofort wieder aus timed wait">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1544311029042" ID="ID_15647077" MODIFIED="1544320803272" TEXT="Ursache: Sync.hpp -- Timeout-Struct nicht korrekt initialisiert">
<icon BUILTIN="button_ok"/>
<node CREATED="1544311051503" ID="ID_1872128038" MODIFIED="1544311082817" TEXT="bool-Operator vergleicht auf 0">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544311064725" ID="ID_1179966941" MODIFIED="1544311079804" TEXT="finde aber im Debugger irgendwelche Werte.">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1544320706921" ID="ID_50250235" MODIFIED="1544320717897" TEXT="genauer: Werte werden nicht aufger&#xe4;umt">
<node CREATED="1544320719053" ID="ID_1185228058" MODIFIED="1544320755043" TEXT="Konvention ist: sekunden == 0 ==&gt; kein Timeout">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544320761671" ID="ID_1421942136" MODIFIED="1544320772577" TEXT="pthread findet timeout in der Vergangenheit"/>
<node CREATED="1544320773286" ID="ID_256879540" MODIFIED="1544320782737" TEXT="...und kehr damit sofort zur&#xfc;ck aus dem wait">
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node COLOR="#338800" CREATED="1544320791339" ID="ID_536822312" MODIFIED="1544320800480" TEXT="Fix: else-Zweig, reset()">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node COLOR="#435e98" CREATED="1544328974221" FOLDED="true" ID="ID_71855569" MODIFIED="1557498707243" TEXT="ProcDispatcher bleibt h&#xe4;ngen">
<linktarget COLOR="#ce3649" DESTINATION="ID_71855569" ENDARROW="Default" ENDINCLINATION="105;0;" ID="Arrow_ID_1871191743" SOURCE="ID_134908056" STARTARROW="None" STARTINCLINATION="181;0;"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1544329099419" ID="ID_1105978437" MODIFIED="1544329164023" TEXT="SessionCommandFunction_test">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
sporadich, nicht bei jedem Lauf, aber reproduzierbar.
</p>
<p>
Bleibt h&#228;ngen an der Stelle, wo der Test den Dispatcher vor&#252;bergehend deaktiviert,
</p>
<p>
und dann auf den Deaktiviert-Zustand <b>wartet</b>
</p>
</body>
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1544329167436" ID="ID_739717124" MODIFIED="1544329363509" TEXT="Problem mit der Zustands-Logik">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1544329192703" ID="ID_1013421079" MODIFIED="1544329202330" TEXT="deaktivert bedeutet requireAction() == false"/>
<node CREATED="1544329202903" ID="ID_1019916123" MODIFIED="1544329356857" TEXT="und dadurch warten wir ohne Timeout">
<icon BUILTIN="broken-line"/>
<node CREATED="1544329280619" ID="ID_1784122176" MODIFIED="1544329348875" TEXT="und durch den Bug in lib::Sync wurde das nicht wirksam">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...weil der Objekt-Monitor nicht mehr bedingungslos gewartet hat,
</p>
<p>
nachdem <i>einmal</i>&#160;ein wait mit Timeout verwendet worden war
</p>
</body>
</html></richcontent>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
<node CREATED="1544329216228" ID="ID_422426535" MODIFIED="1544329234043">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
aber <b>inChange</b>&#160;bleibt <b>true</b>
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1544329235934" ID="ID_605336452" MODIFIED="1544329273933" TEXT="...und darauf wartet die &#xe4;u&#xdf;ere H&#xfc;lle">
<icon BUILTIN="idea"/>
</node>
</node>
<node COLOR="#338800" CREATED="1544329367261" ID="ID_50498392" MODIFIED="1544386159034" TEXT="L&#xf6;sungen" VGAP="15">
<icon BUILTIN="button_ok"/>
<node CREATED="1544329727165" FOLDED="true" ID="ID_1043095728" MODIFIED="1544386423962" TEXT="requireAction() == true auch wenn disabled">
<icon BUILTIN="button_cancel"/>
<node CREATED="1544329753698" ID="ID_1588685067" MODIFIED="1544329760502" TEXT="geht nicht.">
<icon BUILTIN="stop-sign"/>
</node>
<node CREATED="1544329764640" ID="ID_706638200" MODIFIED="1544329781788" TEXT="denn dann kommen wir nicht mehr in den wait-state">
<icon BUILTIN="info"/>
</node>
<node CREATED="1544329793943" ID="ID_1668546000" MODIFIED="1544329822612" TEXT="requireAction wird ja als Condition f&#xfc;r den Wait verwendet">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1544329372318" FOLDED="true" ID="ID_88425113" MODIFIED="1544386423070" TEXT="inChange nur setzen wenn requireAction() == true">
<icon BUILTIN="button_cancel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544329663574" ID="ID_565123980" MODIFIED="1544332799520" TEXT="Verdacht: kann dann trotzdem per Timeout aufwachen">
<icon BUILTIN="clanbomber"/>
</node>
<node CREATED="1544329684707" ID="ID_651175391" MODIFIED="1544329708068" TEXT="und dann w&#xe4;re inChange == false, obwohl wir arbeiten (Builder l&#xe4;uft)"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1544332821150" ID="ID_484338481" MODIFIED="1544332874097" TEXT="fatale Konsequenzen....">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...es k&#246;nnte dann n&#228;mlich die Session geschlossen und freigegeben werden,
</p>
<p>
obwohl noch der Builder l&#228;uft
</p>
</body>
</html></richcontent>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1544332907967" ID="ID_760793562" MODIFIED="1544332932033" TEXT="Analyse: kann das passieren?">
<icon BUILTIN="help"/>
<node CREATED="1544332934619" ID="ID_558823055" MODIFIED="1544333038537" TEXT="Fall: disabled-setzen w&#xe4;hrend dem Timeout">
<node CREATED="1544333050044" ID="ID_318735401" MODIFIED="1544333066940" TEXT="Timeout eingetreten ==&gt; requireAction war false"/>
<node CREATED="1544333069881" ID="ID_555896336" MODIFIED="1544333084882" TEXT="nach ge&#xe4;nderter Logik w&#xe4;re dann auch inChange == false"/>
<node CREATED="1544333087958" ID="ID_1209619554" MODIFIED="1544333108407" TEXT="Folglich wird f&#xe4;lschlicherweise nicht gewartet"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544333135104" ID="ID_549018822" MODIFIED="1544333155423" TEXT="Antwort: ja das kann passieren">
<icon BUILTIN="back"/>
</node>
</node>
<node CREATED="1544333313167" ID="ID_1694353778" MODIFIED="1544333323414" TEXT="damit ist diese L&#xf6;sung hinf&#xe4;llig">
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1544333328341" FOLDED="true" ID="ID_349762653" MODIFIED="1544386421940" TEXT="inChange unabh&#xe4;ngig von requireAction() machen">
<icon BUILTIN="button_cancel"/>
<node CREATED="1544333344379" ID="ID_1647118494" MODIFIED="1544333369026" TEXT="eigene Methode, die aufgerufen wird, wenn wir aus dem wait() rauskommen"/>
<node CREATED="1544333456987" ID="ID_585691817" MODIFIED="1544333897248" TEXT="k&#xf6;nnte gehen, erscheint mir aber gef&#xe4;hrlich">
<icon BUILTIN="help"/>
<icon BUILTIN="yes"/>
<node CREATED="1544333510982" ID="ID_1431407168" MODIFIED="1544333516439" TEXT="was ist wenn....">
<node CREATED="1544333517379" ID="ID_689738064" MODIFIED="1544333533684" TEXT="disabled gesetzt wird, w&#xe4;hrend wir im wait() sind?">
<node CREATED="1544333550151" ID="ID_100143787" MODIFIED="1544333556410" TEXT="dann ist inChange == false"/>
<node CREATED="1544333610495" ID="ID_942332687" MODIFIED="1544333626888" TEXT="aber deactivateCommandProecssing() -&gt; notifyAll()"/>
<node CREATED="1544333630018" ID="ID_1936407440" MODIFIED="1544333636367" TEXT="noch w&#xe4;hrend er das Lock hat"/>
<node CREATED="1544333723957" ID="ID_1134715607" MODIFIED="1544333742040" TEXT="sobald er das Lock aufgibt, wacht der Loop-Thread auf"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544333778756" ID="ID_705117923" MODIFIED="1544333804986" TEXT="gibt dann aber auch das Lock auf, bevor er inChange setzen kann">
<icon BUILTIN="broken-line"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1544333809035" ID="ID_1284134914" MODIFIED="1544333881455" TEXT="m&#xf6;glicher Race">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1284134914" ENDARROW="Default" ENDINCLINATION="-26;57;" ID="Arrow_ID_662106184" SOURCE="ID_151622227" STARTARROW="None" STARTINCLINATION="159;0;"/>
<icon BUILTIN="clanbomber"/>
</node>
</node>
</node>
<node CREATED="1544333819034" ID="ID_151622227" MODIFIED="1544333881455" TEXT="L&#xf6;sung hinf&#xe4;llig, wegen potentiellem Race">
<arrowlink DESTINATION="ID_1284134914" ENDARROW="Default" ENDINCLINATION="-26;57;" ID="Arrow_ID_662106184" STARTARROW="None" STARTINCLINATION="159;0;"/>
<icon BUILTIN="stop-sign"/>
</node>
</node>
<node CREATED="1544333909701" ID="ID_328876957" MODIFIED="1544386156765" STYLE="fork" TEXT="inChange in requireAction() setzen, aber logisch pr&#xe4;zise">
<icon BUILTIN="button_ok"/>
<node CREATED="1544333933346" ID="ID_593273191" MODIFIED="1544386155027" TEXT="d.h. nur wenn nicht warten und kein Timeout"/>
<node CREATED="1544381554267" ID="ID_193163875" MODIFIED="1544386155027" TEXT="Zustand nur einmal in die Flags &#xfc;bernhmen, zu Beginn"/>
<node CREATED="1544382733514" ID="ID_1386275063" MODIFIED="1544386155027" TEXT="Trick mit dem Countdown auf isDirty_ zur&#xfc;ckbauen"/>
</node>
</node>
<node CREATED="1544386177470" ID="ID_1764197819" MODIFIED="1544386413663" TEXT="erst jetzt sehe ich das erwartete Builder-Verhalten">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1544386386938" ID="ID_1316391277" MODIFIED="1544386416510" TEXT="und der SessionCommandFunction_test bleibt nicht mehr h&#xe4;ngen">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#338800" CREATED="1544386406767" ID="ID_789739914" MODIFIED="1544386410583" TEXT="problem solved">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
</map>