rationale: sometimes (likely this is even the standard case) we do not just want to "extend", rather we want to extent at very specific levels. This is easy to implement, based on the existing building blocks for path manipulation
26719 lines
1.2 MiB
26719 lines
1.2 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="1488486745574" TEXT="Lumi">
|
|
<font NAME="SansSerif" SIZE="25"/>
|
|
<node CREATED="1434128046296" ID="ID_1900827283" MODIFIED="1448669775410" POSITION="right" TEXT="GUI">
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<node CREATED="1434128054470" HGAP="7" ID="ID_1166611516" MODIFIED="1476376907132" TEXT="Workflow" VSHIFT="-15">
|
|
<node CREATED="1455289597596" ID="ID_970065036" MODIFIED="1455289601196" TEXT="work site"/>
|
|
<node CREATED="1455289466261" ID="ID_273679080" MODIFIED="1455289469961" TEXT="PresentationState"/>
|
|
<node CREATED="1487210691163" ID="ID_1259700796" MODIFIED="1504478468810" TEXT="konzeptioneller Rahmen">
|
|
<linktarget COLOR="#34dbd3" DESTINATION="ID_1259700796" ENDARROW="Default" ENDINCLINATION="450;232;" 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="1487210984415" TEXT="Spot == wo wir sind"/>
|
|
<node CREATED="1487211011447" ID="ID_61564732" MODIFIED="1487211040824" TEXT="Work Site == wo wir sein können"/>
|
|
<node CREATED="1487211200966" ID="ID_1565474518" MODIFIED="1487211238989" TEXT="Focus == Realisierung des Spot in einem ControlSystem"/>
|
|
<node CREATED="1487211243656" ID="ID_953924547" MODIFIED="1487211262209" TEXT="ControlSystem == Steuerungs-Paradigma">
|
|
<node CREATED="1487211263461" ID="ID_374086294" MODIFIED="1487211315754" TEXT="Maus / current element"/>
|
|
<node CREATED="1487211266901" ID="ID_306043379" MODIFIED="1487211279343" TEXT="Keyboard / Input Focus"/>
|
|
</node>
|
|
<node CREATED="1487211777687" ID="ID_577769257" MODIFIED="1487211824509" TEXT="Focus Path == kanonische Koordinaten innerhalb von einem UI Frame"/>
|
|
<node CREATED="1487211825857" ID="ID_883246945" MODIFIED="1487211951739" TEXT="UI Frame == top-level-Segment (konkret: WorkspaceWindow)"/>
|
|
<node CREATED="1487212066024" ID="ID_378199749" MODIFIED="1487212081762" TEXT="Spot Locator == das was navigiert wird, wenn sich der Spot bewegt"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477784761581" HGAP="72" ID="ID_854334914" MODIFIED="1477784783508" TEXT="Rahmen" VSHIFT="-21">
|
|
<node CREATED="1481320580216" ID="ID_1418071897" MODIFIED="1481320587160" TEXT="vorantreiben">
|
|
<node CREATED="1501776053522" ID="ID_664046169" MODIFIED="1501776062242" TEXT="Rückpfad Session -> UI">
|
|
<node CREATED="1501776081782" ID="ID_1369579979" MODIFIED="1501776092260" TEXT="warum wichtig?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1501776102419" ID="ID_1120643044" MODIFIED="1501776108295" TEXT="full circle"/>
|
|
<node CREATED="1501776110026" ID="ID_53068153" MODIFIED="1501776115021" TEXT="asynchron"/>
|
|
<node CREATED="1501776132767" ID="ID_1853082326" MODIFIED="1501776147601" TEXT="treibt Diff-System"/>
|
|
</node>
|
|
<node CREATED="1501776157116" ID="ID_198311058" MODIFIED="1501776169063" TEXT="wie">
|
|
<node CREATED="1501776171290" ID="ID_1964256208" MODIFIED="1501776183156" TEXT="Diffs in Proc erzeugen"/>
|
|
<node CREATED="1501776183817" ID="ID_415789885" MODIFIED="1501776358583" 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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501940591109" ID="ID_1925240675" MODIFIED="1502075967876" TEXT="#1099 DemoGuiRoundtrip">
|
|
<arrowlink COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" STARTARROW="None" STARTINCLINATION="-51;592;"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1501940627280" ID="ID_1675066241" MODIFIED="1501940632019" TEXT="Dummy-Code im UI"/>
|
|
<node CREATED="1501940632871" ID="ID_189611570" MODIFIED="1501940638539" TEXT="Dummy Proc-Command"/>
|
|
<node CREATED="1501940639479" ID="ID_1314787910" MODIFIED="1501940644506" TEXT="komplettes Ping-Pong"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1481320590214" ID="ID_635303062" MODIFIED="1501866686821" TEXT="DummySessionConnection">
|
|
<arrowlink COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="123;-106;" ID="Arrow_ID_1867016690" STARTARROW="None" STARTINCLINATION="-144;215;"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1481320639544" ID="ID_1440497947" MODIFIED="1481320641675" TEXT="Singleton"/>
|
|
<node CREATED="1481320642455" ID="ID_1938045938" MODIFIED="1481320649996" TEXT="hat fake Session content"/>
|
|
<node CREATED="1481320650486" ID="ID_155238526" MODIFIED="1481320661888" TEXT="bietet fake Commands"/>
|
|
<node CREATED="1481320666196" ID="ID_1580591981" MODIFIED="1481320675247" TEXT="plus zugehörige Diagnostik"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477784793993" ID="ID_1868522177" MODIFIED="1487464677579" TEXT="Umbau">
|
|
<linktarget COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" SOURCE="ID_707273464" STARTARROW="None" STARTINCLINATION="1925;196;"/>
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1477784813895" ID="ID_1343270939" MODIFIED="1501866689972" TEXT="Model durch UI-Bus ersetzen">
|
|
<linktarget COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="123;-106;" ID="Arrow_ID_1867016690" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-144;215;"/>
|
|
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-197;638;" ID="Arrow_ID_1686519160" SOURCE="ID_202253849" STARTARROW="Default" STARTINCLINATION="-83;-1020;"/>
|
|
<node COLOR="#338800" CREATED="1481320683706" ID="ID_1226263415" MODIFIED="1481331062143" TEXT="klären, wo der Bus aufgehängt wird">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481331063782" ID="ID_1606852933" MODIFIED="1481333728957" TEXT="Lifecycle-Frontend UI-Bus"/>
|
|
<node CREATED="1481331150275" ID="ID_814186655" MODIFIED="1481333614213" TEXT="CoreService als PImpl"/>
|
|
<node CREATED="1481333616753" ID="ID_709873899" MODIFIED="1481333628171" TEXT="Nexus ist Teil von CoreService"/>
|
|
<node CREATED="1481335769192" ID="ID_1335469664" MODIFIED="1481335780355" TEXT="Interface-Manager gleichermaßen"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481320693912" ID="ID_918908848" MODIFIED="1481338438364" TEXT="Lebenszyklus klären">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481332855167" ID="ID_362694314" MODIFIED="1512926191617">
|
|
<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="1487275489244" TEXT="Nexus braucht CoreService braucht Nexus...">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
denn:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
Nexus verwendet CoreService als "upstream", um <i>alle sonstigen Nachriten</i> dorthin zuzustellen
|
|
</li>
|
|
<li>
|
|
CoreService hat Nexus als Upstream, um mit dem restlichen System kommunizieren zu können
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1481332999091" ID="ID_1793743943" MODIFIED="1481338438364" TEXT="Problem ist: ich wollte Nexus nicht speziell konstruieren"/>
|
|
<node CREATED="1481338218216" ID="ID_128336616" MODIFIED="1512926191618" TEXT="Lösung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481338222672" ID="ID_318056010" MODIFIED="1487275489252" TEXT="Bus-Term greift tatsä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="1481338438364" TEXT="kann also eine Referenz auf lokalen Speicher reinreichen"/>
|
|
<node CREATED="1481338295614" ID="ID_1811061645" MODIFIED="1487275489259" TEXT="Folglich muß 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="1512926191618" TEXT="Lebenszyklus generell unsauber">
|
|
<node CREATED="1481335709297" ID="ID_1340554881" MODIFIED="1481338438364" TEXT="Ticket #1048"/>
|
|
<node CREATED="1481335723887" ID="ID_689818706" MODIFIED="1481338438364" TEXT="GtkLumiera ist ein Singleton">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
<node CREATED="1481335735901" ID="ID_185489405" MODIFIED="1481338438364" TEXT="das lebt so viel zu lange">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481338348143" ID="ID_713195335" MODIFIED="1512926191619" TEXT="Entscheidung">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1481338354702" ID="ID_1755264056" MODIFIED="1481338438364" TEXT="CoreServices ist das Lebenszyklus-PImpl"/>
|
|
<node CREATED="1481338363965" ID="ID_1656280824" MODIFIED="1481338438364" TEXT="wenn geschlossen, muß das ganze übrige GUI schon tot sein"/>
|
|
<node CREATED="1481338393113" ID="ID_1854005469" MODIFIED="1481338438364" TEXT="Warn-Log hierfür eingebaut">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481338408983" ID="ID_516483369" MODIFIED="1481338438364" TEXT="könnte später sogar eine Exception sein">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1484871442777" ID="ID_492545805" MODIFIED="1487275489268">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
CoreService hat <i>keine volle</i> Bus-Connection
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das hab ich mir jetzt explizit so überlegt und es ist sinnvoll.
|
|
</p>
|
|
<p>
|
|
Nur ein Tangible kann eine volle Bus-Connection haben, und das heißt,
|
|
</p>
|
|
<p>
|
|
es kann downlink-Nachrichten bekommen. Dagegen hat CoreService lediglich ein "freistehendes"
|
|
</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="1481338454729" TEXT="wo kommen die CoreServices hin">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481338456152" ID="ID_266095129" MODIFIED="1481338464995" TEXT="sie leben im Objekt Ui-Bus"/>
|
|
<node CREATED="1481338465823" ID="ID_78520725" MODIFIED="1481338471698" TEXT="und zwar als PImpl"/>
|
|
<node CREATED="1481338478069" ID="ID_406101846" MODIFIED="1481338495839" TEXT="und UI-Bus lebt im lokalen scope von GtkLumiera::main()"/>
|
|
</node>
|
|
<node CREATED="1481320759472" ID="ID_687951877" MODIFIED="1481416165597" TEXT="Interfaces öffnen">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1481320765135" ID="ID_379585622" MODIFIED="1501775739313">
|
|
<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;"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484792679322" ID="ID_426218722" MODIFIED="1493753172966" TEXT="#1047 preliminary definition of GuiNotification facade">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node COLOR="#338800" CREATED="1493753178082" ID="ID_152757560" MODIFIED="1511572070979" TEXT="grundsätzliche Architektur geklärt">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...hängt am UI-Bus,
|
|
</p>
|
|
<p>
|
|
aber nur via einfacher "uplink"-Verbindung
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493753215852" ID="ID_1971120" MODIFIED="1493753233570" TEXT="offen: wie kann man Shutdown implementieren">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493753249399" ID="ID_575609638" MODIFIED="1501777873412" TEXT="offen: #1098 hand-Over in UI-Thread">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501776210069" ID="ID_228920906" MODIFIED="1501776229863" TEXT="offen: konkrete Diff-Nachrichten">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#5c1010" CREATED="1501776256263" ID="ID_1196529588" MODIFIED="1501776288476" TEXT="Bedeutung">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1501776296394" ID="ID_1578367045" MODIFIED="1501776350304" TEXT="Rückpfad Proc -> 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="1501776318995" TEXT="Abstraktion des GUI"/>
|
|
<node CREATED="1501776319543" ID="ID_641656399" MODIFIED="1501776331557">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Sicht <i>"von unten"</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484877839299" HGAP="23" ID="ID_957622878" MODIFIED="1502410631316" TEXT="Asynchrones Protokoll" VSHIFT="1">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1484877856640" ID="ID_1256835676" MODIFIED="1484877867427" TEXT="bedenke: alle Aktionen müssen in den Event-Thread"/>
|
|
<node CREATED="1484877868015" ID="ID_1612427727" MODIFIED="1484877878730" TEXT="über die Rolle des GUI-Modells nachdenken!"/>
|
|
</node>
|
|
<node CREATED="1481502320065" ID="ID_1298358905" MODIFIED="1501854313563" TEXT="macht bisher der GuiRunner" VSHIFT="17">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1481502327528" ID="ID_75293128" MODIFIED="1511572070991" TEXT="das ist ohnehin schlecht">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...weil es dadurch passieren könnte,
|
|
</p>
|
|
<p>
|
|
daß 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ürde.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1481502335583" ID="ID_1245191241" MODIFIED="1481502372882" TEXT="Felder im GuiRunner sollten noexcept sein">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1484793048273" ID="ID_66499328" MODIFIED="1501866674511" TEXT="verschoben">
|
|
<arrowlink COLOR="#4072ad" DESTINATION="ID_1019455888" ENDARROW="Default" ENDINCLINATION="-334;0;" ID="Arrow_ID_693735378" STARTARROW="None" STARTINCLINATION="-131;33;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481502305995" ID="ID_1943234904" MODIFIED="1501866681942" TEXT="direkt vom UiManager betrieben">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1484793113472" ID="ID_221612387" MODIFIED="1501854310860" TEXT="Lebenszyklus nochmal prüfen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1484797253856" ID="ID_226245696" MODIFIED="1504368762044" TEXT="GUI start sauber">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1484797307376" ID="ID_842106541" MODIFIED="1501854459425" TEXT="Abfolge">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1484797311008" ID="ID_424744338" MODIFIED="1484797318947" TEXT="GuiFacade::start"/>
|
|
<node CREATED="1484797337516" ID="ID_750979034" MODIFIED="1484797361213" TEXT="erzeugt unique_ptr<GuiRunner>"/>
|
|
<node CREATED="1484797370352" ID="ID_622906815" MODIFIED="1501854459426" TEXT="dieser hat GuiHandle als member">
|
|
<node CREATED="1484797379239" ID="ID_1948690926" MODIFIED="1484797386210" TEXT="läd Plugin"/>
|
|
<node CREATED="1484797399756" ID="ID_1084903350" MODIFIED="1484797408855" TEXT="ruft im ctor launchUi()"/>
|
|
</node>
|
|
<node CREATED="1484797429160" ID="ID_959278184" MODIFIED="1501854459427" TEXT="gtk-lumiera.cpp">
|
|
<node CREATED="1484797432999" ID="ID_1571358017" MODIFIED="1484797439067" TEXT="implementiert GUI-Plugin"/>
|
|
<node CREATED="1484797442686" ID="ID_83446606" MODIFIED="1484797481709" TEXT="launchUI -> erzeugt GUI-Thread"/>
|
|
</node>
|
|
<node CREATED="1484797483865" ID="ID_159090609" MODIFIED="1501854459428" TEXT="GuiThread (==runGUI())">
|
|
<node CREATED="1484797502462" ID="ID_21819368" MODIFIED="1501854751715" TEXT="erzeugt GtkLumiera"/>
|
|
<node CREATED="1484797512341" ID="ID_57994807" MODIFIED="1484797515712" TEXT="ruft darauf run()">
|
|
<node CREATED="1501854771820" ID="ID_1849270384" MODIFIED="1501855415908" 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>
|
|
<node CREATED="1484797517052" ID="ID_840628023" MODIFIED="1484797527271" TEXT="löst das sigTerm aus"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484797531482" HGAP="104" ID="ID_1734603717" MODIFIED="1501855415908" 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="1501855399350" 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="1501855039308" TEXT="erzeugt UiManager">
|
|
<node CREATED="1501855161616" ID="ID_1916035717" MODIFIED="1501855390711" 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" ID="ID_135398487" MODIFIED="1501855111515" TEXT="erzeugt GlobalCtx">
|
|
<node CREATED="1501855278529" ID="ID_1800772710" MODIFIED="1501855286540" TEXT="UiBus&"/>
|
|
<node CREATED="1501855278529" ID="ID_146051630" MODIFIED="1501855290419" TEXT="UiManager&"/>
|
|
<node CREATED="1501855278529" ID="ID_217835618" MODIFIED="1504368771277" TEXT="WindowLocator"/>
|
|
<node CREATED="1501855278529" ID="ID_1549587580" MODIFIED="1501855300298" TEXT="InteractionDirector"/>
|
|
<node CREATED="1501855278529" ID="ID_1835031486" MODIFIED="1501855304233" TEXT="interact::Wizard"/>
|
|
</node>
|
|
<node CREATED="1501855218496" ID="ID_958941481" MODIFIED="1501855224276" TEXT="bindet Menü-Actions"/>
|
|
</node>
|
|
<node CREATED="1501855040016" ID="ID_1016475327" MODIFIED="1501855047619" TEXT="erstellt Hautpfenster"/>
|
|
<node CREATED="1501855050087" ID="ID_1167747758" MODIFIED="1501855067689" TEXT="startet Event-Loop">
|
|
<node CREATED="1501855083654" ID="ID_207237338" MODIFIED="1501855083654" TEXT="uiManager.performMainLoop()"/>
|
|
<node CREATED="1484797557383" ID="ID_637078214" MODIFIED="1484797568569" TEXT="Gtk-Kit::run()"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484797573701" ID="ID_162958920" MODIFIED="1501854459430" TEXT="UiBus">
|
|
<node CREATED="1484797576972" ID="ID_1159570219" MODIFIED="1501854459431" TEXT="erzeugt CoreService">
|
|
<node CREATED="1484871312594" ID="ID_1351400025" MODIFIED="1484871320837" TEXT="erbt zwar von BusTerm"/>
|
|
<node CREATED="1484871321473" ID="ID_112216780" MODIFIED="1511572071016" 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über nachgedacht.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Anmerkung: ein "frestehendes" BusTerm ist valide und zugelassen, es hat halt nur eine uplink-Connection.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1484871556194" ID="ID_1978811406" MODIFIED="1511572071022" TEXT="macht Sinn so">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
nur ein Tangible kann downlink-Nachrichten sinnvoll empfangen;
|
|
</p>
|
|
<p>
|
|
es muß dazu auch jede Menge Methoden implementieren.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1484797584483" ID="ID_1316050570" MODIFIED="1501854459432" TEXT="dieser hat Member ">
|
|
<node CREATED="1484797623574" ID="ID_1754670675" MODIFIED="1484797625783" TEXT="Nexus"/>
|
|
<node CREATED="1484797620495" ID="ID_1710248767" MODIFIED="1484797620495" TEXT="GuiNotificationService"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501857011825" ID="ID_1201296805" MODIFIED="1501857017678" TEXT="Synchronisation">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1501857019737" ID="ID_1981037750" MODIFIED="1501857224518" TEXT="GuiSubsysDescriptor">
|
|
<node CREATED="1501857031391" ID="ID_1576806105" MODIFIED="1501857260830" TEXT="start hä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="1501857079341" TEXT="erzeugt GuiRunner"/>
|
|
<node CREATED="1501857054324" ID="ID_907543967" MODIFIED="1501857582291" 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="1501857249055" 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="1501857144188" TEXT="läd Gui-Plugin"/>
|
|
<node CREATED="1501857152263" ID="ID_521610150" MODIFIED="1501857163089" TEXT="triggert auf diesem launchUI"/>
|
|
</node>
|
|
<node CREATED="1501857292596" ID="ID_453282087" MODIFIED="1501857298999" TEXT="Gui-Plugin-launchUI">
|
|
<node CREATED="1501857310890" ID="ID_1249679018" MODIFIED="1501857319617" TEXT="erzeugt UI-Thread"/>
|
|
<node CREATED="1501857327592" ID="ID_1036948610" MODIFIED="1501857334602" TEXT="dieser bindet an runGUI"/>
|
|
</node>
|
|
<node CREATED="1501857358387" ID="ID_807727617" MODIFIED="1501857361967" TEXT="runGUI">
|
|
<node CREATED="1501857365394" ID="ID_509238853" MODIFIED="1501857381980" TEXT="erzeugt GtkLumiera"/>
|
|
<node CREATED="1501857382808" ID="ID_1737939783" MODIFIED="1501857390418" TEXT="ruft darauf run() auf"/>
|
|
<node COLOR="#3f9476" CREATED="1501857391335" ID="ID_1248703286" MODIFIED="1501857410052" TEXT="nicht weiter synchronisiert">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1501857518526" ID="ID_837968815" MODIFIED="1501857529712" TEXT="Ende runGUI">
|
|
<node CREATED="1501857542075" ID="ID_767030758" MODIFIED="1501857548357" TEXT="aktiviert Term-Signal"/>
|
|
<node CREATED="1501857548922" ID="ID_1335129961" MODIFIED="1501857582291" 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="1501857648448" TEXT="nach dem Subsys-Start">
|
|
<node CREATED="1501857649532" ID="ID_1041981988" MODIFIED="1501857743356" TEXT="läuft der UI-Thread">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1501857657707" ID="ID_35727639" MODIFIED="1501857681047">
|
|
<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="1501857695053">
|
|
<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="1501857738707" TEXT="zuverlässig">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1501857709325" ID="ID_1889612043" MODIFIED="1501857714447" TEXT="entweder Start geht durch"/>
|
|
<node CREATED="1501857714988" ID="ID_158695659" MODIFIED="1501857731173" TEXT="oder scheitert und aktiviert Term-Signal"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501857864240" ID="ID_1721447002" MODIFIED="1501857867155" TEXT="UI-Bus">
|
|
<node CREATED="1501857867935" ID="ID_1896700254" MODIFIED="1501857873146" TEXT="Nexus vorhanden"/>
|
|
<node CREATED="1501857873711" ID="ID_1994626464" MODIFIED="1501857877953" TEXT="CoreService konstruiert"/>
|
|
<node CREATED="1501857903891" ID="ID_791583661" MODIFIED="1501857946805" TEXT="aber">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1501857907682" ID="ID_881624439" MODIFIED="1501857924196" TEXT="GTK_Loop muß (noch) nicht laufen"/>
|
|
<node CREATED="1501857924928" ID="ID_1224004206" MODIFIED="1501857943601" TEXT="InteractionDirector muß (noch) nicht connected sein"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501858109615" ID="ID_747885327" MODIFIED="1501858113122" TEXT="UI-Facaden">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501858114023" ID="ID_749414376" MODIFIED="1501866697133">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
müssen <b>eigens</b> 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="1501859761974" TEXT="eigenen Callback schaffen"/>
|
|
<node CREATED="1501859763155" ID="ID_428809729" MODIFIED="1501859772917" TEXT="generische Komponente schaffen?"/>
|
|
</node>
|
|
<node CREATED="1501858134796" ID="ID_1622427478" MODIFIED="1501858144013" TEXT="nachdem die UI-Loop läuft">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484871163902" ID="ID_274722396" MODIFIED="1484871283455" TEXT="closeGuiModule (PImpl) hat Lock">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484871188635" ID="ID_1922412139" MODIFIED="1484871285111" 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" ID="ID_1019455888" MODIFIED="1501866674511" TEXT="neuer Facade-Kontext">
|
|
<linktarget COLOR="#4072ad" DESTINATION="ID_1019455888" ENDARROW="Default" ENDINCLINATION="-334;0;" ID="Arrow_ID_693735378" SOURCE="ID_66499328" STARTARROW="None" STARTINCLINATION="-131;33;"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1501866627055" ID="ID_1521184600" MODIFIED="1501866631727" TEXT="RAII-Stil"/>
|
|
<node CREATED="1501866591164" ID="ID_751026549" MODIFIED="1501866609933" TEXT="öffnet/schließt die öffentlichen Interfaces"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481502251450" HGAP="96" ID="ID_1125529151" MODIFIED="1502410647990" TEXT="möglicher Race" VSHIFT="16">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1484797174890" ID="ID_986391148" MODIFIED="1501866950169" TEXT="triggerShutdown() kommt bevor GuiNotification offen ist">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1484797210597" ID="ID_1555304752" MODIFIED="1501791740076" TEXT="ist das überhaupt ein Problem">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1484797230051" ID="ID_590420902" MODIFIED="1501867015456" TEXT="ja, weil dann das GUI weiterläuft">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1501867017251" ID="ID_1980251688" MODIFIED="1501867026046" TEXT="...und der shutdown-Prozeß blockt"/>
|
|
</node>
|
|
<node CREATED="1481502257825" HGAP="24" ID="ID_232782099" MODIFIED="1511572071065" TEXT="Gefahr gering, aber gegeben" VSHIFT="11">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...weil unser Thread-Framework
|
|
</p>
|
|
<p>
|
|
tatsächlich <i>erzwingt,</i> daß der neue Thrad zu laufen beginnt, bevor die
|
|
</p>
|
|
<p>
|
|
startende Funktion zurückkehrt.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Daher können wir zumindest annehmen, daß die ganze Initialisierung
|
|
</p>
|
|
<p>
|
|
bereits läuft, wenn die start()-Funktion mit true (Erfolg) zurückkommt.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Allerdings ist <i>definitiv</i> ein Race gegeben, und wenn
|
|
</p>
|
|
<p>
|
|
direkt beim Starten anderer Subsysteme nach dem GUI etwas schiefläuft,
|
|
</p>
|
|
<p>
|
|
dann kann der Shutdown-Prozeß den Start des GUI überholen.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484797646771" HGAP="44" ID="ID_1605520996" MODIFIED="1493752929690" TEXT="Ausgestaltung" VSHIFT="10">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1501859455212" ID="ID_751494565" MODIFIED="1501859459286" TEXT="Lebenszyklus">
|
|
<node CREATED="1484797663121" ID="ID_134980216" MODIFIED="1501776374364" TEXT="braucht Bus-Connection">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1484797863862" ID="ID_464230340" MODIFIED="1512926191620" TEXT="zum Controller machen">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1484797872109" ID="ID_1877007933" MODIFIED="1484797877960" TEXT="Controller ist Tangible"/>
|
|
<node CREATED="1484797878364" ID="ID_93289471" MODIFIED="1484797887414" TEXT="hat damit automatisch BusTerm"/>
|
|
<node CREATED="1484799604429" ID="ID_1141687282" MODIFIED="1512926191621" TEXT="Design-Problem: sinnvolles Diff">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1484799625306" ID="ID_443020211" MODIFIED="1484799632496" TEXT="aus den Fingern saugen">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1484799634233" ID="ID_1600517820" MODIFIED="1484799642178" TEXT="nur implementation-reuse">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1484799675388" HGAP="29" ID="ID_228932182" MODIFIED="1484799693431" TEXT="Idee: Attribute?" VSHIFT="18">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484876010871" ID="ID_175784507" MODIFIED="1484876038858" 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="1484875940799" TEXT="nein">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484875946312" ID="ID_271363232" MODIFIED="1512926191621" TEXT="ist ein BusTerm">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1484875959342" ID="ID_1202046492" MODIFIED="1484875967689" TEXT="nur unidirektional zum Bus verbunden"/>
|
|
<node CREATED="1484875968557" ID="ID_1406569407" MODIFIED="1484875989502" TEXT="ist hier genau angemessen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484875972588" ID="ID_1887863793" MODIFIED="1484875984841" TEXT="damit kann der Service mit dem UI reden">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484799525344" ID="ID_640788614" MODIFIED="1512926191623" TEXT="muß sauber vom Nexus disconnecten">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#ff0000" CREATED="1484799538686" ID="ID_1136883698" MODIFIED="1484873804862" TEXT="tut es nicht">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1484799551220" ID="ID_496503271" MODIFIED="1484799585260" 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="1484800529641" TEXT="Sanity-Check in CoreService anpassen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...muß 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" ID="ID_375871642" MODIFIED="1512926191625" 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="1484802766354" TEXT="passiert beim Aufruf des TerminationHandle"/>
|
|
<node CREATED="1484802766966" ID="ID_370736554" MODIFIED="1484802805848">
|
|
<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="1512926191625" TEXT="Locking">
|
|
<icon BUILTIN="help"/>
|
|
<node COLOR="#338800" CREATED="1484865203945" ID="ID_1990023724" MODIFIED="1484866438758" TEXT="Locking in der GuiFacade ist korrekt">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484865231878" ID="ID_1054093321" MODIFIED="1484865240952" TEXT="im Gui-Thread kein Locking notwendig"/>
|
|
<node CREATED="1484865243724" ID="ID_617730067" MODIFIED="1484865273473" TEXT="HA! das Lambda vom Threadstart">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484865278999" ID="ID_1656236909" MODIFIED="1512926191627" TEXT="aufgeklärt">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1484865298093" ID="ID_1797078596" MODIFIED="1484865314802">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
die <i>Closure</i> eines Lambdas hängt am Kontext
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1484865316147" ID="ID_687373412" MODIFIED="1484865348826" TEXT="wenn ich den Thread mit Lambda starte..."/>
|
|
<node CREATED="1484865349366" ID="ID_652410738" MODIFIED="1484865350930" TEXT="betrifft das den term-Functor"/>
|
|
<node CREATED="1484865513568" ID="ID_696204655" MODIFIED="1484865622731" TEXT="selbst wenn der Funktor selber per Value übergeben wird">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
konkret:
|
|
</p>
|
|
<p>
|
|
der Kontext ist hier nämlich ein anderes Lambda, das dem Aufruf des GUI-Plugins mitgegeben wurde.
|
|
</p>
|
|
<p>
|
|
Dagegen die alte Lösung erzeugte an dieser Stelle einen Bind-Ausdruck, und das war offenbar genug,
|
|
</p>
|
|
<p>
|
|
um nicht mehr von dem direkten Kontext abhängig zu sein, in dem der Thread gestartet wurde.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Denn dieser Kontext (auf dem Stack) ist natürlich lange schon weg, wenn der Thread
|
|
</p>
|
|
<p>
|
|
terminiert und dann tatsächlich den Fuktor aufrufen möchte
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484800741349" ID="ID_1156360682" MODIFIED="1512926191627">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Debug: nur <b>ein</b> Element connected
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1484800781408" ID="ID_183164357" MODIFIED="1484875241862" TEXT="nämlich der NotificationService">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484875214137" ID="ID_977859942" MODIFIED="1484875237383" TEXT="nein: das ist genau OK">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484875222128" ID="ID_1133941591" MODIFIED="1484875235519" TEXT="CoreService ist nicht bidirektional angebunden">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484876114521" ID="ID_1082250595" MODIFIED="1501778463955" TEXT="Protokoll zur Kommunikation">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484876122960" ID="ID_31825421" MODIFIED="1514829311463" TEXT="UI-Bus nur im GUI-Thread">
|
|
<arrowlink COLOR="#6c5f80" DESTINATION="ID_489078622" ENDARROW="Default" ENDINCLINATION="289;0;" 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;"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1484876143949" ID="ID_558559630" MODIFIED="1484876153688" TEXT="muß Nachrichten explizit übergeben"/>
|
|
<node CREATED="1484876154492" ID="ID_669377427" MODIFIED="1484876157575" TEXT="an Locking denken"/>
|
|
</node>
|
|
<node CREATED="1484797900185" ID="ID_1895372084" MODIFIED="1501804741957" TEXT="Protokoll zum Schließen">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1484797920846" ID="ID_472054508" MODIFIED="1484797941875" TEXT="sollte Nachricht auf dem Bus sein">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1484797928661" ID="ID_256413655" MODIFIED="1484797937983" TEXT="sollte in das bestehende Protokoll passen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1501791850068" ID="ID_1334285372" MODIFIED="1501791858194" TEXT="paßt aber nicht wirklich">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1501791881175" ID="ID_361179647" MODIFIED="1501791886888" TEXT="jede Lösung willkürlich"/>
|
|
<node CREATED="1501791876032" ID="ID_381137803" MODIFIED="1511572071083" TEXT="logisch unsinnig">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
weil die Abstraktion "UI-Element" 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> dar,
|
|
</p>
|
|
<p>
|
|
und ihre <i>"Methoden"</i> sind Commands auf der Session!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501859470962" ID="ID_99706930" MODIFIED="1501866697132">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
muß eigens <b>aktiviert</b> 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="1501859565584" TEXT="nach Start der UI-Loop"/>
|
|
<node CREATED="1501859566837" ID="ID_984712012" MODIFIED="1501859722645" 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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484797808349" HGAP="31" ID="ID_389264738" MODIFIED="1502410520715" STYLE="fork" TEXT="Notification-Funktionen" VSHIFT="11">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1501854084264" HGAP="-42" ID="ID_1333991907" MODIFIED="1502410699395" TEXT="allgemein...." VSHIFT="-60">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1501854094710" ID="ID_1146157818" MODIFIED="1502410495975" 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="1502403195803" TEXT="Lebenszyklus"/>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1502411488645" ID="ID_1875294174" MODIFIED="1503670612731" TEXT="Fehler">
|
|
<linktarget COLOR="#9c7088" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1260;-183;" ID="Arrow_ID_245240331" SOURCE="ID_1177399909" STARTARROW="None" STARTINCLINATION="285;0;"/>
|
|
<icon BUILTIN="flag-pink"/>
|
|
<node CREATED="1502411559060" ID="ID_1282973269" MODIFIED="1502411569102" TEXT="GTK nicht exception-safe">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1502411571690" ID="ID_878676751" MODIFIED="1502411590626" TEXT="aber was tun wenn....">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1503444108091" ID="ID_725326352" MODIFIED="1503444143873" TEXT="loggen und weitermachen"/>
|
|
<node CREATED="1503444117593" ID="ID_1115027114" MODIFIED="1503444138305" TEXT="loggen, Fehlerlog-Widget, weitermachen"/>
|
|
<node CREATED="1503444163706" ID="ID_577766875" MODIFIED="1503444173189" TEXT="UI-Reset"/>
|
|
<node CREATED="1503444173752" ID="ID_65458957" MODIFIED="1503444180979" TEXT="(emergency)-shutdown"/>
|
|
</node>
|
|
<node CREATED="1502411595263" ID="ID_58102462" MODIFIED="1502411601354" TEXT="Fallunterscheidung">
|
|
<node CREATED="1502411604054" ID="ID_1705249614" MODIFIED="1502411612160" TEXT="Notify harmlos"/>
|
|
<node CREATED="1502411612700" ID="ID_1951009863" MODIFIED="1502411616783" TEXT="Diff darf nicht scheitern">
|
|
<node CREATED="1503670572980" ID="ID_599888416" MODIFIED="1503670583376" TEXT="einzige Ausnahme">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1503670585794" ID="ID_1806860698" MODIFIED="1503670628324" TEXT="speziellen Hanlder 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="1504203560474" TEXT="TODO">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1504203570199" ID="ID_577706469" MODIFIED="1504203584451" TEXT="welche Fehler kann Diff-Anwendung werfen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504203562616" ID="ID_1637738213" MODIFIED="1504203591430" TEXT="in generischen Diff-Aufruf einbauen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1503443968096" ID="ID_986919353" MODIFIED="1503443976682" TEXT="Implementierungs-Muster">
|
|
<node CREATED="1503443979619" ID="ID_1673104600" MODIFIED="1503670547573" TEXT="jedes einzelne Lambda in Fehlerhandler wrappen">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1503443999616" ID="ID_601042478" MODIFIED="1503670545265" TEXT="generischer Fehlerhandler im Invocation-Lambda">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1503670528386" ID="ID_376091136" MODIFIED="1504203640715" 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 CREATED="1484797813373" ID="ID_536855363" MODIFIED="1502403195803" TEXT="generische Nachricht"/>
|
|
<node CREATED="1484797818780" ID="ID_354397333" MODIFIED="1502403195803" TEXT="state mark">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1484877574046" ID="ID_251939815" MODIFIED="1502403195803" TEXT="Error">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1484877577550" ID="ID_258243919" MODIFIED="1502403195803" TEXT="Note">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504203488690" ID="ID_149796171" MODIFIED="1504203524991" TEXT="Fehlermeldungen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1504203497529" ID="ID_1933339677" MODIFIED="1504203640716" TEXT="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="bell"/>
|
|
<node CREATED="1504203643550" ID="ID_764647453" MODIFIED="1504203654288" TEXT="via InteractionDirector ansprechen"/>
|
|
<node CREATED="1504203694423" ID="ID_812129962" MODIFIED="1504203738686">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Fehlerlog-Anzeige <i>vorlä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>
|
|
<node CREATED="1504203511199" ID="ID_1027795869" MODIFIED="1504203521345" TEXT="Nachricht per UI-Bus senden"/>
|
|
</node>
|
|
<node CREATED="1484797822403" ID="ID_364545191" MODIFIED="1502600252607" TEXT="Diff">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1502401930856" ID="ID_634125084" MODIFIED="1512926191629" 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="1502600145767" TEXT="unnötig: zwei Abstraktions-Typen">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1502410126058" ID="ID_30550435" MODIFIED="1502600145767" TEXT="MutationMessage"/>
|
|
<node CREATED="1502410130889" ID="ID_1402431306" MODIFIED="1502600145767" TEXT="DiffMessage"/>
|
|
</node>
|
|
<node CREATED="1502410149463" ID="ID_1909971032" MODIFIED="1512926191629" TEXT="Entscheidung für DiffMessage">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1502599977964" ID="ID_249258988" MODIFIED="1502599992798" TEXT="ist das bessere Konzept"/>
|
|
<node CREATED="1502599993338" ID="ID_1306432135" MODIFIED="1502600003260" TEXT="abstrahierter Iterator">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502600004168" ID="ID_1865027243" MODIFIED="1502600026244" TEXT="aber Name »MutationMessage« beibehalten">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502410165980" ID="ID_1450795292" MODIFIED="1502600145767" TEXT="MutationMessage entfernen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502410176619" ID="ID_1188430411" MODIFIED="1502600145767" TEXT="AbstractTangible_test umschreiben"/>
|
|
<node CREATED="1502410190737" ID="ID_1036564813" MODIFIED="1502600145767" TEXT="operator string() in DiffMessage übernehmen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das ist nützlich zur Diagnose,
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
aber läßt sich das überhaupt auf IterSource übertragen?
|
|
</li>
|
|
<li>
|
|
war es überhaupt je gerechtferigt? zu starke Annahme über den Diff-Erzeuger!
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1502410328279" ID="ID_1577461232" MODIFIED="1502600145767" TEXT="Tree-Diff-Aplikator direkt in Nexus verschieben"/>
|
|
<node CREATED="1502410351284" ID="ID_845679527" MODIFIED="1502600145767" TEXT="BusTerm-API ändern"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484799660822" ID="ID_1288003894" MODIFIED="1502410724019" TEXT="TreeMutator binden">
|
|
<node CREATED="1502410730274" ID="ID_1631270974" MODIFIED="1502410738148" TEXT="passiert bisher in MutationMessage"/>
|
|
<node CREATED="1502410738992" ID="ID_1626925051" MODIFIED="1502410751111" TEXT="direkt in den Nexus verschieben">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484877585605" ID="ID_101718446" MODIFIED="1502403195803" TEXT="verwende MutationMessage">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1502401956093" ID="ID_322700967" MODIFIED="1502454616016" TEXT="MutationMessage von DiffMessage erzeugen">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1502454601603" ID="ID_384770680" MODIFIED="1502454613220" TEXT="nein: MutationMessage wird überflüssig">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1502401987033" ID="ID_1584846573" MODIFIED="1514342136914" TEXT="erfordert Festlegung der Natur der Diff Message">
|
|
<arrowlink COLOR="#bdbad3" DESTINATION="ID_89098030" ENDARROW="Default" ENDINCLINATION="821;-1406;" ID="Arrow_ID_554743885" STARTARROW="None" STARTINCLINATION="1459;870;"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1502402004383" ID="ID_1491065212" MODIFIED="1502403195803" TEXT="generisch bleiben?">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1502402012558" ID="ID_1846096533" MODIFIED="1512926191635" 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" ID="ID_286774751" MODIFIED="1502403195804" TEXT="Diskussion">
|
|
<node CREATED="1502402022580" ID="ID_1661331763" MODIFIED="1502403195804" TEXT="Pro">
|
|
<node CREATED="1502402025820" ID="ID_1076820802" MODIFIED="1502403195804" TEXT="bestehende Framework"/>
|
|
<node CREATED="1502402031275" ID="ID_104571481" MODIFIED="1502403195804" TEXT="ownership management"/>
|
|
<node CREATED="1502402038690" ID="ID_921191865" MODIFIED="1502403195804" TEXT="schlankes Interface"/>
|
|
<node CREATED="1502402049305" ID="ID_20073652" MODIFIED="1502403195804" TEXT="eigentliche Diff-Erzeugung bleibt offen"/>
|
|
</node>
|
|
<node CREATED="1502402071222" ID="ID_905919540" MODIFIED="1502403195804" TEXT="Con">
|
|
<node CREATED="1502402075413" ID="ID_913770531" MODIFIED="1502403195804" TEXT="Komplexität"/>
|
|
<node CREATED="1502402086268" ID="ID_380041258" MODIFIED="1512927037805" TEXT="zusätzliche Indirektion">
|
|
<node CREATED="1502402254582" ID="ID_218820320" MODIFIED="1502403195804" TEXT="DiffMutable beim Empfänger"/>
|
|
<node CREATED="1502402499053" ID="ID_587801464" MODIFIED="1502403195804" TEXT="TreeMutator beim Empfänger"/>
|
|
<node CREATED="1502402266284" ID="ID_1573858698" MODIFIED="1502403195804" TEXT="IterSource<DiffStep> beim Generator"/>
|
|
<node CREATED="1502402516275" ID="ID_334129744" MODIFIED="1502403195804">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
ist schon <i>schlimm </i>genug....
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502402213139" ID="ID_1233670694" MODIFIED="1512927037804" TEXT="nicht C-kompatibel">
|
|
<node CREATED="1502402286425" ID="ID_683015958" MODIFIED="1502403195804" TEXT="ja mei...">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1502402291209" ID="ID_1962599608" MODIFIED="1502403195804" TEXT="aber kö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ß hier <i>ownership </i>übertragen wird.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1502402370534" ID="ID_1923477219" MODIFIED="1502403195804" TEXT="es geht hier um C++ (Proc) <-> C++ (GUI)"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502402701106" ID="ID_510901772" MODIFIED="1502403195804" TEXT="Abwägung">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1502402718496" ID="ID_1641881714" MODIFIED="1502403195804" TEXT="mir gefällt die Lösung zum ownerhsip management"/>
|
|
<node CREATED="1502402735558" ID="ID_1883129099" MODIFIED="1502403195804" TEXT="halte das für eine gute Implementierungs-Struktur..."/>
|
|
<node CREATED="1502402757163" ID="ID_1525377159" MODIFIED="1502403195805" TEXT="denn der Client ist quasi gezwungen, den Erzeugungs-Kontext herauszuabstrahieren"/>
|
|
<node CREATED="1502402778960" ID="ID_577811618" MODIFIED="1502403195805" TEXT="Indirektion/Komplexität">
|
|
<node CREATED="1502402798909" ID="ID_813337624" MODIFIED="1502403195805" TEXT="zählt nicht wirklich, denn.."/>
|
|
<node CREATED="1502402810620" ID="ID_439896117" MODIFIED="1502403195805" TEXT="mit dem Diff-Konzept habe ich das bereits akzeptiert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
nämlich
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
ein sehr theoretisches und anspruchsvolles Konzept
|
|
</li>
|
|
<li>
|
|
der Zwang, das auf jedem Empfänger umzusetzen
|
|
</li>
|
|
<li>
|
|
die hablseidene Trickserei mit der konkreten Puffergröß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="1502403195805">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das wird <i>sowiso</i> ein Desaster
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="smiley-oh"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502402830713" ID="ID_1666981219" MODIFIED="1502403195805" TEXT="was zählt, ist die Entkoppelung"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502403145431" ID="ID_636092614" MODIFIED="1502600122305" 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="1512926191638" TEXT="Vorsicht: Storage / GUI-Thread">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1484877696486" ID="ID_476867583" MODIFIED="1484877708576" TEXT="wir müssen jede Aktion in den Event-Thread übergeben"/>
|
|
<node CREATED="1484877711388" ID="ID_407918505" MODIFIED="1484877730584">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt, die Diff-<b>Implementierung</b> muß länger leben
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1484877731337" ID="ID_1859059266" MODIFIED="1484877761556">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
faktisch erfolgt somit ein <b>Callback</b> aus einem anderen Thread
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1484877743992" ID="ID_680582075" MODIFIED="1484877751765">
|
|
<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="1512926191638" TEXT="Refactoring">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502459182214" ID="ID_1601884743" MODIFIED="1502459221104" TEXT="MutationMessage wird überflüssig">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1502459190477" ID="ID_102437369" MODIFIED="1502459223854" TEXT="DiffMessage übernimmt deren Rolle">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502459198611" ID="ID_1739527989" MODIFIED="1502600170050" TEXT="aber DiffMessage wird umbenannt in MutationMessage">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493753249399" HGAP="75" ID="ID_1023343635" MODIFIED="1502411050829" TEXT="#1098 hand-over in UI-Thread" VSHIFT="61">
|
|
<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="#b27176" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="21;233;" ID="Arrow_ID_1372135725" SOURCE="ID_995145542" STARTARROW="None" STARTINCLINATION="237;0;"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1501804992301" ID="ID_1647263044" MODIFIED="1501804997702" TEXT="schedule event"/>
|
|
<node CREATED="1501804985286" ID="ID_320977714" MODIFIED="1501804991521" TEXT="GTK-Mechanismus">
|
|
<node CREATED="1501850591393" ID="ID_1831316800" MODIFIED="1501850596037" TEXT="Glib::Dispatcher"/>
|
|
<node CREATED="1501850603736" ID="ID_1030340631" MODIFIED="1501850612690" TEXT="im UI-Thread erzeugen und binden"/>
|
|
<node CREATED="1501850614630" ID="ID_196299293" MODIFIED="1501850630152" TEXT="emit() -> event im UI-Thread"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501850632636" ID="ID_431682708" MODIFIED="1501850676730" TEXT="technische Probleme">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1501850684373" ID="ID_1688212376" MODIFIED="1511572071164" 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="1501850773035" TEXT="jede Facade-Funktion brauch einen Dispatcher">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1501850863525" ID="ID_1439490807" MODIFIED="1501850866985" TEXT="das wird eine Menge"/>
|
|
<node CREATED="1501850867597" ID="ID_141225152" MODIFIED="1501850875439" TEXT="alle Dispatcher haben eine gemeinsame Queue"/>
|
|
<node CREATED="1501850880179" ID="ID_745997733" MODIFIED="1501850886414" TEXT="mögliche contention-Probleme"/>
|
|
</node>
|
|
<node CREATED="1501850690748" ID="ID_1995715844" MODIFIED="1501850702335" TEXT="Erzeugen der Dispatcher">
|
|
<node CREATED="1501850920950" ID="ID_1529426036" MODIFIED="1501850931016" TEXT="muß im UI-Thread erfolgen"/>
|
|
<node CREATED="1501850933596" ID="ID_620574396" MODIFIED="1501850943056">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>bevor</i> die Facade geöffnet wir
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501850677790" ID="ID_1195250454" MODIFIED="1501850958231" TEXT="Argumentübergabe">
|
|
<node CREATED="1501850716049" ID="ID_104637334" MODIFIED="1501850724155" TEXT="emit() ist void(void)"/>
|
|
<node CREATED="1501850734414" ID="ID_994424125" MODIFIED="1501850745786">
|
|
<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="1501850982429">
|
|
<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="1501867252021">
|
|
<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" ID="ID_1257499857" MODIFIED="1501951450697" TEXT="Helper: CallQueue">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1501938715247" ID="ID_1286525769" MODIFIED="1501938725574" TEXT="simplistic">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1501938699841" ID="ID_1077640328" MODIFIED="1501938704702" TEXT="std::function"/>
|
|
<node CREATED="1501938690626" ID="ID_353231581" MODIFIED="1501938729247" TEXT="thread safe queue"/>
|
|
<node CREATED="1501938705321" ID="ID_1924064403" MODIFIED="1501938711076" TEXT="lambdas für Argument-binding"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1501938776839" ID="ID_1031878628" MODIFIED="1502385810866" TEXT="Convenience-Wrapper">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1501939110138" ID="ID_203135379" MODIFIED="1502385815083" TEXT="Lambda konstruieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1501939132431" ID="ID_1400757157" MODIFIED="1502385817834" TEXT="Funktion zum Triggern">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1501939149837" ID="ID_1733976265" MODIFIED="1502385820938" TEXT="diese an Glib::Dispatcher binden">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1502404797300" ID="ID_1177399909" MODIFIED="1503670612731" TEXT="Exceptions fangen">
|
|
<arrowlink COLOR="#9c7088" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1260;-183;" ID="Arrow_ID_245240331" STARTARROW="None" STARTINCLINATION="285;0;"/>
|
|
<icon BUILTIN="flag-pink"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501939174506" ID="ID_504999068" MODIFIED="1501939191040" TEXT="in NotificationService integrieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1502375098210" ID="ID_581509556" MODIFIED="1502375109992" STYLE="fork" TEXT="als PImpl">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1502375146395" ID="ID_144811928" MODIFIED="1502378036357" TEXT="CallQueue einrichten">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1502375120551" ID="ID_1281399419" MODIFIED="1502385766022" TEXT="Glib::Dispatcher verwenden">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1502375134501" ID="ID_1011463592" MODIFIED="1502375142424" TEXT="Aufrufe in Lamdas verpacken"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502375294344" ID="ID_640199096" MODIFIED="1512926191642" TEXT="Spezialbehandlung für Shutdown">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502375312469" ID="ID_1075926054" MODIFIED="1502390553943" TEXT="ironischerweise...">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...könnte das am Ende nicht sinnvoll sein,
|
|
</p>
|
|
<p>
|
|
speziell den UI-Shutdown-Trigger über den neuen Mechanismus laufen zu lassen,
|
|
</p>
|
|
<p>
|
|
obwohl jener doch genau der Anlaß war, diesen neuen Mechanismus zu bauen.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1502390322659" ID="ID_194166182" MODIFIED="1502390333142" TEXT="den neuen Dispatcher nutzen?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1502390340193" ID="ID_1491902996" MODIFIED="1502390520900" TEXT="Con">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1502390353887" ID="ID_1015749080" MODIFIED="1502390399552">
|
|
<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="1502390450088">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wenn UI-Thread blockt/verhungert,
|
|
</p>
|
|
<p>
|
|
kommt der rettende Shutdown <i>gar nicht</i> durch
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502390334890" ID="ID_1454460947" MODIFIED="1502390517936" TEXT="Pro">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502390463664" ID="ID_1786963429" MODIFIED="1502390472955" TEXT="einfach zu implementieren"/>
|
|
<node CREATED="1502390473567" ID="ID_1776620772" MODIFIED="1502390484658" TEXT="alle Glib::Dispatcher nutzen die gleiche Pipe"/>
|
|
<node CREATED="1502390485294" ID="ID_146294589" MODIFIED="1502390506006" TEXT="...d.h. echte Alternative müßte aufwendig zu Fuß programmiert werden"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502390572106" ID="ID_1872668444" MODIFIED="1502390580973" TEXT="zusätzlich noch eine Benachrichtigung">
|
|
<node CREATED="1502390583289" ID="ID_741614829" MODIFIED="1502390877875" TEXT="an die UI-Nachrichtenbox">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1502390886681" ID="ID_985994192" MODIFIED="1502390895409" TEXT="führe Benachrichtiguns-Level ein">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502390603674" ID="ID_125356908" MODIFIED="1502390862378" 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="hourglass"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501939193031" HGAP="3" ID="ID_1045913810" MODIFIED="1502600236002" TEXT="Test" VSHIFT="20">
|
|
<icon BUILTIN="bell"/>
|
|
<node COLOR="#338800" CREATED="1501939204166" ID="ID_383444966" MODIFIED="1502075950777" TEXT="CallQueue_test">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1501946847700" ID="ID_1917302142" MODIFIED="1501951434466" TEXT="basic">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1501946852555" ID="ID_1617455971" MODIFIED="1501951436667" TEXT="mehrere">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1501946856587" ID="ID_1780067399" MODIFIED="1502075941722" TEXT="Streß">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501939212693" ID="ID_1007296291" MODIFIED="1502075967876" TEXT="#1099 DemoGuiRoundtrip">
|
|
<linktarget COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" SOURCE="ID_1925240675" STARTARROW="None" STARTINCLINATION="-51;592;"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1501939235834" ID="ID_1160414548" MODIFIED="1501939239653" TEXT="Menü-Eintrag"/>
|
|
<node CREATED="1501939240217" ID="ID_325602880" MODIFIED="1501939252187" TEXT="triggert Proc-Command"/>
|
|
<node CREATED="1501939252991" ID="ID_31140909" MODIFIED="1501939261802" TEXT="dieses sendet Mark zurück"/>
|
|
<node CREATED="1501939263030" ID="ID_381890207" MODIFIED="1501939271161" TEXT="ein Widget im UI reagiert">
|
|
<node CREATED="1504200793444" ID="ID_340215113" MODIFIED="1506957535426" TEXT="mißbrauche InfoBox">
|
|
<arrowlink COLOR="#f5dd67" DESTINATION="ID_19179662" ENDARROW="Default" ENDINCLINATION="743;-1563;" ID="Arrow_ID_1195014928" STARTARROW="None" STARTINCLINATION="-452;605;"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504200974955" ID="ID_1182589184" MODIFIED="1504200979244" TEXT="neues Dock">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1504203667130" ID="ID_1745777873" MODIFIED="1512927037804" TEXT="vorläufig Empfänger für Fehler-Log">
|
|
<linktarget COLOR="#7893b2" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="-499;-464;" ID="Arrow_ID_1590510093" SOURCE="ID_812129962" STARTARROW="None" STARTINCLINATION="808;0;"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1504203746239" ID="ID_697660682" MODIFIED="1504203776630" TEXT="Scroll-Pane">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1504203749815" ID="ID_1057483680" MODIFIED="1512927037819" STYLE="fork" TEXT="Textanzeige-Box">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1504215911647" ID="ID_1066629131" MODIFIED="1504215914707" TEXT="GtkTextView"/>
|
|
<node CREATED="1504215958961" ID="ID_55797578" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-buffer.html.en#textview-formatting" MODIFIED="1504215966443" TEXT="Formattierung">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1504219859389" ID="ID_653669269" MODIFIED="1512927037836" TEXT="Scrollen zum zuletzt eingefü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="1504220211965" TEXT="scroll_to(iterator) funktioniert nicht">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
<node CREATED="1504220198880" ID="ID_1877499848" MODIFIED="1504220208979" TEXT="muß Marke verwenden">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504216221389" ID="ID_355253225" MODIFIED="1512927037836" TEXT="Marks">
|
|
<node CREATED="1504216224349" ID="ID_1372118244" MODIFIED="1504216245727" TEXT="was ist die "insert"-Mark?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1504219835536" ID="ID_1720205947" MODIFIED="1504219841735" TEXT="der Text-Cursor">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504203763606" ID="ID_877984616" MODIFIED="1504306254735" TEXT="in ein Widget verpacken">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1504203754175" ID="ID_580465154" MODIFIED="1504203763065" TEXT="Fehler-Level erkennen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1484797684438" HGAP="21" ID="ID_932852399" MODIFIED="1511572071215" TEXT="GUI-Shutdown implementieren" VSHIFT="13">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
bisher können wir das GUI nur <i>aktiv intern</i> schließen,
|
|
</p>
|
|
<p>
|
|
indem wir ein GTK-Signal erzeugen, das das Hauptfenster schließt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1485116867963" ID="ID_1146024699" MODIFIED="1512926191643" TEXT="bisher kann man nur das Fenster schließen">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1485116884925" ID="ID_296160451" MODIFIED="1485116898396" TEXT="wie funktioniert das?">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1485116901507" ID="ID_1272809751" MODIFIED="1501781674936" TEXT="WindowManager">
|
|
<node COLOR="#338800" CREATED="1485126609878" ID="ID_649614174" MODIFIED="1501781754252" TEXT="#1064 investigate WindowManager lifecycle">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485116921072" ID="ID_1191743111" MODIFIED="1485116925722" TEXT="close Action"/>
|
|
</node>
|
|
<node CREATED="1484797749237" ID="ID_1654016697" MODIFIED="1501804599526" TEXT="wie kann man GTK-UI explizit schließen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1501777017858" ID="ID_842367237" MODIFIED="1501804594790" 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" ID="ID_1740926324" MODIFIED="1512926191646" TEXT="wie signalisieren wir das">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1501781461059" ID="ID_1041497316" MODIFIED="1501781480827" TEXT="wie den UiManager erreichen?">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1501781776041" ID="ID_1345710498" MODIFIED="1501804609188" TEXT="magische Nachricht?">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1501782361331" ID="ID_1281813611" MODIFIED="1501782375842" TEXT="an wen addressieren?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1501782381185" ID="ID_427836826" MODIFIED="1501782397203" TEXT="muß sinnvoll sein">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1501782399454" ID="ID_1238852873" MODIFIED="1501782403225" TEXT="InteractionDirector"/>
|
|
<node CREATED="1501784310336" ID="ID_455705917" MODIFIED="1501784323253" TEXT="was für eine Nachricht?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1501784324670" ID="ID_202531654" MODIFIED="1501784331185" TEXT="muß in das Protokoll passen"/>
|
|
<node CREATED="1501784333946" ID="ID_238263434" MODIFIED="1501784338936" TEXT="sollte nicht willkürlich sein"/>
|
|
<node CREATED="1501804506790" ID="ID_985808643" MODIFIED="1501804512731" TEXT="gibts nicht">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501781769834" ID="ID_1836544616" MODIFIED="1501866470036" TEXT="direktes Wiring?">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1501866473852" ID="ID_1346430403" MODIFIED="1501866480351" TEXT="direkt den UiManager aufrufen"/>
|
|
<node CREATED="1501866480963" ID="ID_361033579" MODIFIED="1501866493949" TEXT="dazu die NotificationFacade verschoben"/>
|
|
<node CREATED="1501866494441" ID="ID_540781053" MODIFIED="1501866503828" TEXT="wird jetzt vom UiManager gemanaged"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501792024717" ID="ID_1914400893" MODIFIED="1501792029128" TEXT="wer ist "wir"?">
|
|
<node CREATED="1501792033763" ID="ID_1293774586" MODIFIED="1501792040334" TEXT="der Subsystem-Lebenszyklus"/>
|
|
<node CREATED="1501792041586" ID="ID_1326580750" MODIFIED="1501792051136" TEXT="sonst geht das Niemanden was an!">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1501792062904" ID="ID_181717876" MODIFIED="1501792067954" TEXT="Subsysteme sind autark"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501792086244" ID="ID_233471026" MODIFIED="1501804923768" TEXT="wir wollen keine globale Ebene">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das war genau der Kern der "Plugin-Debatte".
|
|
</p>
|
|
<p>
|
|
Eine solche globale, flache, dynamisch gebundene Ebene
|
|
</p>
|
|
<p>
|
|
klingt nach <i>wahnsinnigen Möglichkeiten</i>, aber nur solange, bis man sich
|
|
</p>
|
|
<p>
|
|
eine einzige Funktion konkret durchdenkt: es lä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" HGAP="33" ID="ID_1925973923" MODIFIED="1502411078588" TEXT="Mechanismus zum Schließen" VSHIFT="6">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1484797911392" ID="ID_286857196" MODIFIED="1502411023176" 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;"/>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1502410904331" ID="ID_995145542" MODIFIED="1502411058612" TEXT="brauche Dispatch in UI event-Thread">
|
|
<arrowlink COLOR="#b27176" 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="1502375273163" TEXT="Zugang zum UiManager">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502375214162" ID="ID_267170664" MODIFIED="1502375240978" TEXT="durch direkte Verdrahtung">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1502375221129" ID="ID_368784036" MODIFIED="1511572071248" TEXT="dies mö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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488419591265" HGAP="75" ID="ID_471609909" MODIFIED="1502411222558" VSHIFT="14">
|
|
<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" HGAP="23" ID="ID_392996871" MODIFIED="1512926191653" 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="1485118676149" TEXT="WindowManager verwendet gtk::Main"/>
|
|
<node CREATED="1485118677425" ID="ID_1952311126" MODIFIED="1485118685915" TEXT="genau, um die Applikation runterzufahren"/>
|
|
<node CREATED="1485124031945" ID="ID_329247026" MODIFIED="1493753799315" TEXT="Gtk::Application">
|
|
<node CREATED="1485124038768" ID="ID_764043255" MODIFIED="1485124045970" TEXT="ist kein Singleton"/>
|
|
<node CREATED="1485124046775" ID="ID_505212945" MODIFIED="1485124051706" TEXT="hat keinen public ctor"/>
|
|
<node CREATED="1485124052149" ID="ID_799710500" MODIFIED="1485124060680" TEXT="mit create erstellt -> smart ptr"/>
|
|
<node CREATED="1485124063732" ID="ID_1584553859" MODIFIED="1493753804619" TEXT="erbt von Gio::Application">
|
|
<node CREATED="1485124070131" ID="ID_1720443251" MODIFIED="1485124077430" TEXT="wrappt g_application"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485124084465" ID="ID_660066920" MODIFIED="1493753807869" TEXT="how-to">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1485124094936" ID="ID_1446212765" MODIFIED="1493753811609" TEXT="offiziell">
|
|
<node CREATED="1485124098920" ID="ID_1783958965" MODIFIED="1485124109274" TEXT="auto app = Application::create"/>
|
|
<node CREATED="1485124111806" ID="ID_231977368" MODIFIED="1485124114842" TEXT="app->run"/>
|
|
</node>
|
|
<node CREATED="1485124120220" ID="ID_1639025787" MODIFIED="1493753819786" TEXT="von Application erben">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1485124129436" ID="ID_1540860407" MODIFIED="1485124141373" TEXT="laut Quellcode spricht nichts dagegen"/>
|
|
<node CREATED="1485124142178" ID="ID_1048261084" MODIFIED="1487275489352" TEXT="man sollte aber keine Methoden überschreiben">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nur eine <i>heuristische </i>Vermutung von mir
|
|
</p>
|
|
<p>
|
|
stützt sich auf folgenden Quellcode
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Application::Application(const Glib::ustring& application_id, Gio::ApplicationFlags flags)
|
|
</p>
|
|
<p>
|
|
:
|
|
</p>
|
|
<p>
|
|
  // Mark this class as non-derived to allow C++ vfuncs to be skipped.
|
|
</p>
|
|
<p>
|
|
  //Note that GApplication complains about "" but allows NULL (0), so we avoid passing "".
|
|
</p>
|
|
<p>
|
|
  Glib::ObjectBase(0),
|
|
</p>
|
|
<p>
|
|
  Gio::Application(Glib::ConstructParams(custom_class_init(), "application_id", (application_id.empty() ? 0 : application_id.c_str()), "flags", GApplicationFlags(flags), static_cast<char*>(0))),
|
|
</p>
|
|
<p>
|
|
  m_argc(0),
|
|
</p>
|
|
<p>
|
|
  m_argv(0)
|
|
</p>
|
|
<p>
|
|
{
|
|
</p>
|
|
<p>
|
|
  gtk_init(0, 0);
|
|
</p>
|
|
<p>
|
|
}
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485124284856" ID="ID_473768869" MODIFIED="1493754788426" TEXT="Windows selber managen">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1485124296582" ID="ID_628648705" MODIFIED="1485124304593" TEXT="gtk::Application verwaltet Fensterliste"/>
|
|
<node CREATED="1485124305157" ID="ID_1632068669" MODIFIED="1485124313311" TEXT="schließt sich automatisch, wenn das letzte Fenster zu ist"/>
|
|
<node CREATED="1485124315795" ID="ID_178656069" MODIFIED="1485124323478" TEXT="unser WindowManager macht das Gleiche"/>
|
|
</node>
|
|
<node CREATED="1493754789137" ID="ID_1903744710" MODIFIED="1493754798120" TEXT="kommt mir komisch vor">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1493754799439" ID="ID_288205807" MODIFIED="1493754807738" TEXT="das "riecht" nach Framework"/>
|
|
<node CREATED="1493754808373" ID="ID_998804989" MODIFIED="1493754817376" TEXT=""wir machen bequem alles für Sie"">
|
|
<node CREATED="1493759500422" ID="ID_378870766" MODIFIED="1493759546709" TEXT="macht mir Angst">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1493759504742" ID="ID_1800184805" MODIFIED="1493759508010" TEXT="Kontrollverlust">
|
|
<node CREATED="1493759564302" ID="ID_409429771" MODIFIED="1493759571785" TEXT="undurchsichtig"/>
|
|
<node CREATED="1493759572261" ID="ID_1741586689" MODIFIED="1493759580624" TEXT="mehrere Ebenen von Frameworks übereinander"/>
|
|
<node CREATED="1493759581123" ID="ID_1296466414" MODIFIED="1493759591685" TEXT="ich traue den Gnome-Leuten nicht über den Weg"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1493754820476" ID="ID_608560419" MODIFIED="1495218626709" TEXT="brauche ich überhaupt eine Gtk::Application">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1493756483852" ID="ID_1428028027" MODIFIED="1493756499302" TEXT="naja, man kann GTK zu Fuß verwenden"/>
|
|
<node CREATED="1493756499745" ID="ID_633405815" MODIFIED="1493756518682" TEXT="aber gtk::Application zeigt, wie"/>
|
|
<node CREATED="1493759629357" ID="ID_1297670007" MODIFIED="1493759644070" TEXT="gtk::Application">
|
|
<node CREATED="1493759644755" ID="ID_224674022" MODIFIED="1493759648790" TEXT="ist eine Window-Liste"/>
|
|
<node CREATED="1493759717704" ID="ID_697856504" MODIFIED="1493759739640" TEXT="initialisiert GTK, GLib, GIO"/>
|
|
<node CREATED="1493759649754" ID="ID_898599245" MODIFIED="1493759656269" TEXT="schließt, wenn letztes Fenster zu"/>
|
|
<node CREATED="1493759699387" ID="ID_1249589577" MODIFIED="1493759741629" TEXT="single application Instance"/>
|
|
<node CREATED="1493759656913" ID="ID_658938675" MODIFIED="1493759696623" TEXT="Desktop-Integration"/>
|
|
</node>
|
|
<node CREATED="1493759747148" ID="ID_1721295375" MODIFIED="1493760546219" TEXT="das kann ich doch zu Fuß auch machen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1495215099003" ID="ID_1971256545" MODIFIED="1495218634172" TEXT="brauche ich überhaupt eine Gio::Application">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1495215111775" ID="ID_1003964020" MODIFIED="1495215119282" TEXT="initialisiert das Framework"/>
|
|
<node CREATED="1495215119685" ID="ID_1761204495" MODIFIED="1495215128480" TEXT="stellt eine dBus-Verbindung her"/>
|
|
<node CREATED="1495215129564" ID="ID_973272722" MODIFIED="1495215147125" TEXT="ist eine gio::ActionGroup">
|
|
<node CREATED="1495215149281" ID="ID_1774523135" MODIFIED="1495215163883" TEXT="man kann Aktionen hinzufügen"/>
|
|
<node CREATED="1495215164279" ID="ID_1315941470" MODIFIED="1495215177034" TEXT="diese Arbeitet mit einem ApplicationWindow zusammen"/>
|
|
<node CREATED="1495215177478" ID="ID_250116811" MODIFIED="1495215190439" TEXT="beachte: nicht GtkWindow, sondern ApplicationWindow (Subclass)"/>
|
|
</node>
|
|
<node CREATED="1495215193500" ID="ID_503299515" MODIFIED="1495215207982" TEXT="Zweck (Vermutung)">
|
|
<node CREATED="1495215209066" ID="ID_1153171656" MODIFIED="1495215214357" TEXT="Desktop-Integration"/>
|
|
<node CREATED="1495215214824" ID="ID_1385031644" MODIFIED="1495215221132" TEXT="Grenzen der Applikation aufweichen"/>
|
|
<node CREATED="1495215221624" ID="ID_297065945" MODIFIED="1495215231226" TEXT="Aktionen direkt in den Desktiop integrieren"/>
|
|
</node>
|
|
<node CREATED="1495215237213" ID="ID_745229887" MODIFIED="1495215259353" TEXT="nichts von dem ist für uns relevant, manches davon stört">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1495218672747" HGAP="-13" ID="ID_1786316132" MODIFIED="1495218683283" TEXT="Beschluß" VSHIFT="15">
|
|
<icon BUILTIN="yes"/>
|
|
<node COLOR="#2f1d56" CREATED="1495218684994" ID="ID_101574501" MODIFIED="1495218819229" TEXT="vorerst defensiv vorgehen">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1495218699712" ID="ID_1332523704" MODIFIED="1495233774800" TEXT="den Code aus Gtk::Main in unsere Codebasis übernehmen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1495218714230" ID="ID_1371091843" MODIFIED="1495218730415" TEXT="Vorsicht mit Action / ActionGroup">
|
|
<node CREATED="1495218731435" ID="ID_1744881610" MODIFIED="1495218744350" TEXT="noch nicht deprecated"/>
|
|
<node CREATED="1495218744961" ID="ID_97034293" MODIFIED="1495218759875" TEXT="aber Ablösung durch Gio::SimpleAction geplant"/>
|
|
<node CREATED="1495218770694" ID="ID_644528853" MODIFIED="1495218798054" TEXT="Warnung: mit dem neuen Gtk::ApplicationWindow verkoppelt">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1485130302095" HGAP="28" ID="ID_506541774" MODIFIED="1502411399197" TEXT="neuer UiManager" VSHIFT="14">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1485452508180" ID="ID_549617075" MODIFIED="1493762452014" TEXT="ist front-end dafür">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1485130321924" ID="ID_46787934" MODIFIED="1485130327728" TEXT="Funktion umziehen"/>
|
|
<node CREATED="1485130328324" ID="ID_874057448" MODIFIED="1485130334983" TEXT="umschreiben auf gtk::Application"/>
|
|
<node CREATED="1485130336235" ID="ID_125642886" MODIFIED="1485130353981" TEXT="Application-Objekt durchgeben"/>
|
|
<node CREATED="1485130355377" ID="ID_175334188" MODIFIED="1485130395487" TEXT="Zugriff für NotificationFacade ermöglichen"/>
|
|
</node>
|
|
<node CREATED="1485452536138" ID="ID_599315721" MODIFIED="1512926191654" TEXT="wird dafür zustä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="1493762489856" TEXT="verwendet Fenster-Liste"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_869056268" MODIFIED="1502411381881" 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="1493762526412" TEXT="direkt gtk_main_quit aufrufen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1493762556755" HGAP="34" ID="ID_651403872" MODIFIED="1493768592310" TEXT="siehe" VSHIFT="16">
|
|
<node CREATED="1493762559339" ID="ID_742529116" MODIFIED="1493762565286" TEXT="altes Gtk::Main::quit"/>
|
|
<node CREATED="1493762568266" ID="ID_902609710" MODIFIED="1493762714257" TEXT="Gio::Application::quit"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1493762951293" HGAP="69" ID="ID_1772990353" MODIFIED="1493770485773" TEXT="Entscheidung">
|
|
<node CREATED="1493762968018" ID="ID_1056007574" MODIFIED="1493762986624" TEXT="brauchen wir ein Application GObject?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1493762987751" ID="ID_236361713" MODIFIED="1493762997090" TEXT="Gtk::Main funktioniert ohne"/>
|
|
<node CREATED="1493763356907" ID="ID_981398529" MODIFIED="1493763414605" TEXT="aber">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1493763398798" ID="ID_760049978" MODIFIED="1493768456359" TEXT="Gtk::Main ist deprecated"/>
|
|
<node CREATED="1493763393720" ID="ID_112295077" MODIFIED="1493763393720" TEXT="wohin entwickelt sich GTK?"/>
|
|
</node>
|
|
<node CREATED="1493768460811" ID="ID_1862271811" MODIFIED="1493768464414" TEXT="Alternativen">
|
|
<node CREATED="1493768465482" ID="ID_1159523698" MODIFIED="1495234928963" TEXT="gtk_main aufrufen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1493768484007" ID="ID_384827553" MODIFIED="1495234932771" 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="1495234945038" 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="1493770490126" TEXT="erst mal Gtk::Main hierher schieben">
|
|
<icon BUILTIN="full-1"/>
|
|
</node>
|
|
<node CREATED="1495215269657" ID="ID_850682198" MODIFIED="1495215315827" TEXT="Implementierung aus Gtk::Main übernemen">
|
|
<icon BUILTIN="full-2"/>
|
|
</node>
|
|
<node CREATED="1493770431607" ID="ID_117937910" MODIFIED="1495215311571" TEXT="(bei Bedarf) später dann durch Gio::Application ersetzen">
|
|
<icon BUILTIN="full-3"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481320772830" HGAP="21" ID="ID_1607125695" MODIFIED="1512926191658" 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="1481509899511" TEXT="definieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481767553542" ID="ID_1936508244" MODIFIED="1512926191659" TEXT="Eigenschaften">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1481768183970" ID="ID_1887870402" MODIFIED="1481768197029" TEXT="ist offizielle Session-Schnittstelle"/>
|
|
<node CREATED="1481768211951" ID="ID_287828489" MODIFIED="1481768529260">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
setzt <i>aktivierten</i> Dispatcher <font color="#6e080d">zwingend</font> voraus
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
es genügt definitiv nicht, nur die Dispatcher-Komponente(Schnittstelle) erreichen zu können.
|
|
</p>
|
|
<p>
|
|
Jede Operation, die über dieses externe Interface bereitsteht, benö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="1481768435704" TEXT="implizite Bindung an eine Session-Instanz">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und zwar wirklich sehr implizit,
|
|
</p>
|
|
<p>
|
|
nämlich über die Identität (IDs) der Command-Parameter.
|
|
</p>
|
|
<p>
|
|
Das heißt, ein eingehendes Command paß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="1481768669948" 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ßt im Klartext, alle Clients müssen darauf vorbereitet sein, daß diese Schnittstelle
|
|
</p>
|
|
<p>
|
|
<i>jederzeit</i> wegbrechen kann, was dann heißt, daß irgend ein Aufruf eine Exception wirft
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481320847724" HGAP="42" ID="ID_545146501" MODIFIED="1512926191660" TEXT="wo ansiedeln" VSHIFT="-6">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1481509901926" ID="ID_1612540786" MODIFIED="1481509907305" TEXT="in proc::control"/>
|
|
<node CREATED="1481767522123" ID="ID_789146708" MODIFIED="1512926191661">
|
|
<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="1512926191661" TEXT="Subsystem">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1481767649426" ID="ID_1806364059" MODIFIED="1512926191661" TEXT="pro">
|
|
<node CREATED="1481767653785" ID="ID_65381960" MODIFIED="1481767658028" TEXT="offensichtlich"/>
|
|
<node CREATED="1481767700299" ID="ID_1163247183" MODIFIED="1481767705134" TEXT="logisch"/>
|
|
</node>
|
|
<node CREATED="1481767665231" ID="ID_141423591" MODIFIED="1512926191662" TEXT="con">
|
|
<node CREATED="1481767681797" ID="ID_1133339398" MODIFIED="1481768995389" 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="1481767710581" TEXT="bekomme dort Zustand"/>
|
|
<node CREATED="1481767720576" ID="ID_714877064" MODIFIED="1481767729611" TEXT="muß dort Locking verwenden"/>
|
|
<node CREATED="1481767711033" ID="ID_232055384" MODIFIED="1481767716628" TEXT="bekomme dort Fehlerbehandlung"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481767579130" ID="ID_191292506" MODIFIED="1512926191662" TEXT="Dispatcher">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1481767748180" ID="ID_549036367" MODIFIED="1512926191663" TEXT="pro">
|
|
<node CREATED="1481767761027" ID="ID_949448369" MODIFIED="1481767771781" TEXT="ist die offizielle Schnittstelle"/>
|
|
<node CREATED="1481767864069" ID="ID_47595319" MODIFIED="1481767874567" TEXT="kann Service-Impl direkt verdrahten"/>
|
|
</node>
|
|
<node CREATED="1481767758347" ID="ID_1773256683" MODIFIED="1512926191663" TEXT="con">
|
|
<node CREATED="1481767797062" ID="ID_1542908203" MODIFIED="1481768960633">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
muß alle Operationen durchschleifen
|
|
</p>
|
|
<p>
|
|
oder muß PImpl als Interface exponieren
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1481767831105" ID="ID_1351930491" MODIFIED="1481768989667" 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="1512926191664" 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="1512926191665" TEXT="pro">
|
|
<node CREATED="1481767893969" ID="ID_1688865092" MODIFIED="1481767911170" TEXT="kann dort dediziertes Interface nutzen"/>
|
|
<node CREATED="1481767924909" ID="ID_438801896" MODIFIED="1481767931359" TEXT="alle Operationen passieren dort"/>
|
|
<node CREATED="1481767961616" ID="ID_1097715033" MODIFIED="1512926191665" TEXT="Lebenszyklus == RAII">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1481769041800" ID="ID_1026761428" MODIFIED="1481769059178" TEXT="ausschlaggebend">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1481769052246" ID="ID_628010771" MODIFIED="1481769055002" TEXT="gutes Design"/>
|
|
</node>
|
|
<node CREATED="1481768131609" ID="ID_600248646" MODIFIED="1481768139171" TEXT="Locking schon da"/>
|
|
</node>
|
|
<node CREATED="1481768014089" ID="ID_1260583976" MODIFIED="1512926191666" TEXT="con">
|
|
<node CREATED="1481768019848" ID="ID_1155187340" MODIFIED="1481768032040">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Shutdown <i>tricky</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1481768075481" ID="ID_795971368" MODIFIED="1481768083275" TEXT="in der Implementierung versteckt"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481320850779" HGAP="45" ID="ID_1632600003" MODIFIED="1512926191667" TEXT="hochfahren" VSHIFT="-3">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481509921211" ID="ID_1515469097" MODIFIED="1512926191668">
|
|
<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ängt wohl zu viel darunter, um es gleich ganz abschließen zu können.
|
|
</p>
|
|
<p>
|
|
Aber ich <i>akzeptiere</i> 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ä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> "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ührt Commands aus"/>
|
|
<node CREATED="1482464442438" ID="ID_1339868449" MODIFIED="1482464449049" TEXT="startet den Builder"/>
|
|
</node>
|
|
<node CREATED="1481599421021" ID="ID_461768132" MODIFIED="1512926191671" TEXT="Locking klären">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481684383530" ID="ID_236117" MODIFIED="1512926191672" TEXT="zwei unabhä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ü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ö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 ==> Deadlock">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1483581573147" ID="ID_989149672" MODIFIED="1512926191673" TEXT="durch Umbau gelö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ß das äuß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 überflüssig"/>
|
|
<node CREATED="1483581640739" ID="ID_560356092" MODIFIED="1483581652445" TEXT="das Objekt wird in einem tail-call gelö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 "sich selber löschen"">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482464502542" ID="ID_284397306" MODIFIED="1482464609118" TEXT="Vorsicht beim Schließen der Session">
|
|
<arrowlink COLOR="#5a97df" DESTINATION="ID_1378897740" ENDARROW="Default" ENDINCLINATION="9540;0;" ID="Arrow_ID_1446486242" STARTARROW="None" STARTINCLINATION="9540;0;"/>
|
|
<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 ö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 ö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ä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ü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" HGAP="23" ID="ID_45803267" MODIFIED="1512926191674" TEXT="dort SessionCommandService instantiieren" VSHIFT="4">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481769089234" ID="ID_1152351588" MODIFIED="1483582218575" 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="1482532883149" TEXT="muß Service-API extrahieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481777039358" ID="ID_395609084" MODIFIED="1512926191676" TEXT="Shutdown sauber regeln">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481777054755" ID="ID_1551225439" MODIFIED="1512926191677">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
muß SessionCommandService schließen
|
|
</p>
|
|
<p>
|
|
<i>bevor</i> die Dispatcher-loop angehalten wird
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481778397600" ID="ID_1997192349" MODIFIED="1481778409498" TEXT="bereits wenn Anhalten signalisiert wird"/>
|
|
<node CREATED="1481778409942" ID="ID_100284739" MODIFIED="1481778419113" TEXT="zur Sicherheit nochmal im dtor"/>
|
|
</node>
|
|
<node CREATED="1481777114203" ID="ID_1156396729" MODIFIED="1483654726680" TEXT="Lock, um Deadlock zu vermeiden"/>
|
|
<node CREATED="1481777122306" ID="ID_1506554988" MODIFIED="1481777133445" TEXT="alles im dtor -> noexcept"/>
|
|
<node CREATED="1481777210447" ID="ID_1392452935" MODIFIED="1483654905825" TEXT="sicherstellen daß shutdown nicht blockt">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
1/2017 Review durchgeführt und Logik überarbeitet.
|
|
</p>
|
|
<p>
|
|
Einziger Risikofaktor ist nun, wenn beim Schließ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ückmeldung kommt u.U niemals an, und damit bleiben wir
|
|
</p>
|
|
<p>
|
|
am Ende von main() einfach hängen.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
<i>Ich halte diese Fälle aber für in der Praxis nicht relevant,</i>  und verzichte daher auf eine Spezialbehandlung
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<arrowlink COLOR="#5a97df" DESTINATION="ID_1789585729" ENDARROW="Default" ENDINCLINATION="3216;0;" ID="Arrow_ID_1930701586" STARTARROW="None" STARTINCLINATION="8475;0;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481510244184" ID="ID_1521406724" MODIFIED="1481510260635" TEXT="kann dann in CoreService einfach über die .facade() zugreifen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483748175610" HGAP="31" ID="ID_73597248" MODIFIED="1512926191678" 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="1484377266424" TEXT="#1046 Preliminary Definition of SessionCommand facade">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1483748231330" ID="ID_1962213649" MODIFIED="1483748356929" TEXT="soll hierzu sehen, daß ein einfacher Aufruf wirklich klappt">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1483748323014" ID="ID_1031176077" MODIFIED="1512926191680" TEXT="Nachrichten vom UI-Bus entnehmen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#520262" CREATED="1483908814960" HGAP="34" ID="ID_430949603" MODIFIED="1512926191681" 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="1512926191681" TEXT="Proc-Commands...">
|
|
<node CREATED="1483908919274" ID="ID_184360294" MODIFIED="1483908924253" TEXT="könnte man direkt aufrufen"/>
|
|
<node CREATED="1483908982889" ID="ID_758147179" MODIFIED="1483908992252" TEXT="sind bereits ein Handle"/>
|
|
</node>
|
|
<node CREATED="1483909157290" ID="ID_1197073738" MODIFIED="1512926191682" TEXT="via UI-Bus">
|
|
<node CREATED="1483909161170" ID="ID_159742986" MODIFIED="1483909170373" TEXT="bleibt ein synchroner Aufruf"/>
|
|
<node CREATED="1483909179088" ID="ID_926171934" MODIFIED="1483909221854" TEXT="Command(Handle) auf beiden Seiten"/>
|
|
<node CREATED="1483909223058" ID="ID_582886428" MODIFIED="1512926191682" TEXT="Argument-Marshalling">
|
|
<node CREATED="1483909253550" ID="ID_824110666" MODIFIED="1483909262056" TEXT="umständlich, mehrstufig"/>
|
|
<node CREATED="1483909263620" ID="ID_1628441605" MODIFIED="1483909277414" TEXT="erzwingt mehrfache Indirektion"/>
|
|
<node CREATED="1483909333227" ID="ID_473681935" MODIFIED="1483909347045" TEXT="Umpacken -> Record -> Tuple -> function"/>
|
|
</node>
|
|
<node CREATED="1483909386820" ID="ID_311424247" MODIFIED="1512926191683" TEXT="mehrfache Indirektion">
|
|
<node CREATED="1483909440437" ID="ID_1792180060" MODIFIED="1483909458398" TEXT="Variant-Record VTable"/>
|
|
<node CREATED="1483909459226" ID="ID_1352346417" MODIFIED="1483909465933" TEXT="Bus-Term VTable"/>
|
|
<node CREATED="1483909468913" ID="ID_1209442982" MODIFIED="1483909487842" TEXT="Command-Handler double dispatch"/>
|
|
<node CREATED="1483909488622" ID="ID_856721427" MODIFIED="1483909495025" TEXT="Argument-Auswertung double dispatch"/>
|
|
<node CREATED="1483909496110" ID="ID_1500666281" MODIFIED="1483909508008" TEXT="Command-Functor invocation VTable"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483909585362" HGAP="1" ID="ID_1047452263" MODIFIED="1512926191683" TEXT="muß sich noch rechtfertigen" VSHIFT="11">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1483909605879" ID="ID_1463483386" MODIFIED="1483909742954" TEXT="war eine Design-Wahl auf Verdacht">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1483909613670" ID="ID_223762457" MODIFIED="1483909705485" TEXT="erzwingt Trennung im Planen und Denken"/>
|
|
<node CREATED="1483909679605" ID="ID_1627582396" MODIFIED="1483909688616" TEXT="könnte Verallgemeinerungen im UI generieren"/>
|
|
<node CREATED="1483909714201" ID="ID_1677179961" MODIFIED="1483909722659" TEXT="könnte UI-Abläufe abstrakt testbar machen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483755303243" HGAP="86" ID="ID_1425274731" MODIFIED="1512926191684" TEXT="Brauche Command-Handler" VSHIFT="11">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1483755317105" ID="ID_775818551" MODIFIED="1483755319685" TEXT="ist ein Visitor"/>
|
|
<node CREATED="1483755320136" ID="ID_1343109260" MODIFIED="1512926191685" TEXT="Knackpunkt: Command-ID">
|
|
<node CREATED="1483755331671" ID="ID_1913103415" MODIFIED="1512926191687" TEXT="wird im Visitor gebraucht">
|
|
<node CREATED="1483909964935" ID="ID_991182613" MODIFIED="1483910009457">
|
|
<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="1483910003178">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>aber</i> ist nicht auf dem Visitor-Interface darstellbar
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1483910035326" ID="ID_366990653" MODIFIED="1512926191688" TEXT="latentes Design-Problem">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1483910047148" ID="ID_1870862761" MODIFIED="1483910055271" TEXT="Design Rec<GenNode>"/>
|
|
<node CREATED="1483910056243" ID="ID_967619584" MODIFIED="1483910089274" TEXT="da Record eine Payload ist"/>
|
|
<node CREATED="1483910117819" ID="ID_117939525" MODIFIED="1483910215292" TEXT="man könnte....">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
....über einen GenNode-Visitor nachdenken
|
|
</p>
|
|
<p>
|
|
<b>aber</b>
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
nicht jetzt
|
|
</li>
|
|
<li>
|
|
das Problem müßte mehrfach auftreten
|
|
</li>
|
|
<li>
|
|
könnte zu Switch-On-Type-programming führen
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483755341814" ID="ID_254491480" MODIFIED="1512926191688" TEXT="Instanz-Management fraglich">
|
|
<node CREATED="1483909934891" ID="ID_1608078388" MODIFIED="1483909940038" TEXT="nicht wirklich relevant"/>
|
|
<node CREATED="1483909940506" ID="ID_262925518" MODIFIED="1483909951669" TEXT="effektiv nur Stack-Storage"/>
|
|
</node>
|
|
<node CREATED="1483755347949" ID="ID_4176562" MODIFIED="1512926191689" TEXT="Performance-Überlegungen">
|
|
<node CREATED="1483909826690" ID="ID_1903951356" MODIFIED="1483909898026" TEXT="nicht wirklich schlimm">
|
|
<icon BUILTIN="smiley-neutral"/>
|
|
</node>
|
|
<node CREATED="1483909832385" ID="ID_136936347" MODIFIED="1483909836244" TEXT="Storage ist lokal"/>
|
|
<node CREATED="1483909836992" ID="ID_238373170" MODIFIED="1483909866352" TEXT="VTable ist vorbereitet"/>
|
|
<node CREATED="1483909866844" ID="ID_83144371" MODIFIED="1483909873843" TEXT="aber: double-dispatch">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483755360196" ID="ID_514688462" MODIFIED="1483755368542" TEXT="Nachrichten kommen ohne bestimmte Ordnung an"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483910254385" HGAP="88" ID="ID_267402281" MODIFIED="1512926191691" TEXT="Command-Instanz-Management" VSHIFT="-8">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1483910266799" ID="ID_86909318" MODIFIED="1483910282066" TEXT="wie funktioniert's?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1483910289396" ID="ID_1014786685" MODIFIED="1483910293311" TEXT="Prototyp-Pattern"/>
|
|
<node CREATED="1483910293827" ID="ID_1957585594" MODIFIED="1512926191691" TEXT="irgendjemand...">
|
|
<node CREATED="1483910333137" ID="ID_1304876612" MODIFIED="1483910340745" TEXT="muß Command-Definitionen Klonen"/>
|
|
<node CREATED="1483910306458" ID="ID_601011326" MODIFIED="1483910315557" TEXT="und dabei IDs generieren / dekorieren"/>
|
|
</node>
|
|
<node CREATED="1483911060894" ID="ID_1204552049" MODIFIED="1512926191692" TEXT="wer">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1483911069277" ID="ID_277421164" MODIFIED="1512926191692" TEXT="InteractionStateManager">
|
|
<node CREATED="1483911145898" ID="ID_897832170" MODIFIED="1483911160684" TEXT="eigentlich nur opaque Command-IDs"/>
|
|
<node CREATED="1483911161248" ID="ID_283380145" MODIFIED="1483911176626" TEXT="aber: weiß wann neue Interaktion beginnt"/>
|
|
</node>
|
|
<node CREATED="1483911091314" ID="ID_842914123" MODIFIED="1512926191693" TEXT="SessionCommandService">
|
|
<node CREATED="1483911181669" ID="ID_1397857321" MODIFIED="1483911193568" TEXT="sitzt schon in Proc"/>
|
|
<node CREATED="1483911194940" ID="ID_485403998" MODIFIED="1483911207598" TEXT=""natürlich" nah am Command-Framework"/>
|
|
<node CREATED="1483911208546" ID="ID_380202969" MODIFIED="1483911221076" TEXT="weiß aber nichts von Interaktionen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483921000340" HGAP="-60" ID="ID_1814046433" MODIFIED="1512926191694" VSHIFT="31">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>Idee:</i> Zusammenarbeit
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1483921070115" ID="ID_398046799" MODIFIED="1483921131646" TEXT="Prototyp-Service"/>
|
|
<node CREATED="1483921132114" ID="ID_1652398711" MODIFIED="1483921138070" TEXT="liefert dekorierte Command-ID"/>
|
|
<node CREATED="1483921149368" ID="ID_1028150245" MODIFIED="1483921160762" TEXT="im GUI nur noch Command-IDs"/>
|
|
<node CREATED="1483924872930" ID="ID_242219866" MODIFIED="1483925475104">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das wäre eine <b>Protokoll-Erweiterung</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<linktarget COLOR="#e9ba2d" DESTINATION="ID_242219866" ENDARROW="Default" ENDINCLINATION="-784;1692;" ID="Arrow_ID_1617518648" SOURCE="ID_1479669922" STARTARROW="None" STARTINCLINATION="3436;-1136;"/>
|
|
</node>
|
|
<node CREATED="1483927472385" HGAP="30" ID="ID_774425061" MODIFIED="1483927503424" 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" ID="ID_1882657994" MODIFIED="1512926191695" TEXT="Vorlage">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1483755399334" ID="ID_582834462" MODIFIED="1512926191696" TEXT="AbstractTangible_test">
|
|
<node CREATED="1483755406254" ID="ID_1800773105" MODIFIED="1483755410665" TEXT="hat inline-Visitor"/>
|
|
<node CREATED="1483755445984" ID="ID_468077802" MODIFIED="1483755455255" TEXT="aber Command-ID fest gedrahtet">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483755412605" ID="ID_220502028" MODIFIED="1512926191696" TEXT="BusTerm_test">
|
|
<node CREATED="1483755417932" ID="ID_1696122428" MODIFIED="1483755426679" TEXT="verwendet Hanlder vom Test-Nexus"/>
|
|
<node CREATED="1483755428354" ID="ID_1619772942" MODIFIED="1483755442790" TEXT="der verwendet bereits komplettes Argument-Binding">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1483924890656" HGAP="-45" ID="ID_815841886" MODIFIED="1512926191696" TEXT="Implementierung" VSHIFT="22">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1483924900583" ID="ID_12753464" MODIFIED="1483924949597" TEXT="banal">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1483924903190" ID="ID_1436586014" MODIFIED="1483924947483" TEXT="wenn man das Design akzeptiert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heiß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="-105" ID="ID_458362835" MODIFIED="1512926191697" TEXT="Unit-Test" VSHIFT="12">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1484294389310" ID="ID_100306048" MODIFIED="1484294425156" TEXT="direkter Aufruf der Facade">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484294397597" ID="ID_1461153044" MODIFIED="1484294422192" TEXT="Aufruf über Nachrichten + Visitor">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484294409827" ID="ID_1014781174" MODIFIED="1512926191698" TEXT="massiv-paralleler Aufruf">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1484377327032" ID="ID_1461940140" MODIFIED="1484377335042" TEXT="war eine interessante Übung...">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1484377336983" ID="ID_823071776" MODIFIED="1484377354528" TEXT="Hilfsmittel für Thread/Familien-IDs">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1484377358324" ID="ID_1280997474" MODIFIED="1512926191698" TEXT="in der Tat">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1484377383249" ID="ID_1422297147" MODIFIED="1484377388516" TEXT="Commands überholen sich"/>
|
|
<node CREATED="1484377389056" ID="ID_930164551" MODIFIED="1484377408390" TEXT="Command instanzen dürfen nicht geshared werden">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1483748340524" ID="ID_841368846" MODIFIED="1484377283110" TEXT="API-Funktionen aufrufen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482464658193" HGAP="-14" ID="ID_726798260" MODIFIED="1492205528186" TEXT="Ausgestaltung" VSHIFT="29">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1482465840843" ID="ID_818984499" MODIFIED="1492205528187" TEXT="Entwurf">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1482464676366" ID="ID_1064506750" MODIFIED="1492205528187" TEXT="bekommt Nachrichten vom UI-Bus">
|
|
<node CREATED="1482464755404" ID="ID_213932356" MODIFIED="1492205555145" TEXT="entnimmt Argument"/>
|
|
<node CREATED="1482464758148" ID="ID_545671857" MODIFIED="1492205570239" TEXT="triggert sofort"/>
|
|
<node CREATED="1492205571235" ID="ID_166892291" MODIFIED="1492205638688" TEXT="Zukunft: partiell schließen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
es wäre denkbar, an dieser Stelle
|
|
</p>
|
|
<p>
|
|
unvollständige Argument-Tupel zu akzeptieren
|
|
</p>
|
|
<p>
|
|
und die Argumente von links her zu schließen (currying)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482464696668" ID="ID_1191503480" MODIFIED="1482464706174" TEXT="müssen in Command-Objekte übersetzt werden"/>
|
|
<node CREATED="1482464712474" ID="ID_1386285986" MODIFIED="1482464718917" TEXT="Interface sollte noch GenNodes nehmen"/>
|
|
<node CREATED="1482464719513" ID="ID_1003624750" MODIFIED="1482464729939" TEXT="aber synchron die Commands beziehen"/>
|
|
<node CREATED="1482464730783" ID="ID_1225624791" MODIFIED="1482464740714" TEXT="damit Exceptions sofort fliegen"/>
|
|
</node>
|
|
<node CREATED="1484377470133" HGAP="35" ID="ID_62981197" MODIFIED="1512926191698" TEXT="Weiterungen" VSHIFT="11">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1484377485339" ID="ID_414407137" MODIFIED="1484377497877" TEXT="Commands mit verschiedener Priorität"/>
|
|
<node CREATED="1484377503465" ID="ID_72812588" MODIFIED="1484377510243" TEXT="Commands aggregieren"/>
|
|
<node CREATED="1484377535829" ID="ID_488242691" MODIFIED="1484377545519" TEXT="Verwerfen von Commands"/>
|
|
<node CREATED="1484377546779" ID="ID_1097356179" MODIFIED="1484377552630" TEXT="Command-ID - Typ"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1482465854513" HGAP="26" ID="ID_1477532018" MODIFIED="1512926191699" TEXT="Widerspruch zu Tangible " VSHIFT="12">
|
|
<icon BUILTIN="broken-line"/>
|
|
<node CREATED="1482465965660" ID="ID_1945056449" MODIFIED="1482465965660" TEXT="Tangible::prepareCommand"/>
|
|
<node CREATED="1482466012484" ID="ID_283758092" MODIFIED="1492443470330" TEXT="verwendet InvocationTrail">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1482466021562" ID="ID_620393388" MODIFIED="1492443472931" TEXT="dieser wird direkt mit Command erzeugt">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1482466509953" ID="ID_565604124" MODIFIED="1492443399354" TEXT="...dient der Sicherheit">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
denn es erzwingt,
|
|
</p>
|
|
<p>
|
|
daß die betreffenden Commands schon erzeugt und registriert sein müssen,
|
|
</p>
|
|
<p>
|
|
wenn in der UI ein InvocationTrail angelegt wird.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1482466104359" ID="ID_235553653" MODIFIED="1482466115902" TEXT="speichert aber eigentlich nur die Cmd-ID">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492443474996" HGAP="21" ID="ID_440734267" MODIFIED="1492443497694" TEXT="Schlußfolgerung: direkter Aufruf mit Cmd-ID genügt" VSHIFT="10">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482466197707" ID="ID_832611965" MODIFIED="1512926191701">
|
|
<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="1482466256655" TEXT="hängt von der Verwendung ab"/>
|
|
<node CREATED="1482466260627" ID="ID_1708185529" MODIFIED="1482466265989" TEXT="wie Commands im UI gebunden werden"/>
|
|
<node CREATED="1482466271713" ID="ID_1519273419" MODIFIED="1482524336076" TEXT="Nur IDs gehen über die Leitung">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1482466587807" ID="ID_135147405" MODIFIED="1482524332833">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
reine ID-Wirtschaft <i>wäre möglich</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482466285359" ID="ID_1077952925" MODIFIED="1512926191703" TEXT="Zugriff auf proc::control::Command is OK">
|
|
<icon BUILTIN="yes"/>
|
|
<node COLOR="#c0425f" CREATED="1482466320947" ID="ID_431246960" MODIFIED="1482466419650" TEXT="Grundsatz-Entscheidung">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482466328482" ID="ID_1223809722" MODIFIED="1482466411192" TEXT="GUI darf von unteren Layern abhängen">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1482466347767" ID="ID_755953852" MODIFIED="1482466385464" TEXT="C++ ist das maßgebliche Ausdrucksmedium">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1482466368068" ID="ID_149410251" MODIFIED="1482466388017" 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="1484882470134" TEXT="Rolle des "Model" klären" VSHIFT="20">
|
|
<node CREATED="1484882430390" HGAP="56" ID="ID_836665320" MODIFIED="1512926191703" TEXT="Diff-Nachrichten" VSHIFT="-23">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484882437421" ID="ID_1948154354" MODIFIED="1484882453892" TEXT="#1066 concept to pass diff messages">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1484882477368" ID="ID_224140586" MODIFIED="1512926191704" TEXT="Probleme">
|
|
<node CREATED="1484882480568" ID="ID_1399902588" MODIFIED="1484882485922" TEXT="unbekannter Quelltyp"/>
|
|
<node CREATED="1484882487911" ID="ID_651657111" MODIFIED="1484882492745" TEXT="Storage-Management"/>
|
|
<node CREATED="1484882493501" ID="ID_935689465" MODIFIED="1484882554013" TEXT="Ü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="1484882512719" TEXT="Callback aus dem Event-Thread"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477784829157" ID="ID_1998357180" MODIFIED="1477784838700" TEXT="Icon-Laden modernisieren"/>
|
|
<node CREATED="1477784821925" ID="ID_1871474250" MODIFIED="1488423306858" TEXT="Styling aufräumen">
|
|
<node CREATED="1477784846162" ID="ID_1164942946" MODIFIED="1504215608190" TEXT="siehe Info zum CssProvider">
|
|
<arrowlink COLOR="#a9b4c1" DESTINATION="ID_1810760662" ENDARROW="Default" ENDINCLINATION="1600;-25;" ID="Arrow_ID_1610122569" STARTARROW="None" STARTINCLINATION="-227;-646;"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485126385235" HGAP="38" ID="ID_548720270" MODIFIED="1502411222558" 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="1485126409402" TEXT="unsauberes Design">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1485126410424" ID="ID_1158773288" MODIFIED="1485549693700" TEXT="wir haben mehrere Fenster">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1485126418431" ID="ID_1145950660" MODIFIED="1493846257532" 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="1485549690035" TEXT="Aktionen für jedes top-level Window repliziert">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1485549646739" ID="ID_1714638860" MODIFIED="1485549664604" TEXT="Abhängigkeit vom Fenster identifizieren"/>
|
|
<node CREATED="1485549666424" ID="ID_1909892697" MODIFIED="1485549672163" TEXT="generisch machen"/>
|
|
<node CREATED="1485549672943" ID="ID_1716269299" MODIFIED="1485549679298" TEXT="Aktionen in UiManager verschieben"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485126429445" ID="ID_832156304" MODIFIED="1485126432879" TEXT="aufräumen">
|
|
<icon BUILTIN="flag-pink"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485126506699" ID="ID_1776936645" MODIFIED="1485126569343" TEXT="#1067 rearrange GUI Application top-level">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1485126573818" ID="ID_206480879" MODIFIED="1495233795213" 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="1504368776279" TEXT="#1064 investigate WindowManager lifecycle">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1493752896125" ID="ID_1471478347" MODIFIED="1493752898687" TEXT="erledigt"/>
|
|
<node CREATED="1493752899224" ID="ID_83018735" MODIFIED="1493752906171" TEXT="WindowManager war gar nicht so wichtig"/>
|
|
<node CREATED="1493752906736" ID="ID_1191055389" MODIFIED="1504368810487" TEXT="er ist jetzt nur noch eine Fenster-Liste"/>
|
|
<node CREATED="1504368788471" ID="ID_1811705494" MODIFIED="1504368798969" TEXT="und die heißt jetzt WindowLocator"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485550950793" ID="ID_50100583" MODIFIED="1504368743286" TEXT="#1048 rectify UI Lifecycle">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node COLOR="#338800" CREATED="1485550968230" ID="ID_164246989" MODIFIED="1493846257532" 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="1485917472736" TEXT="Blocker entfernen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1485562029644" ID="ID_1022779645" MODIFIED="1485562063560" 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="1493846190200" TEXT="durch fortgesetztes Refactoring gelöst">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485550992299" ID="ID_1685125156" MODIFIED="1493846205911" TEXT="es blocken">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1485550999762" ID="ID_249139218" MODIFIED="1504368756039" TEXT="WindowManager">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1485551007297" ID="ID_1398242341" MODIFIED="1485917502909" TEXT="Project & Controller">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493853541747" ID="ID_689819683" MODIFIED="1493853547124" TEXT="TODO">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1493853548739" ID="ID_949985796" MODIFIED="1511572071304" TEXT="Project & Controller restlos entfernen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...wartet noch darauf,
|
|
</p>
|
|
<p>
|
|
daß die alte, obsolete Timeline zurückgebaut ist
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1493853590149" ID="ID_1075149702" MODIFIED="1511572071311" 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öffnet werden konnte
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504191345606" ID="ID_1249897876" MODIFIED="1504200661963" TEXT="#1026 cleanup PanelManager">
|
|
<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="1504193240635" 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>
|
|
<node CREATED="1485551018975" ID="ID_1865473127" MODIFIED="1512926191704" TEXT="obsoletes Project & Controller">
|
|
<node CREATED="1485551030086" ID="ID_1052165402" MODIFIED="1485551034969" TEXT="in GtkLumiera definiert"/>
|
|
<node CREATED="1485551035413" ID="ID_1861899005" MODIFIED="1485551056342" TEXT="tatsächlich im Panel (Basisklasse) gespeichert"/>
|
|
<node CREATED="1485551056834" ID="ID_538186909" MODIFIED="1485551066884" TEXT="tatsächlich nur im alten TimelinePannel gebraucht"/>
|
|
<node COLOR="#338800" CREATED="1485551067353" ID="ID_1684200224" MODIFIED="1512926191705" TEXT="Übergangslösung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1485551080687" ID="ID_405147511" MODIFIED="1485551905501" TEXT="als Felder dort">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1485551085454" ID="ID_472031977" MODIFIED="1485551095662" TEXT="ist ohnehin defunkt">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1485551096445" ID="ID_258972556" MODIFIED="1485551103416" TEXT="dann Parameter entfernen"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#ae1856" CREATED="1485126686643" ID="ID_405470138" MODIFIED="1502411023176" 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="1502411289845" TEXT="komplett?" VSHIFT="39">
|
|
<icon BUILTIN="help"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_159568066" MODIFIED="1502411361835" 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="flag-yellow"/>
|
|
<node CREATED="1495234856782" ID="ID_1605922951" MODIFIED="1495234864912" TEXT="machen wir bisher nicht"/>
|
|
<node CREATED="1495234865717" ID="ID_1261122199" MODIFIED="1495234889293" TEXT="ist das notwendig?"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1485463620403" ID="ID_40172420" MODIFIED="1485463647941" TEXT="zentralen UiManager einfü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="1493852139145" TEXT="GtkLumiera" VSHIFT="-26">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1485454326827" ID="ID_1493501410" MODIFIED="1485454331748" TEXT="Applikation == Lebenszyklus">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1485463515929" ID="ID_785456397" MODIFIED="1485463523940" TEXT="für die Verdrahtung zuständig"/>
|
|
<node CREATED="1485463525736" ID="ID_1608786246" MODIFIED="1485463536587" TEXT="hält alle zentralen Komponenten"/>
|
|
<node CREATED="1493846135327" ID="ID_832439809" MODIFIED="1493846145618" TEXT="initialisiert und startet Backbone"/>
|
|
<node CREATED="1485463537111" ID="ID_929585985" MODIFIED="1485463543226" TEXT="wird nie selber direkt angesprochen"/>
|
|
</node>
|
|
<node CREATED="1485126457025" ID="ID_1698853761" MODIFIED="1495234793368" 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;"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1485454242368" ID="ID_482639947" MODIFIED="1485454312303" TEXT="Hub für Framework">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1485454284961" ID="ID_940728768" MODIFIED="1485454304731" TEXT="es gibt nur einen">
|
|
<icon BUILTIN="yes"/>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1485454375917" ID="ID_1935695209" MODIFIED="1485457020772" TEXT="erbt von Gtk::UiManager">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485457021805" ID="ID_1476863246" MODIFIED="1495218593390" 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="1493768624808" TEXT="fällt anscheinend ersatzlos weg"/>
|
|
<node CREATED="1493768625564" ID="ID_1620270152" MODIFIED="1493768636606" TEXT="Verdacht: stattdessen Gtk::Application"/>
|
|
<node CREATED="1495218227391" ID="ID_1156276489" MODIFIED="1511572071367" TEXT="Beschluß: vorerst Gtk::Action / ActionGroup weiter verwenden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<u>Begrü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ß.
|
|
</p>
|
|
<p>
|
|
Ich werde den Verdacht nicht los, daß hier das Ziel verfolgt wird, eine "Action" von den
|
|
</p>
|
|
<p>
|
|
Grenzen der Applikation zu befreien und direkt in den Desktop zu integrieren.
|
|
</p>
|
|
<p>
|
|
Mit Desktop ist natürlich der Gnome-Desktop gemeint. Was diesen Verdacht bestärkt,
|
|
</p>
|
|
<p>
|
|
ist, daß Gio::Application sofort auch gleich eine dBus-Verbindung hochfährt.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1485457105010" HGAP="49" ID="ID_202831328" MODIFIED="1495218206128" TEXT="neuer Weg" VSHIFT="21">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1485457108425" ID="ID_152284167" MODIFIED="1485457124586" TEXT="man erzeugt Gio::SimpleActionGroup"/>
|
|
<node CREATED="1485457141853" ID="ID_1841602685" MODIFIED="1485457147592" TEXT="man fügt diese dem Fenster hinzu"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485454243767" HGAP="43" ID="ID_3699127" MODIFIED="1493768942533" TEXT="Aufgabe: konsistentes UI" VSHIFT="-4">
|
|
<node CREATED="1485454248335" ID="ID_623536019" MODIFIED="1485454252273" TEXT="globales Menü"/>
|
|
<node CREATED="1485454259637" ID="ID_432211008" MODIFIED="1485454262840" TEXT="globale Toolbar"/>
|
|
<node CREATED="1485454252789" ID="ID_310049457" MODIFIED="1485454258553" TEXT="globale Aktionen"/>
|
|
<node CREATED="1485454263876" ID="ID_543704434" MODIFIED="1485454270615" TEXT="globale Keybindings"/>
|
|
</node>
|
|
<node CREATED="1493768943479" ID="ID_374108201" MODIFIED="1493768945355" TEXT="Plan">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493768946415" ID="ID_880915214" MODIFIED="1495234777012" 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="1493768964160" TEXT="sollte dann...">
|
|
<node CREATED="1493768965036" ID="ID_1457175098" MODIFIED="1493768972215" TEXT="das erste Fenster öffnen"/>
|
|
<node CREATED="1493768972691" ID="ID_1810145809" MODIFIED="1495234763048" 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="1501777234866" 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="1489460927424" TEXT="globaler Kontext" VSHIFT="-26">
|
|
<font NAME="SansSerif" SIZE="15"/>
|
|
<icon BUILTIN="idea"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549049388" ID="ID_530209145" MODIFIED="1485562057742" 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="1512926191705" TEXT="spezifische Aktionen">
|
|
<node CREATED="1485549803366" ID="ID_1969698948" MODIFIED="1512926191706" TEXT="Fenster-Bindung">
|
|
<node CREATED="1485549810780" ID="ID_71301392" MODIFIED="1485549822342" TEXT="Pop-Ups brauchen ein Vater-Fenster"/>
|
|
<node CREATED="1485549828450" ID="ID_1089795419" MODIFIED="1485917553222">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
eigentlich wollen wir <i>"das aktuelle"</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" HGAP="42" ID="ID_88029282" MODIFIED="1489460444614" VSHIFT="-13">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Lösung: <i><font color="#27754d">schwebende Bindung</font></i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1485902684454" ID="ID_1435239012" MODIFIED="1485902691584" TEXT="Eventgetriebene Oberfläche"/>
|
|
<node CREATED="1485902692556" ID="ID_1729615218" MODIFIED="1504190891319" TEXT="wird einmal verdrahtet"/>
|
|
<node CREATED="1485902722360" ID="ID_1003456982" MODIFIED="1485902735679">
|
|
<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="1507923991375" TEXT="zentrales Bindeglied">
|
|
<node CREATED="1485902762284" ID="ID_1542199290" MODIFIED="1485902773701" TEXT="kennt die Applikation"/>
|
|
<node CREATED="1485902774201" ID="ID_354078562" MODIFIED="1485902778964" TEXT="kennt den Windowmanager"/>
|
|
<node CREATED="1485902783201" ID="ID_609776597" MODIFIED="1485902793986" TEXT="kennt einen Operations-Controller"/>
|
|
<node CREATED="1485902809813" ID="ID_648457506" MODIFIED="1485902817775" TEXT="kennt den UI-Bus"/>
|
|
<node CREATED="1485902794479" ID="ID_1389010579" MODIFIED="1485902806377" TEXT="und ggffs weitere"/>
|
|
</node>
|
|
<node CREATED="1485902832698" HGAP="48" ID="ID_1440190469" MODIFIED="1489460786881" 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="1511572071410" TEXT="Lösungs-Detail: dynamisch koppeln" VSHIFT="19">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...meint:
|
|
</p>
|
|
<p>
|
|
wir müssen zur Aufrufzeit einer Aktion
|
|
</p>
|
|
<p>
|
|
an den aktuellen Kontext ankoppeln können.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Das heißt, der UiManager muß im Stande sein,
|
|
</p>
|
|
<p>
|
|
diesen "aktuellen Kontext" irgendwo <i>aufzufischen</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1485903041262" ID="ID_997327941" MODIFIED="1485903044082" TEXT="Fokus"/>
|
|
<node COLOR="#338800" CREATED="1485903046613" ID="ID_1041890737" MODIFIED="1504368672760" 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="1504368705637" TEXT="WindowLocator">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504368706988" ID="ID_362723210" MODIFIED="1504368706988" TEXT="hält Liste der Fenster"/>
|
|
<node CREATED="1485903658300" ID="ID_1048329186" MODIFIED="1485903665054" TEXT="durchsuchen..."/>
|
|
</node>
|
|
<node CREATED="1485904084947" ID="ID_64462533" MODIFIED="1485904087814" TEXT="Gtk::Window"/>
|
|
<node CREATED="1485904064949" ID="ID_313273027" MODIFIED="1485904081249" TEXT="property_has_focus">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1485904072812" ID="ID_829657223" MODIFIED="1485904083263" TEXT="property_is_active">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1487039156100" ID="ID_1966427611" MODIFIED="1504368731138" TEXT="implementiert durch den WindowLocator">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487039170930" ID="ID_1408455006" MODIFIED="1487039195521" TEXT="Actions weiß, daß es dort implemieriert ist">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#6979a7" CREATED="1489460657437" HGAP="101" ID="ID_674641985" MODIFIED="1489460701613" TEXT="Einsicht: Problem verschiebt sich" VSHIFT="-20">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1489460707774" ID="ID_1580714352" MODIFIED="1489460718184" TEXT="Actions wird ein reiner Binde-Kontext"/>
|
|
<node CREATED="1489460736370" ID="ID_794231700" MODIFIED="1489460755587" TEXT="delegiert wird an einen globalen controller"/>
|
|
<node CREATED="1489460756271" ID="ID_392157120" MODIFIED="1489460770166">
|
|
<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="1512926191708" TEXT="Struktur" VSHIFT="-30">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485917587927" ID="ID_891876702" MODIFIED="1485917622265" 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="1485917626785" TEXT="auf welche Sub-Komponenten wird referenziert">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486063810921" ID="ID_719539281" MODIFIED="1512926191709" TEXT="Zweck">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1486063816320" ID="ID_151179000" MODIFIED="1486063819332" TEXT="ist ein Builder"/>
|
|
<node CREATED="1486063819992" ID="ID_445639565" MODIFIED="1486063826794" TEXT="ist eine Closure"/>
|
|
<node CREATED="1486063831790" ID="ID_328966967" MODIFIED="1486063840849" TEXT="muß bloß am Leben bleiben"/>
|
|
<node CREATED="1486063841293" ID="ID_1675242982" MODIFIED="1486063848831" TEXT="hat nach Init nichts mehr zu tun"/>
|
|
</node>
|
|
<node CREATED="1486063858283" HGAP="42" ID="ID_130675776" MODIFIED="1512926191710" TEXT="ist Impl-Detail" VSHIFT="5">
|
|
<node CREATED="1486063886407" ID="ID_1294385692" MODIFIED="1486063896241" TEXT="sollte aus den weitverbreiteten Header-Includes raus"/>
|
|
<node CREATED="1486063911188" ID="ID_1391435276" MODIFIED="1487275489524" TEXT="gegenwä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 CREATED="1486063950103" ID="ID_57649689" MODIFIED="1512926191710" TEXT="zwei Modelle">
|
|
<node CREATED="1486063954062" ID="ID_1174765379" MODIFIED="1512926191711" TEXT="Actions wird insgesamt ein PImpl">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1486064137014" ID="ID_926465478" MODIFIED="1486064141569" TEXT="ist einfach umzusetzen"/>
|
|
<node CREATED="1486064142037" ID="ID_836065841" MODIFIED="1486064154551" TEXT="führt zu einer doppelten Indirektion"/>
|
|
<node CREATED="1486064289857" ID="ID_806073517" MODIFIED="1486064322201" TEXT="macht Registrierung der Aktionen einfach"/>
|
|
<node CREATED="1486064322909" ID="ID_89838152" MODIFIED="1512926191711" TEXT="vermischt die Themen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1486064333076" ID="ID_622214749" MODIFIED="1486064336887" TEXT="Aufbauen des Menüs"/>
|
|
<node CREATED="1486064337363" ID="ID_551504727" MODIFIED="1486064345942" TEXT="Closure für die Einzel-Aktionen"/>
|
|
</node>
|
|
<node CREATED="1486064454451" ID="ID_744832983" MODIFIED="1486064468525" TEXT="Aber genau diese Vermischun macht das Registrieren einfach"/>
|
|
</node>
|
|
<node CREATED="1486063968868" ID="ID_830826934" MODIFIED="1512926191713" TEXT="Actions hat einen ActionGroup-PImpl">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1486063991065" ID="ID_1575759747" MODIFIED="1486064393440" TEXT="man kann von ActionGroup erben">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1486064395051" ID="ID_1668165644" MODIFIED="1512926191713" TEXT="Risiko: Umstellung auf Gio::Action">
|
|
<node CREATED="1486064404410" ID="ID_1844104863" MODIFIED="1486064408350" TEXT="zwingend erforderlich"/>
|
|
<node CREATED="1486064408841" ID="ID_630946690" MODIFIED="1486064429511" TEXT="in GTK-4 gibt es keine Gtk::Action mehr">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486063996776" ID="ID_784656430" MODIFIED="1512926191714" TEXT="ist zwar nicht vorgesehen...">
|
|
<node CREATED="1486064082093" ID="ID_1957105401" MODIFIED="1486064085153" TEXT="das ist eindeutig"/>
|
|
<node CREATED="1486064085605" ID="ID_614915424" MODIFIED="1486064092928" TEXT="es gibt eine statische create-Funktion"/>
|
|
<node CREATED="1486064099915" ID="ID_247043577" MODIFIED="1486064107614" TEXT="und die macht einen Gtk::ref_ptr"/>
|
|
<node CREATED="1486064111241" ID="ID_1562595756" MODIFIED="1486064121620" TEXT="AUTSCH: ich will einen unique_ptr"/>
|
|
</node>
|
|
<node CREATED="1486064004143" ID="ID_1825804537" MODIFIED="1512926191714" TEXT="....aber geht">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1486064188334" ID="ID_1128646481" MODIFIED="1486064191370" TEXT="theoretisch ja"/>
|
|
<node CREATED="1486064209092" ID="ID_340165076" MODIFIED="1486064220982" TEXT="aber am Ende will der UiManager einen ref_ptr ActionGroup"/>
|
|
<node CREATED="1486064221954" ID="ID_429209345" MODIFIED="1486064232226" 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="1486064253396" TEXT="wäre schön aber nicht ratsam">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1486064478968" ID="ID_1610028838" MODIFIED="1512926191715" TEXT="Umbau">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1486064487215" ID="ID_195778340" MODIFIED="1486067334136" TEXT="Actions wird PImpl">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1486064493614" ID="ID_566562539" MODIFIED="1486067337261" TEXT="Actions wird Header-only">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1486064503229" ID="ID_1200627448" MODIFIED="1486067340766" TEXT="alle wildcard-Includes weg">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487039062273" ID="ID_956599122" MODIFIED="1512926191715" TEXT="Zuständigkeit">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1487039071039" ID="ID_1884426258" MODIFIED="1487039079075" TEXT="Herstellen des Hauptmenüs"/>
|
|
<node CREATED="1487039079759" ID="ID_471335369" MODIFIED="1487039083905" TEXT="Binden der Aktionen"/>
|
|
<node CREATED="1487039084285" ID="ID_555104373" MODIFIED="1487039096040" TEXT="Closure für die Aktionen"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487039098836" ID="ID_199078620" MODIFIED="1487039106012" TEXT="ggfs: Exceptions fangen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487039113306" ID="ID_1405514231" MODIFIED="1488423654953" TEXT="Einbindung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1487039118001" ID="ID_244074852" MODIFIED="1487039125444" TEXT="globaler Kontext"/>
|
|
<node CREATED="1487039125984" ID="ID_622974182" MODIFIED="1487039133027" TEXT="weiß, welche Aktion wohin zu delegieren ist"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1488422770096" HGAP="56" ID="ID_53463593" MODIFIED="1492965942400" TEXT="#1085 solve setup of top-level menu actions" VSHIFT="-17">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488423688763" ID="ID_1950800234" MODIFIED="1488423701821" TEXT="UI-Komponenten">
|
|
<node CREATED="1488423702977" ID="ID_292894978" MODIFIED="1488423843843" 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="1488423709044" TEXT="AssetPane"/>
|
|
<node CREATED="1488423709704" ID="ID_14713871" MODIFIED="1488423712052" TEXT="ViewerPane"/>
|
|
</node>
|
|
<node CREATED="1488423740012" ID="ID_874330545" MODIFIED="1488423745791" TEXT="Lifecycle-Aktionen">
|
|
<node CREATED="1488423747187" ID="ID_1351717245" MODIFIED="1488423755766" TEXT="UI schließen">
|
|
<node CREATED="1492965765319" ID="ID_581436031" MODIFIED="1492965769656" TEXT="wird schon geforwarded"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492965770197" ID="ID_1619347643" MODIFIED="1492965774509" TEXT="noch zu implementieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488423714584" ID="ID_1439137871" MODIFIED="1488494885123" TEXT="Session-Aktionen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488423760105" ID="ID_1527724040" MODIFIED="1488423762709" TEXT="Speichern">
|
|
<node CREATED="1488492373919" ID="ID_1898515568" MODIFIED="1488492382545" TEXT="snapshot-Kommando an Session senden"/>
|
|
<node CREATED="1488494870418" ID="ID_1929432332" MODIFIED="1511572071485" 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="1492965755135" TEXT="muß doch die Architktur klären">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488423763585" ID="ID_968726788" MODIFIED="1488423768988" TEXT="Schließen"/>
|
|
<node CREATED="1488494907118" ID="ID_1932633471" MODIFIED="1488494915320" TEXT="Speichern-Als">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488494891600" ID="ID_1996245412" MODIFIED="1492965863805" TEXT="Session-Setup-UI schaffen">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492965880399" ID="ID_1722391032" MODIFIED="1492965887837" TEXT="editSetup">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492965890037" ID="ID_1388211591" MODIFIED="1492965899520" TEXT="Konfigurations-UI schaffen">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488492153109" ID="ID_1243726860" MODIFIED="1492965876760">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
generisches <i>Öffnen</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488423720319" ID="ID_1455353650" MODIFIED="1488423727098" TEXT="Sequence-Aktionen">
|
|
<node CREATED="1489461756655" ID="ID_1625364312" MODIFIED="1512926191720" TEXT="neue Sequenz">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1489461773213" ID="ID_344390825" MODIFIED="1489461824472" 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="1492460899707" TEXT="im InteractionDirector">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1489461843747" ID="ID_1499714490" MODIFIED="1489461922546" TEXT="die Command-ID beziehen">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1489461856042" ID="ID_1097689316" MODIFIED="1492460871258" TEXT="bedingt Command-ID">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489461862937" ID="ID_1649764088" MODIFIED="1492460873579" TEXT="bedingt Command-Definition">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489544225984" ID="ID_1436775081" MODIFIED="1489544240309" TEXT="Triggern">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1489544261547" ID="ID_1624183619" MODIFIED="1489544266933" TEXT="wer">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544403984" ID="ID_1230750297" MODIFIED="1489544416135" TEXT=""ein UI-Element"">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1489544439187" ID="ID_1231587220" MODIFIED="1489544450590" TEXT="Beispiel: Toolbar-Button"/>
|
|
<node CREATED="1489544452034" ID="ID_745673239" MODIFIED="1489544459404" TEXT="Beispiel: Kontextmenü-Eintrag"/>
|
|
<node CREATED="1489544513577" ID="ID_128032926" MODIFIED="1489544521044" TEXT="Beispiel: Aktion per Keybinding"/>
|
|
<node CREATED="1489544524128" ID="ID_1668808893" MODIFIED="1489544534314" TEXT="Beispiel: Signal drag-n-drop"/>
|
|
</node>
|
|
<node CREATED="1489544268018" ID="ID_452323402" MODIFIED="1489544273089" TEXT="was">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544652414" ID="ID_1351449548" MODIFIED="1489544658199" TEXT="lokal bekannt"/>
|
|
<node CREATED="1489544640288" ID="ID_1518540017" MODIFIED="1489544651898" TEXT="fest verdrahtet"/>
|
|
<node CREATED="1489544659597" ID="ID_1444251202" MODIFIED="1489544666376" TEXT="ggfs. Auswahl aus kleiner Menge"/>
|
|
</node>
|
|
<node CREATED="1489544717333" ID="ID_1695877485" MODIFIED="1489544720305" TEXT="falls">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544722261" ID="ID_1263012116" MODIFIED="1489544725320" TEXT="ausführbar"/>
|
|
<node CREATED="1489544725860" ID="ID_1167910092" MODIFIED="1489544728848" TEXT="d.h. aktiviert"/>
|
|
<node CREATED="1489544826383" ID="ID_166753518" MODIFIED="1489544970504" TEXT="zwei verschiedene Effekte">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1489544836757" ID="ID_1543872004" MODIFIED="1489544891968" TEXT="Ausführung abweisen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...stattdessen einen Fehler-Indikator auslösen
|
|
</p>
|
|
<p>
|
|
(Beispiel "in-point fehlt")
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1489544910395" ID="ID_82086808" MODIFIED="1489544965386" TEXT="enable Action">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das ist eine Reaktion,
|
|
</p>
|
|
<p>
|
|
die von einem managing Ui-Element ausgefü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="1492461167913" TEXT="Argumente">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461170141" ID="ID_740147771" MODIFIED="1492965702034" TEXT="der Anker">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1492965703927" ID="ID_1023878270" MODIFIED="1492965710725" TEXT="auf später vertagt">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1492965711791" ID="ID_965013716" MODIFIED="1492965720806" TEXT="InteractionControl">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492461179404" ID="ID_1843144262" MODIFIED="1492461184998" TEXT="die neue Sequenz">
|
|
<node CREATED="1492461186562" ID="ID_357158955" MODIFIED="1492461257245" TEXT="ID muß gesendet werden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
damit UNDO funktionieren kann,
|
|
</p>
|
|
<p>
|
|
müssen wir schon beim capture wissen,
|
|
</p>
|
|
<p>
|
|
welches Objekt (ID) hinzugefügt werden wird.
|
|
</p>
|
|
<p>
|
|
Denn sonst müßten wir uns den gegenwärtigen Inhalt speichern
|
|
</p>
|
|
<p>
|
|
und das wäre unsinnig.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461260360" ID="ID_118202238" MODIFIED="1492461276776" TEXT="EntryID">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492965734610" ID="ID_17105090" MODIFIED="1492965743543" TEXT="neuer Track">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489461946997" HGAP="-10" ID="ID_1526466868" MODIFIED="1511572071502" TEXT="direkt von den Lambdas aus delegieren" VSHIFT="7">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wir können den größ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" ID="ID_1217726538" MODIFIED="1512926191720" TEXT="#1069 how to refer to the current window">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1492965823743" ID="ID_729520839" MODIFIED="1493852096079" TEXT="grundsätzlich gelöst">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1492965830381" ID="ID_1556963629" MODIFIED="1493852099751" TEXT="globalCtx -> find active window">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node COLOR="#990000" CREATED="1492965845115" ID="ID_1375700494" MODIFIED="1512926191721" TEXT="TODO Panel-Aktionen">
|
|
<arrowlink DESTINATION="ID_1176492517" ENDARROW="Default" ENDINCLINATION="14;-313;" ID="Arrow_ID_1083220093" STARTARROW="None" STARTINCLINATION="632;-20;"/>
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1492965914018" ID="ID_1134955241" MODIFIED="1492965917669" TEXT="UNIMPLEMENTED"/>
|
|
<node CREATED="1493852058451" ID="ID_1074189286" MODIFIED="1493852066342" TEXT="war schon seit 2009 deaktiviert"/>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1493852066930" ID="ID_715367457" MODIFIED="1493852080868" TEXT="das ganze Konzept muß überarbeitet werden">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555902731" ID="ID_55451880" MODIFIED="1485555951678" TEXT="#1070 how to bind session commands into UI actions">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1489191725382" ID="ID_1332782754" MODIFIED="1489191731742" TEXT="größeres Thema">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1489191732869" ID="ID_1031180144" MODIFIED="1489191744151" TEXT="nicht sofort zu lösen"/>
|
|
<node CREATED="1489191744764" ID="ID_898481930" MODIFIED="1489191839053" 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="1492463546644" 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="1492461306350" TEXT="LuidH"/>
|
|
<node CREATED="1492461306898" ID="ID_94770054" MODIFIED="1492461308654" TEXT="EntryID"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492463479663" ID="ID_1909730752" MODIFIED="1504393274154" 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="1507924044355" 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="1488419978923" TEXT="brauche ein Konzept">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1488419979868" ID="ID_474441211" MODIFIED="1507924048883" 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="1488420026690" TEXT="wird Dreh- und Angelpunkt">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1488420003752" ID="ID_1927319278" MODIFIED="1488420031086" TEXT="löst auch das Model-Root-Problem">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1488420014959" ID="ID_1816556929" MODIFIED="1488420023146" TEXT="war insofern sinnvoller Umweg">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485909456513" HGAP="55" ID="ID_576215675" MODIFIED="1507935589919" 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;"/>
|
|
<node CREATED="1485909560027" ID="ID_1949656657" MODIFIED="1487039010986" TEXT="baut den UI-Rahen auf"/>
|
|
<node CREATED="1485909491412" ID="ID_1205077540" MODIFIED="1487039041806" TEXT="macht die Applikation betriebsbereit">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1486942467620" HGAP="151" ID="ID_1761000392" MODIFIED="1504368816054" TEXT="Alternativen" VSHIFT="14">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1486942493208" ID="ID_805305597" MODIFIED="1512926191722" TEXT="alles via InteractionDirector">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1486944032334" ID="ID_1959218653" MODIFIED="1486944046824" TEXT="er macht ohnehin fast alles">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1486944056595" ID="ID_423413011" MODIFIED="1512926191722" TEXT="Actions wird eine leere Hülle">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1486944064506" ID="ID_712470482" MODIFIED="1486944068493" TEXT="baut das Menü"/>
|
|
<node CREATED="1486944068985" ID="ID_1074291755" MODIFIED="1486944074916" TEXT="stellt die Closures bereit"/>
|
|
<node CREATED="1486944075456" ID="ID_1851635277" MODIFIED="1486944079556" TEXT="könnte Exceptions fangen"/>
|
|
<node CREATED="1486944081143" ID="ID_310163833" MODIFIED="1486944114879" TEXT="...ist das wirklich so schlecht?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487034056153" ID="ID_1455538166" MODIFIED="1512926191723" TEXT="Rein aus dem Bauch heraus....">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1487034063408" ID="ID_1251347399" MODIFIED="1487034078308">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das <i>verschiebt</i> das Problem nur
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1487034078974" ID="ID_796487731" MODIFIED="1487034094280" TEXT="verletzt das single responsibility pattern"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486942523724" ID="ID_843953045" MODIFIED="1512926191725" TEXT="globalen Kontext einführen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1486942614400" ID="ID_872912875" MODIFIED="1486942627890" TEXT="Action-Definition "weiß" wer das konkret machen kann"/>
|
|
<node CREATED="1486943522965" ID="ID_244569580" MODIFIED="1488492879682" TEXT="konkret...">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1486943529763" ID="ID_186058004" MODIFIED="1512926191726" TEXT="WindowLocator">
|
|
<node CREATED="1486943536354" ID="ID_1414688651" MODIFIED="1486943539365" TEXT="neues Fenster"/>
|
|
<node CREATED="1486943539809" ID="ID_443462243" MODIFIED="1486943543509" TEXT="Fenster schließen"/>
|
|
<node CREATED="1486943765530" ID="ID_1741627821" MODIFIED="1486943771717" TEXT="show Panel xyz"/>
|
|
<node CREATED="1486943555279" ID="ID_1864984187" MODIFIED="1486943582343" TEXT="möglicherweise: gehe zu"/>
|
|
</node>
|
|
<node CREATED="1486943607120" ID="ID_372751802" MODIFIED="1512926191726" TEXT="InteractionDirector">
|
|
<node CREATED="1486943922541" ID="ID_1681514542" MODIFIED="1486943928680" TEXT="Quit Lumiera"/>
|
|
<node CREATED="1486943614039" ID="ID_1857002831" MODIFIED="1486943628425" TEXT="Session schließen/öffnen/speichern"/>
|
|
<node CREATED="1486943634229" ID="ID_423286018" MODIFIED="1512926191727" TEXT="Einstieg in...">
|
|
<node CREATED="1486943640004" ID="ID_1474901789" MODIFIED="1486943642783" TEXT="Preferences"/>
|
|
<node CREATED="1486943643179" ID="ID_1263689486" MODIFIED="1486943645031" TEXT="Assets"/>
|
|
<node CREATED="1486943645554" ID="ID_357680575" MODIFIED="1486943647095" TEXT="Timeline"/>
|
|
</node>
|
|
<node CREATED="1486943674287" ID="ID_1380296040" MODIFIED="1512926191727" TEXT="kontextabhängig">
|
|
<node CREATED="1486943681046" ID="ID_1415550100" MODIFIED="1486943682634" TEXT="Render"/>
|
|
<node CREATED="1486943683198" ID="ID_510577218" MODIFIED="1486943690377" TEXT="add Sequence"/>
|
|
<node CREATED="1486943691228" ID="ID_684917844" MODIFIED="1486943693696" TEXT="add Track"/>
|
|
<node CREATED="1486943854214" ID="ID_382166589" MODIFIED="1486943901435" TEXT="new Viewer"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486943969999" ID="ID_499822898" MODIFIED="1488492879682" TEXT="Meta-Belange">
|
|
<node CREATED="1486943974590" ID="ID_233678784" MODIFIED="1486943976585" TEXT="Hilfe"/>
|
|
<node CREATED="1486944977005" ID="ID_1548991554" MODIFIED="1486944985992" TEXT="Wizzards"/>
|
|
<node CREATED="1486943976942" ID="ID_1215823743" MODIFIED="1512926191728" TEXT="Navigation">
|
|
<node CREATED="1486944958215" ID="ID_175734210" MODIFIED="1486944963905" TEXT="ist wohl ein eigener Controller"/>
|
|
<node CREATED="1486944947297" ID="ID_572583322" MODIFIED="1486944957556" TEXT="hängt aber mit InteractionDirector zusammen"/>
|
|
<node CREATED="1486944966679" ID="ID_185137660" MODIFIED="1486944974378" TEXT="könnte ein Kind von diesem sein...."/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486942533939" ID="ID_1309437882" MODIFIED="1512926191728" TEXT="einzelne Closures explizit">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1486942574333" ID="ID_189848820" MODIFIED="1486942580399" TEXT="das läuft auf ein Delegate hinaus"/>
|
|
<node CREATED="1486942583053" ID="ID_1367249768" MODIFIED="1486942592343" TEXT="...und das wäre der InteractionDirector"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487034156380" HGAP="29" ID="ID_1632778987" MODIFIED="1512926191729" TEXT="globaler Kontext" VSHIFT="11">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1487034162275" ID="ID_28375182" MODIFIED="1487034171926" TEXT="wenige, eng zusammenarbeitende Objekte"/>
|
|
<node CREATED="1487034172393" ID="ID_1167812745" MODIFIED="1487034180237" TEXT="...von denen doch jedes seine Aufgabe hat"/>
|
|
<node CREATED="1487034180712" ID="ID_1371598611" MODIFIED="1487034193170" TEXT="und jedes genau weiß, was die andern können"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504393149140" HGAP="16" ID="ID_48107354" MODIFIED="1504393158952" TEXT="Addressierung" VSHIFT="27">
|
|
<node CREATED="1504393160466" ID="ID_450547493" MODIFIED="1504393166294" TEXT="globales ID-Schema">
|
|
<node CREATED="1504393168946" ID="ID_390425361" MODIFIED="1504393177172" TEXT="Model-Typen"/>
|
|
<node CREATED="1504393177712" ID="ID_1686403667" MODIFIED="1504393182292" TEXT="View-Deskriptor">
|
|
<node CREATED="1504393184608" ID="ID_792210197" MODIFIED="1504393188051" TEXT="Strategy"/>
|
|
<node CREATED="1504834023671" ID="ID_1906244318" MODIFIED="1504834100937" TEXT="konfiguriert">
|
|
<node CREATED="1504834102408" ID="ID_1248837242" MODIFIED="1504834102408" TEXT="Layout/Verhalten"/>
|
|
<node CREATED="1504393188615" ID="ID_1397553997" MODIFIED="1504834120416" TEXT="Verhaltensmuster fü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="1504833760145" 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="1504833907293" 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="1504833701958" TEXT="in einem Panel zu finden"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504393221051" ID="ID_938886823" MODIFIED="1504393282350" 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="1506175115772" HGAP="318" ID="ID_1448696607" MODIFIED="1506262455151" 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="pencil"/>
|
|
<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öglich / unmö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="1506181143851" 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="1506180752100" 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="1506180752103" 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ürde stärkere Annahmen über die "Zielelemente" erforderlich machen,
|
|
</p>
|
|
<p>
|
|
und diese dann doch wieder in ein Korsett zwängen. Im Moment (10/17) habe ich
|
|
</p>
|
|
<p>
|
|
stark den Verdacht, daß wir das nur in wenigen Spezialfä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" ID="ID_65709251" MODIFIED="1504833751457" 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="1504457221429" ID="ID_7304477" MODIFIED="1504457232023" TEXT="Problem: Kopplung">
|
|
<node CREATED="1504457233178" ID="ID_999730208" MODIFIED="1504457249980" TEXT="ViewLocator an PanelLocator"/>
|
|
<node CREATED="1504457251520" ID="ID_799090381" MODIFIED="1504457271026" TEXT="leaks out into the Strategy"/>
|
|
</node>
|
|
<node CREATED="1504458201898" ID="ID_486407658" MODIFIED="1504458206925" TEXT="Lösungen">
|
|
<node CREATED="1504458207889" ID="ID_287209177" MODIFIED="1504458219316" TEXT="lokal definierte Zugriffsfunktionen"/>
|
|
<node CREATED="1504458229743" ID="ID_1174387567" MODIFIED="1504458236449" TEXT="ENUM und lokaler Switch"/>
|
|
</node>
|
|
<node CREATED="1504458255403" HGAP="41" ID="ID_246632028" MODIFIED="1511572071689" TEXT="Fälle" VSHIFT="9">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...was für verschiedene Arten von Zugriff
|
|
</p>
|
|
<p>
|
|
sind denkbar und müssen in der Strategy konfigurierbar sein?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504458488876" ID="ID_800753364" MODIFIED="1504458493831" TEXT="Ort">
|
|
<node CREATED="1504458802042" ID="ID_300193794" MODIFIED="1504458808613" TEXT="expliziter Ort (global)"/>
|
|
<node CREATED="1504458809745" ID="ID_142530354" MODIFIED="1504458821244" TEXT="bestimtes Panel (pro Fenster)"/>
|
|
<node CREATED="1504458863986" ID="ID_1423034932" MODIFIED="1504458867045" TEXT="aktuelle Gruppe"/>
|
|
</node>
|
|
<node CREATED="1504458495043" ID="ID_1488124165" MODIFIED="1504458499094" TEXT="Zahl">
|
|
<node CREATED="1504458543877" ID="ID_1146489911" MODIFIED="1504458549472" TEXT="nur einer">
|
|
<node CREATED="1504458550796" ID="ID_193440091" MODIFIED="1504458557438" TEXT="global (alle Fenster)"/>
|
|
<node CREATED="1504458558307" ID="ID_1626706609" MODIFIED="1504458561630" TEXT="pro Fenster"/>
|
|
</node>
|
|
<node CREATED="1504458603213" ID="ID_1266508735" MODIFIED="1504458604704" TEXT="viele">
|
|
<node CREATED="1504458606052" ID="ID_1545836853" MODIFIED="1504458662313" TEXT="begrenzte Zahl">
|
|
<node CREATED="1504458697520" ID="ID_1784843227" MODIFIED="1504458700843" TEXT="immer pro Gruppe"/>
|
|
<node CREATED="1504479134100" ID="ID_631162736" MODIFIED="1504479154982" TEXT="Limit an die Gruppe gebunden">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504458702640" ID="ID_943045771" MODIFIED="1504458708091" TEXT="unlimitiert"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504459120824" ID="ID_342577636" MODIFIED="1506262455151" 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="1504479507642">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
mögliche
|
|
</p>
|
|
<p>
|
|
Komponenten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1504462874221" ID="ID_437025243" MODIFIED="1504463223186" TEXT="[optional] top-level Fenster"/>
|
|
<node CREATED="1504462888107" ID="ID_121049221" MODIFIED="1504463167809" TEXT="[optional] Perspektive"/>
|
|
<node CREATED="1504462891394" ID="ID_1138854843" MODIFIED="1504462902036" TEXT="Panel"/>
|
|
<node CREATED="1504463020913" ID="ID_808284638" MODIFIED="1504463027724" TEXT="[optional] Gruppe"/>
|
|
<node CREATED="1504463028384" ID="ID_1928250888" MODIFIED="1504463033315" TEXT="View-ID"/>
|
|
</node>
|
|
<node CREATED="1504479185405" HGAP="50" ID="ID_50865654" MODIFIED="1504479497305" 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="1135;-33;"/>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506175078553" HGAP="97" ID="ID_1154523344" MODIFIED="1506262878094" TEXT="Implementierung" VSHIFT="29">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1506262853956" HGAP="-86" ID="ID_652224508" MODIFIED="1506262866504" TEXT="Design-Fragen" VSHIFT="-3">
|
|
<node CREATED="1506262880944" ID="ID_1951800292" MODIFIED="1506262885115" TEXT="Mutability">
|
|
<node CREATED="1506262901774" ID="ID_732818888" MODIFIED="1506262912033" TEXT="immutable == gut?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1506262939753" ID="ID_1096602096" MODIFIED="1506262969584" TEXT="sind 8 Zeiger "schwergewichtig"?"/>
|
|
<node CREATED="1506262985930" ID="ID_1947259139" MODIFIED="1506263001028" TEXT="was konkret will man verhindern?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506263520707" ID="ID_1446434847" MODIFIED="1506263528222" TEXT="wozu Ändern?">
|
|
<node CREATED="1506263529922" ID="ID_1129266280" MODIFIED="1506263536917" TEXT="Definition zusammenstellen"/>
|
|
<node CREATED="1506263537721" ID="ID_1617312199" MODIFIED="1506263608677" 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="1506263615876" 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="1506263425771" TEXT="Idee: Wrapper">
|
|
<node CREATED="1506263427287" ID="ID_190906360" MODIFIED="1506263436058" TEXT="»path navigator«"/>
|
|
<node CREATED="1506263442430" ID="ID_126065663" MODIFIED="1506263446881" TEXT="friend oder Subklasse"/>
|
|
</node>
|
|
<node CREATED="1506263465075" ID="ID_1873282209" MODIFIED="1506263471030" TEXT="Problem: Kontext">
|
|
<node CREATED="1506263472658" ID="ID_557885064" MODIFIED="1506263485412" TEXT="Navigation ist nicht beliebig"/>
|
|
<node CREATED="1506263486160" ID="ID_643453258" MODIFIED="1506263494650" TEXT="muß für jeden Schritt Kontext abfragen"/>
|
|
<node CREATED="1507923810917" ID="ID_1300680611" MODIFIED="1507923819807" TEXT="Delegations-API">
|
|
<node CREATED="1507923825938" ID="ID_248121468" MODIFIED="1507923831965" TEXT="Kontext-Anfragen"/>
|
|
<node CREATED="1507923832289" ID="ID_1141152218" MODIFIED="1507923844571" TEXT="vom konkreten UI implementiert"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1507939232775" ID="ID_314635923" MODIFIED="1507939264576" TEXT="Problem: Binden auf den Kontext">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1507939270618" ID="ID_1505797299" MODIFIED="1507939279052" TEXT="abstrakte Struktur -> konkrete Widgets"/>
|
|
<node CREATED="1507939279761" ID="ID_250590373" MODIFIED="1507939289099" TEXT="keine natürliche Introspektion gegeben"/>
|
|
<node CREATED="1507939312860" HGAP="78" ID="ID_444535530" MODIFIED="1507939559791" TEXT="Analyse" VSHIFT="7">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1507939326250" ID="ID_1890759249" MODIFIED="1507939328862" TEXT="Aufgaben">
|
|
<node CREATED="1507939400248" ID="ID_1464418318" MODIFIED="1507939528176" 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="1507939487954" 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="1507939491154" 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="1508109227085" TEXT="Kinder erzeugen">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1508109233808" ID="ID_816587529" MODIFIED="1508109251986" TEXT="erfordert gemeinsames Interface"/>
|
|
<node CREATED="1508109252574" ID="ID_1185099286" MODIFIED="1508109268257">
|
|
<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="1507939850432" TEXT="konkrete Probleme">
|
|
<node CREATED="1507939859100" ID="ID_860523933" MODIFIED="1507939893095" TEXT="wer bin "ich"?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1507939956606" ID="ID_406843936" MODIFIED="1507939968593" TEXT="was ist gegeben?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1508017024459" ID="ID_604601896" MODIFIED="1508017036024" TEXT="stets ein kompletter Zugangs-Pfad">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1507939970349" ID="ID_714349147" MODIFIED="1507939978746" TEXT="in welcher Form ist es gegeben?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1508016915761" ID="ID_1202508530" MODIFIED="1508016919437" TEXT="konkretes Objekt"/>
|
|
<node CREATED="1508016919857" ID="ID_437710115" MODIFIED="1508016928292" TEXT="UI-Koordinaten per Lookup"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1507939869906" ID="ID_223198097" MODIFIED="1507939888652" STYLE="fork" TEXT="wo bin "ich"?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1507940000057" ID="ID_1526112208" MODIFIED="1507940011464">
|
|
<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="1508017005843">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<b>zentrales</b> Problem
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1508016569551" ID="ID_250033067" MODIFIED="1508016574411" TEXT="zwei Lösungsansätze">
|
|
<node CREATED="1508016575359" ID="ID_1494737189" MODIFIED="1508016601871" TEXT="Ort ist bekannt">
|
|
<node CREATED="1508016623480" ID="ID_66450805" MODIFIED="1508016640730" TEXT="Element speichert seine UICoord"/>
|
|
<node CREATED="1508016658684" ID="ID_116864327" MODIFIED="1511572071854" 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ückt wird
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508016602867" ID="ID_1861393889" MODIFIED="1508016607918" TEXT="Ort kann entdeckt werden">
|
|
<node CREATED="1508016710621" ID="ID_194767769" MODIFIED="1508016717920" TEXT="Element kennt seinen Vater"/>
|
|
<node CREATED="1508016741377" ID="ID_1796475231" MODIFIED="1508016761498" TEXT="(GObject) Introspektion"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1507939914076" ID="ID_109277608" MODIFIED="1507939926147" TEXT="was gilt als "Kind"?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1507940046234" ID="ID_577613088" MODIFIED="1507940079989">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
auf welche Eigenschaften
|
|
</p>
|
|
<p>
|
|
stützen wir uns?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1508017106368" ID="ID_896661508" MODIFIED="1508017117534" TEXT="UI-Element">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1508017111959" ID="ID_484448099" MODIFIED="1508017113603" TEXT="nein"/>
|
|
<node CREATED="1508017121582" ID="ID_1052512660" MODIFIED="1508017127865" TEXT="denn: Fenster, Panels,..."/>
|
|
</node>
|
|
<node CREATED="1508017134709" ID="ID_881948528" MODIFIED="1508017144639" TEXT="Navigierbarkeit">
|
|
<node CREATED="1508017225544" ID="ID_1003735159" MODIFIED="1508017238894" TEXT="abstrakt">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1508017228080" ID="ID_1185322365" MODIFIED="1508017236030" TEXT="per Interface">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508017200476" ID="ID_1519289713" MODIFIED="1508017202519" TEXT="gar keine">
|
|
<node CREATED="1508017203419" ID="ID_1168589916" MODIFIED="1508017213820" TEXT="generische Programmierung!">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508017409096" ID="ID_1088456751" MODIFIED="1508017422144" TEXT="was ist hier ein "Element"?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1508017614565" ID="ID_825986555" MODIFIED="1508017620208" TEXT="bleibt abstrakt">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1508017621148" ID="ID_945496558" MODIFIED="1508017637174" TEXT="man kann etwas damit machen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1507939927035" ID="ID_461225915" MODIFIED="1507940093229">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wer bestimmt,
|
|
</p>
|
|
<p>
|
|
was "Kind" ist?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1507940112890" ID="ID_1195951242" MODIFIED="1507940119572" TEXT="der Bedarf??"/>
|
|
<node CREATED="1507940120425" ID="ID_338582582" MODIFIED="1507940126540" TEXT="der Erzeuger??"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508016417180" ID="ID_1611707918" MODIFIED="1508016419840" TEXT="use cases">
|
|
<node CREATED="1508016430306" ID="ID_192114274" MODIFIED="1508016433389" TEXT="ViewSpec">
|
|
<node CREATED="1508018634766" ID="ID_749934346" MODIFIED="1508018639769" TEXT="View allozieren"/>
|
|
<node CREATED="1508018640309" ID="ID_1078510800" MODIFIED="1508018649815" TEXT="View-Instanz per Gattung"/>
|
|
</node>
|
|
<node CREATED="1508016469685" ID="ID_115506070" MODIFIED="1508016486222" TEXT="change WorkSite">
|
|
<node CREATED="1508018713267" ID="ID_778872885" MODIFIED="1508018720046" TEXT="WorkSite verlagern / mitführen"/>
|
|
<node CREATED="1508018720562" ID="ID_187314256" MODIFIED="1508018725326" TEXT="zu anderer WorkSite gehen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508020233586" HGAP="41" ID="ID_1791370781" MODIFIED="1508020245493" TEXT="Fazit" VSHIFT="16">
|
|
<node CREATED="1508020253223" ID="ID_1259200744" MODIFIED="1508020256499" TEXT="Problem zerlegen">
|
|
<node CREATED="1508020258670" ID="ID_95147852" MODIFIED="1508020269833" TEXT="reverse resolution"/>
|
|
<node CREATED="1508020270709" ID="ID_1200125105" MODIFIED="1508020279736" TEXT="Kinder finden">
|
|
<node CREATED="1508020280683" ID="ID_646056653" MODIFIED="1508020285758" TEXT="fest verdrahtet für top-level"/>
|
|
<node CREATED="1508020286443" ID="ID_515525549" MODIFIED="1508020292366" TEXT="Interface für lokal"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1508020411538" ID="ID_544888156" MODIFIED="1508020416805" TEXT="Navigation">
|
|
<node CREATED="1508020417633" ID="ID_1963411977" MODIFIED="1508020424764" TEXT="arbeitet nur auf UI-Koordinaten"/>
|
|
<node CREATED="1508020433719" ID="ID_1645971492" MODIFIED="1508020445946" TEXT="die dahinterliegenden Strukturen bleiben opaque"/>
|
|
<node CREATED="1508020450445" ID="ID_1822545447" MODIFIED="1508020464519" TEXT="mit dem Ergebnis">
|
|
<node CREATED="1508020465443" ID="ID_1921466133" MODIFIED="1508020488852" TEXT="kann man dann einen View erzeugen"/>
|
|
<node CREATED="1508020489583" ID="ID_1140824323" MODIFIED="1508020497739" TEXT="oder ein Element (bekannten Typs) bekommen"/>
|
|
<node CREATED="1508020551095" ID="ID_798942495" MODIFIED="1508020561924">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
oder den <b>Spot</b> verschieben
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1508020731399" HGAP="9" ID="ID_1043748115" MODIFIED="1508020753594" 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="1508020790107" TEXT="konkretes Element -> WorkSite"/>
|
|
<node CREATED="1508020790888" ID="ID_774784602" MODIFIED="1508020801882" TEXT="»reveal yourself«"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506181068556" ID="ID_749871444" MODIFIED="1506984544618" TEXT="UICoord">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1506181721910" ID="ID_1680105436" MODIFIED="1512926191731" 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="1506723726199" 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" FOLDED="true" ID="ID_291609200" MODIFIED="1514330348055" TEXT="Lösungen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1506301476836" ID="ID_1339982909" MODIFIED="1506302323712" 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ö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" ID="ID_573792630" MODIFIED="1506301767802" 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" ID="ID_1626810109" MODIFIED="1506301705897" 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" ID="ID_515001314" MODIFIED="1506301831038" TEXT="Entscheidung">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1506301780644" ID="ID_143930610" MODIFIED="1506301822914" 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" ID="ID_52512330" MODIFIED="1506723706338" 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ä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ä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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181073556" ID="ID_1878859300" MODIFIED="1515209592815" 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="pencil"/>
|
|
<node COLOR="#338800" CREATED="1506181794428" ID="ID_333406817" MODIFIED="1515209579920" TEXT="Setup">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181800067" ID="ID_196802981" MODIFIED="1515209565927" TEXT="Wiring">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1515209567856" ID="ID_1008245035" MODIFIED="1515209577219" TEXT="warten auf reales UI..."/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506181802699" ID="ID_582767851" MODIFIED="1508625703401" TEXT="Test-Setup">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1508537003861" FOLDED="true" ID="ID_846599209" MODIFIED="1515449619533" 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" ID="ID_1582824657" MODIFIED="1509329323916" TEXT="was heißt "covern"?">
|
|
<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ö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" ID="ID_1262448971" MODIFIED="1509323429562" 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ändig (fä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 äquivalent">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1509323573047" ID="ID_263907664" MODIFIED="1515209542011" TEXT="covern: meint total">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1509323496205" ID="ID_231710474" MODIFIED="1509323516558" TEXT="möglich">
|
|
<node CREATED="1509323517362" ID="ID_1758863955" MODIFIED="1509323518982" TEXT="ankern"/>
|
|
<node CREATED="1509323520018" ID="ID_895622034" MODIFIED="1509323522485" 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="1509323862956" 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ß wir nach dem Interpolieren über eine Lücke
|
|
</p>
|
|
<p>
|
|
immer noch <i>mindestens ein explizt gegebenes</i> Element im Pfad haben,
|
|
</p>
|
|
<p>
|
|
welches auch von der UI-Topologie bestätigt wird.
|
|
</p>
|
|
<p>
|
|
Grund: wir wollen vermeiden, abschließende Wildcards <i>bloß irgendwie</i> 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ämlich wenn der Pfad mit einem explizit gegebenen Präfix anfängt,
|
|
</p>
|
|
<p>
|
|
dann aber Wildcards enthält, die nicht nach den verschärften Bedingungen gecovert werden kö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äfix nicht paß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="1515209531011" TEXT="ist partielle Covfefe sinnvoll">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1514748049396" ID="ID_844123386" MODIFIED="1514748079005" TEXT="schö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äglich durch Lä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ä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ösungen geben">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1508537087378" ID="ID_548549576" MODIFIED="1515209423835" TEXT="Wildcards interpolieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514328942052" ID="ID_638910432" MODIFIED="1514328949331" TEXT="»pathResolution«"/>
|
|
<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="1514329008039" 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öffnete"/>
|
|
</node>
|
|
<node CREATED="1514329036159" ID="ID_1686905211" MODIFIED="1514329039931" 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> ist
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514329081745" ID="ID_1158924252" MODIFIED="1514329085564" TEXT="'*'">
|
|
<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ß 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="1515449605990" TEXT="Operationen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1508540055241" ID="ID_565736574" MODIFIED="1508540082134" TEXT="Konventionen">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1508540093004" ID="ID_277252077" MODIFIED="1511572072017" 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ßt, es genügt, den ersten Match zu nehmen.
|
|
</p>
|
|
<p>
|
|
<b>Warnung</b>: diese Konvention ist besonders tü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="1511572072023" 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ß diese gü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="1511572072084" TEXT="UI stabil während der Auswertung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
die Topologie, aber auch der Fokus-Zustand
|
|
</p>
|
|
<p>
|
|
ändern sich nicht während der <i>aktiven Lebensdauer</i> eines Resolvers
|
|
</p>
|
|
<p>
|
|
Hierbei ist <i>aktive Lebensdauer</i> 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="1511572072091" 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" ID="ID_1632791283" MODIFIED="1515120970745" 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 über die reale UI-Topologie
|
|
</p>
|
|
<p>
|
|
Ziel ist, den Pfad <i>bestmöglich</i> zu covern
|
|
</p>
|
|
<p>
|
|
Es gilt die erste maximal abdeckende Lö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="1515120942582" 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ü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ält
|
|
</li>
|
|
<li>
|
|
Lösung wird unter Alternativen ausgewä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ö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ä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" ID="ID_1571889765" MODIFIED="1515287574648" 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="1509329355200" TEXT="cover">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1508540823475" ID="ID_793410656" MODIFIED="1515037714505" TEXT="path-resolution ausführen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1509475490890" ID="ID_1616720086" MODIFIED="1509475494565" TEXT="rekursiv"/>
|
|
<node CREATED="1509475495057" ID="ID_27489504" MODIFIED="1509475501956" TEXT="Aufruf mit ResolutionState"/>
|
|
<node CREATED="1509475548066" ID="ID_1051318433" MODIFIED="1509475558373" TEXT="jede gefundene Lösung "abwerfen""/>
|
|
<node CREATED="1509475609338" ID="ID_142146721" MODIFIED="1509475629095" TEXT="erweitere Variante von drillDown()">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1509475823750" ID="ID_1076784903" MODIFIED="1509475848182" TEXT="Problem: LocationQuery verwenden">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1509475849931" ID="ID_313015724" MODIFIED="1509475855741" TEXT="der Baum ist nicht direkt zugänglich"/>
|
|
<node CREATED="1509475856514" ID="ID_759555189" MODIFIED="1509475867380" TEXT="geht dann überhaupt eine rekursive impl?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1509475946414" ID="ID_815740043" MODIFIED="1509475965847" TEXT="muß die Child-Iteratoren nutzen"/>
|
|
<node CREATED="1509475966459" ID="ID_1480938627" MODIFIED="1509475991604" TEXT="ineffizient; steigt jedesmal neu von der Wurzel ab"/>
|
|
<node CREATED="1509476108672" ID="ID_609074970" MODIFIED="1509476238698" TEXT="Kern des Problems">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1509476118647" ID="ID_1491799749" MODIFIED="1509476126258" TEXT="habe Auswertungs-Zustand"/>
|
|
<node CREATED="1509476126793" ID="ID_1463784807" MODIFIED="1509476133201" TEXT="ist mit dem Baum verwoben"/>
|
|
<node CREATED="1509476133741" ID="ID_1273043633" MODIFIED="1509476148391" TEXT="der Baum ist aber Implementierungs-Detail"/>
|
|
</node>
|
|
<node CREATED="1509476154258" FOLDED="true" ID="ID_930376282" MODIFIED="1515206253551" TEXT="mögliche Lö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 ü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="1514328782131" TEXT="IterExplorer nutzen?">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1509481841493" ID="ID_125946562" MODIFIED="1512927037803" 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" ID="ID_1335669968" MODIFIED="1512927037803" 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" ID="ID_1796930306" MODIFIED="1512927037803" TEXT="RecursiveSelfIntegration">
|
|
<node CREATED="1509481981834" ID="ID_312626846" MODIFIED="1509481990157" TEXT="muß dann eigenen Sequenz-Typ verwenden"/>
|
|
<node CREATED="1509481991033" ID="ID_321192742" MODIFIED="1509482002172" TEXT="dieser implementiert die re-Integration selber"/>
|
|
</node>
|
|
<node CREATED="1509482005743" ID="ID_156318392" MODIFIED="1512927037802" 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="1514328717684" ID="ID_137835978" MODIFIED="1514328857229" 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;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514328733272" ID="ID_1367581404" MODIFIED="1514328740811" TEXT="monadisierter Pipeline-Builder"/>
|
|
<node CREATED="1514328741687" ID="ID_1056450433" MODIFIED="1514328755457" TEXT="expandChildren() auf dem Iterator-API auslösbar"/>
|
|
<node CREATED="1514328757725" ID="ID_1835412332" MODIFIED="1514328766544" TEXT="auch über Transformer und Abstraktionsbarrieren hinweg"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1509495634766" FOLDED="true" ID="ID_422767906" MODIFIED="1515037628032" TEXT="Zusammenspiel">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1509491594115" ID="ID_214903834" MODIFIED="1509491635369" TEXT="was trä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" ID="ID_167277646" MODIFIED="1509495655428" TEXT="was trä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" ID="ID_265529571" MODIFIED="1509500193239" TEXT="wie wird die Lösung gebildet?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1509500778214" ID="ID_205493443" MODIFIED="1512927037802" TEXT="immer wenn ein Zweig ausgeschö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 "abwerfen""/>
|
|
</node>
|
|
<node CREATED="1509500882017" ID="ID_1192819328" MODIFIED="1509500900990" TEXT="Problem: Backtracking">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1509500892895" ID="ID_1418393701" MODIFIED="1509500898746" TEXT="ein Problem der Repräsentation"/>
|
|
<node CREATED="1509500905589" ID="ID_583193934" MODIFIED="1509500921375" TEXT="muß zu einem früheren, partiell gebildeten Pfad zurückkehren"/>
|
|
<node CREATED="1509500998401" ID="ID_566603059" MODIFIED="1512927037802" TEXT="Pfade sind vorwä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ösung brauche ich den Pfad aufwärts.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1509501086314" ID="ID_1462237553" MODIFIED="1509501086314">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Das heißt, wir mü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önnen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1509580020810" ID="ID_602529711" MODIFIED="1509580027551" TEXT="COW">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1509581231027" HGAP="73" ID="ID_1779465547" MODIFIED="1509583188142" TEXT="mö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" HGAP="39" ID="ID_501629316" MODIFIED="1512927037801" STYLE="bubble" TEXT="fü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" ID="ID_1294975373" MODIFIED="1512927037818" TEXT="(node, depth) -> 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" ID="ID_956022061" MODIFIED="1512927037836" TEXT="ja">
|
|
<node CREATED="1509581675560" ID="ID_17975640" MODIFIED="1514742893143" TEXT="depth+1">
|
|
<icon BUILTIN="full-1"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#e1e1b6" CREATED="1509581999829" ID="ID_195154621" MODIFIED="1514742890504" 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" ID="ID_1594605893" MODIFIED="1513560515743" 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" ID="ID_593473991" MODIFIED="1512927037835" 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" FOLDED="true" HGAP="45" ID="ID_1054378844" MODIFIED="1513477003399" VSHIFT="18">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
monadische Lösung
|
|
</p>
|
|
<p>
|
|
möglich?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1509583603442" ID="ID_1654046432" MODIFIED="1512927037801" TEXT="Aufgabe">
|
|
<node CREATED="1509583606241" ID="ID_1229235682" MODIFIED="1509583612828" TEXT="brauche explore-Funktion"/>
|
|
<node CREATED="1509583629367" ID="ID_911265983" MODIFIED="1509583641832" TEXT="element -> zu betrachtende Kinder"/>
|
|
<node CREATED="1509583710276" ID="ID_76982043" MODIFIED="1512927037818" TEXT="Teilaufgaben">
|
|
<node CREATED="1509583754350" ID="ID_304891578" MODIFIED="1509583763832" TEXT="element -> match?"/>
|
|
<node CREATED="1509583855993" ID="ID_1587235171" MODIFIED="1509583889120" TEXT="ja! -> mögliche Kinder"/>
|
|
</node>
|
|
<node CREATED="1509583973681" ID="ID_1318889619" MODIFIED="1512927037817" TEXT="Problem: ternä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="1512927037800" TEXT="Ansatz">
|
|
<node CREATED="1510266817500" ID="ID_1438980093" MODIFIED="1512927037817" TEXT="3 Layer verwenden">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1510266845712" ID="ID_1058798631" MODIFIED="1512927037835" TEXT="depthFirstExpandable">
|
|
<node CREATED="1510340746785" ID="ID_1049791542" MODIFIED="1510340774700">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>echte</i> 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" ID="ID_1928917413" MODIFIED="1512927037834" TEXT="pathMatcher">
|
|
<node CREATED="1510340991536" ID="ID_551863450" MODIFIED="1510341006225" TEXT="Zustands-Tupel -> 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" ID="ID_858567040" MODIFIED="1512927037834" 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ösungen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1510341362957" FOLDED="true" ID="ID_1499495468" MODIFIED="1513473668875" 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öherer Ordnung,
|
|
</p>
|
|
<p>
|
|
also mehr als bloß parametrisierte Typen (Templates)!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1510341461168" ID="ID_862729714" MODIFIED="1510341472426" TEXT="Insofern Iterator == Monade"/>
|
|
<node CREATED="1510342283759" ID="ID_196604339" MODIFIED="1512927037834" TEXT="als Pipeline realisieren?">
|
|
<node CREATED="1510342309372" ID="ID_1423589544" MODIFIED="1510342448222" TEXT="M a >>= (a -> M b) >>= (b -> M c)">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1510342375691" ID="ID_433622803" MODIFIED="1512927037858" TEXT="hier wä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ösung"/>
|
|
</node>
|
|
<node CREATED="1510342662644" ID="ID_1670214510" MODIFIED="1512927037857" 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> 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ägungen, die alle subtile Seiteneffekte ausnutzen....
|
|
</p>
|
|
<p>
|
|
...was nicht grade zur Verständlichkeit des Ganzen beiträ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> dargestellt werden kann
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1510357676862" FOLDED="true" ID="ID_1057287927" MODIFIED="1512926193412" TEXT="das heiß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" ID="ID_672047484" MODIFIED="1512927037856" 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 -> 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 -> (x, s) "/>
|
|
<node CREATED="1510365961733" FOLDED="true" ID="ID_188006936" MODIFIED="1512926191735">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
m >>= f = \r -> let (x, s) = m r
|
|
</p>
|
|
<p>
|
|
                            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ß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="1512927037833" VSHIFT="42">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
sind Monaden
|
|
</p>
|
|
<p>
|
|
wirklich hilfreich?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1510446351987" ID="ID_1280916101" MODIFIED="1512927037855" TEXT="steile These">
|
|
<node CREATED="1510446304314" ID="ID_628535706" MODIFIED="1510446320689" TEXT="Zustand ist ein Phänomen der wirklichen Welt"/>
|
|
<node CREATED="1510446255552" ID="ID_1911148874" MODIFIED="1510446264587" TEXT="funktionale Sprachen sind kaputt by design"/>
|
|
<node CREATED="1510446265767" ID="ID_1173611125" MODIFIED="1510446275105" TEXT="nur deshalb brauchts dort Monaden"/>
|
|
</node>
|
|
<node CREATED="1510446363306" ID="ID_784523355" MODIFIED="1512927037855" TEXT="trotzdem gerechtfertigt?">
|
|
<node CREATED="1510446371480" ID="ID_507011741" MODIFIED="1510446394065" TEXT="Klarheit"/>
|
|
<node CREATED="1510446394965" ID="ID_1101937943" MODIFIED="1510446398689" TEXT="Trennung"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1510446985581" HGAP="7" ID="ID_1266495962" MODIFIED="1512927037833" 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" ID="ID_139960047" MODIFIED="1512927037855" 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" ID="ID_1016093231" MODIFIED="1512927037855" 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 -> Wert oder Marker"/>
|
|
<node CREATED="1510447097509" ID="ID_1527567894" MODIFIED="1510447108696" TEXT="iterate -> Prozeß-Schritt"/>
|
|
</node>
|
|
<node CREATED="1510447482473" ID="ID_232445241" MODIFIED="1512927037854" TEXT="Aufgaben">
|
|
<node CREATED="1510447488864" ID="ID_585404918" MODIFIED="1510447497779" TEXT="wie die "Operation" integrieren"/>
|
|
<node CREATED="1510447506901" ID="ID_1653596769" MODIFIED="1510447517655" TEXT="Unterschied Explore / Transform"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1510540265979" HGAP="17" ID="ID_1160853986" MODIFIED="1513473715007" 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" ID="ID_304955672" MODIFIED="1512927037832" STYLE="fork" TEXT="Baum-Explorer">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1510540409159" ID="ID_1790409069" MODIFIED="1512797263191" TEXT="wiederverwendbarer Baustein"/>
|
|
<node CREATED="1510540682809" ID="ID_1860662906" MODIFIED="1512927037854" 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" ID="ID_494812399" MODIFIED="1512927037854" TEXT="expandierbar">
|
|
<node CREATED="1510540735386" ID="ID_94152805" MODIFIED="1512797263191" TEXT="zusä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ätzlich</i> einen <b>Stack</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1510540417614" ID="ID_169601267" MODIFIED="1512927037853" 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" ID="ID_1918069733" MODIFIED="1512927037853" TEXT="Monade?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1510939532689" FOLDED="true" ID="ID_608280633" MODIFIED="1512926193412" TEXT="konventionelle Lösung">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1510939567867" ID="ID_1799788775" MODIFIED="1512797263192" TEXT="expand: S -> 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ß 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ösung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1510939598175" ID="ID_1272498716" MODIFIED="1512797263192" TEXT="expand: S -> BaumExplorer<S>"/>
|
|
<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>
|
|
 fü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ß nicht speziell vorbereitet sein (nur konstruierbar)"/>
|
|
<node CREATED="1510940199342" ID="ID_1423687617" MODIFIED="1512797263192" TEXT="man zahlt immer den Overhead für den Stack im Baum-Explorer">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...selbst wenn man ihn für eine triviale Implementierung
|
|
</p>
|
|
<p>
|
|
eigentlich ü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> 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" ID="ID_1605100271" MODIFIED="1512927037831" 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öglicherweise fest vorkonfigurierbarer Builder hierfür">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1510540399304" ID="ID_300971395" MODIFIED="1512927037831" TEXT="Filter">
|
|
<node CREATED="1510541335201" ID="ID_1717169058" MODIFIED="1510541339780" TEXT="fischt nach Lö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" ID="ID_667413818" MODIFIED="1513473609732" TEXT="generische Lösung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1510941425200" ID="ID_1773303405" MODIFIED="1512927037799" TEXT="Vorgabe">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1510941397907" ID="ID_993148577" MODIFIED="1512955809672" TEXT="zunächst als abstrakter Baustein">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1510941406978" ID="ID_1048232110" MODIFIED="1512955812834" TEXT="später mit IterExplorer verschmelzen">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1510941455667" FOLDED="true" ID="ID_1945607867" MODIFIED="1512955806527" TEXT="Builder">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511054840038" ID="ID_18464349" MODIFIED="1511054851543" TEXT="brauch ich am Ende ü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ährlich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
die Builder-Operationen moven den bisherigen Iterator-compound weg.
|
|
</p>
|
|
<p>
|
|
<i>Ich könnte mir vorstellen, </i>daß das einen naiven User ziemlich schockiert....
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Lösung wä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ätermal">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512278433500" ID="ID_1806674229" MODIFIED="1512927037814" TEXT="TreeExplorer fungiert als Builder">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1512278445042" ID="ID_205794467" MODIFIED="1512278456012" TEXT="wird jeweils on top darü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="1514827423467" TEXT="TreeExplorer">
|
|
<linktarget COLOR="#8ad3a5" DESTINATION="ID_845080696" ENDARROW="Default" ENDINCLINATION="-230;134;" ID="Arrow_ID_253437970" SOURCE="ID_137835978" STARTARROW="None" STARTINCLINATION="-387;0;"/>
|
|
<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;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1511571446467" FOLDED="true" ID="ID_1778455053" MODIFIED="1513447893872" TEXT="expand-Operation">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1511227813712" ID="ID_1961708112" MODIFIED="1512927037831" 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 -> Iter(Val)"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511227861867" ID="ID_1021264891" MODIFIED="1512927037831" TEXT="Fall-2 ">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511227870346" ID="ID_707253800" MODIFIED="1511228200055" TEXT="verzahnte Implementierung"/>
|
|
<node CREATED="1511227975028" ID="ID_1383529442" MODIFIED="1512927037852" TEXT="Sub-Fälle">
|
|
<node CREATED="1511227902005" ID="ID_867168618" MODIFIED="1511228200056" TEXT="Core -> Iter(Val)"/>
|
|
<node CREATED="1511227917971" ID="ID_1274261467" MODIFIED="1511228200056" TEXT="Core -> Core"/>
|
|
<node CREATED="1511227925202" ID="ID_211547168" MODIFIED="1511228200056" TEXT="Iter(Val) -> Iter(Val)"/>
|
|
<node CREATED="1511227944392" ID="ID_1244265850" MODIFIED="1511228200056" TEXT="Iter(Val) -> Core"/>
|
|
</node>
|
|
<node CREATED="1511227985314" ID="ID_723642910" MODIFIED="1512927037852" 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=""Zugriff auf Core" kann nicht abstrahiert werden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
weil...
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
sich zwar die Logik syntaktisch anschreiben läß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ösung: Funktions-Komposition mit getemplatetem operator()">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1511228184223" HGAP="26" ID="ID_1701796180" MODIFIED="1512927037830" TEXT="Vereinigung" VSHIFT="23">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1511228210268" ID="ID_268486334" MODIFIED="1511228224230" TEXT="im Fall-1 müssen wir operator* anwenden"/>
|
|
<node CREATED="1511228226946" ID="ID_1853550246" MODIFIED="1512927037852" TEXT="im Fall-2 mü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" ID="ID_1409331699" MODIFIED="1512927037851" TEXT="Lö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önnen unterschiedliche Typen sein"/>
|
|
<node CREATED="1511402861613" ID="ID_1536434222" MODIFIED="1511402872072" TEXT="solange der expandFunktor beide akzeptiert...."/>
|
|
</node>
|
|
<node CREATED="1511455454190" ID="ID_1384978479" MODIFIED="1512927037851" TEXT="Problem: kein generischer Expand-Functor">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1511455484027" ID="ID_548359395" MODIFIED="1511572072779" TEXT="unmittelbare Folge davon, daß wir den Typ des Expand-Funktors analysieren">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
_fun<FUN>::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ü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ä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ällt auf <i>eine</i> mögliche Substitution zurü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äre dann: den Iterator zu verwenden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
denn das ist der sinnvollste Fall für ein generisches Lambda
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1511571955951" HGAP="-20" ID="ID_189622415" MODIFIED="1512927037829" 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ützte Varianten dokumentieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1511578330448" ID="ID_1808038526" MODIFIED="1512955467937" TEXT="alle unterstü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="1512955519615" TEXT="transform-Operation">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511827249561" ID="ID_794510302" MODIFIED="1511827265634" TEXT="strikt nach Dekorator-Pattern"/>
|
|
<node CREATED="1511827337686" ID="ID_1214119488" MODIFIED="1512927037829" TEXT="bestehendern TransformIter verwenden?">
|
|
<node CREATED="1511827584523" ID="ID_1921395634" MODIFIED="1511827600541" TEXT="nein: wir mü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" ID="ID_244629150" MODIFIED="1512927037829" TEXT="Frage: kann man mit ADL überlagern?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1511827732399" ID="ID_1358685038" MODIFIED="1511827746408" TEXT="wenn ja: dann müßte man nur yield neu implementieren"/>
|
|
<node CREATED="1511831100013" ID="ID_446486349" MODIFIED="1512927037850" 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" ID="ID_295934398" MODIFIED="1512927037828" TEXT="Dekorator-Ansatz">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1512262147649" ID="ID_1592901896" MODIFIED="1512927037849" TEXT="Dekorator auf Core">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1512262162366" ID="ID_1471773970" MODIFIED="1512262276131" TEXT="kann direkt Core -> 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<Core>">
|
|
<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ötig verkompliziertem Design aus">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512262200009" FOLDED="true" ID="ID_1921211925" MODIFIED="1512926193413" TEXT="führt zu unnötig komplexem Design">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1512262213016" ID="ID_1547313420" MODIFIED="1512262221626" TEXT="wir haben jetzt "zwei Schienen""/>
|
|
<node CREATED="1512262222470" ID="ID_589647672" MODIFIED="1512262236880" TEXT="und es ist nicht mehr klar, was die Quelle ist"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512262251706" ID="ID_1480384220" MODIFIED="1512927037849" TEXT="Dekorator auf Iterator">
|
|
<node CREATED="1512262291085" FOLDED="true" ID="ID_1532344112" MODIFIED="1512926193413" TEXT="fü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> entfernen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512262331008" ID="ID_287760536" MODIFIED="1512262346625" TEXT="enthaltenen SrcIter dekorieren -> Core"/>
|
|
<node CREATED="1512262347637" ID="ID_1683477051" MODIFIED="1512262371854" TEXT="erneut einen TreeExplorer darü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önnen beliebig verschachteln"/>
|
|
<node CREATED="1512262505760" ID="ID_534073442" MODIFIED="1512262514890" TEXT="der Trait könnte eine tiefere Schicht greifen"/>
|
|
<node CREATED="1512262516143" FOLDED="true" ID="ID_1514197178" MODIFIED="1512926193408" TEXT="Lö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üssen neue Core produzieren">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511918986936" ID="ID_667088953" MODIFIED="1512927037828" TEXT="Konstrukt">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1511919003054" ID="ID_1728459315" MODIFIED="1512927037848" 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ätzliches Problem jedes Iterator-Dekorators">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wir haben bisher viel zu naiv angenommen,
|
|
</p>
|
|
<p>
|
|
daß 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ünftig zwei Fälle unterstü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öst durch stets regelmäß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" ID="ID_233806852" MODIFIED="1512927037848" 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ß 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<FUN, SRC>::Res lib::{anonymous}::_ExpansionTraits<FUN, SRC>::Functor::operator()(ARG&) [with ARG = long int; FUN = lib::test::IterTreeExplorer_test::verify_transformOperation()::<lambda(auto:2)>&; SRC = lib::iter_explorer::IterableDecorator<long int, lib::iter_explorer::WrappedIteratorCore<lib::TreeExplorer<lib::iter_explorer::StlRange<std::vector<long int>&> > > >; lib::{anonymous}::_ExpansionTraits<FUN, SRC>::Res = std::basic_string<char>]':
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
src/lib/iter-tree-explorer.hpp:426:50: error: no match for call to '(std::function<std::basic_string<char>(lib::iter_explorer::IterableDecorator<long int, lib::iter_explorer::WrappedIteratorCore<lib::TreeExplorer<lib::iter_explorer::StlRange<std::vector<long int>&> > > >&)>) (long int&)'
|
|
</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ß von yield stammen"/>
|
|
<node CREATED="1512183058625" ID="ID_1212399223" MODIFIED="1512183084458" TEXT="wir stehen in Transformer<COR..."/>
|
|
<node CREATED="1512183107627" ID="ID_1096980589" MODIFIED="1512183113342" TEXT="with COR = lib::iter_explorer::WrappedIteratorCore<lib::TreeExplorer..."/>
|
|
<node CREATED="1512183054810" ID="ID_1399207561" MODIFIED="1512183133267" TEXT="typename IT::reference yield(WrappedIteratorCore const&)"/>
|
|
<node CREATED="1512183140886" ID="ID_549090759" MODIFIED="1512183150825" TEXT="IT = TreeExplorer"/>
|
|
<node CREATED="1512183151693" ID="ID_621724350" MODIFIED="1512183166319" TEXT="IT::reference == long&"/>
|
|
</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<long, WrappedIteratorCore<...."/>
|
|
<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> 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ä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ürde das ganze System aufdoppeln">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1512250754085" FOLDED="true" ID="ID_1665621288" MODIFIED="1512926191762" TEXT="warum überhaupt zwei Systeme?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1512250771874" ID="ID_59094155" MODIFIED="1512250776853" TEXT="theoretisch kö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ä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ß 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ä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ügen">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512259544994" ID="ID_702123443" MODIFIED="1512259564650" TEXT="Problem: muß 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älle adaptieren kö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üssen StateCore sein">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...denn wenn mal ein Layer "nur" Iterator wäre,
|
|
</p>
|
|
<p>
|
|
dann könnte es eine Kombination geben, die einen solchen Layer übersrpingt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512251276054" ID="ID_236669144" MODIFIED="1512251283329" TEXT="Kurzschluß Core -> 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ö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" ID="ID_1554412479" MODIFIED="1512927037847" TEXT="muß 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 "basically" bis auf den Pointer?"/>
|
|
<node CREATED="1512183562621" ID="ID_57742709" MODIFIED="1512183571160" TEXT="logisch wä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="1512955524165" TEXT="filter-Operation">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511837285306" ID="ID_928417859" MODIFIED="1512927037827" TEXT="der Vollstä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önnte Itertools ablösen">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511837329140" ID="ID_1963360740" MODIFIED="1512927037827" 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" ID="ID_673112014" MODIFIED="1512927037827" 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 "ausgewertet" merken?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1512606810364" ID="ID_1956085441" MODIFIED="1512927037847" 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="1514827404540" 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" ID="ID_690243302" MODIFIED="1514827185063" TEXT="auf API herausfü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="1512955526490" TEXT="auto-expand">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512844658352" ID="ID_1411659026" MODIFIED="1512844688077" TEXT="einfache Ausprägung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nur was billig ist,
|
|
</p>
|
|
<p>
|
|
denn im Moment brauchen wir das überhaupt nicht
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1512844696922" ID="ID_396632754" MODIFIED="1512927037826" TEXT="zusä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" ID="ID_706634236" MODIFIED="1512927037826" TEXT="expandAll">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512844742788" ID="ID_1270260953" MODIFIED="1512844748479" TEXT="expandChildren verzögert"/>
|
|
<node CREATED="1512844749235" ID="ID_1344028360" MODIFIED="1512844759661" TEXT="ausgelö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" ID="ID_1993110543" MODIFIED="1512927037847" 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üß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ätzliche Komplexität wert?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512951786574" ID="ID_1699122692" MODIFIED="1512951912225" 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ß für diesen Fall selbständig terminieren"/>
|
|
<node CREATED="1512951841703" ID="ID_815720383" MODIFIED="1512951903322" TEXT=""komplett entfaltet" 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" ID="ID_488089119" MODIFIED="1512952023972" TEXT="Komplexitä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ä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ür gutes Design">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
der Natur der Dinge folgen,
|
|
</p>
|
|
<p>
|
|
nicht den technischen Möglichkeiten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1512363286920" FOLDED="true" ID="ID_1420123769" MODIFIED="1514081201770" TEXT="Zusammenspiel">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512844805995" ID="ID_927486947" MODIFIED="1512927037825" TEXT="single-val">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1512844821609" ID="ID_478047650" MODIFIED="1512844824644" TEXT="man könnte...."/>
|
|
<node CREATED="1512844825280" ID="ID_1599364674" MODIFIED="1512844833243" TEXT="einzelne Werte in einen Iterator "heben""/>
|
|
<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" ID="ID_134602126" MODIFIED="1512927037846" TEXT="Problem Quell-Änderung">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1512363380411" ID="ID_1008917631" MODIFIED="1512363473668" TEXT="expandChildren ä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 überdeckt">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="broken-line"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512363518944" HGAP="38" ID="ID_1189860266" MODIFIED="1512927037846" TEXT="Lö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ö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önnen wir niemals von Parent -> Subklasse aufrufen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt, es ist nicht möglich,
|
|
</p>
|
|
<p>
|
|
daß 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ätzlichen Ü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ß wir beim <b>Lumiera Forward Iterator</b> - Konzept bleiben
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
-- das heißt, beliebig oft yield, und Iterations-Ende per bool()-Test
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Unter dieser Annahme kommt yield stets vor iterNext (wenn überhaupt).
|
|
</p>
|
|
<p>
|
|
Und yield muß (a) einen Status liefern, (b) einen Wert liefern.
|
|
</p>
|
|
<p>
|
|
Einziger Ausweg wäre, wie das IterAdapter macht, einen Pointer rauszugeben.
|
|
</p>
|
|
<p>
|
|
Das ist eigentlich keine gute Lösung, weil die Implementierung dann sehr tricky wird.
|
|
</p>
|
|
<p>
|
|
Siehe IterAdapter als abstoßendes Beispiel.
|
|
</p>
|
|
<p>
|
|
Und als weitere Alternative bleibt nur die Einführung von State, und das bedeutet,
|
|
</p>
|
|
<p>
|
|
sich im Iterator oder in der Implementierung irgendwo noch eine zusätzliche bool-Flag zu speichern.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512440148015" FOLDED="true" ID="ID_1475512070" MODIFIED="1512926193409" TEXT="Einzige Lö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" ID="ID_1808232294" MODIFIED="1512927037845" TEXT="Konsequenz der Analyse">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512440223221" ID="ID_741091948" MODIFIED="1512512823480" TEXT="warum verwenden wir überhaupt ADL-Funktionen??">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1512440238859" ID="ID_1975957673" MODIFIED="1512440262159" TEXT="wir brauchen hier gar keinen "Extension Point"">
|
|
<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önnte die "state core" 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ü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ß die Funktionen auch virtuell sind,
|
|
</p>
|
|
<p>
|
|
können wir nicht sicherstellen
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
daß die hereingereichte Implementierung die Funktionen überschreibt
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512440341573" ID="ID_1804763032" MODIFIED="1512440348845" TEXT="wir können bis 2020 warten...">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1512440360194" ID="ID_1554793680" MODIFIED="1512440375486" TEXT="es ist nä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" HGAP="14" ID="ID_1713522306" MODIFIED="1512927037845" TEXT="Implementierung" VSHIFT="7">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512516499478" ID="ID_1331925282" MODIFIED="1512516507112" TEXT="fü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ö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ß daraufhin seinen Cache wegwerfen"/>
|
|
<node CREATED="1512516567076" ID="ID_647647031" MODIFIED="1512516587342" TEXT="filter muß daraufhin erneut filter-pull ausfü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> einem Layer expanded
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512516708649" ID="ID_474656011" MODIFIED="1512516797884" TEXT="dann muß 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ück,
|
|
</p>
|
|
<p>
|
|
was <i>vor</i> 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ückgabewert eingebaut
|
|
</li>
|
|
<li>
|
|
damit kann ich das IterSource-Front-End refreshen
|
|
</li>
|
|
<li>
|
|
trotzdem hä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" ID="ID_263549307" MODIFIED="1513294184112" 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über gesetzte Expander bekommen das Schließ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" ID="ID_1803494848" MODIFIED="1513293899233" 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" ID="ID_277229668" MODIFIED="1513293895109" TEXT="Wirkung unklar">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1513293901848" ID="ID_1292422466" MODIFIED="1513293907323" 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" ID="ID_308120385" MODIFIED="1513293913866" 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ßen notwendig"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1513395781003" ID="ID_1245121355" MODIFIED="1513395835329" TEXT="Problem: wie anschließ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" ID="ID_618831184" MODIFIED="1513395835330" 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" ID="ID_803702364" MODIFIED="1513395887860" 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" ID="ID_1622086178" MODIFIED="1513395664660" TEXT="Problem: virtuelle Calls">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1513395629375" ID="ID_698225511" MODIFIED="1513395640418" TEXT="muß nun "downstream" 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" HGAP="-59" ID="ID_992596886" MODIFIED="1513395898750" 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ö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ön gelöst zu haben.
|
|
</p>
|
|
<p>
|
|
Das Problem ist, daß eben auch der <i>Konsument</i> 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" ID="ID_1752199055" MODIFIED="1513401371843" 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ä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önnte tatsächlich eine echte pragmatische Alternative sein!">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513447925593" ID="ID_1239682661" MODIFIED="1513447946498" TEXT="expansion depth">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1513447947870" ID="ID_328146397" MODIFIED="1513448183232" TEXT="nach außen zugänglich machen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513447956069" ID="ID_1345517957" MODIFIED="1513447997648" TEXT="Problem: muß dafür korrekt sein">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1513447967084" ID="ID_476332936" MODIFIED="1513447978718" TEXT="d.h. muß die logische Tiefe widerspiegeln"/>
|
|
<node CREATED="1513447979450" ID="ID_224439756" MODIFIED="1513448250249" TEXT="...auch wenn der Vater bereits erschöpft ist">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wir hatten bisher eine auto-Aufräum-Routine in iterNext(),
|
|
</p>
|
|
<p>
|
|
welche dazu führt, daß ein erschöpfter Vater sofort weggeräumt wird,
|
|
</p>
|
|
<p>
|
|
noch bevor wir dazu kommen, die Kinder zu pushen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513448002247" ID="ID_804459643" MODIFIED="1513448144858" TEXT="Lö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" ID="ID_292438102" MODIFIED="1514081144696" 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="1513473563423" TEXT="asIterSource">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512621242778" ID="ID_695969017" MODIFIED="1512927037824" TEXT="Eigenschaften">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1511837396075" ID="ID_1916743569" MODIFIED="1511837401078" TEXT="abschließ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" ID="ID_1388034155" MODIFIED="1512927037843" 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" ID="ID_1452751365" MODIFIED="1512927037843" TEXT="wie expand() an die Quelle weitergeben?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1512711382889" ID="ID_1913647489" MODIFIED="1512711393299" TEXT="muß virtuelle methode sein"/>
|
|
<node CREATED="1512711396279" ID="ID_633403108" MODIFIED="1512769358637" TEXT="also: muß 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ß Front-End einen downcast machen"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1512711462926" ID="ID_1665958887" MODIFIED="1512927037843" 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ß direkt unter der Basis erfolgen"/>
|
|
<node CREATED="1512769116952" ID="ID_1359676759" MODIFIED="1512769124770" TEXT="virtual muß 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ätzlicher VTable-Pointer?">
|
|
<node CREATED="1512711638574" ID="ID_1769096857" MODIFIED="1512769458120" TEXT="kö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> Zugriff auf ein Sub-Objekt muß 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ücken"/>
|
|
<node CREATED="1512769398050" ID="ID_1821068883" MODIFIED="1512769409404" TEXT="zusatz-Feature "extendChildren" 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" HGAP="21" ID="ID_787592346" MODIFIED="1512927037842" 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äre machbar">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512782259136" FOLDED="true" ID="ID_1896672181" MODIFIED="1512926193409" TEXT="einigermaßen technisch...">
|
|
<node CREATED="1512782296798" ID="ID_347250455" MODIFIED="1512782320932" TEXT="es müßte sich PackagedTreeExplorerSource selbst bauen können"/>
|
|
<node CREATED="1512782329311" ID="ID_1917918946" MODIFIED="1512782351304" TEXT="außerdem müß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ü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ö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" ID="ID_1611878074" MODIFIED="1512927037823" TEXT="Probleme">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512621202688" ID="ID_57740660" MODIFIED="1512927037841" 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ß die default-Initialisierung der Member-Felder noch nicht hinrechend geklä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ür die Felder im abgeleiteten Objekt gemacht.
|
|
</p>
|
|
<p>
|
|
Es gibt dann eine neue, explizite Regel, die verhindert, daß zufällig ein aus der Basis geerbter Ctor
|
|
</p>
|
|
<p>
|
|
die Signatur eines Copy-ctors ü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ügt es, dies an <i>einer</i> Stelle in der Kette zu ergä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 über dem zu initialisierenden Basis-Objekt.
|
|
</p>
|
|
<p>
|
|
Alle anderen Layer darü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>
|
|
übrigens ist es im IterSource<T>::iterator <i>nicht</i>  notwendig
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das war nur ein unnötiger Fix nach dem Gieß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" ID="ID_701320194" MODIFIED="1512927037839" 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ß das Objekt schon tot war"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512787530248" ID="ID_1415286168" MODIFIED="1512927037839" 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ß">
|
|
<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 "state core"-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="1513473590357" TEXT="piggyback?">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1512358616584" ID="ID_1041373923" MODIFIED="1512358662699" TEXT=""könnte mal praktisch sein"">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1512358626607" ID="ID_853537387" MODIFIED="1512927037823" TEXT="hab die Idee schon lange">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...daß man ein Ding komplett in einen Iterator packt,
|
|
</p>
|
|
<p>
|
|
und dieser es dann auch managed
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1512358864343" ID="ID_1251747225" MODIFIED="1512927037838">
|
|
<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ä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" ID="ID_1625666992" MODIFIED="1513473577494" TEXT="wä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="1514827426934" TEXT="TreeExplorer_test">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1510969031378" ID="ID_1678287752" MODIFIED="1512927037810" TEXT="verify_wrappedIterator();">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511054727547" ID="ID_328168347" MODIFIED="1511054858441" TEXT="Problem: muß Iterator-Arten unterscheiden">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511054740579" ID="ID_776471136" MODIFIED="1512927037822" TEXT="StateCore direkt verwenden">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1511054762608" ID="ID_1129026084" MODIFIED="1511054793514" TEXT="muß IterStateWrapper unterstü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" ID="ID_1298407683" MODIFIED="1512955467937" 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" ID="ID_942570698" MODIFIED="1512927037822" 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 -> Core">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511227824495" ID="ID_1299746114" MODIFIED="1511731959295" TEXT="Val -> Iter<Val>">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511571834032" ID="ID_1315469399" MODIFIED="1511754060610" TEXT="Val -> collection<Val>">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511227861867" ID="ID_1821706302" MODIFIED="1512927037821" 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" ID="ID_1769405758" MODIFIED="1512927037838" TEXT="Sub-Fälle">
|
|
<node COLOR="#338800" CREATED="1511227917971" ID="ID_200983707" MODIFIED="1511571722416" TEXT="Core& -> Core">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511227902005" ID="ID_1992381343" MODIFIED="1511754553025" TEXT="Core -> Iter<Val>">
|
|
<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<Val>& -> Core">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511227925202" ID="ID_290152631" MODIFIED="1511755056399" TEXT="Iter<Val> -> Iter<Val>">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1510969031379" ID="ID_358406634" MODIFIED="1512927037809" TEXT="verify_transformOperation();">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1511835550655" ID="ID_1305788204" MODIFIED="1512276390701" TEXT="Transformer(Iter<Core>)">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511835603751" ID="ID_6147833" MODIFIED="1512276267722" TEXT="Transformer(Iter<Val>)">
|
|
<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 ü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" ID="ID_1099744034" MODIFIED="1512927037837" TEXT="Beobachtung: move in join">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512181493551" ID="ID_1834475937" MODIFIED="1512181507297" TEXT="Bei Ü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ä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> 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ährlich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
weil der Aufruf von join(&&) selber wasserdicht ist
|
|
</p>
|
|
<p>
|
|
D.h. er frisst keine Werte.
|
|
</p>
|
|
<p>
|
|
Deshalb fä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ützt kein move">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511835901999" ID="ID_1717235881" MODIFIED="1512927037820" TEXT="Transform: Core& -> irgendwas">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1512276512313" ID="ID_725756500" MODIFIED="1512276517860" TEXT="sollte theoretisch mö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ß
|
|
</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" ID="ID_722056043" MODIFIED="1512927037808" TEXT="verify_combinedExpandTransform();">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1512363192308" FOLDED="true" ID="ID_1913090689" MODIFIED="1512955646485" TEXT="expand ü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" ID="ID_1718741335" MODIFIED="1512927037808" TEXT="verify_FilterIterator();">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1512523719350" ID="ID_351021178" MODIFIED="1512606882124" TEXT="einfaches Prä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" ID="ID_917494688" MODIFIED="1512955637837" TEXT="Prädikat<Core>">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1512609324903" ID="ID_1654303504" MODIFIED="1512609343982" TEXT="kann an den Vorgängern vorbeitunneln">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1512523783318" ID="ID_1808219280" MODIFIED="1512611989218" TEXT="Prädikat<Iter> (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äglich hinzugefügtem Layer">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#2b7d95" CREATED="1512612043592" ID="ID_1719204676" MODIFIED="1512612065051" TEXT="...es lebe die Komplexität">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1511836589393" ID="ID_54165230" MODIFIED="1512927037807" 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ö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 -> 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äre aber bequem für den Test.
|
|
</p>
|
|
<p>
|
|
<u>Frage</u>: ist das ü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" ID="ID_306902168" MODIFIED="1514081187635" 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" ID="ID_1696559217" MODIFIED="1514827174722" 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" ID="ID_1327871737" MODIFIED="1512952095270" 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äß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" HGAP="71" ID="ID_568101334" MODIFIED="1512955609419" 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" ID="ID_1282921475" MODIFIED="1512952993489" TEXT="Types<tuple<TYPES...>>">
|
|
<node CREATED="1512952994765" ID="ID_1028880050" MODIFIED="1512953023243" TEXT="wurde automatisch gehoben auf Types<TYPES...>">
|
|
<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" ID="ID_93632445" MODIFIED="1512953732408" TEXT="broken sind...">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1512953663356" ID="ID_587022650" MODIFIED="1512953666295" TEXT="Tup1 :">
|
|
<node CREATED="1512953639278" ID="ID_1100197404" MODIFIED="1512954771519" TEXT="TUPLE-<1>-<3>-<5>-">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1512953639278" ID="ID_894542190" MODIFIED="1512954775187" TEXT="TUPLE-<tuple<Num<1>, Num<3>, Num<5> >>-">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512953674962" ID="ID_1880760198" MODIFIED="1512953677102" TEXT="T_L1 :">
|
|
<node CREATED="1512953639278" ID="ID_1929044147" MODIFIED="1512954778777" TEXT="TUPLE-<1>-<3>-<5>-">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1512953639278" ID="ID_1790615976" MODIFIED="1512954785530" TEXT="TUPLE-<tuple<Num<1>, Num<3>, Num<5> >>-">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512953684233" ID="ID_608070908" MODIFIED="1512953686341" TEXT="Seq1 :">
|
|
<node CREATED="1512953639279" ID="ID_1741392154" MODIFIED="1512955031447" TEXT="-<1>-<3>-<5>-">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1512953639279" ID="ID_213667790" MODIFIED="1512955034003" TEXT="-<tuple<Num<1>, Num<3>, Num<5> >>-">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512953692712" ID="ID_690443382" MODIFIED="1512953694636" TEXT="Prepend :">
|
|
<node CREATED="1512953639279" ID="ID_1949823809" MODIFIED="1512954789660" TEXT="TUPLE-<i>-<1>-<3>-<5>-">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1512953639279" ID="ID_1268362964" MODIFIED="1512954792261" TEXT="TUPLE-<tuple<int, Num<1>, Num<3>, Num<5> >>-">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1512953030113" HGAP="21" ID="ID_227944051" MODIFIED="1512955073221" 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" ID="ID_842384656" MODIFIED="1513473315193" TEXT="demonstrate_LayeredEvaluation();">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1513035990902" ID="ID_1647713519" MODIFIED="1513036279025" TEXT="Zweck">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1513035997493" ID="ID_1010963261" MODIFIED="1513036010287" TEXT="vorbereitender Fingerübung fü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" ID="ID_1736020922" MODIFIED="1513036282015" TEXT="Vorgaben">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1513036079426" ID="ID_1465268489" MODIFIED="1513036093852" TEXT="Text-Fixture so einfach wie möglich"/>
|
|
<node CREATED="1513036109158" ID="ID_142686199" MODIFIED="1513036128095" TEXT="es wird tatsä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ällige Zahlenfolge wiederfinden"/>
|
|
<node CREATED="1513036215559" ID="ID_971330002" MODIFIED="1513036250591" TEXT="...indem man in N Permutationen hintereinander sucht"/>
|
|
<node CREATED="1513036284727" ID="ID_1614652691" MODIFIED="1513036296092" TEXT="brauche...">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1513036309324" ID="ID_1342792562" MODIFIED="1513036336740" TEXT="Folge von N (zufä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" ID="ID_1862649545" MODIFIED="1513036572456" 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" ID="ID_1967188076" MODIFIED="1513129995231" 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ß sie sofort abschreckt"/>
|
|
</node>
|
|
<node CREATED="1513131251047" ID="ID_1217476327" MODIFIED="1513131255210" 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ß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" ID="ID_973791239" MODIFIED="1513206660094" 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ällige Kind-sequenzen"/>
|
|
<node CREATED="1513206709484" ID="ID_1659632018" MODIFIED="1513206720390" TEXT="die nicht sicher zum Erfolg führen"/>
|
|
</node>
|
|
<node CREATED="1513206872518" ID="ID_1422148890" MODIFIED="1513206876892" 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" HGAP="-37" ID="ID_570463763" MODIFIED="1513473371054" 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" ID="ID_1963772553" MODIFIED="1513218620609" 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" ID="ID_645074355" MODIFIED="1513476724675" 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ö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ü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ß leer sein!">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1513473427921" ID="ID_530629075" MODIFIED="1513473441747" 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 ü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öpfter Kind-Iter wird nicht weggeräumt"/>
|
|
<node CREATED="1513283822323" ID="ID_1993626666" MODIFIED="1513283848220" TEXT="Folge: es wird auf dem letzten Element weitergezählt"/>
|
|
<node CREATED="1513283849472" ID="ID_1522104923" MODIFIED="1513283980027" 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" ID="ID_372321627" MODIFIED="1513286350306" 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ätte den Pointer auf NULL setzen mü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" ID="ID_1013175212" MODIFIED="1513473250590" 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" ID="ID_1034289731" MODIFIED="1513473286115" TEXT="pragmatischer Workaround">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1513396411416" ID="ID_1466307579" MODIFIED="1513401380676" TEXT="Tiefe ü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" ID="ID_1181955496" MODIFIED="1513473186627" 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 "FAVSU"">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
rLet(40878 < 18446744073709551615) → S
|
|
</p>
|
|
<p>
|
|
|↯| S ... 40878
|
|
</p>
|
|
<p>
|
|
rLet(40879 < 18446744073709551615) → F
|
|
</p>
|
|
<p>
|
|
|!| expand 40879
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → A
|
|
</p>
|
|
<p>
|
|
rLet(40880 < 18446744073709551615) → Q
|
|
</p>
|
|
<p>
|
|
|.| A -->> 40879
|
|
</p>
|
|
<p>
|
|
|!| expand 40879
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → F
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → N
|
|
</p>
|
|
<p>
|
|
|.| F -->> 40879
|
|
</p>
|
|
<p>
|
|
|↯| F ... 40879
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → W
|
|
</p>
|
|
<p>
|
|
|↯| W ... 40879-0-1
|
|
</p>
|
|
<p>
|
|
rLet(2 < 4) → N
|
|
</p>
|
|
<p>
|
|
|↯| N ... 40879-0-2
|
|
</p>
|
|
<p>
|
|
rLet(3 < 4) → T
|
|
</p>
|
|
<p>
|
|
|↯| T ... 40879-0-3
|
|
</p>
|
|
<p>
|
|
rLet(4 < 4) → F
|
|
</p>
|
|
<p>
|
|
|↯| N ... 40879-1
|
|
</p>
|
|
<p>
|
|
rLet(2 < 4) → F
|
|
</p>
|
|
<p>
|
|
|↯| F ... 40879-2
|
|
</p>
|
|
<p>
|
|
rLet(3 < 4) → A
|
|
</p>
|
|
<p>
|
|
|!| expand 40879-3
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → J
|
|
</p>
|
|
<p>
|
|
rLet(4 < 4) → Y
|
|
</p>
|
|
<p>
|
|
|.| J -->> 40879-3
|
|
</p>
|
|
<p>
|
|
|↯| J ... 40879-3
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → H
|
|
</p>
|
|
<p>
|
|
|↯| H ... 40879-4
|
|
</p>
|
|
<p>
|
|
rLet(2 < 4) → H
|
|
</p>
|
|
<p>
|
|
|↯| H ... 40879-5
|
|
</p>
|
|
<p>
|
|
rLet(3 < 4) → F
|
|
</p>
|
|
<p>
|
|
|↯| F ... 40879-6
|
|
</p>
|
|
<p>
|
|
rLet(4 < 4) → V
|
|
</p>
|
|
<p>
|
|
|↯| Q ... 40880
|
|
</p>
|
|
<p>
|
|
rLet(40881 < 18446744073709551615) → A
|
|
</p>
|
|
<p>
|
|
|↯| A ... 40881
|
|
</p>
|
|
<p>
|
|
rLet(40882 < 18446744073709551615) → X
|
|
</p>
|
|
<p>
|
|
|↯| X ... 40882
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1513401185198" ID="ID_933999759" MODIFIED="1513473212036" TEXT="Zähler läuft weiter">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1513473196754" ID="ID_570569140" MODIFIED="1513473207824" TEXT="Lösung: depth()-Infromation nutzen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513447822247" ID="ID_1725576262" MODIFIED="1513448159466" TEXT="jetzt scheint's zu funktionieren...">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
rLet(77943 < 18446744073709551615) → R
|
|
</p>
|
|
<p>
|
|
|↯| R ... 77943
|
|
</p>
|
|
<p>
|
|
rLet(77944 < 18446744073709551615) → X
|
|
</p>
|
|
<p>
|
|
|!| expand 77944
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → U
|
|
</p>
|
|
<p>
|
|
rLet(77945 < 18446744073709551615) → I
|
|
</p>
|
|
<p>
|
|
|.| U -->> 77944-0
|
|
</p>
|
|
<p>
|
|
|↯| U ... 77944-0
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → X
|
|
</p>
|
|
<p>
|
|
|!| expand 77944-1
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → K
|
|
</p>
|
|
<p>
|
|
rLet(2 < 4) → Z
|
|
</p>
|
|
<p>
|
|
|.| K -->> 77944-1-0
|
|
</p>
|
|
<p>
|
|
|!| expand 77944-1-0
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → V
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → Y
|
|
</p>
|
|
<p>
|
|
|.| V -->> 77944-1-0-0
|
|
</p>
|
|
<p>
|
|
|↯| V ... 77944-1-0-0
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → I
|
|
</p>
|
|
<p>
|
|
|↯| I ... 77944-1-0-1
|
|
</p>
|
|
<p>
|
|
rLet(2 < 4) → I
|
|
</p>
|
|
<p>
|
|
|↯| I ... 77944-1-0-2
|
|
</p>
|
|
<p>
|
|
rLet(3 < 4) → Z
|
|
</p>
|
|
<p>
|
|
|!| expand 77944-1-0-3
|
|
</p>
|
|
<p>
|
|
rLet(0 < 4) → Q
|
|
</p>
|
|
<p>
|
|
rLet(4 < 4) → X
|
|
</p>
|
|
<p>
|
|
|.| Q -->> 77944-1-0-3-0
|
|
</p>
|
|
<p>
|
|
|↯| Q ... 77944-1-0-3-0
|
|
</p>
|
|
<p>
|
|
rLet(1 < 4) → 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" FOLDED="true" ID="ID_596422747" MODIFIED="1515206250023" 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;"/>
|
|
<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" FOLDED="true" HGAP="180" ID="ID_760843174" MODIFIED="1514087033060" TEXT="Design" VSHIFT="29">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1513560607636" ID="ID_774099115" MODIFIED="1513561433218" 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ß dort Kind-iterieren können"/>
|
|
</node>
|
|
<node CREATED="1513561422541" ID="ID_1500554436" MODIFIED="1514087030296" 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" ID="ID_1617286796" MODIFIED="1513561454621" 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über möglich"/>
|
|
</node>
|
|
<node CREATED="1513561492668" ID="ID_600604579" MODIFIED="1513561495016" 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ür normalen ChildIterator"/>
|
|
<node CREATED="1513561531383" ID="ID_442154302" MODIFIED="1513561547728" TEXT="Match-Algo muß start-Offset verwalten und draufschlagen"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513561577840" FOLDED="true" HGAP="63" ID="ID_260039139" MODIFIED="1513985143504" TEXT="Struktur Navigations-Zustand" VSHIFT="22">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1513561744004" ID="ID_937539446" MODIFIED="1513961543467" TEXT="hä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" ID="ID_671830446" MODIFIED="1513561714093" TEXT="relativ => Node-Ref genü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ätzlich kann es Sonderfälle geben">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1513561916554" ID="ID_1130596381" MODIFIED="1513561945359" TEXT="(node&, depth)">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1513562001015" ID="ID_1952968226" MODIFIED="1513562009098" TEXT="zuzüglich konkretem Kind-Iterator">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513564476303" FOLDED="true" ID="ID_718816032" MODIFIED="1513978342757" 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ßlich
|
|
</p>
|
|
<p>
|
|
im realen UI in ä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" ID="ID_1668202627" MODIFIED="1513859311404" TEXT="Minimal-Forderungen">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1513859392644" ID="ID_368154471" MODIFIED="1513859402742" TEXT="Verhältnis von Original zu Expanded"/>
|
|
<node CREATED="1513859408489" ID="ID_1040511060" MODIFIED="1513859645105" TEXT="Expanded::yield muß kompatibel zu Original::yield sein">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1513859477704" ID="ID_1667428111" MODIFIED="1513859631869">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Expand-Funktor hat <i>einen</i> Rückgabe-Typ
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1513859590489" ID="ID_1305886859" MODIFIED="1513859654062" TEXT="das ist die stä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" ID="ID_102689213" MODIFIED="1513864143872" TEXT="(node&, 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" ID="ID_1035755808" MODIFIED="1513864175907" 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ätzliche Allokation">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1513889026175" ID="ID_1644294386" MODIFIED="1513978467119" TEXT="Lösungs-Mö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" ID="ID_1909411263" MODIFIED="1513889155537" 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" ID="ID_572634197" MODIFIED="1513890498003" 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" ID="ID_972377662" MODIFIED="1513891259492" 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="1513978330695" TEXT="Diskussion" VSHIFT="10">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1513891660578" ID="ID_1557026848" MODIFIED="1513891665718" 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ür "Position""/>
|
|
</node>
|
|
<node CREATED="1513891739920" ID="ID_1279255374" MODIFIED="1513891750178" TEXT="Meta-Datenstruktur == Reflection">
|
|
<node CREATED="1513891751766" ID="ID_1061575112" MODIFIED="1513891760585" TEXT="muß nicht per se schlecht sein"/>
|
|
<node CREATED="1513891771979" ID="ID_1279317536" MODIFIED="1513891793738">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>wenn</i> es sie gäbe <i>könnte</i> man sie hier nutzen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1513891804199" ID="ID_992579634" MODIFIED="1513891806571" 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ß schon da sein">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt:
|
|
</p>
|
|
<p>
|
|
diese Struktur muß bereits beim Aufbauen des GUI
|
|
</p>
|
|
<p>
|
|
nebenbei mit aufgebaut werden, und ü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" ID="ID_1996211433" MODIFIED="1513893313192" TEXT="Nav und IterSource verschmelzen">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1513893027482" ID="ID_1061106814" MODIFIED="1513893042316" TEXT="minimales Design"/>
|
|
<node CREATED="1513893243100" ID="ID_622400006" MODIFIED="1513893248576" 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önnte sowas unterstützen..."/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1513893637863" ID="ID_1710637822" MODIFIED="1513961369447" TEXT="schön aber fragwü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öglicherwese</i> 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önnte es darauf hinauslaufen, daß 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> eine "Up"-Funktion,
|
|
</p>
|
|
<p>
|
|
selbst wenn man sie nur indirekt implementiert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1513893841787" ID="ID_588599089" MODIFIED="1513893854354">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>vorläufige</i> MInimal-Lösung
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1513893858089" ID="ID_1090821912" MODIFIED="1513893873067" TEXT="nur Expander nach außen ziehen"/>
|
|
<node CREATED="1513893873983" ID="ID_926734576" MODIFIED="1513893886449" TEXT="und fest als "Iterator"-Klasse definieren"/>
|
|
<node CREATED="1513894301013" ID="ID_1705515857" MODIFIED="1513894303961" TEXT="aktuell">
|
|
<node CREATED="1513893940206" ID="ID_1268073991" MODIFIED="1513893969869">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>bis jetzt</i> 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ö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" HGAP="19" ID="ID_1657702066" MODIFIED="1513894127494" 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ächsten Schritte wä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ür IterSource"/>
|
|
<node CREATED="1513894173999" ID="ID_1818551612" MODIFIED="1513894187080" TEXT="...damit das breiter API aus Funktoren zugä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" HGAP="101" ID="ID_66715685" MODIFIED="1513961650705" TEXT="Beschluß" 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ü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ß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" ID="ID_1159003711" MODIFIED="1513961771032" TEXT="unschön aber zukunftsweisend...">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1513961791716" FOLDED="true" ID="ID_996099359" MODIFIED="1513978359858" TEXT="zusätzliche Heap-Alloc für jedes Expand">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
gemeint ist,
|
|
</p>
|
|
<p>
|
|
<i>zusätzlich</i> zu dem Eintrag im Stack,
|
|
</p>
|
|
<p>
|
|
der ohnehin selbst Heap-alloziert ist
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1513961961661" ID="ID_96700718" MODIFIED="1513961967328" TEXT="Ziel wä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" ID="ID_328900065" MODIFIED="1513962029692" TEXT="Relevanz später untersuchen">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1513962043170" ID="ID_156284138" MODIFIED="1513962051989" TEXT="dazu muß 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 überprüfen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1513961838174" ID="ID_579783999" MODIFIED="1513962463112" TEXT="Verhältnis der VTable-APIs noch unklar">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Was ist <b>Nav</b> 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ür?
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513961620603" ID="ID_1014293898" MODIFIED="1514292136651" TEXT="Implementierung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1513962702097" FOLDED="true" ID="ID_1829231358" MODIFIED="1514292154178" 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" ID="ID_558045889" MODIFIED="1513966652550" TEXT="Anforderungen">
|
|
<node CREATED="1513962999465" ID="ID_677650141" MODIFIED="1513963008827" TEXT="ist nicht mehr IterSource<String>::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ür Konstruktion"/>
|
|
<node CREATED="1513963055921" ID="ID_598702105" MODIFIED="1513963075090" TEXT="exponiert das expandChildren()"/>
|
|
</node>
|
|
<node CREATED="1513966658753" ID="ID_1038653404" MODIFIED="1513966664964" 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ä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ästig"/>
|
|
<node CREATED="1513966819268" ID="ID_725108588" MODIFIED="1513966823134" TEXT="hier aber wohl einfacher"/>
|
|
<node CREATED="1513966826779" ID="ID_806221726" MODIFIED="1513966853280" TEXT="könnte blueprint sein??">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
IterSource muß 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" ID="ID_458778699" MODIFIED="1513980959957" 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> 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" HGAP="29" ID="ID_1701586789" MODIFIED="1514086578389" 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="1514086581208" 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="1514292157689" TEXT="Integration mit TreeExplorer">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1513986032290" ID="ID_1427647343" MODIFIED="1513986048710" 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=""riecht" nach einem generellen Problem">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="clanbomber"/>
|
|
</node>
|
|
<node CREATED="1513986064509" ID="ID_1794003959" MODIFIED="1513986083318" TEXT="nun müßte man...">
|
|
<node CREATED="1513986085162" ID="ID_1791331544" MODIFIED="1513986090214" TEXT="von außen daran kommen"/>
|
|
<node CREATED="1513986090946" ID="ID_668980524" MODIFIED="1513986103340" TEXT="und auch noch downcasten auf TreeStructureNavigator"/>
|
|
</node>
|
|
<node CREATED="1513988678091" ID="ID_787175675" MODIFIED="1513988732759" TEXT="Pragmatismus-Trip">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1513988687617" ID="ID_1652718385" MODIFIED="1513988692411" TEXT="nicht jetzt lösen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1513988694704" ID="ID_1570679085" MODIFIED="1513988710933" TEXT="das wä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ü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" HGAP="27" ID="ID_1242119956" MODIFIED="1514086542637" TEXT="vorlä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ä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önnen dieses Sub-Interface akzeptieren und liefern">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513989030587" ID="ID_1529167083" MODIFIED="1514082163308" TEXT="TreeExplorer ü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="1514292160249" 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" ID="ID_1077665588" MODIFIED="1514292020131" 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" ID="ID_1953942552" MODIFIED="1514257145970" 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 "aktuelles Element""/>
|
|
<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" ID="ID_551533507" MODIFIED="1514291893282" 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ätzliches Problem">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1514291747624" ID="ID_1328105733" MODIFIED="1514291800465" 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ßt, depth ist <i>aktuelle</i> Tiefe!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1510941577099" ID="ID_394904963" MODIFIED="1515206174458" 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="1510941775002" TEXT="beispielhaft für GenNode umsetzen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1510941740069" FOLDED="true" ID="ID_1408571420" MODIFIED="1515449579377" 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ücke">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513560690440" ID="ID_122153660" MODIFIED="1514154026278" TEXT="Spezial-Behandlung für Perspektive">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514154062952" ID="ID_1352163554" MODIFIED="1514292016084" 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" HGAP="37" ID="ID_1286151530" MODIFIED="1514292007670" 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ählt">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514291864080" ID="ID_1213636271" MODIFIED="1514291872824" TEXT=""child exploration"">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1514261117856" ID="ID_732935391" MODIFIED="1514291998797" 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="1515037581429" TEXT="Zustands-Layer" VSHIFT="1">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514333524247" ID="ID_1136271037" MODIFIED="1514908803527" TEXT="Zustand umfaßt...">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1514333554411" ID="ID_1337747593" MODIFIED="1514333618358" TEXT="target (Pattern) const&"/>
|
|
<node CREATED="1514333705095" ID="ID_709075863" MODIFIED="1514898052783" TEXT="coverage (Builder)"/>
|
|
<node CREATED="1514333719613" ID="ID_256774095" MODIFIED="1514333761955" 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" ID="ID_1224653593" MODIFIED="1515037565965" TEXT="für jedes Element...">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514338471073" ID="ID_1000829527" MODIFIED="1514908912290" STYLE="bubble" TEXT="target[depth] ==?">
|
|
<edge COLOR="#5b5ea6"/>
|
|
<node CREATED="1514338493135" ID="ID_1691944473" MODIFIED="1514908827230" 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ösung
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514338508292" ID="ID_1940839257" MODIFIED="1514908827232" TEXT="sonst">
|
|
<node CREATED="1514338551790" ID="ID_76414417" MODIFIED="1514908827232" TEXT="wildcard -> setzen"/>
|
|
<node CREATED="1514338597880" ID="ID_413282334" MODIFIED="1514908827232" TEXT="match -> 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ösung
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514908723845" ID="ID_1051709102" MODIFIED="1514908732301" TEXT="filtern auf Lösung">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514828322209" HGAP="447" ID="ID_868482472" MODIFIED="1515037575610" 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ögliche Coverage
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
</node>
|
|
<node CREATED="1514847720759" ID="ID_831358447" MODIFIED="1514847725306" TEXT="Struktur">
|
|
<node CREATED="1514847726158" ID="ID_460639525" MODIFIED="1514847735617" TEXT="wo brauche ich Builder?">
|
|
<node CREATED="1514847747979" ID="ID_710804937" MODIFIED="1514847782198" TEXT="target ist ein Builder, wird aber nicht geändert">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1514847769184" ID="ID_567857702" MODIFIED="1514847778011" TEXT="neue Coverage muß geändert werden">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514847804652" ID="ID_1778000574" MODIFIED="1514847809471" TEXT="sind Builder sinnvoll?">
|
|
<node CREATED="1514847810723" ID="ID_468954134" MODIFIED="1514847816622" TEXT="gegenwärtig nicht klar"/>
|
|
<node CREATED="1514847817306" ID="ID_417284469" MODIFIED="1514847833963" TEXT="UICoord soll immutable sein">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1514847837399" ID="ID_198877050" MODIFIED="1514847846314" TEXT="Problem Normalisierung">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1514847847398" ID="ID_1538721674" MODIFIED="1514847856905" TEXT="Builder-Funktionen können denormalisieren"/>
|
|
<node CREATED="1514847857748" ID="ID_1388054576" MODIFIED="1514847876837" TEXT="der Matching-Algo verläß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" ID="ID_1457973741" MODIFIED="1514897999005" 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" ID="ID_1235716633" MODIFIED="1515034320114" TEXT="Ankern unvollständiger Pfade">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514942350940" ID="ID_1658536334" MODIFIED="1515034261027" TEXT="erweitertes Verständnis von "Wildcard"">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515031418282" ID="ID_1390320369" MODIFIED="1515034265977" TEXT="Anker im Match berü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öglich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...insofern wir nur eine (partielle) Lösung signalisieren,
|
|
</p>
|
|
<p>
|
|
wenn wir einen <i>direkten</i> Match erziehlen.
|
|
</p>
|
|
<p>
|
|
Ein wildcard-Match führt nur dazu, daß wir zu den Kindern absteigen,
|
|
</p>
|
|
<p>
|
|
aber zählt erst mal für sich nicht als Lösung
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1514897795054" ID="ID_1126804251" MODIFIED="1514897809479" 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ür vorstellen">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514339655585" ID="ID_20763657" MODIFIED="1515037569236" 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ü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" ID="ID_1697551113" MODIFIED="1514908658267" 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="überschreibt Position"/>
|
|
<node CREATED="1514339700955" ID="ID_503690023" MODIFIED="1514339717876" TEXT="kürzt/ändert sonst nix"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514746187370" ID="ID_989083906" MODIFIED="1514942318329" TEXT="Problem der partiellen Covfefe">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514746268280" ID="ID_1650861625" MODIFIED="1514746277434" TEXT="totale Coverage ist einfach">
|
|
<node CREATED="1514746278542" ID="ID_638094416" MODIFIED="1514746296223">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Lösungen mü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="überall partielle Lösungen möglich"/>
|
|
<node CREATED="1514746345078" ID="ID_1469851869" MODIFIED="1514746354935" TEXT="wir wissen nicht, ob expand überhaupt geht"/>
|
|
<node CREATED="1514746367418" ID="ID_1714254434" MODIFIED="1514827781975" TEXT="Lösungsidee: partielle Lö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" ID="ID_1334730598" MODIFIED="1514747380472" TEXT="Rekursion fä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" ID="ID_1928999977" MODIFIED="1514897708424" 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ä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="1515037586624" TEXT="Filter-Layer" VSHIFT="-1">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514747460122" ID="ID_1735380227" MODIFIED="1514908757875" TEXT="fischt nach tatsächlichen Lösungen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1514747470624" ID="ID_43243557" MODIFIED="1514827781975" TEXT="ermöglicht partielle und maximale Lö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" ID="ID_1992822141" MODIFIED="1515034520605" TEXT="Fä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ösung">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1514747506516" ID="ID_1823650567" MODIFIED="1515031497729" TEXT="alle totalen Lösungen">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1514747511683" ID="ID_1711746734" MODIFIED="1515031538639" TEXT="erste maximale partielle Lösung">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1514747534880" ID="ID_668507058" MODIFIED="1515031542774" TEXT="alle maximalen partiellen Lösungen">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1514747542535" FOLDED="true" ID="ID_1475644253" MODIFIED="1515031550657" TEXT="alle lokal maximalen partiellen Lösungen">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1514747562436" ID="ID_1216946339" MODIFIED="1514747569143" TEXT="am Ende einer Glückssträne"/>
|
|
<node CREATED="1514747652752" ID="ID_694825695" MODIFIED="1514747659603" TEXT="etwas kniffelig zu implementieren"/>
|
|
<node CREATED="1514747694763" ID="ID_1088990348" MODIFIED="1514747707037" TEXT="letztlich ähnlich wie globale Maximums-Suche"/>
|
|
<node CREATED="1514747709400" ID="ID_556979975" MODIFIED="1514747724946" TEXT="lediglich das Maximum wird zurückgesetzt"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514829169777" FOLDED="true" HGAP="32" ID="ID_331008637" MODIFIED="1515449582667" TEXT="Integration" VSHIFT="10">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514829220907" FOLDED="true" ID="ID_1488508113" MODIFIED="1515206164636" TEXT="zunächst Algo fü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="1515034463168" 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="1515206160460" 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="1515209093513" 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ösung ist totale Coverage, wenn möglich">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1514942171091" ID="ID_1193370362" MODIFIED="1515034463169" TEXT="später/bei Bedarf: alle Lö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="1515206150653" TEXT="std::swap fü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="1515206133192" 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ß 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ü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" ID="ID_174527898" MODIFIED="1515037521605" 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ädikate spiegeln stets den Zustand der UI-Coord">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und nicht den <i>möglichen</i> Zustand.
|
|
</p>
|
|
<p>
|
|
Denn für letzteren gibt es die "canXX"-Prädikate
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514943888969" ID="ID_1634332467" MODIFIED="1515034463169" TEXT="möglichen Anker nebenbei ermitteln">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1510941766817" FOLDED="true" HGAP="13" ID="ID_1117346518" MODIFIED="1515449584843" TEXT="Testfälle" VSHIFT="29">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1513477873206" ID="ID_939423021" MODIFIED="1515206284163" 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="1514154134542" TEXT="bisherige ChildIter-Testfälle">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514260998192" ID="ID_113366695" MODIFIED="1514292052988" 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" ID="ID_1133433583" MODIFIED="1514330132346" TEXT="Frage: expliziter Test für path resolution?">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
macht es Sinn, dafü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="1514329300316" TEXT="Nein">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1514329280718" ID="ID_674722968" MODIFIED="1514329295021" TEXT="sonst müssen wir die BlackBox öffnen">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1514329261217" ID="ID_1909490994" MODIFIED="1514329306519" TEXT="die Testfälle für Coverage-Mutation genügen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1514329328840" HGAP="35" ID="ID_1362494392" MODIFIED="1515209377903" 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" ID="ID_1637267494" MODIFIED="1515037505754" TEXT="Trivial-Fall: bestehenden Pfad finden">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514329441136" ID="ID_359779455" MODIFIED="1515037507798" TEXT="mit unvollständiger Coverage">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329450807" ID="ID_211306404" MODIFIED="1515037510040" TEXT="mit Überhang">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515114713029" ID="ID_424458820" MODIFIED="1515204865644" TEXT="Ankern">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514745345018" ID="ID_1229106293" MODIFIED="1515204862321" TEXT="fehlender Anker allein">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515114721228" ID="ID_1329702278" MODIFIED="1515204863932" TEXT="fehlender Anker">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515114740273" ID="ID_224432926" MODIFIED="1515120853113" TEXT="interpolieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514329498169" ID="ID_259096801" MODIFIED="1515114763818" TEXT="einfache Lücke schließen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329504776" ID="ID_1411396073" MODIFIED="1515120845626" TEXT="doppelte Lücke schließen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329542594" ID="ID_959715297" MODIFIED="1515120847766" TEXT="fehlenden Anker interpolieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514745294579" ID="ID_576780085" MODIFIED="1515120849514" TEXT="fehlender Anker und folgende Lücke">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329555505" ID="ID_1508437078" MODIFIED="1515120851424" TEXT="fehlender Anker plus zweite Lücke">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329861519" ID="ID_946875811" MODIFIED="1515120903633" TEXT="Scheitern">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514329465117" ID="ID_1304144230" MODIFIED="1515120860646" TEXT="trailing Wildcards scheitern">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1515120863655" ID="ID_1222552441" MODIFIED="1515120873442" TEXT="werden stets schon vom Konstrukor bereinigt"/>
|
|
<node COLOR="#338800" CREATED="1515120874318" ID="ID_282902710" MODIFIED="1515120893868" TEXT="kann jedoch demonstrieren, daß der Algorithmus solche Lösungen verwirft">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329890564" ID="ID_723199137" MODIFIED="1515120898108" TEXT="realer Pfad endet vor Wildcards">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329901562" ID="ID_1644217459" MODIFIED="1515114671856" TEXT="realer Pfad endet bündig mit Wildcards">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329925895" ID="ID_257945525" MODIFIED="1515114669999" TEXT="mismatch auf erstem festen element">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329932501" ID="ID_1190347841" MODIFIED="1515120900249" TEXT="mismatch direkt hinter zweiter Lücke">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514330003204" ID="ID_443318342" MODIFIED="1515114674215" TEXT="mismatch wg. verschobenem (matchendem) Element">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514330049166" ID="ID_1096135763" MODIFIED="1515114675980" TEXT="Ankern scheitert">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329636838" ID="ID_815146070" MODIFIED="1515209028206" TEXT="Lösungs-Auswahl">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514329649868" ID="ID_1490593624" MODIFIED="1515209030440" TEXT="erste von zwei äquivalenten Lösungen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329715859" ID="ID_734262382" MODIFIED="1515209032031" TEXT="größere Coverage durch längeres, festes Postifix">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329773739" ID="ID_1790993462" MODIFIED="1515209033707" TEXT="größere Lösung wird später gefunden">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329784090" ID="ID_976931684" MODIFIED="1515209035261" TEXT="größere Lösung als mittlere von dreien">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514329806999" ID="ID_787741094" MODIFIED="1515209036956" TEXT="größte Lösung zuerst">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1508540835505" ID="ID_191493714" MODIFIED="1515204888544" TEXT="Zustand">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1514748438984" ID="ID_84241950" MODIFIED="1514748444387" TEXT="reflektiert letzte Lösung"/>
|
|
<node CREATED="1514748445520" ID="ID_728061293" MODIFIED="1515204926369" TEXT="*this = move (Coverage)"/>
|
|
<node COLOR="#338800" CREATED="1514748450687" ID="ID_919694647" MODIFIED="1515204876780" TEXT="default: total">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1514748463645" ID="ID_2814761" MODIFIED="1515204880477" TEXT="TODO: ändern">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1514748505488" ID="ID_947047856" MODIFIED="1515204882332" 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> auf dem API der default sein
|
|
</p>
|
|
</body>
|
|
</html>
|
|
</richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515451105808" ID="ID_1323377531" MODIFIED="1515451115328" TEXT="extend">
|
|
<icon BUILTIN="pencil"/>
|
|
<node COLOR="#338800" CREATED="1515451117055" ID="ID_602743049" MODIFIED="1515451126326" TEXT="durch explizit gegebenes Suffix">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515451127221" ID="ID_130067342" MODIFIED="1515451168209" 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="flag-yellow"/>
|
|
<node CREATED="1515455194222" ID="ID_1550640486" MODIFIED="1515455202609" TEXT="brauche (nun doch) overwrite">
|
|
<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="1515455247459" TEXT="Fehlerbehandlung: Überlapp finden"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1508538883715" ID="ID_506584428" MODIFIED="1509319976183" 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ß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ö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<Literal>"/>
|
|
<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äsentation des real-existierenden UI
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506957414370" ID="ID_848105210" MODIFIED="1506957613469">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Integration
|
|
</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>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506175097367" ID="ID_1442345755" MODIFIED="1506181085379" TEXT="ViewSpec-DSL">
|
|
<arrowlink COLOR="#b45c5a" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-468;-196;" ID="Arrow_ID_1955094318" STARTARROW="None" STARTINCLINATION="360;85;"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181855132" ID="ID_787628963" MODIFIED="1506181859251" TEXT="ViewSpec">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181864011" ID="ID_615395774" MODIFIED="1506181867138" TEXT="Alternativen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181868898" ID="ID_1852393086" MODIFIED="1506181871266" TEXT="Resolver">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181842670" ID="ID_229712638" MODIFIED="1506181848613" TEXT="Allocator">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506181875481" ID="ID_941513985" MODIFIED="1506181880554" TEXT="AllocatorSpec">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506181908037" HGAP="-29" ID="ID_1925951134" MODIFIED="1506956365444" TEXT="Test" VSHIFT="21">
|
|
<icon BUILTIN="prepare"/>
|
|
<node CREATED="1506181922767" ID="ID_1642380411" MODIFIED="1506984675523" TEXT="UICoord_test">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1506182009518" ID="ID_138248232" MODIFIED="1506906630089" TEXT="verify_basics">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506182009519" ID="ID_1637725534" MODIFIED="1506919626951" TEXT="verify_builder">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506182009519" ID="ID_542761230" MODIFIED="1506984562762" TEXT="verify_comparisons">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506984579372" ID="ID_1752757359" MODIFIED="1506984582125" TEXT="verify_localPredicates">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506984614487" ID="ID_380908645" MODIFIED="1513477111455" TEXT="UICoordResolver_test">
|
|
<icon BUILTIN="pencil"/>
|
|
<node COLOR="#338800" CREATED="1506984645745" ID="ID_244163155" MODIFIED="1515209604952" TEXT="verify_simpleUsage">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506984645747" FOLDED="true" ID="ID_517262443" MODIFIED="1515209675347" 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ß die Attribute-Collection nutzen"/>
|
|
<node CREATED="1508809631448" ID="ID_956153388" MODIFIED="1508809644482" TEXT="Builder wohl noch nie fü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="1508809683317" TEXT="aber die ID-Strings sind komisch">
|
|
<node CREATED="1508809684338" ID="ID_1268163778" MODIFIED="1508809688341" TEXT="erster String ist """/>
|
|
<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üll angezeigt"/>
|
|
<node CREATED="1508809719165" ID="ID_1506398379" MODIFIED="1509064569893" TEXT="Segfault beim Initialisieren des Ergebnisses fü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ür const& 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äsentiert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...um zu prü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="1509143411493" 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" ID="ID_373632759" MODIFIED="1509143457604" TEXT="speziell...">
|
|
<node CREATED="1509143459519" ID="ID_1727095948" MODIFIED="1509143468809" TEXT="existenz-Check lä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ürfe gemacht,
|
|
</p>
|
|
<p>
|
|
daß ich mich wieder mal "akademisch" verspielt habe.... :-P
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1509151268071" ID="ID_38582779" MODIFIED="1509288960092" 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ß bloß 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" ID="ID_892381116" MODIFIED="1512926191818" 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 über WrapIter definieren.
|
|
</p>
|
|
<p>
|
|
Schichten-Prinzip...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1509151381113" ID="ID_779657015" MODIFIED="1509151411655" TEXT="brauche ItemWrapper fü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" FOLDED="true" ID="ID_1254044275" MODIFIED="1515209692322" 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älle...">
|
|
<icon BUILTIN="info"/>
|
|
<node COLOR="#338800" CREATED="1513477957584" ID="ID_862780828" MODIFIED="1515209246199" TEXT="Explizit: window("window-1").persp("perspective-A")">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513477957585" ID="ID_992417953" MODIFIED="1515209244400" TEXT="Gibtsned: window("windows");">
|
|
<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("perspective-B");">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1513477957586" ID="ID_1636269470" MODIFIED="1515209179060" TEXT="context-relativ-unlösbar: currentWindow().panel("panelY");">
|
|
<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("someView");">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506984645748" ID="ID_670536416" MODIFIED="1515209277387" TEXT="verify_queryCoverage">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1515209280278" ID="ID_959372189" MODIFIED="1515209291984" TEXT="sinnlos, da man das Ergebnis nicht sieht"/>
|
|
<node CREATED="1515209292804" ID="ID_907780055" MODIFIED="1515209308566" TEXT="ansonsten redundant zur Mutierung"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506984645748" ID="ID_1171284706" MODIFIED="1515305946325" TEXT="verify_mutateAnchor">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1515287623841" ID="ID_11774693" MODIFIED="1515290983628" TEXT="explizit verankert: ändert sich nix">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515287648717" ID="ID_293459284" MODIFIED="1515290985688" TEXT="firstWindow explizit machen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1515291045220" ID="ID_907726638" MODIFIED="1515291066019" TEXT="...selbst wenn sonst nicht lösbar">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515287660188" ID="ID_811260333" MODIFIED="1515290994597" TEXT="currentWindow explizit machen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1515291071497" ID="ID_913736296" MODIFIED="1515291083841" TEXT="...und trägt auch zur Lösung bei">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515287665939" ID="ID_525267705" MODIFIED="1515305941140" TEXT="lösbare coverage">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1515287701126" ID="ID_1257691503" MODIFIED="1515305915468" TEXT="noch nicht berechnet: errechnen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1515291242698" ID="ID_512594119" MODIFIED="1515305838412" TEXT="muß re-normalisieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1515291264591" FOLDED="true" ID="ID_250465802" MODIFIED="1515305937791" 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" ID="ID_1728979618" MODIFIED="1515305903027">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das ist <i>immer</i> 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ösung"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515287694871" ID="ID_953283273" MODIFIED="1515305930404" TEXT="schon berechnet: eintragen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1515291343277" ID="ID_1704851738" MODIFIED="1515305922611" TEXT="explizites Cover machen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515291350332" FOLDED="true" ID="ID_219986282" MODIFIED="1515305928168" TEXT="neue coverDepth muß 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" ID="ID_1082678541" MODIFIED="1515298599961" TEXT="Denkfehler im Builder-Konzept!">
|
|
<icon BUILTIN="broken-line"/>
|
|
<node CREATED="1515298602326" ID="ID_13919667" MODIFIED="1515298692557" TEXT="Rückgabe ist Value...">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und das heiß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ächlich zerstört"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1515298710952" ID="ID_167586553" MODIFIED="1515298806412" TEXT="Lösung: && zurückgeben">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1515298722702" ID="ID_273407473" MODIFIED="1515298730297" TEXT="könnte gefä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="1515305943856" TEXT="nicht coverbar: ändert sich nix">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1506984645748" ID="ID_1688800613" MODIFIED="1515209392926" 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="flag-yellow"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506984645748" ID="ID_768385613" MODIFIED="1506984662154" TEXT="verify_mutateExtend">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515449655380" ID="ID_1282321814" MODIFIED="1515449740717" TEXT="expliziten Pfad erweitern">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515450991631" ID="ID_1736775031" MODIFIED="1515451168209" 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="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515451047192" ID="ID_554336668" MODIFIED="1515451078845" TEXT="erweitern scheitert wegen Überlapp">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515455278659" ID="ID_1749331083" MODIFIED="1515455288490" TEXT="präziser Anschluß funktioniert">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515455289417" ID="ID_228177396" MODIFIED="1515455317398" TEXT="Überlapp == 1 scheitert">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515455296784" ID="ID_957569216" MODIFIED="1515455313258" TEXT="sinnvolle Fehlermeldung">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515449669446" ID="ID_1747646759" MODIFIED="1515449741572" TEXT="partially covered erweitern">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515449719015" ID="ID_979130061" MODIFIED="1515449742380" TEXT="unlösbar -> truncate">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1515449727142" ID="ID_1936618724" MODIFIED="1515449742948" TEXT="coverage kann dadurch anwachsen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506182023288" ID="ID_1539184761" MODIFIED="1506182023288" TEXT="ViewSpecDSL_test">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182077694" ID="ID_839824654" MODIFIED="1506182098717" TEXT="verify_basicProperties">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182037003" ID="ID_439307131" MODIFIED="1506182109551" TEXT="verify_standardUsage">
|
|
<icon BUILTIN="pencil"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1506182087462" ID="ID_47070993" MODIFIED="1506182098716" TEXT="verify_alternatives">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504479724869" HGAP="-123" ID="ID_637855369" MODIFIED="1504479751743" TEXT="Darstellung" VSHIFT="10">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1504479769415" HGAP="45" ID="ID_115454468" MODIFIED="1506262797217" TEXT="Maßstab" VSHIFT="-13">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1504479773327" ID="ID_874044841" MODIFIED="1504479777474" TEXT="muß lesbar sein"/>
|
|
<node CREATED="1504479778086" ID="ID_1867364946" MODIFIED="1504479790081" TEXT="wichtige Fälle abbilden"/>
|
|
<node CREATED="1504479801683" ID="ID_1408830980" MODIFIED="1504479805974" TEXT="Implementierung">
|
|
<node CREATED="1504479807066" ID="ID_1318651039" MODIFIED="1504479812757" TEXT="mäßig komplex"/>
|
|
<node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1511572073128" TEXT="ehr effizient">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<ul>
|
|
<li>
|
|
wird mäßig häufig aufgerufen
|
|
</li>
|
|
<li>
|
|
beim "Öffnen" 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" ID="ID_686917529" MODIFIED="1506262772203" 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="1504479950115" TEXT="Term-Schreibweise"/>
|
|
<node CREATED="1504479950607" ID="ID_118638432" MODIFIED="1504479958289" TEXT="generiert Funktoren/Closures"/>
|
|
<node CREATED="1504480019182" ID="ID_1190390221" MODIFIED="1504480030034" TEXT="Problem: encapsulation">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1504480041315" ID="ID_535241643" MODIFIED="1504480049446" TEXT="DSL-Ausdrücke stehen in globalem Header"/>
|
|
<node CREATED="1504480172697" ID="ID_858936833" MODIFIED="1504480184363" TEXT="tatsächlich nur im ViewLocator zu interpretieren"/>
|
|
</node>
|
|
<node CREATED="1504480237649" HGAP="15" ID="ID_1076181034" MODIFIED="1504480251940" TEXT="Variation der Diff-Verben?" VSHIFT="11">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504480255374" ID="ID_869593955" MODIFIED="1504480259785" TEXT="Token + Argument"/>
|
|
<node CREATED="1504480260373" ID="ID_236748610" MODIFIED="1504480264545" TEXT="Funktor gebunden"/>
|
|
<node CREATED="1504480266909" ID="ID_1626606623" MODIFIED="1504480362356" TEXT="...an Interpreter">
|
|
<node CREATED="1504480363968" ID="ID_1701584915" MODIFIED="1504480370339" TEXT="legt die gültien Verben fest"/>
|
|
<node CREATED="1504480371070" ID="ID_505779360" MODIFIED="1504480374466" TEXT="ist ein Interface"/>
|
|
<node CREATED="1504480375006" ID="ID_1380298925" MODIFIED="1504962283733" STYLE="fork" TEXT="=> 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="1504962440268" TEXT="Sprachdesign...?">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1504962191564" ID="ID_967497234" MODIFIED="1504962198743" TEXT="Basis">
|
|
<node CREATED="1504962330154" ID="ID_242817654" MODIFIED="1504962334853" TEXT="Zuweisung eines Tokens"/>
|
|
<node CREATED="1504962335321" ID="ID_1453600135" MODIFIED="1504962352954" TEXT="Token liegt als Konstante definiert vor"/>
|
|
<node CREATED="1504962353566" ID="ID_665223755" MODIFIED="1504962362361" TEXT="insgeheim ist das Token ein Funktor"/>
|
|
</node>
|
|
<node CREATED="1504962218409" ID="ID_1024382518" MODIFIED="1504962221612" TEXT="Eigenschaften">
|
|
<node CREATED="1504962376172" ID="ID_1142953512" MODIFIED="1504962381862" TEXT="geringe Komplexität"/>
|
|
<node CREATED="1504962382427" ID="ID_931743673" MODIFIED="1504962394397" TEXT="Token können konstante Parameter nehmen"/>
|
|
<node CREATED="1504962405768" ID="ID_1340772990" MODIFIED="1504962416002" TEXT="einseitg Implementierungs-gebunden"/>
|
|
<node CREATED="1504962420549" ID="ID_553833506" MODIFIED="1504962428824" TEXT="benötigt explizite Typedefs"/>
|
|
</node>
|
|
<node CREATED="1504962222248" ID="ID_1699830751" MODIFIED="1504962228339" TEXT="Implementierung">
|
|
<node CREATED="1504962230111" ID="ID_1779805843" MODIFIED="1504962233058" TEXT="interne DSL"/>
|
|
<node CREATED="1504962233718" ID="ID_949042440" MODIFIED="1504962250704" TEXT="ist opaque"/>
|
|
<node CREATED="1504962251844" ID="ID_1229791291" MODIFIED="1504962317641" 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="1504962283733" 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="1504832186896" TEXT="wäre akzeptabel"/>
|
|
<node CREATED="1504831934790" ID="ID_1800843653" MODIFIED="1511572073218" TEXT="aber etwas übertrieben...">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...es ist im Rahmen;
|
|
</p>
|
|
<p>
|
|
denn wir akzeptieren <i>double dispatch</i> sogar in der Diff-Anwendung,
|
|
</p>
|
|
<p>
|
|
welche viel häufiger läuft, als dieser View-Zugriff hier.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Allerdings, die <i>doppelte</i> Indirektion ist nicht grundsä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="1504962157456" TEXT="einfache Funktoren?">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1504832394952" ID="ID_85672659" MODIFIED="1504832528360">
|
|
<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="1511572073231" 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="1504832493759" TEXT="mit der Implementierungsfunktion initialisiert"/>
|
|
<node CREATED="1504832511688" ID="ID_673872785" MODIFIED="1504962292468" 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="1504962447590" TEXT="Struktur">
|
|
<node CREATED="1504832762680" HGAP="68" ID="ID_879982156" MODIFIED="1504962453847" 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="1504961740100" TEXT="Anforderungen">
|
|
<node CREATED="1504884432700" ID="ID_1124930479" MODIFIED="1504884436400" TEXT="wir brauchen">
|
|
<node CREATED="1504884465448" ID="ID_158939863" MODIFIED="1504884480114" TEXT="schließlich.... Aufruf an den PanelManager"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504884487533" ID="ID_1578364370" MODIFIED="1504885601314" TEXT="Art des Aufrufes">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1504885358585" ID="ID_1662504157" MODIFIED="1504885433339" TEXT="erzeuge neu in Panel(coord)"/>
|
|
<node CREATED="1504885435351" ID="ID_1583789854" MODIFIED="1504885477437" TEXT="ersetze in Panel(coord)"/>
|
|
<node CREATED="1504885503118" ID="ID_883040433" MODIFIED="1504885538829" TEXT="entferne view(ID) aus Panel(coord)"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504885554399" ID="ID_1868485493" MODIFIED="1504885587997">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>Allokator</i> pro Typ
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1504885680095" ID="ID_1828531407" MODIFIED="1504885683602" TEXT="sicherstellen">
|
|
<node CREATED="1504885686470" ID="ID_450596618" MODIFIED="1504885691569" TEXT="-- nix --"/>
|
|
<node CREATED="1504885692389" ID="ID_735840491" MODIFIED="1504885706727" TEXT="global einer"/>
|
|
<node CREATED="1504885708291" ID="ID_304260062" MODIFIED="1504885724876" TEXT="limit pro Fenster"/>
|
|
</node>
|
|
<node CREATED="1504886385928" ID="ID_894995512" MODIFIED="1504886409515" 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" ID="ID_1013293844" MODIFIED="1504886046671" TEXT="UI-Koordinaten">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1504886051389" ID="ID_1177567162" MODIFIED="1504886080749" TEXT="Tupel {Fenster, Perspektive, Panel, Gruppe, Pfad}"/>
|
|
<node CREATED="1504886084393" ID="ID_28488269" MODIFIED="1511572073294" TEXT="optionale Komponenten">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...wir brauchen eine Repräsentation,
|
|
</p>
|
|
<p>
|
|
um auszudrücken, daß gewissen Angaben ausgelassen wurden
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1504886119604" ID="ID_206635297" MODIFIED="1504886127928" TEXT="komplexes Thema">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1504885799423" ID="ID_660502374" MODIFIED="1504886401988" 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" ID="ID_822801746" MODIFIED="1512927037796" TEXT="Fenster">
|
|
<node CREATED="1504885841193" ID="ID_202708982" MODIFIED="1504885845268" TEXT="by ID"/>
|
|
<node CREATED="1504885820724" ID="ID_1450511748" MODIFIED="1504885839941" TEXT="erstes"/>
|
|
<node CREATED="1504885827803" ID="ID_1198849275" MODIFIED="1504885835797" TEXT="aktuelles"/>
|
|
</node>
|
|
<node CREATED="1504885855551" ID="ID_812520157" MODIFIED="1504885860746" TEXT="match Perspektive"/>
|
|
<node CREATED="1504885875884" ID="ID_1808427553" MODIFIED="1512927037795" TEXT="Panel">
|
|
<node CREATED="1504885879652" ID="ID_1434158169" MODIFIED="1504885886359" TEXT="hasPanel(Window)"/>
|
|
<node CREATED="1504885976847" ID="ID_290757972" MODIFIED="1504885982466" TEXT="createPanel"/>
|
|
</node>
|
|
<node CREATED="1504886006459" ID="ID_1307875760" MODIFIED="1512927037795" TEXT="group">
|
|
<node CREATED="1504886010442" ID="ID_1660557914" MODIFIED="1504886017533" TEXT="panel has group"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1505420642387" ID="ID_9234158" MODIFIED="1505420664306" TEXT="UI-Koordinaten Builder-DSL">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504886210096" ID="ID_1980896942" MODIFIED="1504886216139" TEXT="locate ->">
|
|
<node CREATED="1504886227678" ID="ID_1936525982" MODIFIED="1504886237440" TEXT="existiert | machbar | unmöglich"/>
|
|
<node CREATED="1504959598053" ID="ID_952692651" MODIFIED="1504959601728" TEXT="Zielkoordinaten"/>
|
|
</node>
|
|
<node CREATED="1504959603212" ID="ID_627664382" MODIFIED="1506120296338" TEXT="alloc ->">
|
|
<node CREATED="1504959659068" ID="ID_389794808" MODIFIED="1504959776009" TEXT="allocator(Zielkoordinaten, managementScope, limit)"/>
|
|
<node CREATED="1504959829510" ID="ID_570145960" MODIFIED="1504959849583" TEXT="POST: neuer / alter View unter Zielkoordinaten erreichbar"/>
|
|
<node CREATED="1504959871472" ID="ID_864423184" MODIFIED="1504959912350" TEXT="ggfs rekonfigurieren..."/>
|
|
</node>
|
|
<node CREATED="1504961752279" ID="ID_361507996" MODIFIED="1504961755930" TEXT="Signaturen">
|
|
<node CREATED="1504961759077" ID="ID_627682268" MODIFIED="1506120318232" TEXT="locate: UICoord"/>
|
|
<node CREATED="1504961784098" ID="ID_268457753" MODIFIED="1504961799644" TEXT="count: UICoord(UICoord)"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504962005981" ID="ID_1955013070" MODIFIED="1504962123817" TEXT="Spec.locate">
|
|
<node CREATED="1504962498963" ID="ID_1263067927" MODIFIED="1504962502252" TEXT="firstWindow"/>
|
|
<node CREATED="1504962486589" ID="ID_246663472" MODIFIED="1504962498231" TEXT="currentWindow"/>
|
|
<node CREATED="1504962506970" ID="ID_726895192" MODIFIED="1504962521948" TEXT="perspective(id)"/>
|
|
<node CREATED="1504962522800" ID="ID_224266262" MODIFIED="1504962547873" TEXT="panel(id)"/>
|
|
<node CREATED="1504962530335" ID="ID_465095301" MODIFIED="1504962536258" TEXT="existingPanel(id)"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504962643384" ID="ID_1610178620" MODIFIED="1504962661423" TEXT="existingGroup">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1504962664781" ID="ID_261278011" MODIFIED="1504962671296" TEXT="ist das implementierbar?"/>
|
|
<node CREATED="1504962671884" ID="ID_583107872" MODIFIED="1504962679447" TEXT="braucht verdeckten Parameter"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504962013068" ID="ID_1352068125" MODIFIED="1506120263447" TEXT="Spec.alloc">
|
|
<node CREATED="1504962685443" ID="ID_663273997" MODIFIED="1504962691725" TEXT="unlimited"/>
|
|
<node CREATED="1504962692881" ID="ID_261391829" MODIFIED="1504962697437" TEXT="onlyOne"/>
|
|
<node CREATED="1504962700536" ID="ID_1061344108" MODIFIED="1504962713898" TEXT="limitPerWindow(cnt)"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1506034501537" ID="ID_262802757" MODIFIED="1506034504945" TEXT="TODO">
|
|
<icon BUILTIN="flag-pink"/>
|
|
<node CREATED="1506034518068" ID="ID_1413583873" MODIFIED="1506034529021" TEXT="ViewSpecDSL wird für Location Spec zuständig"/>
|
|
<node CREATED="1506034529729" ID="ID_1906856590" MODIFIED="1506034536316" TEXT="Keine Generics mehr notwendig"/>
|
|
<node CREATED="1506034536976" ID="ID_760545085" MODIFIED="1506034547716" TEXT="locationSpec ist direkt eine UICoord">
|
|
<node CREATED="1506114845775" ID="ID_98017975" MODIFIED="1506114856697" TEXT="muß DSL-Elemente unterstützen"/>
|
|
<node CREATED="1506034566805" ID="ID_726919191" MODIFIED="1506034578279" TEXT="ODER-Behandlung wandert in UICoord"/>
|
|
<node CREATED="1506114863020" ID="ID_1749053457" MODIFIED="1506114874020" TEXT="Problem: existingPanel(id)">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506120453114" ID="ID_1626834388" MODIFIED="1506120467404" TEXT="abgekürzte Schreibweise für Allocator-Spec"/>
|
|
<node CREATED="1506034548376" ID="ID_36109866" MODIFIED="1506034558754" TEXT="count -> umbenennen in alloc"/>
|
|
</node>
|
|
<node CREATED="1504833110793" ID="ID_10881417" MODIFIED="1504833114828" TEXT="Ausdrücke">
|
|
<node CREATED="1504833126079" ID="ID_286801467" MODIFIED="1504884923889" TEXT="konkret">
|
|
<cloud COLOR="#e6d0a4"/>
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1504833146196" ID="ID_278904211" MODIFIED="1504833149680" TEXT="Timeline">
|
|
<node CREATED="1504833174961" ID="ID_1294462811" MODIFIED="1504833187018" TEXT="im Timeline-Panel der Gruppe hinzufügen"/>
|
|
<node CREATED="1504882791007" ID="ID_1520721786" MODIFIED="1506121426383">
|
|
<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="1504833620713" TEXT="Viewer">
|
|
<node CREATED="1504834559240" ID="ID_423545167" MODIFIED="1504834569219" TEXT="nur ein einziger(global)"/>
|
|
<node CREATED="1504883102734" ID="ID_81147050" MODIFIED="1506121418376">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
alloc = onlyOne
|
|
</p>
|
|
<p>
|
|
locate = external(beamer)
|
|
</p>
|
|
<p>
|
|
               or perspective(mediaView).panel(viewer)
|
|
</p>
|
|
<p>
|
|
               or existingPanel(viewer)
|
|
</p>
|
|
<p>
|
|
               or firstWindow().panel(viewer)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1504834569831" ID="ID_1909335075" MODIFIED="1504883625292" TEXT="maximal 2 Viewer Panel"/>
|
|
<node CREATED="1504883107916" ID="ID_1351734300" MODIFIED="1506121412122">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
alloc = limitPerWindow(2)
|
|
</p>
|
|
<p>
|
|
locate = perspective(edit).existingPanel(viewer)
|
|
</p>
|
|
<p>
|
|
               or currentWindow().existingPanel(viewer)
|
|
</p>
|
|
<p>
|
|
               or existingPanel(viewer)
|
|
</p>
|
|
<p>
|
|
               or panel(viewer)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504833572687" ID="ID_715257949" MODIFIED="1504833615690" TEXT="(Asset)Bin">
|
|
<node CREATED="1504834228100" ID="ID_189081279" MODIFIED="1504834278285">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
im Asset-Panel der <i>jeweiligen</i> Gruppe hinzufügen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1504883110076" ID="ID_199732103" MODIFIED="1506121405019">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
alloc = unlimited
|
|
</p>
|
|
<p>
|
|
locate = currentWindow().perspective(edit).existingPanel(asset).existingGroup()
|
|
</p>
|
|
<p>
|
|
               or perspective(asset)panel(asset)
|
|
</p>
|
|
<p>
|
|
               or firstWindow().panel(asset)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504833574246" ID="ID_1680764695" MODIFIED="1504876896530" TEXT="FehlerLog">
|
|
<node CREATED="1504834859584" ID="ID_693499241" MODIFIED="1504834866267" TEXT="im aktuellen Infobox-Panel"/>
|
|
<node CREATED="1504883112068" ID="ID_308640581" MODIFIED="1506121397123">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
alloc = limitPerWindow(1)
|
|
</p>
|
|
<p>
|
|
locate = currentWindow().existingPanel(infobox)
|
|
</p>
|
|
<p>
|
|
               or firstWindow().panel(infobox)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504833575700" ID="ID_1341951504" MODIFIED="1504833606683" TEXT="Playcontrol">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504883115283" ID="ID_236325043" MODIFIED="1504883140030" TEXT="?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504880643748" ID="ID_1148134938" MODIFIED="1504880646456" TEXT="Design">
|
|
<node CREATED="1504880653395" ID="ID_110525549" MODIFIED="1504880660030" TEXT="Regel-artig"/>
|
|
<node CREATED="1504880660666" ID="ID_959703053" MODIFIED="1504880668797" TEXT="mit Präzedenz">
|
|
<node CREATED="1504880672873" ID="ID_355744291" MODIFIED="1504880685267" TEXT="Liste von Definitionen"/>
|
|
<node CREATED="1504880685783" ID="ID_1363213536" MODIFIED="1504880701665" TEXT="vom Speziellsten zum Allgemeinen"/>
|
|
<node CREATED="1504880722394" ID="ID_1620814124" MODIFIED="1504880738895">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Voraussetzung: <i>Anwendbarkeit</i> erkennen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504881079778" ID="ID_1944767932" MODIFIED="1504881083973" TEXT="Form">
|
|
<node CREATED="1504881091345" ID="ID_453622973" MODIFIED="1504881104355" TEXT="Menge von Spezifikationen"/>
|
|
<node CREATED="1504881104919" ID="ID_1302649814" MODIFIED="1504881111442" TEXT="diese sind inhärent getypt"/>
|
|
<node CREATED="1504881124612" ID="ID_41842721" MODIFIED="1504881139230" TEXT="Spezifikation per Zuweisung"/>
|
|
<node CREATED="1504881139794" ID="ID_1982949721" MODIFIED="1504881148853" TEXT="zugewiesener Ausdruck ist passend getypt">
|
|
<node CREATED="1506120341257" ID="ID_1629432417" MODIFIED="1506120348204" TEXT="Loaction-Spec">
|
|
<node CREATED="1506120349336" ID="ID_1516960868" MODIFIED="1506120360234" TEXT="Menge von UI-Koordinaten"/>
|
|
<node CREATED="1506120361846" ID="ID_1024931059" MODIFIED="1506120367057" TEXT="unterstützt Alternativen"/>
|
|
<node CREATED="1506120367605" ID="ID_1489367458" MODIFIED="1506120372537" TEXT="wählt den ersten anwendbaren"/>
|
|
</node>
|
|
<node CREATED="1506120374116" ID="ID_1552148308" MODIFIED="1506120378224" TEXT="Allocator-Def">
|
|
<node CREATED="1506120380940" ID="ID_1553891423" MODIFIED="1506120390942" TEXT="ein Funktor UICorrd(UIcoord)"/>
|
|
<node CREATED="1506120391506" ID="ID_1217740236" MODIFIED="1506120406556" TEXT="Semantik: nimmt Spec und erzeugt konkretes Ziel"/>
|
|
<node CREATED="1506120410863" ID="ID_1205747223" MODIFIED="1506120419162" TEXT="Allocaotor-Specs">
|
|
<node CREATED="1506120420910" ID="ID_6299376" MODIFIED="1506120425113" TEXT="Hilfs-Tokens"/>
|
|
<node CREATED="1506120425773" ID="ID_195710124" MODIFIED="1506120434234" TEXT="partielle Funktionsanwendung">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504881149417" ID="ID_178442113" MODIFIED="1504881192191" TEXT="Alternativen">
|
|
<node CREATED="1504881193043" ID="ID_1759689335" MODIFIED="1504882609481" TEXT="Komma-Operator">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1504881756073" ID="ID_1341009121" MODIFIED="1504882753976" TEXT="niedrigere Präzedenz als ="/>
|
|
<node CREATED="1504882453091" ID="ID_870917199" MODIFIED="1504882607308" TEXT="damit sehr einfach zu implementieren">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504882554718" ID="ID_744764331" MODIFIED="1504882559553" TEXT="weil auf dem DSL-Proxy"/>
|
|
<node CREATED="1504882560202" ID="ID_1190541919" MODIFIED="1504882574911" TEXT="egal, wenn beide Seiten der Zuweisung DSL sind"/>
|
|
<node CREATED="1504882584218" ID="ID_790570102" MODIFIED="1504882601506" TEXT="was hier der Fall ist">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504882467714" ID="ID_759428035" MODIFIED="1504882597098" TEXT="bedeutet "and then" in Logik-Programmierung">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504881197490" ID="ID_1696182789" MODIFIED="1504882612659" TEXT="Oder-Operator">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1504882423975" ID="ID_884614259" MODIFIED="1504882432386" TEXT="höhere Präzedenz als ="/>
|
|
<node CREATED="1504882434846" ID="ID_1018309959" MODIFIED="1504882711791" 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="1504882632608" TEXT="or"/>
|
|
<node CREATED="1504882633268" ID="ID_1285507370" MODIFIED="1504882635735" TEXT="|"/>
|
|
</node>
|
|
<node CREATED="1504882529890" ID="ID_233096485" MODIFIED="1504882617371" TEXT="semantisch klar">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1504882657576" ID="ID_986692736" MODIFIED="1504882711791" 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="1504882684431" TEXT="numerische Auswertung auszuschließen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504831421266" ID="ID_1792240475" MODIFIED="1504831596393" TEXT="Zweck und Ziel">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1504831462636" ID="ID_252411082" MODIFIED="1504831501355" TEXT="Verhaltensmuster in ein Layout einbringen"/>
|
|
<node CREATED="1504831510806" ID="ID_834114445" MODIFIED="1504831536710" TEXT="zunächst sind Layouts eine fest vorgegeben"/>
|
|
<node CREATED="1504831537746" ID="ID_692369391" MODIFIED="1504831562795" TEXT="später könnte das user-Konfigurierbar werden">
|
|
<node CREATED="1504831564095" ID="ID_1860813217" MODIFIED="1504831576561" TEXT="per Einrichtungs UI"/>
|
|
<node CREATED="1504831577317" ID="ID_1281872136" MODIFIED="1504831587671" TEXT="als textuelle Konfiguration"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489777673022" HGAP="-43" ID="ID_873069403" MODIFIED="1489777689569" TEXT="Zugang zu Proc-Commands" VSHIFT="34">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489777702971" HGAP="125" ID="ID_1780068142" MODIFIED="1489777822408" TEXT="Framework muß geschaffen werden" VSHIFT="-42">
|
|
<icon BUILTIN="yes"/>
|
|
<node COLOR="#338800" CREATED="1489777783120" ID="ID_1439783231" MODIFIED="1489777791514" TEXT="Protokoll für den Zugang">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489777837120" ID="ID_466927949" MODIFIED="1489777843659" TEXT="Ort für Command-Definitionen"/>
|
|
<node COLOR="#338800" CREATED="1489777846095" ID="ID_1401258681" MODIFIED="1504478445810" TEXT="Design Proc-Command-Framework vorantreiben">
|
|
<arrowlink COLOR="#352c7d" DESTINATION="ID_1622574347" ENDARROW="Default" ENDINCLINATION="-240;-3336;" ID="Arrow_ID_1512127407" STARTARROW="None" STARTINCLINATION="1932;0;"/>
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489777738462" ID="ID_733673713" MODIFIED="1489777747448" TEXT="angebunden an den InteractionDirector"/>
|
|
<node CREATED="1489777748748" ID="ID_1098831130" MODIFIED="1489777760070" TEXT="statisches Front-End: CmdAccessor"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486763185746" HGAP="33" ID="ID_362749694" MODIFIED="1507924048883" 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="1486763277392" TEXT="nicht der Meister">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1486763278189" ID="ID_330558344" MODIFIED="1486763285944" TEXT="aber ein zentrales Bindeglied"/>
|
|
<node CREATED="1486763287244" ID="ID_1712681910" MODIFIED="1486763291199" TEXT="zwei Welten">
|
|
<node CREATED="1486763292028" ID="ID_1224392598" MODIFIED="1486763301742" TEXT="Modell-struktur == Hierarchie"/>
|
|
<node CREATED="1486763303066" ID="ID_1274975607" MODIFIED="1486763317596" TEXT="Interaktion == Fokus und Kontext"/>
|
|
</node>
|
|
<node CREATED="1486763350764" ID="ID_1309124609" MODIFIED="1488420106546" TEXT="Aufgaben">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1486763355739" ID="ID_745725927" MODIFIED="1486763370261" TEXT="Bindung für Aktionen bereitstellen"/>
|
|
<node CREATED="1488566356774" ID="ID_969011841" MODIFIED="1488672817699" 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="1488566425745" TEXT="auffinden der Command-IDs">
|
|
<node CREATED="1489191528425" ID="ID_1331796226" MODIFIED="1489191655977" TEXT="Neuer Service hierfü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="1488677835595" 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="1488566441831" TEXT="InteractionStateManager">
|
|
<node CREATED="1488566447466" ID="ID_1978593319" MODIFIED="1488566452134" TEXT="hängen darunter"/>
|
|
<node CREATED="1488566452538" ID="ID_1569803797" MODIFIED="1488566471539" TEXT="werden transient gebilet"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486763376960" ID="ID_1618020758" MODIFIED="1486763385091" TEXT="Zugang zu den Timelines"/>
|
|
<node CREATED="1486763385591" ID="ID_6651258" MODIFIED="1486763391202" TEXT="Zugang zum Asset-Management"/>
|
|
<node CREATED="1486763391862" ID="ID_1568245541" MODIFIED="1486763397977" TEXT="Zugang zur Konfiguration"/>
|
|
<node CREATED="1486763408780" ID="ID_520762274" MODIFIED="1486763417950" TEXT="Zugang zum persistenten Interface-State"/>
|
|
<node CREATED="1504371285442" ID="ID_634013434" MODIFIED="1506957035235" 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" HGAP="38" ID="ID_1457876217" MODIFIED="1488566292402" TEXT="konkret" VSHIFT="16">
|
|
<icon BUILTIN="flag-pink"/>
|
|
<node CREATED="1486768080502" ID="ID_1759740464" MODIFIED="1487039233982" TEXT="Binde-Kontext für globale Aktionen"/>
|
|
<node CREATED="1486768086869" ID="ID_173538981" MODIFIED="1488566299019" TEXT="Idee/Konzept für kontextabhängige Aktionen">
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1487119208622" ID="ID_728171298" MODIFIED="1512926191819" TEXT="Analyse anhand einiger Beispiele">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1488419440935" ID="ID_802346253" MODIFIED="1488419449712" TEXT="add Sequence">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1488419450812" ID="ID_179687468" MODIFIED="1488419456739" TEXT="add Track">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487119230659" ID="ID_651577067" MODIFIED="1488566303378">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Frage: wieviel Interaction Control
|
|
</p>
|
|
<p>
|
|
müssen wir sofort jetzt implementieren
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208182655" ID="ID_1220225827" MODIFIED="1487214021907">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
brauche ein <i>aktuelles</i> Modell-Element
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208211131" ID="ID_31351462" MODIFIED="1487214024007" 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="1487214025311" TEXT="und wer dafür zuständig sein wird">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493852906845" HGAP="24" ID="ID_1176492517" MODIFIED="1493852949884" TEXT="siehe auch #1097 clarify the role of the panels in the UI" VSHIFT="9">
|
|
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1176492517" ENDARROW="Default" ENDINCLINATION="14;-313;" ID="Arrow_ID_1083220093" SOURCE="ID_1375700494" STARTARROW="None" STARTINCLINATION="632;-20;"/>
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504193112577" ID="ID_1851236797" MODIFIED="1504193156816">
|
|
<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="1507935709930" 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;"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193392483" ID="ID_912677550" MODIFIED="1504193412602" TEXT="PanelManager muß umgeschrieben werden">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193400426" ID="ID_1575758873" MODIFIED="1504193413641" TEXT="PanelManager muß umgezogen werden">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504193443636" ID="ID_1002171467" MODIFIED="1504478445429" 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="1488672675810" TEXT="Grundlagen für Command-handling"/>
|
|
<node CREATED="1487313769425" ID="ID_728232011" MODIFIED="1504459930208">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Grundlagen für <b>InteractionControl</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1488419854029" ID="ID_932507511" MODIFIED="1504459942376" 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" ID="ID_1619021408" MODIFIED="1493847646952" TEXT="Fazit(TODO)">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1487313203254" ID="ID_573801539" MODIFIED="1512926191819" TEXT="Klassen anlegen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1487313231355" ID="ID_1566121505" MODIFIED="1487380504988" TEXT="WorkSite">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313293850" ID="ID_1237669879" MODIFIED="1487380508035" TEXT="WorkSiteTrail">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313234714" ID="ID_1600517388" MODIFIED="1487380510534" TEXT="SpotLocator">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313246333" ID="ID_1397075016" MODIFIED="1487380512637" TEXT="FocusTracker">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313253432" ID="ID_1727250153" MODIFIED="1487380514760" TEXT="Navigator">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313374879" ID="ID_604164603" MODIFIED="1487380517010" TEXT="UiState">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487313454220" ID="ID_640048374" MODIFIED="1512926191820" TEXT="Abgriff in CoreServices">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1487313462963" ID="ID_342355040" MODIFIED="1487475672626" TEXT="injizieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1487313475593" ID="ID_951423078" MODIFIED="1512926191821" TEXT="über Lifecycle nachdenken">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1487472682881" ID="ID_1575753680" MODIFIED="1487472687124" TEXT="UI-Bus zuerst"/>
|
|
<node CREATED="1487472687641" ID="ID_731426548" MODIFIED="1487472699179" TEXT="dann Ui-Manager -> InteractionDirector -> Ui-State"/>
|
|
<node CREATED="1487472711453" ID="ID_759583421" MODIFIED="1512926191823" TEXT="beim Zerstören von GtkLumiera">
|
|
<node CREATED="1487472720476" ID="ID_1676214656" MODIFIED="1487472730102" TEXT="sollte die Event-Loop bereits beendet sein"/>
|
|
<node CREATED="1487472730667" ID="ID_1826692985" MODIFIED="1487472740645" TEXT="können aber noch Fenster existieren"/>
|
|
<node CREATED="1487472757439" ID="ID_977443666" MODIFIED="1487475766036">
|
|
<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="1487472800205" TEXT="kurz darauf wird auch CoreService + Nexus zerstört"/>
|
|
</node>
|
|
<node CREATED="1487472971330" ID="ID_81364279" MODIFIED="1487472986931" TEXT="grundsätzliches Shutdown-Problem">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1487472987984" ID="ID_1443542622" MODIFIED="1512926191823" TEXT="aber harmlos">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1487472993439" ID="ID_310404379" MODIFIED="1487473004097" TEXT="unter der Annahme, daß das UI wirklich single-threaded läuft"/>
|
|
<node CREATED="1487473004949" ID="ID_1092623141" MODIFIED="1487473018151" TEXT="wenn wir die Garantie haben, daß die Event-Loop nichts mehr macht"/>
|
|
<node CREATED="1487473038377" ID="ID_393673106" MODIFIED="1487473076368" 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="1512926191824" TEXT="wir injizieren anders herum">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1487475695910" ID="ID_1341876014" MODIFIED="1487475704865" TEXT="StateManager als sub-Service"/>
|
|
<node CREATED="1487475711092" ID="ID_838045301" MODIFIED="1487475719743" TEXT="gehört CoreService"/>
|
|
<node CREATED="1487475720363" ID="ID_693101732" MODIFIED="1487475723182" TEXT="läuft immer"/>
|
|
<node CREATED="1487475723771" ID="ID_959927308" MODIFIED="1487475737732" TEXT="wird in UiState injiziert"/>
|
|
<node CREATED="1487475738369" ID="ID_1261936534" MODIFIED="1487475782408" 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="1487475804801" TEXT="StateRecorder nun angeschlossen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487313659680" ID="ID_1420397002" MODIFIED="1493847725843" TEXT="FocusTap">
|
|
<node CREATED="1487313668423" ID="ID_1248049801" MODIFIED="1487313679321" TEXT="Signal in model::Tangible"/>
|
|
<node CREATED="1487313680053" ID="ID_1563882406" MODIFIED="1487313691288" TEXT="Methode zum Installieren"/>
|
|
<node CREATED="1487313691644" ID="ID_1797207964" MODIFIED="1487313704558" TEXT="Verbindung zum FocusTracker herstellen (automatisch)"/>
|
|
<node CREATED="1487313717368" ID="ID_1638145586" MODIFIED="1487313725195" TEXT="entsprechend auch in WorkplaceWindow"/>
|
|
</node>
|
|
<node CREATED="1487313566901" ID="ID_268630370" MODIFIED="1512926191824" TEXT="Methoden">
|
|
<node CREATED="1487313570932" ID="ID_1733821258" MODIFIED="1487313578015" TEXT="getCurrentWorkSite"/>
|
|
<node CREATED="1487313578555" ID="ID_671600782" MODIFIED="1512926191824" TEXT="getCurrentMO">
|
|
<node CREATED="1487313612063" ID="ID_1795028934" MODIFIED="1487313618034" TEXT="ggfs.sinnvollen Dummy hier"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487461242609" ID="ID_164538059" MODIFIED="1487461245308" TEXT="Struktur">
|
|
<node CREATED="1487461304560" ID="ID_349728972" MODIFIED="1488492188626" TEXT="betreibt">
|
|
<node CREATED="1487273437019" ID="ID_1653934212" MODIFIED="1506956689947" TEXT="Navigator">
|
|
<node CREATED="1506957512565" ID="ID_1256149179" MODIFIED="1507935759248" 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="-87;78;" ID="Arrow_ID_1490250373" SOURCE="ID_650732591" STARTARROW="None" STARTINCLINATION="225;-6;"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487270206369" ID="ID_1888334597" MODIFIED="1487461321289" TEXT="SpotLocator"/>
|
|
<node CREATED="1487275297855" ID="ID_898365328" MODIFIED="1487461316314" TEXT="FocusTracker"/>
|
|
<node CREATED="1504368969990" ID="ID_948587913" MODIFIED="1506957107818" 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="1504370348218" TEXT="Service"/>
|
|
<node CREATED="1504373189956" ID="ID_1625042163" MODIFIED="1504373207181" TEXT="intern direkt verdrahtet mit dem PanelLocator"/>
|
|
<node CREATED="1504370354446" ID="ID_1714266927" MODIFIED="1504370416721" TEXT="findet, ggfs alloziert einen ComponentView"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487461353681" ID="ID_1117222917" MODIFIED="1488492194073" TEXT="Modell">
|
|
<node CREATED="1487461361688" ID="ID_1787396394" MODIFIED="1488492200352" TEXT="Attrib">
|
|
<node CREATED="1487461413145" ID="ID_816848691" MODIFIED="1487461471666" 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="1488492278296" TEXT="AssetController"/>
|
|
</node>
|
|
<node CREATED="1488492229939" ID="ID_996547800" MODIFIED="1488492232598" TEXT="Children">
|
|
<node CREATED="1488492233826" ID="ID_1743746426" MODIFIED="1488492238493" TEXT="Timelines"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487461436006" ID="ID_1721976078" MODIFIED="1488566321429" TEXT="Kooperation">
|
|
<node CREATED="1487461440509" ID="ID_1663368282" MODIFIED="1512926191824" TEXT="CoreService">
|
|
<node CREATED="1487461456739" ID="ID_1032977850" MODIFIED="1487461471666" 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="1512926191825" TEXT="Actions">
|
|
<node CREATED="1487461484935" ID="ID_951148221" MODIFIED="1487461491098" TEXT="Kontext für globale Aktionen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506956798915" HGAP="-73" ID="ID_1897228503" MODIFIED="1506956825070" TEXT="Services" VSHIFT="32">
|
|
<node CREATED="1506956866802" ID="ID_652269096" MODIFIED="1506956900479" TEXT="Navigator">
|
|
<node CREATED="1507935433543" ID="ID_239254800" MODIFIED="1507935454878">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
in <i>generischer UI-Struktur</i> bewegen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1507935461787" ID="ID_1244300168" MODIFIED="1507935472477" TEXT="bietet command-and-query-Interface"/>
|
|
<node CREATED="1507935474273" ID="ID_650732591" MODIFIED="1507935737076" TEXT="dient als (Pfad-)Resolver für UI-Coord">
|
|
<arrowlink COLOR="#5068a8" DESTINATION="ID_1256149179" ENDARROW="Default" ENDINCLINATION="-87;78;" ID="Arrow_ID_1490250373" STARTARROW="None" STARTINCLINATION="225;-6;"/>
|
|
</node>
|
|
<node CREATED="1507935538409" ID="ID_1407528424" MODIFIED="1507935647550" TEXT="stützt sich auf ViewLocator ab">
|
|
<arrowlink COLOR="#89919c" DESTINATION="ID_344392695" ENDARROW="Default" ENDINCLINATION="90;-49;" ID="Arrow_ID_1845784021" STARTARROW="None" STARTINCLINATION="-18;26;"/>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504368969990" ID="ID_344392695" MODIFIED="1507935619563" TEXT="ViewLocator">
|
|
<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="-18;26;"/>
|
|
<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="1504387097144" TEXT="bietet Komponenten-Management">
|
|
<node CREATED="1504387105363" ID="ID_631730744" MODIFIED="1504387110342" TEXT="neue Komponente"/>
|
|
<node CREATED="1504387110866" ID="ID_879632055" MODIFIED="1504387115157" TEXT="Komponente löschen"/>
|
|
<node CREATED="1504387189744" ID="ID_934669703" MODIFIED="1504387202285" TEXT="notwendig für Kind-Mutation">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1504368969990" ID="ID_1346454848" MODIFIED="1507935336871" 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="1506956891024" TEXT="SpotLocator"/>
|
|
<node CREATED="1506956892303" ID="ID_238906242" MODIFIED="1506956898082" TEXT="FocusTracker"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485126466520" ID="ID_717310004" MODIFIED="1488423306865" TEXT="WindowManager" VSHIFT="34">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1485457325724" ID="ID_1954589768" MODIFIED="1485457325724" TEXT="nur für die Hauptfenster zuständig"/>
|
|
<node CREATED="1485457328043" ID="ID_1787642462" MODIFIED="1511572073997" TEXT="wir haben kein ApplicationWindow">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...denn das ist das vereinfachte Setup für "einfache" Applikationen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1485457370310" ID="ID_1931452525" MODIFIED="1485457379864" TEXT="GtkWindow sind völlig ausreichend"/>
|
|
<node CREATED="1485546285407" ID="ID_1129769291" MODIFIED="1485546307908">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
muß kein <b>Manager</b> sein
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1485546319434" ID="ID_1592361314" MODIFIED="1485546343174" TEXT="macht nur eine Sache">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1485546325993" ID="ID_1335197005" MODIFIED="1485546333460" TEXT="nämlich eine Liste der Fenster verwalten"/>
|
|
<node CREATED="1504368623492" ID="ID_1993615747" MODIFIED="1504368630343" TEXT="und Zugang zu diesen Fenster bieten"/>
|
|
</node>
|
|
<node CREATED="1485546344471" ID="ID_582242471" MODIFIED="1504368641710" 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="1504368655052" 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="1485546415097" TEXT="macht, was vom großen Manager übrig blieb"/>
|
|
<node CREATED="1485546425452" ID="ID_1088557274" MODIFIED="1485546450588" TEXT="wird von GtkLumiera gehalten und verdrahtet"/>
|
|
<node CREATED="1485548669665" ID="ID_285796853" MODIFIED="1485548744609" TEXT="Problem: wie erreichbar?">
|
|
<icon BUILTIN="pencil"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548702476" ID="ID_1295550090" MODIFIED="1485917665638" TEXT="Aufgabe: new_window">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1485548713610" ID="ID_1984416789" MODIFIED="1485548737760" TEXT="wird als Action verdrahtet">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1485548727401" ID="ID_1344937285" MODIFIED="1485548731869" TEXT="was ist die Closure">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504193329508" ID="ID_629544763" MODIFIED="1504193337495" TEXT="Aufgabe: docking panels">
|
|
<node CREATED="1504193340786" ID="ID_751993082" MODIFIED="1504386807170" TEXT="PanelLocator hier integrieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1504370542909" ID="ID_1318769916" MODIFIED="1504370549093" TEXT="Query-Front-end"/>
|
|
<node CREATED="1504371342426" ID="ID_1606296935" MODIFIED="1507935336871" TEXT="wird benötigt vom ViewLocator (InteractionDirector)">
|
|
<arrowlink COLOR="#7c8aa8" DESTINATION="ID_1346454848" ENDARROW="Default" ENDINCLINATION="22;11;" ID="Arrow_ID_1776804306" STARTARROW="Default" STARTINCLINATION="313;-14;"/>
|
|
</node>
|
|
<node CREATED="1504370524687" ID="ID_816760158" MODIFIED="1504370535145" TEXT="PanelManager in den einzelnen Fenstern"/>
|
|
</node>
|
|
<node CREATED="1504193354056" ID="ID_385011645" MODIFIED="1504478874247">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<b>Abstraktion</b> 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="1504307886419" TEXT="Anforderungen" VSHIFT="-7">
|
|
<node CREATED="1504307921993" ID="ID_774956517" MODIFIED="1504307928324" TEXT="bestimmtes Element...">
|
|
<node CREATED="1504307933535" ID="ID_220451742" MODIFIED="1504308006278" TEXT="ansprechen">
|
|
<node CREATED="1504308372668" ID="ID_1978317777" MODIFIED="1504308379327" TEXT="Referenz für direkte Aufrufe"/>
|
|
<node CREATED="1504308379891" ID="ID_829774303" MODIFIED="1504308387926" TEXT="ID für UI-Bus-Kommunikation"/>
|
|
</node>
|
|
<node CREATED="1504307929599" ID="ID_1927494491" MODIFIED="1504307932899" TEXT="neu erzeugen"/>
|
|
<node CREATED="1504307954292" ID="ID_1658958044" MODIFIED="1504307997960" TEXT="löschen"/>
|
|
</node>
|
|
<node CREATED="1504308024282" ID="ID_1154461573" MODIFIED="1504308036278">
|
|
<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="1504308043380" TEXT="es gibt nur eines"/>
|
|
<node CREATED="1504308044016" ID="ID_1655384159" MODIFIED="1504308051227" TEXT="von bestimmter Art"/>
|
|
<node CREATED="1504308073444" ID="ID_1584894553" MODIFIED="1504308077904" TEXT="Typ + ID"/>
|
|
<node CREATED="1504308256876" ID="ID_733625102" MODIFIED="1504308351520" TEXT="Problem: View-Instanzen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1504308268370" ID="ID_1644215776" MODIFIED="1504308318272" TEXT="wie die ID festlegen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1504308288056" ID="ID_919032583" MODIFIED="1504308315302" TEXT="wer weiß von diesen Instanzen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1504308295190" ID="ID_981780857" MODIFIED="1504308309558" TEXT="wie werden sie im Model dargestellt?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504308325682" ID="ID_168204060" MODIFIED="1504308344188" TEXT="wer verfolgt die Lebensdauer?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504479018947" HGAP="185" ID="ID_88064796" MODIFIED="1504479036904" TEXT="folgt aus dem View-Zugriff" VSHIFT="11">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504194145622" ID="ID_511626836" MODIFIED="1504194154361" TEXT="Addressieren einzelner Kind-Komponenten"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485555987832" ID="ID_313705636" MODIFIED="1485555992480" TEXT="Wiring">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1485555999110" ID="ID_376092703" MODIFIED="1485556008921" TEXT="top-level macht GtkLumiera im ctor"/>
|
|
<node CREATED="1485556011260" ID="ID_1618308499" MODIFIED="1485556026758" TEXT="backlink zum Manager"/>
|
|
<node CREATED="1486943522965" ID="ID_36527267" MODIFIED="1507935589920" 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="1488494596905" TEXT="UI-Bus"/>
|
|
<node CREATED="1488494579346" ID="ID_1182508289" MODIFIED="1488494603368" TEXT="UiManager"/>
|
|
<node CREATED="1486943529763" ID="ID_1188971928" MODIFIED="1504368849202" TEXT="WindowLocator"/>
|
|
<node CREATED="1486943607120" ID="ID_1101577688" MODIFIED="1488494613248" TEXT="InteractionDirector">
|
|
<node CREATED="1486943922541" ID="ID_646168152" MODIFIED="1488494623320" TEXT="Entspricht Model Root"/>
|
|
<node CREATED="1486943614039" ID="ID_1354424043" MODIFIED="1488494631023" TEXT="AssetController"/>
|
|
<node CREATED="1486943634229" ID="ID_1217772313" MODIFIED="1512926191825" TEXT="Kinder: Timelines">
|
|
<node CREATED="1486943640004" ID="ID_1237613626" MODIFIED="1486943642783" TEXT="Preferences"/>
|
|
<node CREATED="1486943643179" ID="ID_463409583" MODIFIED="1486943645031" TEXT="Assets"/>
|
|
<node CREATED="1486943645554" ID="ID_1803125679" MODIFIED="1486943647095" TEXT="Timeline"/>
|
|
</node>
|
|
<node CREATED="1488494646129" HGAP="34" ID="ID_1817005014" MODIFIED="1488494658528" TEXT="InteractionControl" VSHIFT="11">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1488494665798" ID="ID_1228864928" MODIFIED="1488494689255" TEXT="SpotLocator"/>
|
|
<node CREATED="1488494689843" ID="ID_1519420241" MODIFIED="1488494692239" TEXT="Navigator"/>
|
|
<node CREATED="1488494692802" ID="ID_1706374538" MODIFIED="1488494696246" TEXT="FocusTracker"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486943969999" ID="ID_1823284637" MODIFIED="1488494766061" TEXT="Wizzard">
|
|
<node CREATED="1486943974590" ID="ID_1603501979" MODIFIED="1488494780491" TEXT="Hilfe (Website?)"/>
|
|
<node CREATED="1486944977005" ID="ID_811162889" MODIFIED="1488494773740" TEXT="kontextsensitive Hilfe"/>
|
|
<node CREATED="1488494783190" ID="ID_1886731977" MODIFIED="1488494785274" TEXT="Assistenten"/>
|
|
<node CREATED="1488494785774" ID="ID_167814846" MODIFIED="1488494786770" TEXT="About"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1488422770096" ID="ID_286551569" MODIFIED="1493753726693" 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="1485556069949" TEXT="Problem: Docking panels">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1485556037465" ID="ID_1657490812" MODIFIED="1485556046020" TEXT="brauchen typischerweise eine Querverbindung"/>
|
|
<node CREATED="1485556046703" ID="ID_50463095" MODIFIED="1485556055302" TEXT="geht das über den Bus alleine?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1504386565227" ID="ID_889188219" MODIFIED="1504386586115" TEXT="nein">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1504386568907" ID="ID_792633121" MODIFIED="1504386582556" TEXT="Referenz notwendig"/>
|
|
</node>
|
|
<node CREATED="1485556056206" ID="ID_509456873" MODIFIED="1504386878069" TEXT="...sonst muß der PanelManager helfen">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1504386527936" ID="ID_307889825" MODIFIED="1504386534883" TEXT="muß ID finden können"/>
|
|
<node CREATED="1504386535447" ID="ID_426578263" MODIFIED="1504386547865" TEXT="brauche Service zum Erzeugen/Löschen"/>
|
|
<node CREATED="1504386595679" ID="ID_1383687482" MODIFIED="1511572074267" 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="1511572074274" TEXT="automatisches Management vonöten">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wenn das Diff ein Element aus einer Kind-Menge <i>wegfallen läßt,</i>
|
|
</p>
|
|
<p>
|
|
dann muß dieses automatisch deregistriert werden
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1504371342426" ID="ID_869653682" MODIFIED="1506957062518">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
vermittelt über den <b>ViewLocator</b> (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="1488940144847" 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="1488677736385" TEXT="grundsätziches Problem">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1488678069565" ID="ID_346104238" MODIFIED="1488678076272" TEXT="explizite Verdrahtung scheidet aus"/>
|
|
<node CREATED="1488678077236" ID="ID_1536759032" MODIFIED="1488678099334" TEXT="klassisches Inversion-Of-Control">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1488678106024" ID="ID_1242521430" MODIFIED="1488678110761" TEXT="access by name">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488677737419" ID="ID_1621219441" MODIFIED="1488677750577" TEXT="einfach gelöst für top-Level">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1488677751537" ID="ID_75445042" MODIFIED="1488677761574" TEXT="schwierig für Widgets">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1486520281897" ID="ID_827558797" MODIFIED="1504459559548" 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="1486520302679" TEXT="CoreService + UI-Bus"/>
|
|
<node CREATED="1486520303173" ID="ID_306583765" MODIFIED="1486520321580" TEXT="UiManager, Actions etc"/>
|
|
<node CREATED="1486521232144" HGAP="44" ID="ID_1816242514" MODIFIED="1512926191826" TEXT="Fragen" VSHIFT="16">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1486521810252" ID="ID_728134375" MODIFIED="1486521858401" TEXT="wer verkörpert den Sesison-Root?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521250790" ID="ID_447470270" MODIFIED="1486521351988" TEXT="haben wir einen globalen Controller?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521269531" ID="ID_1633937799" MODIFIED="1486521348579" TEXT="was ist das Modell des globalen Controllers?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521285069" ID="ID_410780953" MODIFIED="1486521344837" TEXT="wie hängt das mit persistentem UI-State zusammen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521317725" ID="ID_1502356505" MODIFIED="1486521332943" TEXT="welche Aktionen löst der globale Controller aus?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521369166" ID="ID_1068454326" MODIFIED="1486521384972" TEXT="wie werden die mit dem Menü verbunden?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521449835" ID="ID_236689642" MODIFIED="1486521473727" TEXT="wo hängt der InvocationStateManager?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521478792" ID="ID_235720883" MODIFIED="1486521491244" TEXT="wie redet man mit dem InvocationStateManager?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521492102" ID="ID_339608490" MODIFIED="1486521506112" TEXT="kann man Fragen via Bus stellen?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521526105" ID="ID_1872187260" MODIFIED="1486521537413" TEXT="nutzen wir das Advice-System?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1486521980109" ID="ID_1036025143" MODIFIED="1491009150722" TEXT="wer beendet das UI?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1486751116251" HGAP="140" ID="ID_113005643" MODIFIED="1512926191827" VSHIFT="61">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Brücke: <i>gemeinsamer</i> 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="1486751232207" TEXT="ist Bindeglied für globale Aktionen"/>
|
|
<node CREATED="1486751233315" ID="ID_1611855815" MODIFIED="1486751238982" TEXT="verkörpert den Model-Root"/>
|
|
<node CREATED="1486751248097" ID="ID_1313868100" MODIFIED="1486751258147" TEXT="ist Vollmitglied am Bus"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1485126481023" ID="ID_943652445" MODIFIED="1485126488201" TEXT="pro Fenster">
|
|
<node CREATED="1485126488981" ID="ID_1346100835" MODIFIED="1485126494129" TEXT="WorkspaceWindow"/>
|
|
<node CREATED="1485126494621" ID="ID_923407468" MODIFIED="1485126498416" TEXT="PanelManager"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1476376882857" HGAP="193" ID="ID_1420903777" MODIFIED="1477784783964" TEXT="Kern-Elemente" VSHIFT="-34">
|
|
<node CREATED="1480639237820" HGAP="-42" ID="ID_138717265" MODIFIED="1480639353634" TEXT="Bausteine" VSHIFT="-11">
|
|
<node CREATED="1480639254498" ID="ID_601165955" MODIFIED="1480639257302" TEXT="Placement"/>
|
|
<node CREATED="1480639279591" ID="ID_887618627" MODIFIED="1480639281395" TEXT="Timecode"/>
|
|
<node CREATED="1480639276064" ID="ID_1418536459" MODIFIED="1480639277747" TEXT="Fader"/>
|
|
<node CREATED="1480639258169" ID="ID_1876553930" MODIFIED="1480639259909" TEXT="Label"/>
|
|
<node CREATED="1480639267600" ID="ID_671046048" MODIFIED="1480639269220" TEXT="Clip"/>
|
|
<node CREATED="1480639365715" ID="ID_743867283" MODIFIED="1480639368365" TEXT="Bin"/>
|
|
</node>
|
|
<node CREATED="1480639327169" HGAP="36" ID="ID_700485676" MODIFIED="1504459679843" 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="1504459714930" TEXT="Assets" VSHIFT="-26">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1504459300720" ID="ID_1860702149" MODIFIED="1504459702820" TEXT="Einstellungen"/>
|
|
<node CREATED="1504459315798" ID="ID_888900532" MODIFIED="1504459541886" 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="1504459720042" TEXT="Timeline" VSHIFT="-17">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1477599995452" HGAP="10" ID="ID_97568136" MODIFIED="1480694723679" TEXT="Bestandteile" VSHIFT="-4">
|
|
<node CREATED="1476377043180" ID="ID_1179709828" MODIFIED="1476377047495" TEXT="Head">
|
|
<node CREATED="1476377067729" ID="ID_896843893" MODIFIED="1476377070268" TEXT="Patchbay"/>
|
|
<node CREATED="1476377071072" ID="ID_745594295" MODIFIED="1476377074604" TEXT="in-sync with body"/>
|
|
</node>
|
|
<node CREATED="1476377048043" ID="ID_994927647" MODIFIED="1476377052046" TEXT="Body">
|
|
<node CREATED="1476377078839" ID="ID_331565543" MODIFIED="1476377086496" TEXT="the Fork">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1476377087942" ID="ID_26794000" MODIFIED="1476377090498" TEXT="expandable"/>
|
|
</node>
|
|
<node CREATED="1476377059386" ID="ID_363001687" MODIFIED="1476377064293" TEXT="Control">
|
|
<node CREATED="1476377117290" ID="ID_179386424" MODIFIED="1476377119406" TEXT="scolling"/>
|
|
<node CREATED="1480694668090" ID="ID_792729651" MODIFIED="1512926191828" TEXT="TimelineWidget">
|
|
<node CREATED="1480694675624" ID="ID_1512443419" MODIFIED="1480694678756" TEXT="Einstiegspunkt"/>
|
|
<node CREATED="1480694679232" ID="ID_1344733448" MODIFIED="1480694705355">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
sets für <b>eine feste</b> session::Timeline
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480694854057" HGAP="32" ID="ID_577309407" MODIFIED="1488470332841" TEXT="TimelinePane" VSHIFT="7">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480694860696" ID="ID_1847844548" MODIFIED="1504459531295" TEXT="hä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="1504459417404" TEXT="InteractionDirector verwaltet Platzhalter"/>
|
|
<node CREATED="1504459419584" ID="ID_1339072222" MODIFIED="1504459452519" TEXT="in der TimelinePane leben die zugehörigen Widgets"/>
|
|
<node CREATED="1504459462330" ID="ID_791513915" MODIFIED="1504459485652">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Verwaltung <i>autmatisch</i> via ViewLocator -> PanelLocator
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480694897443" ID="ID_402490324" MODIFIED="1480694916396" TEXT="verwaltet die Timelines"/>
|
|
<node CREATED="1480694918056" ID="ID_789731200" MODIFIED="1512926191828">
|
|
<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="1480694936274" TEXT="interface == Widget"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480694624879" HGAP="37" ID="ID_1678741068" MODIFIED="1488470753085" TEXT="TimelineController" VSHIFT="21">
|
|
<node CREATED="1480694630302" ID="ID_10965216" MODIFIED="1480694651464" TEXT="hat das Sagen"/>
|
|
<node CREATED="1480694652219" ID="ID_1232910852" MODIFIED="1480694656791" TEXT="Widget wird passiv"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477600006370" ID="ID_1328755612" MODIFIED="1504387786484" TEXT="Konzept">
|
|
<node CREATED="1504387810549" ID="ID_599967369" MODIFIED="1504387818637" TEXT="Identität">
|
|
<node CREATED="1504387825051" ID="ID_281718898" MODIFIED="1504387834013" TEXT="eine View pro Model-Komponente"/>
|
|
<node CREATED="1504387834601" ID="ID_798058080" MODIFIED="1512926191829" TEXT="Slave-Views kaskadiert">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504387844840" ID="ID_1591380172" MODIFIED="1504387854843" TEXT="TimelineView verwaltet eigene Sklaven"/>
|
|
<node CREATED="1504387856919" ID="ID_198003145" MODIFIED="1504387864673" TEXT="nach außen hin transparent"/>
|
|
<node CREATED="1504387865853" ID="ID_519067212" MODIFIED="1504387881231" TEXT="delegiert automatisch"/>
|
|
</node>
|
|
<node CREATED="1504387896417" ID="ID_1112793361" MODIFIED="1504387903196" TEXT="EntryID<Timeline>"/>
|
|
</node>
|
|
<node CREATED="1477600020776" ID="ID_955842824" MODIFIED="1477600023460" TEXT="Einteilung"/>
|
|
<node CREATED="1477600027128" ID="ID_1592196047" MODIFIED="1477600035730" TEXT="Handhabung">
|
|
<node CREATED="1477600041886" ID="ID_1241593972" MODIFIED="1477600043265" TEXT="User"/>
|
|
<node CREATED="1477600044069" ID="ID_217967290" MODIFIED="1512926191829" TEXT="technisch">
|
|
<node CREATED="1477600126514" ID="ID_1433799303" MODIFIED="1512926191830" TEXT="grundsätzlich....">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1477600134217" ID="ID_1352260964" MODIFIED="1487275489756" 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 überlassen wir GTK
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1477600216950" ID="ID_1935952349" MODIFIED="1512926191831" TEXT="focus">
|
|
<node CREATED="1477600231756" ID="ID_1744616929" MODIFIED="1512926191831" TEXT="Tabbing">
|
|
<node CREATED="1477600258865" ID="ID_112614309" MODIFIED="1477600274354" TEXT="GTK überlassen">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1477600275118" ID="ID_1701392398" MODIFIED="1477600284385" TEXT="Ordnung explizit setzen">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1477600285685" ID="ID_195435447" MODIFIED="1477600299976" TEXT="effektiv unterbinden">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477600234036" ID="ID_957445675" MODIFIED="1512926191832" TEXT="Navigation">
|
|
<node CREATED="1477600335934" ID="ID_1021991791" MODIFIED="1477600342473" TEXT="räumliche Metapher"/>
|
|
<node CREATED="1477600353036" ID="ID_529949426" MODIFIED="1477600361398" TEXT="brauche Orts-Repräsentation">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477600385264" ID="ID_734925174" MODIFIED="1512926191832" TEXT="Darstellung">
|
|
<node CREATED="1477600397934" ID="ID_224014088" MODIFIED="1477600417763" TEXT="GTK alles geben">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1477600402110" ID="ID_375405149" MODIFIED="1477600415503" TEXT="nur eine aktuelle Auswahl">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477600431489" ID="ID_741336406" MODIFIED="1512926191832" TEXT="gtk::Layout">
|
|
<node CREATED="1477600442792" ID="ID_143840935" MODIFIED="1477600450067" TEXT="ist das offizielle Canvas-Control"/>
|
|
<node CREATED="1477600450463" ID="ID_293636936" MODIFIED="1477600453523" TEXT="scheint sehr mächtig"/>
|
|
<node CREATED="1477600454470" ID="ID_1255426760" MODIFIED="1477600459258" TEXT="ist ein gtk::Container"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1479678484210" ID="ID_1561971595" MODIFIED="1479678488573" TEXT="Struktur">
|
|
<node CREATED="1479678496272" ID="ID_807567871" LINK="file:///home/hiv/devel/lumi/wiki/renderengine.html#GuiTimelineWidgetStructure" MODIFIED="1479678687574" TEXT="Analyse">
|
|
<node CREATED="1479678503071" ID="ID_806149006" MODIFIED="1511572074511" TEXT="Grid bringt nix">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Das war zwar schon meine Bauchgefühl,
|
|
</p>
|
|
<p>
|
|
habe aber sicherheitshalber diese Analyse nochmal gemacht.
|
|
</p>
|
|
<p>
|
|
Details im  TiddlyWiki....
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1479678634213" ID="ID_432405176" MODIFIED="1479678650821" TEXT="rekursive Struktur schaffen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1479678509822" ID="ID_915690336" MODIFIED="1479678663117" TEXT="Scrolling ist notwendig speziell"/>
|
|
</node>
|
|
<node CREATED="1479678717961" ID="ID_946163885" MODIFIED="1479678722108" TEXT="globales Widget">
|
|
<node CREATED="1479678723576" ID="ID_666987913" MODIFIED="1479678758128" TEXT="Layout Grundmuster: zweigeteilt"/>
|
|
<node CREATED="1479678736655" ID="ID_1313901406" MODIFIED="1479678745545" TEXT="globaler Layout-Manager"/>
|
|
</node>
|
|
<node CREATED="1480723110777" HGAP="24" ID="ID_1197860604" MODIFIED="1480725393020" TEXT="Kontrollstruktur" VSHIFT="7">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1480723136861" ID="ID_839909208" MODIFIED="1512926191833" 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="1480723148072" TEXT="TimelineWidget"/>
|
|
<node CREATED="1480723148572" ID="ID_1331974915" MODIFIED="1480723151671" TEXT="wirklich">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480723200765" ID="ID_1498754065" MODIFIED="1488470722834" TEXT="aktiv">
|
|
<node CREATED="1480723223938" ID="ID_1057816659" MODIFIED="1512926191834" TEXT="UI-Mechanik">
|
|
<node CREATED="1480723246207" ID="ID_988556037" MODIFIED="1480723268808" TEXT="Scrollen"/>
|
|
<node CREATED="1480723270492" ID="ID_1057899601" MODIFIED="1480723272959" TEXT="Zoomen"/>
|
|
<node CREATED="1480723288521" ID="ID_238022948" MODIFIED="1512926191834" TEXT="Navigieren">
|
|
<node CREATED="1480723291697" ID="ID_486282572" MODIFIED="1480723294564" TEXT="delegiert"/>
|
|
<node CREATED="1480723296128" ID="ID_681787776" MODIFIED="1480723317025" TEXT="timeline::NavigatorWidget"/>
|
|
</node>
|
|
<node CREATED="1480723797453" ID="ID_451406554" MODIFIED="1480723801984" TEXT="Benachrichtigungen"/>
|
|
</node>
|
|
<node CREATED="1480723989315" ID="ID_1314277524" MODIFIED="1512926191835" TEXT="zentral">
|
|
<node CREATED="1480724166868" ID="ID_1338884424" MODIFIED="1512926191835" TEXT="Strukturänderung">
|
|
<node CREATED="1480724385214" ID="ID_1913904871" MODIFIED="1480724400259" TEXT="DiffMutable bieten">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480724171371" ID="ID_410013238" MODIFIED="1512926191835" TEXT="Strukturänderung vorbereiten">
|
|
<node CREATED="1480724215437" ID="ID_1953691654" MODIFIED="1480724219873" TEXT="Kontextmenü"/>
|
|
<node CREATED="1480724317120" ID="ID_1898649980" MODIFIED="1480724328098" TEXT="Fokus + Befehl / Taste"/>
|
|
<node CREATED="1480724346548" ID="ID_200646693" MODIFIED="1480724360777" TEXT="markieren + Kommando schicken">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480724417722" HGAP="55" ID="ID_940232384" MODIFIED="1512926191836" TEXT="drei Möglichkeiten" VSHIFT="5">
|
|
<node CREATED="1480724450958" ID="ID_493402962" MODIFIED="1512926191837" TEXT="Widget is Tangible">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1480724706739" ID="ID_1043502336" MODIFIED="1480724721717" TEXT="kann dann direkt Notifications implementieren"/>
|
|
<node CREATED="1480724724585" ID="ID_576219568" MODIFIED="1480724737691" TEXT="muß für alle Strukturänderungen delegieren"/>
|
|
<node CREATED="1480724738583" ID="ID_403933116" MODIFIED="1512926191837" TEXT="Achtung: Tangible is noncopyable">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1480724761876" ID="ID_335451126" MODIFIED="1487275489862" 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="1480724795442" TEXT="folglich: nicht in STL-Container">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480724461860" ID="ID_865875607" MODIFIED="1512926191838" TEXT="Controller is Tangible">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1480724851312" ID="ID_1653680733" MODIFIED="1487275489874" TEXT="erzeugt Rückbezug für Notifications">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
..d.h. der Controller muß wieder auf das Widget zugreifen
|
|
</p>
|
|
<p>
|
|
und sei es auch bloß über ein Interface!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480724910096" ID="ID_874781354" MODIFIED="1480724920595" TEXT="kann direkt das View-Modell manipulieren"/>
|
|
<node CREATED="1480724927814" ID="ID_1912287440" MODIFIED="1480724956251" TEXT="ist nicht direkt erreichbar">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1480724935397" ID="ID_1279073903" MODIFIED="1480725166588" TEXT="Modell-Vater muß 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" ID="ID_1683703083" MODIFIED="1512926191839" TEXT="expose DiffMutable">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1480724983774" ID="ID_845297603" MODIFIED="1480724994016" TEXT="heißt: Manipulation außerhalb des Diff-Systems"/>
|
|
<node CREATED="1480725000029" ID="ID_1586514211" MODIFIED="1480725010294" TEXT="wir steigen stets auf Ebene einer Timeline ein"/>
|
|
<node CREATED="1480725012731" ID="ID_9332776" MODIFIED="1487275489889">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>aber:</i> Binding im Diff-System durchaus möglich
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...denn:
|
|
</p>
|
|
<p>
|
|
das Diff-System verlangt nicht, daß Kinder in der Collection auch Tangible sind.
|
|
</p>
|
|
<p>
|
|
Es verlangt nur
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
daß wir wissen, wie wir Kinder machen
|
|
</li>
|
|
<li>
|
|
daß wir für ein gegebenes Kind ein DiffMutable beschaffen können
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1480725106478" ID="ID_550796340" MODIFIED="1480725166588" TEXT="effektiv auch die Lösung fü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="1479688617705" TEXT="Strukturänderung">
|
|
<node CREATED="1479688621637" ID="ID_71591229" MODIFIED="1479688631881" TEXT="notwendig: strukturelles Modell">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1479688633483" ID="ID_1301490505" MODIFIED="1479688646781" TEXT="Elemente in diesem halten einen display-context"/>
|
|
<node CREATED="1479688653913" ID="ID_1435784278" MODIFIED="1479688666394" TEXT="dieser wiederum muß für jede Erweiterung konsultiert werden"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487465759930" HGAP="19" ID="ID_923619509" MODIFIED="1487465825454" 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="1487465844043" TEXT="mehrere Ansichten für die gleiche Timeline"/>
|
|
<node CREATED="1487465882513" ID="ID_347013155" MODIFIED="1512926191839" TEXT="Gründe">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1487465847518" ID="ID_1430621359" MODIFIED="1487465854273" TEXT="bewußt verschiedene Ausschnitte"/>
|
|
<node CREATED="1487465854653" ID="ID_921534930" MODIFIED="1487465863752" TEXT="unbeabsichtigt in verschiedenen Fenstern"/>
|
|
<node CREATED="1487465866499" ID="ID_354960009" MODIFIED="1487465881613" TEXT="Fokussierte Ansicht einer nested sequence"/>
|
|
</node>
|
|
<node CREATED="1487465918884" ID="ID_1775013701" MODIFIED="1512926191840" TEXT="Lösungs-Ansätze">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1487465924572" ID="ID_542870958" MODIFIED="1512926191840" TEXT="auf Widget-Ebene doppeln">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1487465932554" ID="ID_450673459" MODIFIED="1487465947028" TEXT="greift in die direkte Diff-Mechanik ein"/>
|
|
<node CREATED="1487465947504" ID="ID_284663745" MODIFIED="1487465959139" TEXT="Timeline-Komponenten sind selber beliebig komplex"/>
|
|
<node CREATED="1487465960198" ID="ID_1257024935" MODIFIED="1487465974352" TEXT="Annahme war immer, daß Presenter nahe am Widget arbeitet"/>
|
|
</node>
|
|
<node CREATED="1487465985315" ID="ID_1891341453" MODIFIED="1512926191841" TEXT="Timeline-Controller-Slaves">
|
|
<node CREATED="1487465996906" ID="ID_1882876532" MODIFIED="1487465998917" TEXT="machbar"/>
|
|
<node CREATED="1487465999417" ID="ID_1034026426" MODIFIED="1487466005172" TEXT="typische Clustering-Probleme"/>
|
|
<node CREATED="1487466005952" ID="ID_465457871" MODIFIED="1487466016123" TEXT="Scheitern in-Memory unwahrscheinlich"/>
|
|
<node CREATED="1487466021990" ID="ID_212586057" MODIFIED="1487466033369" TEXT="Controller muß aktiv mitwirken"/>
|
|
</node>
|
|
<node CREATED="1487466040524" ID="ID_646231524" MODIFIED="1512926191841" TEXT="Timeline-Slave in der Session">
|
|
<node CREATED="1487466064520" ID="ID_1607482571" MODIFIED="1487466076466" TEXT="macht Doppelung explizit"/>
|
|
<node CREATED="1487466078743" ID="ID_1134944510" MODIFIED="1487466086321" TEXT="Problem mit den Element-IDs"/>
|
|
<node CREATED="1487466090917" ID="ID_1611961848" MODIFIED="1487466099832" TEXT="UI -> Session ist unproblematisch"/>
|
|
<node CREATED="1487466100372" ID="ID_1630288830" MODIFIED="1512926191842" TEXT="Session/Builder muß aufdoppeln">
|
|
<node CREATED="1487466111930" ID="ID_966355925" MODIFIED="1487466114781" TEXT="Diff-Nachrichten"/>
|
|
<node CREATED="1487466115154" ID="ID_260455064" MODIFIED="1487466120037" TEXT="Fehler-Markierungen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487466966478" ID="ID_479759046" MODIFIED="1512926191842" TEXT="#1083 solution for Timeline slave">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1487466997138" ID="ID_1028434909" MODIFIED="1487467003130" TEXT="auf später vertagt">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1487466986523" ID="ID_39632539" MODIFIED="1487466995787" TEXT="zunächst unterbinden">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1479774700668" HGAP="47" ID="ID_1407821684" MODIFIED="1480725485721" TEXT="Mutation" VSHIFT="13">
|
|
<node CREATED="1479774705839" ID="ID_301222108" MODIFIED="1479774729887" TEXT="Problem">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node COLOR="#d30f0f" CREATED="1479774731141" ID="ID_1523088286" MODIFIED="1479774739456" TEXT="Element != Widget"/>
|
|
<node COLOR="#640c0c" CREATED="1479774764575" ID="ID_1338013643" MODIFIED="1504386271043" 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="1504386292403" 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="1504386311014" VSHIFT="23">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
grundsä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="1480120398685" TEXT="Diff repräsentiert Änderungen indirekt"/>
|
|
<node CREATED="1480120487509" ID="ID_1693545323" MODIFIED="1480120500957">
|
|
<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="1480120390087" TEXT="Widget-Container hat keine Änderungs-Schnittstelle"/>
|
|
<node COLOR="#338800" CREATED="1480725417748" HGAP="28" ID="ID_1996114890" MODIFIED="1480725470323" 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="1480120518812" TEXT="Ansätze">
|
|
<node CREATED="1480120531935" ID="ID_1894474191" MODIFIED="1512926191843" TEXT="Dekorator auf TreeMutator">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1480121069464" ID="ID_1707876611" MODIFIED="1480121073803" TEXT="Operationen mitlesen"/>
|
|
<node CREATED="1480121074703" ID="ID_1346494338" MODIFIED="1480123649491" TEXT="Notifikations-Schnittstelle">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und der Dekorator würde die beobachteten Operationen
|
|
</p>
|
|
<p>
|
|
an diese Notifikations-Schnittstelle senden.
|
|
</p>
|
|
<p>
|
|
Implementiert würde sie vom jeweiligen Widget
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480123478013" ID="ID_1281325973" MODIFIED="1480123610437" TEXT="eine Ebene zu tief, aber geht noch">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
korrekt wä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üß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önnte man trotzdem (mit etwas Hängen und Würgen) noch hinkommen.
|
|
</p>
|
|
<p>
|
|
Der Dekorator würde also auf dem TreeMutator sitzen...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480121092492" ID="ID_1543810707" MODIFIED="1480123739970" TEXT="Löschungen nur heuristisch zu erkennen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Weil wir die "skip"-Operation für zwei Zwecke verwenden,
|
|
</p>
|
|
<p>
|
|
und man im Skip nicht weiß, ob man das Element überhaupt noch anfassen darf,
|
|
</p>
|
|
<p>
|
|
denn es könnte ja auch ein von "find" zurückgelassener Mü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="1480123856739" TEXT="unsauber, hässlich, unglücklich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<ul>
|
|
<li>
|
|
man sitzt mit dem Detektor unter dem API
|
|
</li>
|
|
<li>
|
|
dadurch entstehen "ungeschriebene Regeln", wie das API auzurufen ist
|
|
</li>
|
|
<li>
|
|
alternativ könnten wir die Operationen komplett 1:1 definieren, also eine explizite delete-Operation einführen
|
|
</li>
|
|
<li>
|
|
dafür würde dann die matchSrc wegfallen, was praktisch alle sinnvollen Unit-Tests stark beschränkt.
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480123380843" ID="ID_1717666432" MODIFIED="1480123757244" TEXT="wäre prinzipiell machbar">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480121177145" ID="ID_1964453367" MODIFIED="1504386113426" 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="1480123869816" TEXT="Hinzufügungen erzeugen neue Widgets">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1480121219579" ID="ID_1906821886" MODIFIED="1480123871892" TEXT="Löschungen entfernen das zugehörige Widget">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1480121271493" ID="ID_1169797519" MODIFIED="1512926191843" TEXT="Reihenfolge ist nebensächlich">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1480123311260" ID="ID_1288896772" MODIFIED="1480123320575" TEXT="Reihenfolge der Widgets == Z-Ordnung"/>
|
|
<node CREATED="1480123321707" ID="ID_1842225087" MODIFIED="1480123329269" TEXT="das ist ein reiner UI-Belang"/>
|
|
<node CREATED="1480123330521" ID="ID_255024472" MODIFIED="1480123352490" TEXT="Reihenfolge der Tracks wird im UI realisiert"/>
|
|
<node CREATED="1480123353030" ID="ID_871730723" MODIFIED="1480123366705" TEXT="Reihenfolge der Clips wird redundant (durch Position) gegeben"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480123881912" HGAP="6" ID="ID_1550301342" MODIFIED="1480123892997" TEXT="Schlußfolgerung" VSHIFT="3">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1480123900845" ID="ID_1099759004" MODIFIED="1480123908024" TEXT="wir mutieren ein Modell-Objekt"/>
|
|
<node CREATED="1480123908524" ID="ID_599072568" MODIFIED="1504386218055" TEXT="das Widget hängt an diesem als kompletter Slave">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480123920371" ID="ID_413127533" MODIFIED="1504386212858" TEXT="Registrierung / Deregistrierung muß vollautomatisch sein">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1480124094867" ID="ID_1956638484" MODIFIED="1512926191844">
|
|
<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="1480124152519" TEXT="für einen ganzen Scope"/>
|
|
<node CREATED="1480124153979" ID="ID_887707794" MODIFIED="1480124172604" TEXT="stellt fest, was gezeigt werden muß"/>
|
|
<node CREATED="1480124174144" ID="ID_1145067443" MODIFIED="1480124210543" TEXT="synthetisiert Anzeige-Parameter (z.B: Koordinaten, Z-Ordnung)"/>
|
|
<node CREATED="1480124235128" ID="ID_162610711" MODIFIED="1480124250602" TEXT="muß inkrementell arbeiten und bestehende Widgets anpassen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480300573857" HGAP="68" ID="ID_434577605" MODIFIED="1480606887745" TEXT="Anzeige-Steuerung" VSHIFT="39">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1480300584454" ID="ID_202830560" MODIFIED="1480300592344" TEXT="globaler Layout-Manager">
|
|
<node CREATED="1480300595820" ID="ID_1004344887" MODIFIED="1480300606631" TEXT="fungiert als Service"/>
|
|
<node CREATED="1480300614873" ID="ID_895306481" MODIFIED="1480300625444" TEXT="Ermitteln konkreter Koordinaten"/>
|
|
</node>
|
|
<node CREATED="1480300627712" ID="ID_1748490788" MODIFIED="1480300640058" TEXT="Display-Manager">
|
|
<node CREATED="1480300640790" ID="ID_1461181527" MODIFIED="1480300644825" TEXT="Abstraktion">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1480300645837" ID="ID_337010957" MODIFIED="1480300648544" TEXT="Interface"/>
|
|
<node CREATED="1480300649437" ID="ID_704277125" MODIFIED="1480300673402">
|
|
<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="1480300684700" TEXT="Presenter">
|
|
<node CREATED="1480300690191" ID="ID_1405428387" MODIFIED="1512926191844" TEXT="sind lokales Struktur-Modell">
|
|
<node CREATED="1480300733506" ID="ID_186466790" MODIFIED="1480300739877" TEXT="werden per Diff manipuliert"/>
|
|
<node CREATED="1480300740537" ID="ID_1322437138" MODIFIED="1487275489978" 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="1480300712392" TEXT="aktiver Part der View-Steuerung"/>
|
|
<node CREATED="1480300717747" ID="ID_1736166807" MODIFIED="1480300724214" TEXT="Master-Slave für die Widgets"/>
|
|
<node CREATED="1480300804840" ID="ID_1330942810" MODIFIED="1512926191844" TEXT="Verbindung zum Anzeigekontext">
|
|
<node CREATED="1480300822302" ID="ID_1819260908" MODIFIED="1480300833984" TEXT="zwei Kontexte für die Tracks"/>
|
|
<node CREATED="1480300836092" ID="ID_1069009472" MODIFIED="1480300847326" TEXT="Anzeigekontext = Konkretes Vater-Widget"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480606888860" HGAP="25" ID="ID_899101975" MODIFIED="1480606903105" TEXT="Implementierung" VSHIFT="14">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1480606950372" ID="ID_1502878943" MODIFIED="1480606953527" TEXT="Grundstruktur">
|
|
<node CREATED="1480639404070" ID="ID_506539007" MODIFIED="1512926191845" TEXT="HeaderPane">
|
|
<node CREATED="1480639435010" ID="ID_892799964" MODIFIED="1480639437997" TEXT="Navigator"/>
|
|
<node CREATED="1480639438921" ID="ID_1668884794" MODIFIED="1512926191845" TEXT="Baum">
|
|
<node CREATED="1480639447736" ID="ID_1842963526" MODIFIED="1480639450508" TEXT="Expander"/>
|
|
<node CREATED="1480639450960" ID="ID_1468387103" MODIFIED="1480639454795" TEXT="Patchbay"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480639411109" ID="ID_520199505" MODIFIED="1512926191845" TEXT="ScrolledPane">
|
|
<node CREATED="1480639423116" ID="ID_1226894709" MODIFIED="1480639428735" TEXT="Ruler"/>
|
|
<node CREATED="1480639429307" ID="ID_1922498247" MODIFIED="1480639431270" TEXT="Canvas"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480606954115" ID="ID_1178000371" MODIFIED="1480807618481" TEXT="Struktur-Modell">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1480725215087" ID="ID_212845679" MODIFIED="1512926191846" TEXT="erzeugen">
|
|
<node CREATED="1480725218783" ID="ID_192239117" MODIFIED="1480725230986" TEXT="Controller ist Tangible">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1480725247115" ID="ID_1533101483" MODIFIED="1512926191846" TEXT="Konstruktion erfordert...">
|
|
<node CREATED="1480796814716" ID="ID_1742743432" MODIFIED="1487275490012" 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ügt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480725273775" ID="ID_1495656573" MODIFIED="1480725279987" TEXT="Bus-Term-Referenz"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480725377994" ID="ID_172881069" MODIFIED="1512926191847" TEXT="verwalten">
|
|
<node CREATED="1480741524775" ID="ID_661893589" MODIFIED="1480807588342" TEXT="Bindings einrichten">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1480800574418" ID="ID_791426893" MODIFIED="1512926191847" TEXT="Marker">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1480800603331" ID="ID_1846937607" MODIFIED="1480800603331" TEXT="treten in diversen Scopes auf"/>
|
|
<node CREATED="1480800643953" ID="ID_409762087" MODIFIED="1480800654307" TEXT="sogar global, auf dem TimeRuler">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1480800605150" ID="ID_1156238228" MODIFIED="1480800608682" TEXT="sind stets optional"/>
|
|
<node CREATED="1480807594822" ID="ID_333819085" MODIFIED="1480807600418" TEXT="führe mal einen Marker-Typ ein"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480694550601" ID="ID_391329400" MODIFIED="1480694554372" TEXT="TimelineController">
|
|
<node CREATED="1480694557112" ID="ID_786517324" MODIFIED="1480694570434" TEXT="Widget ist Startpunkt"/>
|
|
<node CREATED="1480694571310" ID="ID_1188786444" MODIFIED="1480694576714" TEXT="aber Controller wird Chef"/>
|
|
<node CREATED="1480725633399" ID="ID_1475661668" MODIFIED="1512926191848" TEXT="muß 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="1480725692188" TEXT="Delegate for Notification">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1480725704142" ID="ID_992732373" MODIFIED="1512926191848" TEXT="was bleibt abstrakt">
|
|
<node CREATED="1480725715916" ID="ID_890987188" MODIFIED="1487275490068" TEXT="buildMutator">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
latürnich
|
|
</p>
|
|
<p>
|
|
...den <i>muß</i> jeder individuell implementieren,
|
|
</p>
|
|
<p>
|
|
um die Bindung herzustellen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480741498930" ID="ID_1605140473" MODIFIED="1480741509309" TEXT="hat nur einen einziten RootTrack">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1480742405505" ID="ID_1590367176" MODIFIED="1512926191849" TEXT="ACHTUNG: leere Sequenz?">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>theoretisch</i> könnte man eine Timeline ohne Sequenz
|
|
</p>
|
|
<p>
|
|
oder eine Sequenz ohne root-Fork zulassen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1480776052551" ID="ID_431920594" MODIFIED="1512926191849" TEXT="warum">
|
|
<node CREATED="1480742420383" ID="ID_19092812" MODIFIED="1480742430313" TEXT="kann ihn nicht gleich im ctor erzeugen"/>
|
|
<node CREATED="1480742432749" ID="ID_1840237751" MODIFIED="1480742437344" TEXT="denn wir brauchen die ID"/>
|
|
<node CREATED="1480742437892" ID="ID_1335490062" MODIFIED="1480742444383" TEXT="und die kann nur über den Bus kommen"/>
|
|
<node CREATED="1480742445563" ID="ID_1224591813" MODIFIED="1480742457934" TEXT="also müssen wir warten, bis das Attribut zugewiesen wird"/>
|
|
</node>
|
|
<node CREATED="1480776067549" ID="ID_1500222365" MODIFIED="1512926191850" TEXT="Alternativen">
|
|
<node CREATED="1480776081388" ID="ID_783764544" MODIFIED="1512926191850" TEXT="via ctor">
|
|
<node CREATED="1480776096665" ID="ID_1492275941" MODIFIED="1480776289639" TEXT="das heißt....">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Thema "Darstellung von Objekt-Feldern im Diff"
|
|
</p>
|
|
<p>
|
|
<i>da hab ich mir ausgiebig Gedanken darü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üllt sein soll, muß man das über den Konstruktor erzwingen<br />in diesem Fall müssen alle Daten bereits mit dem vorangehenden INS kommen,<br />welches den Konstruktor-Aufruf auslöst<br /><br />
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1480776313813" ID="ID_1507386991" MODIFIED="1480776333149" TEXT="Vorteil: einfache Verhältnisse in der Widget-Impl"/>
|
|
<node CREATED="1480776341393" ID="ID_1985821448" MODIFIED="1480776352107" TEXT="Nachteil: muß Diff genau so schicken"/>
|
|
<node CREATED="1480777922397" ID="ID_514769772" MODIFIED="1512926191851" TEXT="...sonst">
|
|
<icon BUILTIN="smily_bad"/>
|
|
<node CREATED="1480777941187" ID="ID_1804935890" MODIFIED="1480777949933" TEXT="irgendjemand triggert Laden"/>
|
|
<node CREATED="1480777950449" ID="ID_487608965" MODIFIED="1480777963507" TEXT="Core schickt Populations-diff"/>
|
|
<node CREATED="1480777972862" ID="ID_1185499319" MODIFIED="1480777978601" TEXT="Exception beim Aufspielen"/>
|
|
<node CREATED="1480777979069" ID="ID_1379570617" MODIFIED="1480777982889" TEXT="kann nur geloggt werden"/>
|
|
<node CREATED="1480777983381" ID="ID_1125654729" MODIFIED="1480778000894" TEXT="Folglich fehlt im UI die betreffende Timeline"/>
|
|
<node CREATED="1480778002098" ID="ID_535894255" MODIFIED="1480778010557" TEXT="spätere Updates scheitern gleichermaßen"/>
|
|
<node CREATED="1480778011745" ID="ID_1623403394" MODIFIED="1480778017194" TEXT="dysfunktionales UI">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480776087027" ID="ID_132590373" MODIFIED="1512926191852" TEXT="leer zulassen">
|
|
<node CREATED="1480778115091" ID="ID_1948130012" MODIFIED="1480778317340" TEXT="das heiß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ß so geschrieben werden, daß es mit den Leerwerten umgehen kann,
|
|
</p>
|
|
<p>
|
|
was typischerweise heitß, daß es verschiedene Betriebsmodi bekommt.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Das Diff kann dann später die konkreten Werte für die Attribute nachliefern;
|
|
</p>
|
|
<p>
|
|
typischerweise wird es das in einem Populationsdiff sofort als Nächstes machen.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1480778348652" ID="ID_1249761108" MODIFIED="1480778386899" TEXT="Vorteil: Diff-Erzeugung und Aufspielen läuft nach Schema-F"/>
|
|
<node CREATED="1480778407052" ID="ID_181642617" MODIFIED="1512926191853">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
zwei mögliche
|
|
</p>
|
|
<p>
|
|
Konsequenzen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1480778420418" ID="ID_1430286640" MODIFIED="1512926191855" TEXT="Problem ignorieren">
|
|
<node CREATED="1480778490545" ID="ID_1228109442" MODIFIED="1480778498347" TEXT="darauf hoffen, daß das Diff immer sauber kommt"/>
|
|
<node CREATED="1480778499928" ID="ID_1466170472" MODIFIED="1480778510146" TEXT="Felder im Ctor einfach uninitialisiert lassen"/>
|
|
<node CREATED="1480778511086" ID="ID_1612105579" MODIFIED="1480778515905" TEXT="keine Checks im Code"/>
|
|
<node CREATED="1480778532907" ID="ID_1167492250" MODIFIED="1480778587358">
|
|
<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>"was kann denn schon passieren??"</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480778451502" ID="ID_1135553012" MODIFIED="1512926191856" TEXT="echt optionale Felder">
|
|
<node CREATED="1480778622039" ID="ID_1007915114" MODIFIED="1480778650859">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Betriebsart <i>"partiell initialisiert"</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480778652819" ID="ID_1335924975" MODIFIED="1480778665661" TEXT="Checks und Verzweigungen im Code"/>
|
|
<node CREATED="1480778689191" ID="ID_45333997" MODIFIED="1480778753615" 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önnen muß
|
|
</li>
|
|
<li>
|
|
später sich dynamisch erweitern können muß
|
|
</li>
|
|
<li>
|
|
in der Behandlung der UI-Signale ebenfalls checks einbauen muß
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480778768988" ID="ID_1385067618" MODIFIED="1480778827398" TEXT="und das alles nur für....">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
einen Fall, der <i>praktisch nie</i> auftritt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480780047561" HGAP="88" ID="ID_1993420764" MODIFIED="1512926191857" TEXT="Entscheidung" VSHIFT="16">
|
|
<node CREATED="1480780057079" ID="ID_481017202" MODIFIED="1512926191858" TEXT="Analyse">
|
|
<node CREATED="1480780061327" ID="ID_628488180" MODIFIED="1512926191858" TEXT="zwei Fälle sind sehr ähnlich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
und zwar interessanterweise über Kreuz gegliedert
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
die Ctor-Lösung (hat aber etwas mehr Umsetzungsaufwand)
|
|
</li>
|
|
<li>
|
|
die "wird schon klappen"-Lösung
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1480780163369" ID="ID_851065784" MODIFIED="1480780174083" TEXT="wenig Zusatzaufwand"/>
|
|
<node CREATED="1480780174552" ID="ID_640476327" MODIFIED="1480780182891" TEXT="funktioniert fast immer"/>
|
|
<node CREATED="1480780183319" ID="ID_431465582" MODIFIED="1480780192913" TEXT="üble Konsequenzen wenn nicht"/>
|
|
</node>
|
|
<node CREATED="1480780140741" ID="ID_1754958261" MODIFIED="1512926191858" TEXT="und ein dritter ist wirklich wasserdicht">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wenn alle Objekte <i>wirklich</i> auf partiell initialisierten Zustand vorbereitet sind,
|
|
</p>
|
|
<p>
|
|
und auch über ihre APIs dem Nutzer diese Unterscheidnung mit aufzwingen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1480780253397" ID="ID_1966427410" MODIFIED="1480780259944" TEXT="zum Preis von deutlich Mehraufwand"/>
|
|
<node CREATED="1480780260508" ID="ID_1565963038" MODIFIED="1480780464068" TEXT="plus einer korrodierenden Wirkung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...welche darin besteht,
|
|
</p>
|
|
<p>
|
|
daß man überall, in der Fläche, sich um Zustandsabhöngigkeit kümmern muß,
|
|
</p>
|
|
<p>
|
|
und deshalb dazu neigt, das Problem jeweils wegzutricksen.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Es besteht also die große Gefahr, zu "sündigen" und
|
|
</p>
|
|
<p>
|
|
heimlich in den "wird schon nix passieren" Fall zu geraten.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480780269867" ID="ID_1571900658" MODIFIED="1480780281357" TEXT="dafür kann nie was passieren"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480780494717" ID="ID_432076484" MODIFIED="1512926191859" TEXT="Bewertung">
|
|
<node CREATED="1480780498437" ID="ID_1806301944" MODIFIED="1480780667751" TEXT="nur die Ctor-Lösung ist geradlinig">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt, nur diese Lösung grü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="1480780593840" TEXT="nur die "paßt schon"-Lösung ist vernünftig">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nach allen gängigen Prinzipien der instrumentellen Vernunft.
|
|
</p>
|
|
<p>
|
|
KISS
|
|
</p>
|
|
<p>
|
|
YAGNI
|
|
</p>
|
|
<p>
|
|
"fokussiere Dich"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480780704849" ID="ID_483861197" MODIFIED="1512926191861" TEXT="Abwägung">
|
|
<node CREATED="1480780715911" ID="ID_1289637688" MODIFIED="1480780729633" TEXT="in der Berufspraxis muß man ständig ein Auge zudrücken"/>
|
|
<node CREATED="1480780731213" ID="ID_773522234" MODIFIED="1480780809290">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
hier hab ich <b>endlich mal</b> die Gelegenheit, sauber zu arbeiten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1480780746851" ID="ID_1128552915" MODIFIED="1480780759173" TEXT="und etwas zu schaffen, für das ich mich nicht entschuldigen muß"/>
|
|
<node CREATED="1480780768272" ID="ID_1174359339" MODIFIED="1480780788674" TEXT="leider führt genau diese Haltung dazu, daß mir die Helfer davonlaufen"/>
|
|
<node CREATED="1480780835319" ID="ID_1263364267" MODIFIED="1480781084576">
|
|
<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> ich mich überhaupt entscheiden konnte...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1480780930115" HGAP="5" ID="ID_1156407347" MODIFIED="1480781078592" TEXT="Lösung: per Konstruktor festlegen" VSHIFT="6">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nochmal zusammengefaßt
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
immer wenn ein Feld <i>seinem Wesen nach</i> zwingend gesetzt sein muß (und aus keinem anderen Grund)
|
|
</li>
|
|
<li>
|
|
dann wird dies per Konstruktor so erzwungen
|
|
</li>
|
|
<li>
|
|
daher muß dann im Diff bereits im INS-Verb die notwendige Information transportiert werden
|
|
</li>
|
|
<li>
|
|
das heißt, bei der Diff-Erzeugung muß man aufpassen und an dieser Stelle bereits einen Record mit den Daten liefern
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480606985087" ID="ID_885244508" MODIFIED="1480639465600" TEXT="Layout-Manager">
|
|
<node CREATED="1480639469981" ID="ID_983391388" MODIFIED="1480639472833" TEXT="Abstraktionen"/>
|
|
<node CREATED="1480639473324" ID="ID_191170582" MODIFIED="1480639510996" TEXT="eval pass"/>
|
|
</node>
|
|
<node CREATED="1480606973713" ID="ID_163713350" MODIFIED="1480606978899" TEXT="Track-Presenter">
|
|
<node CREATED="1480741594101" ID="ID_1017414696" MODIFIED="1480741611300" TEXT="mit doppeltem Display-Kontext verbinden"/>
|
|
<node CREATED="1480741545196" ID="ID_1657879480" MODIFIED="1512926191862" TEXT="TrackWidget">
|
|
<node CREATED="1480741552611" ID="ID_1987203186" MODIFIED="1480741554982" TEXT="erzeugen"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480741555930" ID="ID_1869427213" MODIFIED="1480741587463">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wie in Kopf <i>und</i> Rumpf injizieren
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480607029673" ID="ID_619470641" MODIFIED="1480607052500" TEXT="Track-Anzeige">
|
|
<node CREATED="1480607033512" ID="ID_1815699851" MODIFIED="1480607035268" TEXT="Kopf"/>
|
|
<node CREATED="1480607035712" ID="ID_1405339006" MODIFIED="1480607037355" TEXT="Rumpf"/>
|
|
</node>
|
|
<node CREATED="1480621574221" ID="ID_1217785331" MODIFIED="1480621619049" TEXT="ClipPresenter">
|
|
<node CREATED="1480741362389" ID="ID_328415412" MODIFIED="1512926191862" TEXT="ClipWidget">
|
|
<node CREATED="1480741370347" ID="ID_1275685315" MODIFIED="1480741373623" TEXT="erzeugen"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1480741374451" ID="ID_1270677756" MODIFIED="1480741382099" TEXT="in Display injizieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480741386769" ID="ID_1808095573" MODIFIED="1512926191863" TEXT="Kinder">
|
|
<node CREATED="1480741389777" ID="ID_1548768233" MODIFIED="1480741396471" TEXT="welche kommen in Frage">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1480741397880" ID="ID_299590632" MODIFIED="1480807650331" TEXT="Effekte werden als ClipPresenter implementiert">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1480741425668" ID="ID_826648354" MODIFIED="1487275490115" 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="1480741471654" TEXT="das werden zwei Collections">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480607059909" ID="ID_703281238" MODIFIED="1480607061944" TEXT="Control"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1479434763643" HGAP="48" ID="ID_1572413636" MODIFIED="1504459725752" TEXT="Clip" VSHIFT="32">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1479434774138" ID="ID_912862507" MODIFIED="1479601717907" TEXT="Grundlagen">
|
|
<node CREATED="1479434780105" ID="ID_239720378" MODIFIED="1511572074946" 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="1512926191863" TEXT="abridged form">
|
|
<node CREATED="1479434845992" ID="ID_609815513" MODIFIED="1479434860330" TEXT="media bin, collapsed fork"/>
|
|
<node CREATED="1479441548335" ID="ID_150470698" MODIFIED="1479441564712" TEXT="icon + ID label"/>
|
|
<node CREATED="1479601640961" ID="ID_191706335" MODIFIED="1479601645229" TEXT="Gtk::Frame"/>
|
|
</node>
|
|
<node CREATED="1479441503085" ID="ID_386209482" MODIFIED="1512926191863" TEXT="compact form">
|
|
<node CREATED="1479441530689" ID="ID_1057853337" MODIFIED="1479441539364" TEXT="timeline default"/>
|
|
<node CREATED="1479441567268" ID="ID_1413366977" MODIFIED="1479441582078" TEXT="rendered content strip + decorations"/>
|
|
<node CREATED="1479601649615" ID="ID_417588278" MODIFIED="1479601662578" TEXT="Gtk::Frame + Gtk::Layout"/>
|
|
</node>
|
|
<node CREATED="1479441519834" ID="ID_1669486876" MODIFIED="1512926191864" TEXT="expanded form">
|
|
<node CREATED="1479441586057" ID="ID_64386373" MODIFIED="1479441597593" TEXT="window with embedded sub-clips"/>
|
|
<node CREATED="1479601667734" ID="ID_1877644742" MODIFIED="1479601683095" TEXT="dto, with recursive embedded sub-clips"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1479442296443" ID="ID_911884433" MODIFIED="1479442304498" TEXT="graceful display degradation">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1479442310537" ID="ID_1849995398" MODIFIED="1479442342361" TEXT="Fall1: wenigstens 1 pixel"/>
|
|
<node CREATED="1479442322359" ID="ID_492785140" MODIFIED="1479442337761" TEXT="Fall2: in diesem Pixel ist content"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1480797025150" ID="ID_852148145" MODIFIED="1480797028377" TEXT="verwendet für">
|
|
<node CREATED="1480797029581" ID="ID_1257172627" MODIFIED="1480797032121" TEXT="Clips">
|
|
<node CREATED="1480797161164" ID="ID_1187665675" MODIFIED="1480797165743" TEXT="abridged"/>
|
|
<node CREATED="1480797166355" ID="ID_1788361951" MODIFIED="1480797169462" TEXT="compact"/>
|
|
<node CREATED="1480797170331" ID="ID_174323572" MODIFIED="1480797173534" TEXT="expanded"/>
|
|
</node>
|
|
<node CREATED="1480797032709" ID="ID_597046922" MODIFIED="1480797036144" TEXT="Spuren im Clip"/>
|
|
<node CREATED="1480797036804" ID="ID_418077851" MODIFIED="1480797038416" TEXT="Effekte">
|
|
<node CREATED="1480797067392" ID="ID_1213128633" MODIFIED="1480797184388" TEXT="compact"/>
|
|
<node CREATED="1480797155052" ID="ID_640502487" MODIFIED="1480797188132" TEXT="abridged"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1479601690675" ID="ID_542607961" MODIFIED="1479601720226" TEXT="Struktur">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1479601699057" ID="ID_1130364446" MODIFIED="1479601707854" TEXT="Konflikt mit der UI-Bus-Architektur">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1479601736116" ID="ID_891600328" MODIFIED="1479601748486" TEXT="Bus == Rolle des Controler/Model"/>
|
|
<node CREATED="1479601749946" ID="ID_887287956" MODIFIED="1479601757981" TEXT="Widget == View-Rolle"/>
|
|
</node>
|
|
<node CREATED="1479601765896" ID="ID_1632476975" MODIFIED="1479601784408">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
UI-Bus gilt nur für <b>globale Belange</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1479601788237" ID="ID_1871715779" MODIFIED="1479601795259" TEXT="wichtige neue Unterscheidung">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1479601796075" ID="ID_1177606400" MODIFIED="1479601807006" TEXT="Global == in der Session aufgezeichnet"/>
|
|
<node CREATED="1479601807666" ID="ID_1374495669" MODIFIED="1479601812781" TEXT="vs. lokale UI-Mechanik"/>
|
|
<node CREATED="1479601828799" ID="ID_1797519191" MODIFIED="1479601837377" TEXT="Ziel: Subsidiarität für lokale Belange"/>
|
|
</node>
|
|
<node CREATED="1479601884288" HGAP="34" ID="ID_1371609613" MODIFIED="1479602442561" TEXT="Lösungs-Idee" VSHIFT="18">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1479601889567" ID="ID_1123973572" MODIFIED="1479601899475">
|
|
<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="1479601914101" TEXT="es ist ein Design-Pattern">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1479601925938" ID="ID_22286545" MODIFIED="1479601944896">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das lokale Element muß nur als View <i>fungieren</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1479601945839" ID="ID_254470029" MODIFIED="1479601954903" TEXT="Model-View-Presenter">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
<node CREATED="1479602306718" ID="ID_359464754" MODIFIED="1512926191864" TEXT="ClipPresenter">
|
|
<node CREATED="1479602311740" ID="ID_963961994" MODIFIED="1479602314256" TEXT="Mittelsmann"/>
|
|
<node CREATED="1479602314676" ID="ID_944757170" MODIFIED="1479602318896" TEXT="steht für den Clip"/>
|
|
<node CREATED="1479602319555" ID="ID_1557047586" MODIFIED="1479602327854" TEXT="steuert ein ClipWidget"/>
|
|
<node CREATED="1479602338609" ID="ID_444253818" MODIFIED="1512926191865" TEXT="ClipWidget">
|
|
<node CREATED="1479602341777" ID="ID_1610807382" MODIFIED="1479602381582" TEXT="empfängt DisplayStrategy"/>
|
|
<node CREATED="1479602382195" ID="ID_1504834509" MODIFIED="1512926191866">
|
|
<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="1479602415154" TEXT="Frame"/>
|
|
<node CREATED="1479602415654" ID="ID_1358720" MODIFIED="1479602418642" TEXT="Frame + Layout"/>
|
|
<node CREATED="1479602419134" ID="ID_1788706818" MODIFIED="1479602425033" TEXT="sub-Clips im Layout"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1476376943985" HGAP="52" ID="ID_1422206856" MODIFIED="1504459727720" TEXT="Viewer" VSHIFT="10">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1480639186172" HGAP="45" ID="ID_838667304" MODIFIED="1504459728903" TEXT="Mixer" VSHIFT="28">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1476376927660" HGAP="35" ID="ID_688318446" MODIFIED="1479434903774" TEXT="Docks" VSHIFT="12">
|
|
<node CREATED="1504200504235" ID="ID_125942292" MODIFIED="1504200942450" TEXT="PanelManager muß 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="1507935709930" 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="1504368498818" TEXT="PanelManager selber verbleibt im top-level window">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1504368500421" ID="ID_184425569" MODIFIED="1504368925887" TEXT="es gibt einen PanelLocator im WindowLocator">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1504368540111" ID="ID_1747666798" MODIFIED="1506957054528" 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="1504200533688" TEXT="Müllhaufen">
|
|
<icon BUILTIN="clanbomber"/>
|
|
</node>
|
|
<node CREATED="1504200743610" ID="ID_1973994759" MODIFIED="1504200749701" TEXT="vorläufig....">
|
|
<node CREATED="1504200750905" ID="ID_1728645080" MODIFIED="1504200758236" TEXT="gibt es noch eine ZombieTimeline"/>
|
|
<node CREATED="1504200758920" ID="ID_19179662" MODIFIED="1506957535426" 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;"/>
|
|
<node CREATED="1504200878312" ID="ID_1934842950" MODIFIED="1511572075141" TEXT="...für #1099 DemoGuiRoundtrip">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...um mal was im UI anzeigen zu können
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1504200907356" ID="ID_1939871955" MODIFIED="1504201013274" TEXT="neues Dock">
|
|
<node CREATED="1504201024836" ID="ID_541911572" MODIFIED="1504201028272" TEXT="brauche Icon"/>
|
|
<node CREATED="1504201506172" ID="ID_739793394" MODIFIED="1504201515984" 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="1504201035659" TEXT="als SVG machen...">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1504201040142" TEXT="Anleitung">
|
|
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1504201053741" TEXT="SVG in data/icons/svg"/>
|
|
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1511572075172" TEXT="Dokument-Grö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ößen ergeben sich aus den Boxes auf 'plate'
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1504201072930" TEXT="braucht 'artwork:'-Layer"/>
|
|
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1504201083665" TEXT="braucht Sub-Layer 'plate'">
|
|
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1504201089023" TEXT="dort bounding-boxes"/>
|
|
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1504201100534" TEXT="deren Größe in PX ist die Icon-Größe"/>
|
|
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1504201139201" TEXT="brauche 16, 22, 32"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504200915915" ID="ID_335470074" MODIFIED="1504200935868" TEXT="später wird das ein nichtmodaler Parameter-Editor"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504833434094" ID="ID_349655067" MODIFIED="1504833963357">
|
|
<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>
|
|
<node CREATED="1477342616175" HGAP="37" ID="ID_954058801" MODIFIED="1477342623660" TEXT="Workspace" VSHIFT="33">
|
|
<node CREATED="1477342624942" ID="ID_56920104" MODIFIED="1477342628449" TEXT="ist-Zustand">
|
|
<node CREATED="1477342634181" ID="ID_930340610" MODIFIED="1477342640272" TEXT="ein globaler WindowManager">
|
|
<node CREATED="1477342640932" ID="ID_950379507" MODIFIED="1477342666356" TEXT="hat Liste von WorkspaceWindow-s"/>
|
|
<node CREATED="1477342694237" ID="ID_1913986184" MODIFIED="1477342711039" TEXT="diese deregistrieren sich beim Schließen"/>
|
|
<node CREATED="1477342711442" ID="ID_500847959" MODIFIED="1477342721373" TEXT="wenn letztes Fenster zu, dann Main->quit"/>
|
|
<node CREATED="1477342816853" ID="ID_205499879" MODIFIED="1511572075232" TEXT="steuert Zusand von Menu>Window>CloseWindow">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nur <i>enabled</i> wenn
|
|
</p>
|
|
<p>
|
|
mehr als ein top-level Fenster offen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477342868574" ID="ID_679226593" MODIFIED="1477342875681" TEXT="WorkspaceWindow">
|
|
<node CREATED="1477342962345" ID="ID_1801410798" MODIFIED="1512926191866" TEXT="verbunden mit">
|
|
<node CREATED="1477342985710" ID="ID_1944710826" MODIFIED="1477342988103" TEXT="Project"/>
|
|
<node CREATED="1477342971448" ID="ID_1574175266" MODIFIED="1477342982842" TEXT="Controller"/>
|
|
</node>
|
|
<node CREATED="1477343022529" ID="ID_1585028268" MODIFIED="1512926191867" TEXT="owns">
|
|
<node CREATED="1477343030104" ID="ID_350881879" MODIFIED="1487275490286" 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="1512926191868" TEXT="PanelManager">
|
|
<node CREATED="1477343244428" ID="ID_513688853" MODIFIED="1477343252255" TEXT="managed die Docks"/>
|
|
<node CREATED="1477345531413" ID="ID_1082348568" MODIFIED="1477345540367" TEXT="Liste möglicher Panel-Typen"/>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1477345852274" HGAP="30" ID="ID_1401392249" MODIFIED="1512926191869" TEXT="Kritik" VSHIFT="15">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1477345882862" ID="ID_1342647727" MODIFIED="1477345901848" TEXT="arbeitet zu viel mit Pointern ohe RAII"/>
|
|
<node CREATED="1477345906723" ID="ID_906895860" MODIFIED="1477345934939" TEXT=""poor man's reflection""/>
|
|
<node CREATED="1477345939063" ID="ID_984848221" MODIFIED="1487275490304">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
realisiert Vererbung <i>zu fuß</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 "CreatePanelProc" in einen PanelDescriptor eingewickelt.
|
|
</p>
|
|
<p>
|
|
Letzten Endes wird dieser dann per Match auf die Typ-ID ausgewählt.
|
|
</p>
|
|
<p>
|
|
AUA!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477347390430" HGAP="46" ID="ID_138529757" MODIFIED="1512926191869" TEXT="Panel" VSHIFT="31">
|
|
<node CREATED="1477347401045" ID="ID_919458304" MODIFIED="1512926191870" TEXT="Timeline">
|
|
<node CREATED="1477347410884" ID="ID_507837490" MODIFIED="1477347414199" TEXT="im Umbau"/>
|
|
</node>
|
|
<node CREATED="1477347405332" ID="ID_1735199230" MODIFIED="1477347406904" TEXT="Asset"/>
|
|
<node CREATED="1477347407324" ID="ID_1325322495" MODIFIED="1512926191870" TEXT="Viewer">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477347416659" ID="ID_1220196828" MODIFIED="1477347423723" TEXT="kaputt">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1477347424858" ID="ID_439722309" MODIFIED="1477347445263" TEXT="wird nicht mehr erzeugt">
|
|
<icon BUILTIN="clanbomber"/>
|
|
</node>
|
|
<node CREATED="1477347448199" ID="ID_432416001" MODIFIED="1477347459131" TEXT="Grund: kein Displayer">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1477616970387" HGAP="56" ID="ID_786267715" MODIFIED="1512926191870" TEXT="Problem: Panel clean-up" VSHIFT="40">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1477617009766" ID="ID_205353538" MODIFIED="1487275490327" 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 übergebenen Objekte aufräumt.
|
|
</p>
|
|
<p>
|
|
Wie sich nun zeigt, passiert das Aufräumen im dtor desjenigen Widget, dem das zu managende Objekt als Kind gegeben wurde.
|
|
</p>
|
|
<p>
|
|
Im vorliegenden Fall wäre das der dtor des umschließ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="1487275490333" TEXT="PanelManager::createPanels()">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
....erzeugt wird das hier:
|
|
</p>
|
|
<p>
|
|
dock_.add_item(timelinePanel->getDockItem(),Gdl::DOCK_BOTTOM);
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477343061900" ID="ID_589166101" MODIFIED="1477343063991" TEXT="Statusbar"/>
|
|
<node CREATED="1477343071827" ID="ID_369966079" MODIFIED="1487275490342" TEXT="Actions">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Helper to build the menu and for registering and handling of user action events
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477344354329" ID="ID_1683945104" MODIFIED="1512926191871" TEXT="createUi()">
|
|
<node CREATED="1477344605448" ID="ID_960836253" MODIFIED="1477344608195" TEXT="panelManager_.setupDock();"/>
|
|
<node CREATED="1477344610087" ID="ID_844257690" MODIFIED="1512926191871" TEXT="baut auf">
|
|
<node CREATED="1477344616486" ID="ID_466606949" MODIFIED="1477344619001" TEXT="Menübar"/>
|
|
<node CREATED="1477344619541" ID="ID_1111690482" MODIFIED="1477344658636" TEXT="dockContainer"/>
|
|
<node CREATED="1477344659440" ID="ID_1310811438" MODIFIED="1477344662236" TEXT="statusBar"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477343115357" ID="ID_213954404" MODIFIED="1477343118368" TEXT="Kritik">
|
|
<node CREATED="1477343120660" ID="ID_1940152250" MODIFIED="1511572075259" TEXT="Multiplizität unklar">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
es sieht so aus, als wäre es "das" WorkspaceWindow
|
|
</p>
|
|
<p>
|
|
aber es kann davon mehrere geben
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1477343152288" ID="ID_1267678981" MODIFIED="1477343164378" TEXT="Vermengung von Fenster und Workspace"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477522265208" HGAP="53" ID="ID_41510242" MODIFIED="1477522301608" TEXT="Neuerungen" VSHIFT="28">
|
|
<node CREATED="1477522271822" ID="ID_622217667" MODIFIED="1477522304296" TEXT="PanelExperiment">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1477522330886" ID="ID_1920846276" MODIFIED="1477522338065" TEXT="ScrolledWindow"/>
|
|
<node CREATED="1477522340573" ID="ID_168076322" MODIFIED="1512926191871" TEXT="Grid">
|
|
<node CREATED="1477523590806" ID="ID_908611386" MODIFIED="1477523592705" TEXT="attach()"/>
|
|
<node CREATED="1477523593462" ID="ID_1461366621" MODIFIED="1477523597777" TEXT="attach_next_to()"/>
|
|
<node CREATED="1477523578208" ID="ID_738525852" MODIFIED="1477523599621" TEXT="add()"/>
|
|
</node>
|
|
<node CREATED="1477523550484" ID="ID_1492266905" MODIFIED="1512926191872" TEXT="Box">
|
|
<node CREATED="1477523556667" ID="ID_852178687" MODIFIED="1477523561430" TEXT="horizontal / vertikal"/>
|
|
<node CREATED="1477523561930" ID="ID_868197404" MODIFIED="1477523572380" TEXT="pack_start() "/>
|
|
<node CREATED="1477523573184" ID="ID_1063091132" MODIFIED="1477523576100" TEXT="pack_end()"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487464476801" ID="ID_1621360845" MODIFIED="1487464479476" TEXT="Umbau">
|
|
<node CREATED="1487464480872" ID="ID_830603607" MODIFIED="1487464488651" TEXT="bestehende Strukturen stillegen"/>
|
|
<node CREATED="1487464489143" ID="ID_1990719718" MODIFIED="1487464495018" TEXT="noch erhalten als Bezugspunkt"/>
|
|
<node CREATED="1487464495494" ID="ID_1238357229" MODIFIED="1487464504929" TEXT="daneben neue Controller-Backbone hochziehen"/>
|
|
<node CREATED="1487464505469" ID="ID_707273464" MODIFIED="1487464677579" TEXT="Umbau in neuen top-level">
|
|
<arrowlink COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" STARTARROW="None" STARTINCLINATION="1925;196;"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477522287316" ID="ID_1942021610" MODIFIED="1477522290919" TEXT="TimelinePanel"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502390603674" ID="ID_1926586811" MODIFIED="1502390862378" 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="hourglass"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504833474521" HGAP="39" ID="ID_1439141983" MODIFIED="1504833483837" TEXT="Struktur" VSHIFT="10">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1504833487359" ID="ID_1631525475" MODIFIED="1504833497745" TEXT="UI-Frame: Fenster"/>
|
|
<node CREATED="1504833498453" ID="ID_815439481" MODIFIED="1504833503809" TEXT="Perspektive"/>
|
|
<node CREATED="1504833508516" ID="ID_1973916831" MODIFIED="1504833535108" TEXT="einzelne Panel"/>
|
|
<node CREATED="1504833540720" ID="ID_1717772756" MODIFIED="1504833931673" 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="1504833582326" TEXT="Timeline"/>
|
|
<node CREATED="1504833569692" ID="ID_1708962269" MODIFIED="1504833620713" TEXT="Viewer"/>
|
|
<node CREATED="1504833572687" ID="ID_57378390" MODIFIED="1504833615690" TEXT="(Asset)Bin"/>
|
|
<node CREATED="1504833574246" ID="ID_897436866" MODIFIED="1504833610906" TEXT="Infobox"/>
|
|
<node CREATED="1504833575700" ID="ID_1470115932" MODIFIED="1504833606683" TEXT="Playcontrol"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488423383765" HGAP="355" ID="ID_1046643705" MODIFIED="1488423403527" TEXT="Verhalten" VSHIFT="26">
|
|
<node CREATED="1488423418968" ID="ID_1169811882" MODIFIED="1488423422907" TEXT="Lebenszyklus">
|
|
<node CREATED="1488423424111" ID="ID_1090980479" MODIFIED="1488423428307" TEXT="Start"/>
|
|
<node CREATED="1488423428942" ID="ID_1847992077" MODIFIED="1488423430034" TEXT="Stop"/>
|
|
</node>
|
|
<node CREATED="1488423436478" ID="ID_1037695008" MODIFIED="1488423439633" TEXT="Einstieg">
|
|
<node CREATED="1488423440629" ID="ID_1295897045" MODIFIED="1488470711327" 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="1488423843843" 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="1488423586461" TEXT="TimelineWidget erzeugen"/>
|
|
<node CREATED="1488470479857" ID="ID_978142233" MODIFIED="1488470483245" TEXT="geschieht...">
|
|
<node CREATED="1488470484168" ID="ID_1028709294" MODIFIED="1488470496371" TEXT="explizit auf Anforderung (Window-Menü)"/>
|
|
<node CREATED="1488470499710" ID="ID_1839340183" MODIFIED="1488470507769" TEXT="automatisch durch Laden der Session"/>
|
|
</node>
|
|
<node CREATED="1488470528522" HGAP="38" ID="ID_141494228" MODIFIED="1488470537103" TEXT="Ablauf" VSHIFT="11">
|
|
<node CREATED="1488470538209" ID="ID_1192459841" MODIFIED="1488470540941" TEXT="Controller"/>
|
|
<node CREATED="1488470541432" ID="ID_950213497" MODIFIED="1488470548331" TEXT="holt Model-Repräsentation"/>
|
|
<node CREATED="1488470548848" ID="ID_1686896502" MODIFIED="1488470567097" TEXT="weiß den Ankerpukt / Zielcontainer"/>
|
|
<node CREATED="1488470574388" ID="ID_1331046626" MODIFIED="1488470581879" TEXT="erstellt in diesem ein neues Widget"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488423443916" ID="ID_1213960259" MODIFIED="1488423446288" TEXT="in Assets"/>
|
|
<node CREATED="1488423446860" ID="ID_1515465474" MODIFIED="1488423468917" TEXT="Viewer"/>
|
|
<node CREATED="1488423478536" ID="ID_1039556823" MODIFIED="1488423481827" TEXT="Projekt"/>
|
|
<node CREATED="1488423482303" ID="ID_1337577946" MODIFIED="1488423484627" TEXT="Optionen"/>
|
|
</node>
|
|
<node CREATED="1488423493014" ID="ID_64529473" MODIFIED="1488423496305" TEXT="Navigation"/>
|
|
<node CREATED="1488423514355" ID="ID_917891687" MODIFIED="1488423519006" TEXT="Steuerelemente"/>
|
|
</node>
|
|
<node CREATED="1448070434915" HGAP="64" ID="ID_257833497" MODIFIED="1450390417230" 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="1448070545132" HGAP="31" ID="ID_1410368513" MODIFIED="1453545844231" TEXT="Element" VSHIFT="-7">
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1448070580927" ID="ID_467382299" MODIFIED="1488423413030" TEXT="Ausprägungen" VSHIFT="18">
|
|
<node CREATED="1448070554963" ID="ID_579919554" MODIFIED="1448070559134" TEXT="Widget"/>
|
|
<node CREATED="1448070559466" ID="ID_182430638" MODIFIED="1448070560909" TEXT="Controller"/>
|
|
</node>
|
|
<node CREATED="1448070583679" HGAP="30" ID="ID_1248152908" MODIFIED="1448658666391" TEXT="Protokoll">
|
|
<node CREATED="1448078263344" ID="ID_1136748666" MODIFIED="1448078979113" TEXT="Verhaltensweisen">
|
|
<cloud COLOR="#e0d6ba"/>
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1448078268223" ID="ID_1027574047" MODIFIED="1512926191872" TEXT="Lebenszyklus">
|
|
<node CREATED="1448078450375" ID="ID_459686936" MODIFIED="1487275490428" TEXT="zeugen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
heißt: Element registriert sich am UI-Bus
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448078473068" ID="ID_510866826" MODIFIED="1487275490434" TEXT="zerstören">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
heißt: Element deregistriert sich am UI-Bus
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448078308690" ID="ID_185716114" MODIFIED="1512926191872" TEXT="Aktionen">
|
|
<node CREATED="1448078344541" ID="ID_1781183546" MODIFIED="1487275490443" TEXT="Subjekt einer Aktion">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...ist <i>immer</i> ein <b>tangible</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448078516094" ID="ID_201691188" MODIFIED="1448078519937" TEXT="Commands"/>
|
|
<node CREATED="1448078325679" ID="ID_946047770" MODIFIED="1448078510722" TEXT="tweaks"/>
|
|
</node>
|
|
<node CREATED="1448078330703" ID="ID_1955501343" MODIFIED="1512926191873">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
presentation
|
|
</p>
|
|
<p>
|
|
state
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1448078381288" ID="ID_1570425925" MODIFIED="1512926191874" TEXT="state mark">
|
|
<node CREATED="1448078528725" ID="ID_1776152068" MODIFIED="1448078551096">
|
|
<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="1448078560332" TEXT="wird zurückgespielt"/>
|
|
<node CREATED="1448078678961" ID="ID_1905336344" MODIFIED="1512926191875" TEXT="Arten">
|
|
<node CREATED="1448078682840" ID="ID_1545251839" MODIFIED="1448078686876" TEXT="zoom"/>
|
|
<node CREATED="1448078687176" ID="ID_357365613" MODIFIED="1448078689411" TEXT="scroll"/>
|
|
<node CREATED="1448078691727" ID="ID_1874307716" MODIFIED="1448078696019" TEXT="expand"/>
|
|
<node CREATED="1448078703294" ID="ID_784991533" MODIFIED="1448078705449" TEXT="Form"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448078385504" ID="ID_584410725" MODIFIED="1512926191875" TEXT="feedback">
|
|
<node CREATED="1448078569263" ID="ID_906985390" MODIFIED="1448078589473" TEXT="in Fokus bringen"/>
|
|
<node CREATED="1448078589997" ID="ID_1779705374" MODIFIED="1448078603503" TEXT="aufblitzen"/>
|
|
<node CREATED="1448078604115" ID="ID_666512041" MODIFIED="1448078621580" TEXT="Warn-Nachricht"/>
|
|
<node CREATED="1448078622048" ID="ID_1858518915" MODIFIED="1448078624939" TEXT="Fehler"/>
|
|
</node>
|
|
<node CREATED="1448078416612" ID="ID_1392022084" MODIFIED="1512926191875" TEXT="state reset">
|
|
<node CREATED="1448078722483" ID="ID_1661890520" MODIFIED="1455421132762" TEXT="auf default!">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1448078731130" ID="ID_1682515267" MODIFIED="1487275490499" TEXT="collapse / expand">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
dafür genügt der normale Reset
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1448078748448" ID="ID_1000763850" MODIFIED="1487275490504" TEXT="Nachrichten löschen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
mark "clearMsg"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448078778916" ID="ID_1657108949" MODIFIED="1487275490510" TEXT="Fehler löschen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
mark "clearErr"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448078798369" ID="ID_819750758" MODIFIED="1487275490516" TEXT="komplett-Reset">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
mark "reset"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448078425594" ID="ID_686619553" MODIFIED="1512926191876" TEXT="Mutation">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1448078811895" ID="ID_1266803050" MODIFIED="1448078833749">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Nachricht an <i>irgend ein</i> Wurzel-Element
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448078835044" ID="ID_358413966" MODIFIED="1448078844783" TEXT="bezieht daraufhin einen Diff"/>
|
|
<node CREATED="1448078845419" ID="ID_189415188" MODIFIED="1448078851438" TEXT="wendet diesen rekursiv an"/>
|
|
<node CREATED="1448078856722" ID="ID_1770248185" MODIFIED="1454975518746" TEXT="Hinweis: kann Kinder zeugen und zerstören"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448658633478" HGAP="99" ID="ID_314439240" MODIFIED="1502593945567" TEXT="Design" VSHIFT="13">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1448658692023" ID="ID_339186676" MODIFIED="1511572075492">
|
|
<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="1512926191877" 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="1448659469420" TEXT="Notwendig: Command-Name + Varargs"/>
|
|
<node CREATED="1451093919426" ID="ID_56876272" MODIFIED="1451093932614" TEXT="generisch impliziert auch zentrale Definition">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1451093994135" ID="ID_1002329025" MODIFIED="1451094104862">
|
|
<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="1512926191878" TEXT="UI-Grundverhalten">
|
|
<node CREATED="1448659735557" ID="ID_1553949303" MODIFIED="1448659741744" TEXT="Falten / Expandieren"/>
|
|
<node CREATED="1448659747476" ID="ID_1549415142" MODIFIED="1448659756582" TEXT="Grad der Explizitheit"/>
|
|
<node CREATED="1448659757378" ID="ID_1164836827" MODIFIED="1448659767668" TEXT="in Sicht bringen"/>
|
|
<node CREATED="1448659780743" ID="ID_1787132400" MODIFIED="1448659785106" TEXT="Fokus-Management"/>
|
|
<node CREATED="1448659792782" ID="ID_1547056651" MODIFIED="1448659801312" TEXT="räumliche Navigation"/>
|
|
<node CREATED="1448659824337" ID="ID_1734858009" MODIFIED="1448659829865" TEXT="Markierungen"/>
|
|
</node>
|
|
<node CREATED="1455236472002" HGAP="49" ID="ID_952544600" MODIFIED="1512926191878" TEXT="generische Eigenschaften" VSHIFT="15">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1455236491432" ID="ID_1268644179" MODIFIED="1455236569787" TEXT="Idee">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1455236501719" HGAP="35" ID="ID_540888754" MODIFIED="1455236634083" TEXT="man könnte Eigenschaften konfigurieren" VSHIFT="2"/>
|
|
<node CREATED="1455236512373" ID="ID_211355731" MODIFIED="1512926191879" TEXT="jede Eigenschaft hätte">
|
|
<node CREATED="1455236519677" ID="ID_1698754255" MODIFIED="1455236521384" TEXT="Namen"/>
|
|
<node CREATED="1455236522020" ID="ID_404018073" MODIFIED="1455236526855" TEXT="slot"/>
|
|
<node CREATED="1455236527443" ID="ID_45035009" MODIFIED="1455236537118" TEXT="passende »state mark«"/>
|
|
<node CREATED="1455236537802" ID="ID_1419063243" MODIFIED="1455236554532" TEXT="handler-funktor"/>
|
|
<node CREATED="1455236554927" ID="ID_772542993" MODIFIED="1455236563746" TEXT="installiert sich in generischen handler"/>
|
|
</node>
|
|
<node CREATED="1455236573173" HGAP="72" ID="ID_466911779" MODIFIED="1512926191879" TEXT="Bewertung" VSHIFT="16">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1455236781242" ID="ID_674694140" MODIFIED="1455236787861" TEXT="könnte interessant sein für Diff"/>
|
|
<node CREATED="1455236788424" ID="ID_1507269502" MODIFIED="1455236848778" 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ür die UI-Programmierung muß man Spaghetticode akzeptieren.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1455236851592" ID="ID_1599276883" MODIFIED="1455236859119" TEXT="YAGNI">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1455236869405" ID="ID_1141383110" MODIFIED="1455236874756" TEXT="später">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448658696638" ID="ID_1235910089" MODIFIED="1448658704649" TEXT="slots">
|
|
<node CREATED="1451177440022" ID="ID_1603816152" MODIFIED="1512926191880" TEXT="expand">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1451177449405" ID="ID_215708646" MODIFIED="1451177458839" TEXT="zunächst einfach auf/zu"/>
|
|
<node CREATED="1451177459667" ID="ID_1151970636" MODIFIED="1487275490604" TEXT="wird möglicherweise eine Enum">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
gemeint, eine ENUM von verschiedenen Graden der Aufgeklappt-heit
|
|
</p>
|
|
<p>
|
|
Dann mußte das allerdigns jeweils für alle Elemente sinnvoll sein
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1451177534345" ID="ID_524388510" MODIFIED="1512926191881" TEXT="impl">
|
|
<node CREATED="1451177542256" ID="ID_980888532" MODIFIED="1487275490614" TEXT="ruft einen konkreten hook doExpand() auf">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
und der muß vom konkreten Widget implementiert werden
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1451177573108" ID="ID_1154342108" MODIFIED="1451177583935" TEXT="wenn dieser true zurückgibt, ist der Zustand persistent"/>
|
|
<node CREATED="1451177584435" ID="ID_1792154974" MODIFIED="1451177606906">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
dann wird eine <i>state mark</i> ausgesendet
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1451177442861" ID="ID_1257047796" MODIFIED="1512926191882" TEXT="reveal">
|
|
<icon BUILTIN="smily_bad"/>
|
|
<node CREATED="1451177636388" ID="ID_507693817" MODIFIED="1451177655664" TEXT=""bringe dies Element in Sicht"">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1451177626773" ID="ID_612921051" MODIFIED="1451177634927" TEXT="ist das eine gute Idee">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1451177659369" ID="ID_928484705" MODIFIED="1451177677957">
|
|
<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="1451177726636" TEXT="wie finde ich den Vater..."/>
|
|
<node CREATED="1455236368345" ID="ID_1490676072" MODIFIED="1512926191883" TEXT="besser">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1455236382183" ID="ID_983670310" MODIFIED="1455236392849" TEXT="Einstiegspunkt: revealYourself"/>
|
|
<node CREATED="1455236393861" ID="ID_1638665625" MODIFIED="1455236410123">
|
|
<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="1455236435380" TEXT="dieses ruft parent.reveal(myID)"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1455421282030" HGAP="54" ID="ID_1448430954" MODIFIED="1488423306897" TEXT="state mark" VSHIFT="12">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1455421310603" ID="ID_1677758546" MODIFIED="1455421335388" TEXT="slots und markXX sind aufgedoppelt"/>
|
|
<node CREATED="1455421372274" ID="ID_956411027" MODIFIED="1512926191884" TEXT="Implementierung muß emittieren">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1455421336808" ID="ID_520325590" MODIFIED="1455421370759" TEXT="wenn eine Änderung relevant für Persistenz"/>
|
|
<node CREATED="1455421392032" ID="ID_969248847" MODIFIED="1455421405946" TEXT="die doXXX() - Funktion gibt true zurück"/>
|
|
<node CREATED="1455421407646" ID="ID_480078096" MODIFIED="1455421421439" TEXT="dann erledigt die slot / mark-Funktion das"/>
|
|
</node>
|
|
<node CREATED="1455421435698" ID="ID_799737882" MODIFIED="1512926191884" TEXT="PresentationStateManager sammelt einfach">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1455421453040" ID="ID_1195489674" MODIFIED="1455421460035" TEXT="pro Element (=ID)"/>
|
|
<node CREATED="1455421460671" ID="ID_1160333722" MODIFIED="1455421483559" TEXT="pro "property" == ID-sym der state mark - Nachricht"/>
|
|
</node>
|
|
<node CREATED="1455421490643" ID="ID_256291546" MODIFIED="1512926191884" TEXT="Lösch / Reset-Nachrichten">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1455421507505" ID="ID_1382752422" MODIFIED="1455421676233" TEXT="sind auszusenden, wenn tatsächlich gelöscht wurde">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1455421520087" ID="ID_1219279890" MODIFIED="1455421531914" TEXT="werden vom PresentationStateManager speziell behandelt"/>
|
|
</node>
|
|
<node CREATED="1455421537717" ID="ID_562890111" MODIFIED="1512926191885" TEXT="können per Broadcast verbreitet werden">
|
|
<node CREATED="1455421549347" ID="ID_744479545" MODIFIED="1455421556318" TEXT="separates UI-Bus API"/>
|
|
<node CREATED="1455421557026" ID="ID_655863988" MODIFIED="1455421654735">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
nach Broadcast von "reset"
|
|
</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 "reset"-Nachricht mit;
|
|
</p>
|
|
<p>
|
|
sofern sie tatsächlich abweichenden Zustand haben, sollten sie sich resetten
|
|
</p>
|
|
<p>
|
|
und eine state mark "reset" zurückschicken...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1455422030995" HGAP="35" ID="ID_1455265273" MODIFIED="1502593856566" TEXT="mutation" VSHIFT="7">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1455666294927" ID="ID_373207685" MODIFIED="1512926191886" TEXT="Ausgangspunkt">
|
|
<node CREATED="1455666301630" ID="ID_933452284" MODIFIED="1455666310209" TEXT="Element-Protokoll steht"/>
|
|
<node CREATED="1455666310701" ID="ID_571166725" MODIFIED="1455666314472" TEXT="Bus-Semantik steht"/>
|
|
<node CREATED="1455666315061" ID="ID_1650938256" MODIFIED="1455666328663" TEXT="Konzept für Tree-Mutator steht"/>
|
|
<node CREATED="1455666330652" ID="ID_654052510" MODIFIED="1455668788278" TEXT="Tree-Diff-Applikator ist implementiert"/>
|
|
<node CREATED="1455666351784" ID="ID_1889806972" MODIFIED="1455666364225" TEXT="Entscheidung für 2-Phasiges Diff-Update ist gefallen"/>
|
|
</node>
|
|
<node CREATED="1455668350028" HGAP="43" ID="ID_1853535891" MODIFIED="1512926191886" TEXT="Ablauf" VSHIFT="5">
|
|
<node CREATED="1455668396398" ID="ID_1627727409" MODIFIED="1455668828239" TEXT="Diff-Nachricht kommt via UI-Bus">
|
|
<icon BUILTIN="full-1"/>
|
|
</node>
|
|
<node CREATED="1455668411867" ID="ID_1932196729" MODIFIED="1455668830612" TEXT="UI-Element baut Tree-Mutator "auf sich selbst"">
|
|
<icon BUILTIN="full-2"/>
|
|
</node>
|
|
<node CREATED="1455668689495" ID="ID_1046261411" MODIFIED="1455668833289" 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="1512926191889" 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ßt, ich muß konkret ausarbeiten,
|
|
</p>
|
|
<p>
|
|
<i>wie</i> man einen Diff gegen eine opaque Implementierungs-Datenstruktur aufspielt.
|
|
</p>
|
|
<p>
|
|
Und ich muß das in einem Test zumindest emulieren können!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1455668935142" ID="ID_1274632216" MODIFIED="1512926191890">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
muß DiffApplicationStrategy
|
|
</p>
|
|
<p>
|
|
<i>noch einmal</i> implementieren
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das mag ü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ß 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ä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ß 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ühlsmäß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ß 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 überall sonst eine Bürde"/>
|
|
</node>
|
|
<node CREATED="1472829783619" HGAP="28" ID="ID_1015946734" MODIFIED="1472829805342" TEXT="am Ende ist das die schönere Implementierung geworden" VSHIFT="5">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1455669004941" ID="ID_853385575" MODIFIED="1512926191892">
|
|
<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ß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ür skip"/>
|
|
<node CREATED="1455669326400" ID="ID_646237490" MODIFIED="1455669330996" TEXT="für ins / del"/>
|
|
<node CREATED="1455669331448" ID="ID_1852578403" MODIFIED="1455669333036" TEXT="für find"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#ad014c" CREATED="1455669200945" HGAP="85" ID="ID_880765624" MODIFIED="1512926191894" 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" ID="ID_1892865523" MODIFIED="1512926191895" STYLE="fork" TEXT="Polymorphie vs. Funktoren">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1458408878574" ID="ID_1190262572" MODIFIED="1512926191896" TEXT="Abwägung">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1458408895756" ID="ID_1422093195" MODIFIED="1512926191897" 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ß explizit instantiieren und verbinden">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1458409202946" ID="ID_162172192" MODIFIED="1458409828754" TEXT="für jede Anwendungssituation eine neue Binder-Klasse"/>
|
|
<node CREATED="1458409270353" ID="ID_114384372" MODIFIED="1458409828754" TEXT="plus für jedes Anwendungs-Grundmuster eine Mutator-Implementierung"/>
|
|
</node>
|
|
<node CREATED="1458408904802" ID="ID_1569962545" MODIFIED="1512926191898" 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ü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ür jede Anwendungssituation eine neue Mutator-Implementierung"/>
|
|
<node CREATED="1458409554491" ID="ID_1516498705" MODIFIED="1458409828754" TEXT="aber auch Builder-Zwischenstufen mü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ügig weniger Code-bloat"/>
|
|
<node CREATED="1458409506778" ID="ID_1696279423" MODIFIED="1458409828755" TEXT="bessere Chancen auf Inlining"/>
|
|
<node CREATED="1458409586672" ID="ID_902822558" MODIFIED="1512926191899" 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äsentation der "aktuellen Position"">
|
|
<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ü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ü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ä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="1512926191902" TEXT="Probleme" VSHIFT="16">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="clanbomber"/>
|
|
<node CREATED="1455833736586" ID="ID_1233162987" MODIFIED="1512926191903" 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üche">
|
|
<node CREATED="1455834227528" ID="ID_1606302361" MODIFIED="1455834231179" TEXT="Feld hinzufügen"/>
|
|
<node CREATED="1455834231647" ID="ID_1275813367" MODIFIED="1455834236914" TEXT="Feld lö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="Ä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ä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" ID="ID_1996966445" MODIFIED="1512926191905">
|
|
<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öschen + Neueinfügen"/>
|
|
<node CREATED="1455842682524" ID="ID_1597781391" MODIFIED="1455842710444" TEXT="unnötiger Aufwand (Allokation)"/>
|
|
<node CREATED="1455842711008" ID="ID_1470911011" MODIFIED="1455842721083" TEXT="führt zu "Flackern" im UI"/>
|
|
<node CREATED="1455843001833" HGAP="46" ID="ID_617738816" MODIFIED="1512926191905" TEXT="Lö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ü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ät voraus"/>
|
|
<node CREATED="1455843134111" ID="ID_1830155209" MODIFIED="1455843174534" TEXT="funkioniert (theoretisch) auch bei Kindern"/>
|
|
<node CREATED="1455843262862" ID="ID_779223103" MODIFIED="1512926191907" 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" ID="ID_1210482014" MODIFIED="1512926191907">
|
|
<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" ID="ID_1629566976" MODIFIED="1512926191908" TEXT="out-of-order">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1455895687377" ID="ID_742953981" MODIFIED="1455895691763" TEXT="wird unterstü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öglicht Postfix-Order"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1455913713933" ID="ID_155948375" MODIFIED="1512926191909" 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="»Zwei-Listen-Modell«">
|
|
<node CREATED="1455926709229" ID="ID_272389445" MODIFIED="1455926710513" TEXT="für generischen Diff"/>
|
|
<node CREATED="1455926710981" ID="ID_1449723679" MODIFIED="1455926717032" TEXT="mö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äre mö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ä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 -> 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 ü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ü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ät auf top-level
|
|
</li>
|
|
<li>
|
|
wir müssen eine meta-Repräsentation aufbauen
|
|
</li>
|
|
<li>
|
|
wir mü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üssen die intern repräsentieren"/>
|
|
<node CREATED="1455913938287" ID="ID_749740013" MODIFIED="1512926191912" 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" HGAP="148" ID="ID_153254427" MODIFIED="1512926191915" STYLE="fork" TEXT="»generic tree diff«" 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="1512926191917" 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 -> end"/>
|
|
</node>
|
|
<node CREATED="1455927603566" ID="ID_604132662" MODIFIED="1512926191920" TEXT="_END_">
|
|
<node CREATED="1455927607621" ID="ID_948240245" MODIFIED="1455927610465" TEXT="all -> 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="1512926191924" 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 "current" 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> 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> 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> 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> 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 'assignElm'"/>
|
|
</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üft, ob alles eingelöst wurde"/>
|
|
<node CREATED="1464113740005" ID="ID_1649881726" MODIFIED="1464113748425" TEXT="emöglicht Aufrä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ällen, in denen der konkrete onion-layer
|
|
</p>
|
|
<p>
|
|
ü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> must not</i> 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="1512926191937" 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" HGAP="76" ID="ID_496821508" MODIFIED="1512926191938" 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ält Closures">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Mutator enthält die Bindung auf die konkreten Daten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1455930997303" ID="ID_1710972681" MODIFIED="1455931003962" TEXT="kann erhebliche Größ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ährend der Verarbeitung heraus:
|
|
</p>
|
|
<p>
|
|
bei "offenen Datenstrukturen" entscheided jeder Typ selber,
|
|
</p>
|
|
<p>
|
|
welchen Mutator er erzeugt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1456011474920" HGAP="-25" ID="ID_1292432889" MODIFIED="1512926191939" TEXT="Lösungsansä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: Aufrufprinzip
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1456011595024" ID="ID_1268079925" MODIFIED="1456011598819" TEXT="muß konsumieren"/>
|
|
<node CREATED="1456011599455" ID="ID_862262812" MODIFIED="1456011634435">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Verb muß 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ß 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 Ü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öß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önnen wir rekursiv abfragen, wie groß alle möglichen Kind-Mutatoren werden können
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#d8bba4" CREATED="1456011994442" HGAP="68" ID="ID_343687995" MODIFIED="1512926191943" 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ä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önnte Puffer selber allozieren"/>
|
|
</node>
|
|
<node CREATED="1456013068179" ID="ID_774826163" MODIFIED="1512926191945" TEXT="Rec<GenNode>">
|
|
<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ß 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 überhaupt nicht helfen"/>
|
|
<node CREATED="1456013231117" ID="ID_1899116139" MODIFIED="1456013238279" TEXT="Puffer muß 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ützt keine Umordnung"/>
|
|
<node CREATED="1456184736827" ID="ID_171431775" MODIFIED="1456184746398" TEXT="unterstützt kein Hinzufügen"/>
|
|
<node CREATED="1456184746946" ID="ID_1768153345" MODIFIED="1456184756780" TEXT="Lö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 -> subMutator"/>
|
|
<node CREATED="1456184833446" ID="ID_1632860381" MODIFIED="1456184864038" TEXT="subMutator für subCollection"/>
|
|
<node CREATED="1461881226351" ID="ID_211513452" MODIFIED="1461881233506" TEXT="subMutator == "onon layer""/>
|
|
<node CREATED="1456184892870" ID="ID_1216247694" MODIFIED="1456184905433" TEXT="Rec<GenNode> -> 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öß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ßlich an die Diff-Anwendung gekoppelt"/>
|
|
<node CREATED="1456186915112" ID="ID_1560470636" MODIFIED="1512926191948" TEXT="Größe duch Binde-Voragang bestimmt">
|
|
<node CREATED="1456186933998" ID="ID_528314478" MODIFIED="1512926191949" 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="1512926191949" TEXT="Zahl der Einzelbindungen">
|
|
<node CREATED="1456187264346" ID="ID_81725454" MODIFIED="1456187278539" TEXT="ein Slot pro Binding-Layer"/>
|
|
<node CREATED="1456187279408" ID="ID_954788495" MODIFIED="1512926191949" 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ür den Key">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
....denn der liegt (mind) einmal vor,
|
|
</p>
|
|
<p>
|
|
eingebettet in ein Selektor-Prä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="1512926191950" TEXT="Alternativen">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1456424237672" ID="ID_811857290" MODIFIED="1456424410221" TEXT="zu Fuß 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ünftigste</i> Weg.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Leider scheidet das aber für uns hier genau aus,
|
|
</p>
|
|
<p>
|
|
denn das gesamte Projekt entstand, aufgrund der inhärenten Limitierungen
|
|
</p>
|
|
<p>
|
|
der "vernünftigen" (=pragmatischen) Lö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öst tatsächlich das Problem,
|
|
</p>
|
|
<p>
|
|
aber zu dem Preis, daß er die Strukturen von innen her zersetzt.
|
|
</p>
|
|
<p>
|
|
Auf lange Sicht wird das System wuchern wie ein Krebsgeschwühr,
|
|
</p>
|
|
<p>
|
|
und man kann das nur mit Disziplin eindämmen, was <i>realistisch gesprochen</i> meint,
|
|
</p>
|
|
<p>
|
|
daß 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="1512926191951" TEXT="einseitige Fernsteuerung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das ist die schlankeste Lösung, die ästhetisch befriedigt.
|
|
</p>
|
|
<p>
|
|
Sie hat aber das Problem, daß dadurch die Kollaboration im Kern ausgelöscht wird.
|
|
</p>
|
|
<p>
|
|
Wir haben eine Seite, die absolute Macht hat, und einen "Partner", der tatsächlich nur ferngesteuert ist.
|
|
</p>
|
|
<p>
|
|
Wir müssen dafür auf die Subsidiarität verzichten, und damit auf die Möglichkeit zur Entkoppelung.
|
|
</p>
|
|
<p>
|
|
Dazu kommt, daß die notwendige Fern-Wirkung stets eine zusätzliche Last bedeutet.
|
|
</p>
|
|
<p>
|
|
Denn wir müssen auf Umstä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ächengetrieben"/>
|
|
<node CREATED="1456425652683" ID="ID_437402611" MODIFIED="1456425656575" TEXT="zentralgesteuert"/>
|
|
</node>
|
|
<node CREATED="1456424295296" ID="ID_791299475" MODIFIED="1512926191952" 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" HGAP="23" ID="ID_1066542027" MODIFIED="1512926191952" STYLE="bubble" TEXT="Analyse" VSHIFT="44">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="15"/>
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1456424664015" ID="ID_1032924247" MODIFIED="1512926191953" TEXT="Problem: Zusatz-Kosten">
|
|
<node CREATED="1456424675173" ID="ID_1585536570" MODIFIED="1456437520768" TEXT="...für das "+""/>
|
|
<node CREATED="1456424695123" ID="ID_331589423" MODIFIED="1456437520769" TEXT="also die Bindung"/>
|
|
<node CREATED="1456424722039" ID="ID_1926017913" MODIFIED="1512927037795" 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ü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" HGAP="28" ID="ID_1929919601" MODIFIED="1512926191954" TEXT="notwendig" VSHIFT="-1">
|
|
<node CREATED="1456426041626" ID="ID_101262346" MODIFIED="1512927037794" 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üpfungs-Punkt in den real-Daten überhaupt zu finden,
|
|
</p>
|
|
<p>
|
|
mü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ß es die relevanten real-Daten duplizieren,
|
|
</p>
|
|
<p>
|
|
um sie in einem abstrahierten Kontext zugä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ätzlich zur genannten Duplikation muß
|
|
</p>
|
|
<p>
|
|
die Abblidung der Strukturen aufeinander
|
|
</p>
|
|
<p>
|
|
an irgend einer Stelle reprä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ösen.
|
|
</p>
|
|
<p>
|
|
Allerdings gibt es dafür überhaupt nur zwei mögliche Richtungen.
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
man löst die Parallel-Strukturen auf
|
|
</li>
|
|
<li>
|
|
man ersetzt das DOM durch reine Bindungs-Strukturen
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
Beide Ansä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ßt, dort nur noch reine<br />Binde-Strukturen speichert, dann endet man bei einer Form von Introspektion. Entweder,
|
|
</p>
|
|
<p>
|
|
das Rü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ändig bestehende Datenstruktur; dann enden wir bei klassischer Introspektion.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1456428989206" HGAP="28" ID="ID_1999101531" MODIFIED="1512926191955" TEXT="Maßstab" VSHIFT="17">
|
|
<node CREATED="1456429002332" ID="ID_294696563" MODIFIED="1512927037794" 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" ID="ID_327619080" MODIFIED="1512927037794" 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ärenten Form suchen"/>
|
|
</node>
|
|
<node CREATED="1456429053206" ID="ID_643637016" MODIFIED="1456437520774" TEXT="wenig Überlapp"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1456423477045" HGAP="146" ID="ID_1294023197" MODIFIED="1512926191957" TEXT="Stand der Ü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ßen vor">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...will sagen:
|
|
</p>
|
|
<p>
|
|
fü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ätzlich,
|
|
</p>
|
|
<p>
|
|
um den verschobenen Inhalt erst mal aufzunehmen.
|
|
</p>
|
|
<p>
|
|
Also zä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öß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ß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öß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="Übersetzen in eine Typ-Spezifikation"/>
|
|
<node CREATED="1456429488492" ID="ID_393439057" MODIFIED="1456429496150" TEXT="aus dem Typ eine Größe ableiten"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1456430088803" HGAP="54" ID="ID_481518617" MODIFIED="1512926191960" TEXT="Lö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ä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<GenNode>"/>
|
|
</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 "absrakten, opaquen" Position entschä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="4" ID="ID_133511037" MODIFIED="1512926191964" TEXT="Implementierung" VSHIFT="16">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1456506128581" HGAP="-12" ID="ID_322289358" MODIFIED="1512926191964" TEXT="Abwä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ß 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>
|
|
 -- 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ü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 überhaupt nicht kennen.
|
|
</p>
|
|
<p>
|
|
Man könnte also später, wenn das ganze System "steht",
|
|
</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ß: <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 "polymorpic value" 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ß 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ü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ß 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> auf Introspektion der Elemente
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1457119990420" ID="ID_1521035606" MODIFIED="1457120011276" TEXT="...denn die müßte die jeweilige Implementierung erbringen"/>
|
|
<node CREATED="1457120011721" ID="ID_23476594" MODIFIED="1457120024027" TEXT="und das würde das Übel der Introspektion überall hineindrücken"/>
|
|
<node CREATED="1457120026343" ID="ID_156752160" MODIFIED="1457120043288" TEXT="Nachteil: keine klare Fehlerdiagnose mö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 "External Tree Description"
|
|
</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ß 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ß muß 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" ID="ID_1416114013" MODIFIED="1512926191971" TEXT="Design lö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äre Bezü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ätzlich zu einem anderen Adaptor
|
|
</p>
|
|
<p>
|
|
in die Mutator-Dekorator-Kette gehängt werden
|
|
</p>
|
|
<p>
|
|
und protokolliert somit "nebenbei" 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" HGAP="30" ID="ID_1372068793" MODIFIED="1512926191972" TEXT="Bestandteile" VSHIFT="-1">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1456528424246" ID="ID_472044094" MODIFIED="1512926191973" 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="flag-yellow"/>
|
|
<node CREATED="1457741609884" ID="ID_1827838196" MODIFIED="1512926191973" TEXT="bin ich zustä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="1512926191975" 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="1512926191976" 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> Indirektionen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und das ist nicht akzeptabel für ein reines Selektor-Prädikat!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1458094716364" ID="ID_1749838430" MODIFIED="1512926191978" TEXT="eingeschrä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ür <i>alle</i> 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önnte,
|
|
</p>
|
|
<p>
|
|
Kinder eines reinen Wert-Typs wären sinnvoll --
|
|
</p>
|
|
<p>
|
|
sie sind es nicht!
|
|
</p>
|
|
<p>
|
|
Jede sinnvolle <i>Entität</i> hat mehr als ein Attribut<i>! </i>
|
|
</p>
|
|
<p>
|
|
denn es macht keinen Sinn, Entitä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ä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" ID="ID_824115387" MODIFIED="1512926191979" TEXT="um das zu unterstützen...">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1458095230175" ID="ID_995706334" MODIFIED="1458095239258" TEXT="müßte DataCap helfen"/>
|
|
<node CREATED="1458095367701" ID="ID_1549321280" MODIFIED="1458095376400" TEXT="es gä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="übernimmt der nä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="1512926191979" 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 "match"?">
|
|
<node CREATED="1458094392679" ID="ID_238187527" MODIFIED="1460755241888">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
"target <i>matches</i> spec"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1458094428506" ID="ID_1753032814" MODIFIED="1458094435693" TEXT="darf Annahmen ü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="1512926191981" TEXT="abstrakte Position">
|
|
<node CREATED="1460755065016" ID="ID_935271147" MODIFIED="1460755138704" TEXT="wird niemals direkt reprä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ängig
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1460755080894" ID="ID_107894920" MODIFIED="1460755106150" TEXT="und faktisch unabhängig in jedem »onion layer«"/>
|
|
</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 ü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 ü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 "Position"">
|
|
<node CREATED="1456533135345" ID="ID_1775378899" MODIFIED="1465428629652" TEXT="Problem: wem gehört diese Position?">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1456533146055" ID="ID_312959811" MODIFIED="1456533213989" TEXT="muß stets ü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ä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äsentiert">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1457232376244" HGAP="29" ID="ID_1914581822" MODIFIED="1491009351080" TEXT="onion layer" VSHIFT="26">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das sind die konkreten Implementierungen
|
|
</p>
|
|
<p>
|
|
für spezifische Arten von Bindings
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1457232408368" HGAP="29" ID="ID_1068782263" MODIFIED="1512926191985" 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äter nützlich zur Diagnose"/>
|
|
<node CREATED="1457232444075" ID="ID_442780922" MODIFIED="1457232459765" TEXT="soll stets ü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ä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äre nicht sinnvoll!!!!!
|
|
</p>
|
|
<p>
|
|
auch wenn man meinen könnte, es geht.
|
|
</p>
|
|
<p>
|
|
Grund ist nämlich, es kann jeweils nur ein Onion-Layer für ein gegebenes Element "zuständig" sein.
|
|
</p>
|
|
<p>
|
|
Und aus Gründen der logischen Konsistenz darf dieser Diagnose-Layer niemals für ein Element zuständig sein,
|
|
</p>
|
|
<p>
|
|
denn sonst würde er es für darunter liegende Layer verschatten.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="closed"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1457232734636" ID="ID_1873945047" MODIFIED="1512926191987" 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>
|
|
⟹ <i>immer</i> 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ät"/>
|
|
<node CREATED="1457742646366" ID="ID_1533568989" MODIFIED="1512926191991" 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" HGAP="33" ID="ID_44294405" MODIFIED="1512926191992" 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="1512926191993" TEXT="brauche zusätzliche Operationen" VSHIFT="-3">
|
|
<cloud COLOR="#fce9c0"/>
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<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ßt"/>
|
|
<node CREATED="1458177136475" ID="ID_1352800435" MODIFIED="1458177953094" TEXT="greift auf eine ID des Zieles zurück"/>
|
|
<node CREATED="1458177147897" ID="ID_1632332105" MODIFIED="1458177953094" TEXT="muß daher in der Regel bereitgestellt werden"/>
|
|
<node CREATED="1458177166543" ID="ID_1266232529" MODIFIED="1512926191994" 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ä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ä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ß typischerweise die Interna des Zieles kennen"/>
|
|
<node CREATED="1458177347622" ID="ID_1041373197" MODIFIED="1512926191995" 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="1512926191996" TEXT="selector">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458177605869" ID="ID_262186866" MODIFIED="1458177953094" TEXT="bestimmt ob die Spec für diesen Binding-Layer überhaupt relevant ist"/>
|
|
<node CREATED="1458177631409" ID="ID_1877742460" MODIFIED="1458177953094" TEXT="erlaubt das Filtern mit mehreren Bindings"/>
|
|
<node CREATED="1458177642144" ID="ID_310751196" MODIFIED="1512926191996" 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äufigste Fall"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458176008025" ID="ID_1099350141" MODIFIED="1512926191997" 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" ID="ID_197038069" MODIFIED="1512926191997" 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's eben keine Zuweisung"/>
|
|
<node CREATED="1458177749233" ID="ID_873905001" MODIFIED="1458177953095" TEXT="auch nicht nötig bei sub-Scopes"/>
|
|
<node CREATED="1458177803730" ID="ID_674080114" MODIFIED="1458177953095" TEXT="auch nicht nötig bei immutable values"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458176018087" ID="ID_1978664300" MODIFIED="1512926191998" TEXT="mutator">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458177821712" ID="ID_152424824" MODIFIED="1458177953095" TEXT="baut einen sub-Mutator für einen nested scope"/>
|
|
<node CREATED="1458177851988" ID="ID_307170712" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
|
|
<node CREATED="1458177857939" ID="ID_233644864" MODIFIED="1512926191998" 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ötig bei primitive values"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458176048564" ID="ID_173428941" MODIFIED="1512926191998" TEXT="Flexibilität">
|
|
<node CREATED="1458176054154" ID="ID_1379937028" MODIFIED="1458176076851" TEXT="so wenig typ-Feslegung wie möglich"/>
|
|
<node CREATED="1458176077368" ID="ID_1730540256" MODIFIED="1458176092658" TEXT="fallback bei fehlendern Operationen"/>
|
|
<node CREATED="1458176093958" ID="ID_801042454" MODIFIED="1512926191999" TEXT="Argument: "dann halt nicht"">
|
|
<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ß schon was sie will"/>
|
|
<node CREATED="1458176252336" ID="ID_1554344013" MODIFIED="1512926191999" 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="1512926192001" TEXT="sinnvoll gewählt">
|
|
<node CREATED="1458176794848" ID="ID_1399218405" MODIFIED="1458176810370" TEXT="native datenstruktur ist so gewählt, daß sie ihren Zweck erfüllt"/>
|
|
<node CREATED="1458176883836" ID="ID_1357445271" MODIFIED="1458176899324">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
generische Repräsentaton ist so gewählt,
|
|
</p>
|
|
<p>
|
|
daß sich alle relevanten Eigenschaften darstellen lassen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1458176911161" ID="ID_1565618197" MODIFIED="1512926192001">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wenn also ein Teil der diff-Funkttionalität nicht verfügbar ist,
|
|
</p>
|
|
<p>
|
|
dann wird es wohl so sein, daß 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ötigen Einschrä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ät gutmütig zu degradieren.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458178113697" HGAP="46" ID="ID_186668887" MODIFIED="1512926192002" TEXT="Design-Schluß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ö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ür das Binding liefert"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1458178288690" ID="ID_562189277" MODIFIED="1512926192003" 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ä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ß zu befürchten steht, daß ein unpassendes Lambda erst weit entfernt
|
|
</p>
|
|
<p>
|
|
eine womöglich irrefü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ö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ä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ärker abschließen">
|
|
<node CREATED="1458934863225" ID="ID_843139682" MODIFIED="1458934897237" TEXT="contentBuffer könnte privat sein">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1458934878911" ID="ID_986928457" MODIFIED="1458934893132" TEXT="welche Iteratoren mü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="1512926192005">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
erfordert <i>wirklich</i> 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="1512926192006" TEXT="brauche wohl "Introspection light"">
|
|
<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 "private" Datenstruktur
|
|
</p>
|
|
<p>
|
|
eine etwas komische Collection von Strings,
|
|
</p>
|
|
<p>
|
|
in die wir die String-Repräsentation der Spec-Payload schreiben.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
In der Praxis dagegen würde man wirklich einen privaten Datentyp verwenden,
|
|
</p>
|
|
<p>
|
|
und dann auch voraussetzen, daß man <i>nur</i> Kinder dieses Typs (oder zuweisungskompatibel) bekommt.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Mein Poblem hier ist, daß ich in dieser Demonstrations-Datenstruktur keine nested scopes reprä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ü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 "this"-Typ">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
der Builder in der nested DSL generiert einen sonderbar falschen "this"-Typ,
|
|
</p>
|
|
<p>
|
|
genauer gesagt, eine TYPID die falsch ist.
|
|
</p>
|
|
<p>
|
|
Und zwar kommt es da zum "Übersprechen" von einem Typ-Parameter in den anderen.
|
|
</p>
|
|
<p>
|
|
Im Besonderen hab ich beobachtet, daß, 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 überzeugt, daß 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<TY>()
|
|
</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ä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ä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önnten. Denn dann läß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" ID="ID_1490646673" MODIFIED="1512926192008" 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ön symmetrisch ist,
|
|
</p>
|
|
<p>
|
|
sondern weil sie essentiell zum Wesen von Objekten gehören.
|
|
</p>
|
|
<p>
|
|
Wenn wir Änderungen an Objekt-Strukturen als Diff erfassen wollen,
|
|
</p>
|
|
<p>
|
|
dann <i>müssen</i> 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ä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>
|
|
⟹ <i>immer</i> 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>
|
|
⟹ es geht eigentlich <i>nur</i> um den Wert des Attributes
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458175861176" HGAP="39" ID="ID_887227300" MODIFIED="1512926192011" 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ü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="1512926192013" TEXT="Einfü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ö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="»auf GenNode und Objekt gleichermaßen anwendbar«">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1461889253087" ID="ID_1128320234" MODIFIED="1512926192017" TEXT="das heiß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ß semantisch ä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ßgabe,
|
|
</p>
|
|
<p>
|
|
wie ETD ein Objekt repäsentiert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<font NAME="SansSerif" SIZE="11"/>
|
|
</node>
|
|
<node CREATED="1461889470866" ID="ID_404525574" MODIFIED="1512926192018" 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>
|
|
"Anwendung" : meint das Anwenden eines Diffs auf ein Ziel-Objekt
|
|
</p>
|
|
<p>
|
|
"nicht nutzen" : meint ignorieren und verwerfen der Information
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1461889550072" ID="ID_48030760" MODIFIED="1461889558442" TEXT="dürfen nur Zustands-Änderungen bewirken"/>
|
|
<node CREATED="1461889558983" ID="ID_1489246908" MODIFIED="1461889796278" TEXT="welche keinen Einfluß 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="1512926192018" TEXT="ist das überhaupt mö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 -> Objekt und dann später Objekt -> ETD
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
warum?
|
|
</p>
|
|
<p>
|
|
Weil sich in der ETD die Reihenfolge ä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öglich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Objekt -> ETD -> 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äß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" ID="ID_1409253452" MODIFIED="1512926192019" 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ü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="1512926192020" 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> : Wert muß per Konstruktor gegeben sein
|
|
</p>
|
|
<p>
|
|
<b>default</b> : es gibt einen ausgezeichneten Standardwert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1461892285965" ID="ID_440312526" MODIFIED="1512926192020" TEXT="mandatory ">
|
|
<node CREATED="1461892303666" ID="ID_1486672593" MODIFIED="1461892312404" TEXT="Problem der Konstruktor-Repräsentation"/>
|
|
<node CREATED="1461892313049" ID="ID_683528850" MODIFIED="1461892394247" TEXT="einziger Ausweg: komplette ETD-Repräsentation als Wert senden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt, in dem ins-Verb ist dann ein komplettes Objekt enthalten,
|
|
</p>
|
|
<p>
|
|
nicht nur eine leere Record-Hülle, die nachfolgend populiert werden kann (aber nicht muß)
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1461892430466" ID="ID_1727811732" MODIFIED="1461892440092" TEXT="ein mandatory-Feld darf nicht gelöscht werden"/>
|
|
</node>
|
|
<node CREATED="1461892444727" ID="ID_1828810203" MODIFIED="1512926192021" TEXT="default">
|
|
<node CREATED="1461892490881" ID="ID_577669206" MODIFIED="1512926192021" 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üllt das Feld halt irgendwie.
|
|
</p>
|
|
<p>
|
|
Ab dem Punkt verhä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 "default-Zustand" befindet
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1461892641949" ID="ID_600125030" MODIFIED="1461892653415" TEXT="Einfügen == vom Default-Wert abweichen"/>
|
|
<node CREATED="1461892654148" ID="ID_1086408965" MODIFIED="1461892662590" TEXT="Löschen == zum Default-Wert zurückkehren"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1461966988471" ID="ID_751317533" MODIFIED="1512926192022" TEXT="prüfen vs ignorieren">
|
|
<node CREATED="1461967012164" ID="ID_1380142317" MODIFIED="1512926192022" TEXT="prüfen">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1461967015883" ID="ID_1980878581" MODIFIED="1461967028022" TEXT="benötigt zusätzliche Mechanismen"/>
|
|
<node CREATED="1461967028489" ID="ID_1694830814" MODIFIED="1461967042164" TEXT="verifiziert Validität der Diff-Nachricht"/>
|
|
</node>
|
|
<node CREATED="1461967044480" ID="ID_810828038" MODIFIED="1512926192022" 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 "durchwinken""/>
|
|
</node>
|
|
<node COLOR="#990000" CREATED="1461967003141" HGAP="29" ID="ID_1805886948" MODIFIED="1512926192025" 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üfen ist <b>emptySrc</b> nicht implementierbar
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...weil es für <b>emptySrc</b> keine neutrale Antwort gibt.
|
|
</p>
|
|
<p>
|
|
Denn dieses Prädikat wird von der typischen Implementierung des Diff-Applikators
|
|
</p>
|
|
<p>
|
|
in beiden Richtungen verwendet, also sowohl Prüfung auf empty ("expect no further elements"),
|
|
</p>
|
|
<p>
|
|
alsauch der Check, daß ü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üfung verzichten </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üfung erfordert eine Flag für jedes bekannte Feld"/>
|
|
<node CREATED="1461967384579" ID="ID_1805227176" MODIFIED="1461967401644" TEXT="diese Flag wird gesetzt, sobald der Diff das Feld "berührt""/>
|
|
<node CREATED="1461967428061" ID="ID_766802419" MODIFIED="1512926192026" TEXT="auß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ützt <b>default</b>-Wert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1475506680125" HGAP="58" ID="ID_1865970661" MODIFIED="1512926192027" TEXT="Variante" VSHIFT="13">
|
|
<node CREATED="1475506691595" ID="ID_69735021" MODIFIED="1475506704861" TEXT="emptySrc -> 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 Übrigen: stets prü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="1512926192029" TEXT="Spezifikation" VSHIFT="18">
|
|
<cloud COLOR="#fce9c0"/>
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="pencil"/>
|
|
<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="1512926192032" 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="1512926192032" 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="1512926192032" 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="1512926192032" TEXT="injectNew">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1455982969073" ID="ID_1599013380" MODIFIED="1463675987940" TEXT="set known field'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="1512926192033" 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="1512926192034" 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ß 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" ID="ID_1893171223" MODIFIED="1512926192035">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Einschränkung: <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ämlich indem alle Attribute als "berührt" und akzeptiert markiert werden.
|
|
</p>
|
|
<p>
|
|
Somit könnten sofort Zuweisungen als Nä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ö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="1512926192035" 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ützt"/>
|
|
<node CREATED="1461963648481" ID="ID_1893776707" MODIFIED="1461963654996" TEXT="löst einen Logik-Fehler aus"/>
|
|
</node>
|
|
<node CREATED="1455928184504" ID="ID_850800360" MODIFIED="1512926192035" 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ösen Fehler aus"/>
|
|
</node>
|
|
<node CREATED="1455928189695" ID="ID_1575249106" MODIFIED="1512926192036" 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 <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="1512926192037" 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ßt, es findet <b>keine Verifikation</b> statt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1455928193863" ID="ID_579601999" MODIFIED="1512926192037" 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="1512926192038" TEXT="fest eingebaut...">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458175942866" ID="ID_321386709" MODIFIED="1512926192038" TEXT="match">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458177113846" ID="ID_885225658" MODIFIED="1461966728693" TEXT="prüft ID-Name der Spec gegen Feldname des Zieles"/>
|
|
</node>
|
|
<node CREATED="1458176002762" ID="ID_233019425" MODIFIED="1512926192038" 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üfen, ob die Spec ein Attribut bezeichnet"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458175991795" ID="ID_998867093" MODIFIED="1512926192039" TEXT="optional...">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458176008025" ID="ID_384595680" MODIFIED="1512926192040" 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" ID="ID_88342940" MODIFIED="1512926192040" 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's eben keine Zuweisung"/>
|
|
<node CREATED="1458177749233" ID="ID_1737530420" MODIFIED="1458177953095" TEXT="auch nicht nötig bei sub-Scopes"/>
|
|
<node CREATED="1458177803730" ID="ID_1570261235" MODIFIED="1458177953095" TEXT="auch nicht nötig bei immutable values"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458176018087" ID="ID_280816523" MODIFIED="1512926192041" TEXT="mutator">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1458177821712" ID="ID_850096330" MODIFIED="1458177953095" TEXT="baut einen sub-Mutator für einen nested scope"/>
|
|
<node CREATED="1458177851988" ID="ID_835071729" MODIFIED="1458177953095" TEXT="setzt Auswahl per match voraus"/>
|
|
<node CREATED="1458177857939" ID="ID_1231660130" MODIFIED="1512926192041" 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ötig bei primitive values"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463687547746" ID="ID_241762171" MODIFIED="1512926192042" TEXT="defaulter">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1463687553569" ID="ID_695577132" MODIFIED="1463687602782" TEXT="veranlaßt Rückkehr zum default-Zustand"/>
|
|
<node CREATED="1463687629319" ID="ID_613393149" MODIFIED="1463687644409" TEXT="erfordert explizite Unterstützung durch das Zielobjekt"/>
|
|
<node CREATED="1463687644973" ID="ID_1677329552" MODIFIED="1463687741843" TEXT="fragwü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" ID="ID_450096384" MODIFIED="1512926192043" 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" ID="ID_806805692" MODIFIED="1512926192043" 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ächlich Objekte sind"/>
|
|
<node CREATED="1458177335632" ID="ID_1991494041" MODIFIED="1458177953094" TEXT="muß typischerweise die Interna des Zieles kennen"/>
|
|
<node CREATED="1458177347622" ID="ID_1000370922" MODIFIED="1512926192044" 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> aus Payload
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463691200369" ID="ID_542600281" MODIFIED="1463691259602" TEXT="überflüssiges Konzept">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
da effektiv bereits der Setter diese Funktionalität enthalten kann und muß,
|
|
</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ß 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ß mit den Anforderungen des Konstruktors harmonieren"/>
|
|
<node CREATED="1464117487974" ID="ID_1923901911" MODIFIED="1464117499776" TEXT="Rückkehr zum Default wird nicht unterstützt / abgebildet"/>
|
|
</node>
|
|
<node CREATED="1464117317517" ID="ID_1395959611" MODIFIED="1512926192046" TEXT="Binden auf "konzeptionelle" Properties">
|
|
<node CREATED="1464117513722" ID="ID_101207705" MODIFIED="1464117537611" TEXT="der "Key" ist nur eine ID, um speziellen Zugriffsmechanismus auszulösen"/>
|
|
<node CREATED="1464117553885" ID="ID_1617675711" MODIFIED="1464117567271" TEXT="u.U ist man überhaupt nur an sub-Mutation interessiert"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1458178113697" HGAP="61" ID="ID_38103760" MODIFIED="1512926192047" TEXT="Design-Schlußfolgerungen" VSHIFT="48">
|
|
<node CREATED="1463687362843" HGAP="116" ID="ID_775516687" MODIFIED="1512926192048" TEXT="Eingrenzung" VSHIFT="-28">
|
|
<node CREATED="1463687373889" ID="ID_155516876" MODIFIED="1512926192049" TEXT="Art von Attributen">
|
|
<node CREATED="1463687402462" ID="ID_1119981147" MODIFIED="1512926192050" TEXT="Objekt-Feld">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1463689795357" ID="ID_1774256004" MODIFIED="1463689801592" TEXT="kann nur zugewiesen werden"/>
|
|
<node CREATED="1463689912853" ID="ID_592726515" MODIFIED="1512926192050">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<b>injectNew</b> 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ö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ützt Zuweisung
|
|
</p>
|
|
<p>
|
|
ausschließlich bei schon existierenden Elementen. Demnach muß dort auch jedes Attribut
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
entweder schon mit dem Konstruktor mit gegeben worden sein
|
|
</li>
|
|
<li>
|
|
oder vorher einmal explizit eingefügt
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463687408597" ID="ID_783243290" MODIFIED="1512926192051" TEXT="optional Property">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1463688083594" ID="ID_1885891636" MODIFIED="1463688087910" TEXT="fragwürdiger Nutzen"/>
|
|
<node CREATED="1463688088457" ID="ID_1722180442" MODIFIED="1463688100116" TEXT="mutet "theoretisch" an"/>
|
|
<node CREATED="1463688147802" ID="ID_1259353240" MODIFIED="1512926192051" TEXT="Alternative">
|
|
<node CREATED="1463688157472" ID="ID_1130562584" MODIFIED="1463688173746" TEXT="auf "mindere defaults" 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ögliche Degradierung des Konzepts"/>
|
|
<node CREATED="1463688232550" ID="ID_1079102386" MODIFIED="1512926192052" TEXT="fehlende Funktionalitä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="1512926192052" 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önnte fü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="1512926192053" TEXT="implizit">
|
|
<node CREATED="1463691290845" ID="ID_1981578828" MODIFIED="1464226408020" TEXT="das Setter-lambda nimmt einen Wert"/>
|
|
<node CREATED="1464226412567" ID="ID_1195950141" MODIFIED="1512926192053" TEXT="der Wert-Typ muß 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üfen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463691359988" ID="ID_139397516" MODIFIED="1464226506135" TEXT="der Setter muß 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ä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ät.
|
|
</p>
|
|
<p>
|
|
Der gesendete Diff muß 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ährleisten">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1463691725515" ID="ID_947499289" MODIFIED="1463691741484" TEXT="d.h. soweit nicht zusätzlicher State notwendig ist"/>
|
|
<node CREATED="1463691767421" ID="ID_993508973" MODIFIED="1463691780901" TEXT="Flexibilität muß stets praktisch gerechtfertigt sein">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463691793010" ID="ID_1079571503" MODIFIED="1512926192056" TEXT="Fä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="1512926192056">
|
|
<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änderbaren Dingen"/>
|
|
<node CREATED="1463692663853" ID="ID_953408463" MODIFIED="1512926192056" TEXT="Aber: wie ändert man die Länge eins Clips im UI?">
|
|
<node CREATED="1463695438538" ID="ID_744412186" MODIFIED="1463695450620" TEXT="indem man sich auf ein Präsentations-Grid bezieht"/>
|
|
<node CREATED="1463695454504" ID="ID_945765975" MODIFIED="1463695469602" TEXT="und folglich nur Grid-Punkt-Koordinaten ändert"/>
|
|
<node CREATED="1463695472134" ID="ID_852324151" MODIFIED="1463695494714" TEXT="die eigentlichen Time-Entitäten leben in der Session, nicht im UI">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463695573392" ID="ID_1066626880" MODIFIED="1512926192057" TEXT="im Ü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> 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="1512926192059" VSHIFT="25">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Dilemma: <i>defaultable fields</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1463849536789" ID="ID_864537854" MODIFIED="1512926192059" TEXT="ich möchte sie unterstü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ützung muß 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> war, und nun explizit gesetzt wird,
|
|
</p>
|
|
<p>
|
|
muß dies als INS geschehen, denn eine Zuweisung an nicht aufgefü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" ID="ID_1305704801" MODIFIED="1512926192060" 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ü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ührt wurde.
|
|
</p>
|
|
<p>
|
|
Aber es ist kein optional field, d.h. wir haben keine Flag, die es als "defaulted" kennzeichnet
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463850138853" ID="ID_1262990387" MODIFIED="1512926192060" TEXT="also ist das Grundproblem">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1463850144180" ID="ID_103581818" MODIFIED="1463850157454" TEXT="daß 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ösung: <b>alles immer explizit</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463934907474" ID="ID_761652333" MODIFIED="1512926192061" TEXT="Auswege">
|
|
<node CREATED="1463934969522" ID="ID_960243774" MODIFIED="1512926192062" 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" ID="ID_1357485921" MODIFIED="1512926192062" TEXT="Protokoll-Auflagen">
|
|
<node CREATED="1463935116670" ID="ID_1375491306" MODIFIED="1463935125304" TEXT="nach dem ersten Durchgang muß alles gebunden sein"/>
|
|
<node CREATED="1463935126461" ID="ID_774412987" MODIFIED="1463935247552" TEXT="wenn ungebundene optionals, stets Abschließen mit "after END""/>
|
|
<node COLOR="#a0345c" CREATED="1463937146214" ID="ID_1154054760" MODIFIED="1463937452255" TEXT="attraktiv, aber unehrlich">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
diese Lösung war zunächst mein Favorit.
|
|
</p>
|
|
<p>
|
|
Sie erscheint sehr elegant, weil man im TreeMutator <i>überhaupt nichts</i> dafür tun muß.
|
|
</p>
|
|
<p>
|
|
Und die Zusatz-Forderung, daß dann eben das Diff richtig gesendet werden muß,
|
|
</p>
|
|
<p>
|
|
erscheint "geschenkt", da wir ohnehin zunächst einmal die Diffs explizit im Code erzeugen.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Aber, nach längerer Ü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ärbar und schwer wartbar machen. Das ist die Art von "Features",
|
|
</p>
|
|
<p>
|
|
für die man sich nach einiger Zeit entschuldigen muß.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Und noch schlimmer: eigentlich läuft dieser Ansatz darauf hinaus, die Konsistenzprüfung
|
|
</p>
|
|
<p>
|
|
am Ende zu deaktivieren. Nur wir machen das nicht explizit, sondern durch die Hintertür.
|
|
</p>
|
|
<p>
|
|
Also dann besser klar und ehrlich!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1463934995110" ID="ID_1084188576" MODIFIED="1512926192062" TEXT="dem Mutator sagen, was optional ist">
|
|
<node CREATED="1463935368308" ID="ID_1008223435" MODIFIED="1463935375919" TEXT="was grundsä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ösung eines nicht vorhandenen Problems">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...denn unter dem Strich würden wir hiermit volle Unterstützung für opitonale Attribute einführen,
|
|
</p>
|
|
<p>
|
|
also eine Attribut-Semantik auf eine Feld-Semantik draufpflanzen.
|
|
</p>
|
|
<p>
|
|
Aber in der vorausgegangenen Analyse habe ich mich schon davon überzeugt,
|
|
</p>
|
|
<p>
|
|
daß wir keine Attribut-Semantik brauchen. Und wenn doch, dann bietet das Diff-System
|
|
</p>
|
|
<p>
|
|
immer noch die Mö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ü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="1512926192063" TEXT="Konsequenzen" VSHIFT="26">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1463937922318" ID="ID_74130402" MODIFIED="1512926192063" TEXT="isEmpty">
|
|
<node CREATED="1463937972255" ID="ID_1554206938" MODIFIED="1463938146376" TEXT="muß umdefiniert werden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
denn in den meisten, wichtigsten Fällen get es um einen non-empty-check,
|
|
</p>
|
|
<p>
|
|
bevor ein anderes Verifikations-Prä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üft werden"/>
|
|
<node CREATED="1463937988180" ID="ID_1353983852" MODIFIED="1463938000454" TEXT="das gilt leider für alle Bindings"/>
|
|
<node CREATED="1464212233893" ID="ID_1520677416" MODIFIED="1464212254420" TEXT="umdrehen in: hasSrc">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1463938033527" ID="ID_165279544" MODIFIED="1512926192064" TEXT="neue Primitive: completeScope">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1464113590258" ID="ID_1613216716" MODIFIED="1464113600260" TEXT="auch ein hook für Aufrä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" ID="ID_669832549" MODIFIED="1512926192064" 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=""ein Attribut" ist aber der natürliche Basisfall fü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 »onion-Layer« verwenden"/>
|
|
<node CREATED="1464226871930" ID="ID_569490118" MODIFIED="1464226897116" TEXT="gut zur Reduktion der Komplexitä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ügen sich natü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ür < 30 Attribute"/>
|
|
<node CREATED="1464227042771" ID="ID_1594139733" MODIFIED="1464227114093" TEXT="vermeidet heap-basierte Collection">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
jedwede "bessere" Implementierung muß zwingend einen Container verwenden,
|
|
</p>
|
|
<p>
|
|
der dann die Lambdas für die einzelnen Setter auf den Heap legt.
|
|
</p>
|
|
<p>
|
|
Das ist hier tatsächlich viel schlechter, als das bischen lineare Suche
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1464227213180" HGAP="29" ID="ID_691018374" MODIFIED="1512926192067" TEXT="Implementierung" VSHIFT="66">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1464227218795" ID="ID_1100206442" MODIFIED="1512926192068" TEXT="ist grundsätzlich "schon da"">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
....durch meinen allerersten Draft,
|
|
</p>
|
|
<p>
|
|
fü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="1512926192070" 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änkung nicht sinnvoll zu begründen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1464396320922" ID="ID_1981813349" MODIFIED="1512926192070" TEXT="GenNode umgeht das (bewußt)">
|
|
<node CREATED="1464396885391" ID="ID_1510453315" MODIFIED="1464397164031" TEXT="Begrü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ösung: Variante für EntryID">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1464397032747" ID="ID_1595458691" MODIFIED="1464397057946" TEXT="fü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ß später eine Symbol-Tabelle aufgebaut wird.
|
|
</p>
|
|
<p>
|
|
Dann kann man sich immer noch überlegen, ob man dann <i>an dieser Stelle</i> 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ü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ühren">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1464387102850" ID="ID_1022478410" MODIFIED="1464387148396" TEXT="Fehlererkennung nicht mö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ß 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="1512926192074" TEXT="unschö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ß 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 überhaupt eine Alternative">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1465041597680" ID="ID_31475692" MODIFIED="1512926192075" TEXT="Abwä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ßt, es gibt nur minimale, themantische Überlappung.
|
|
</p>
|
|
<p>
|
|
Also ist die Verwendung von Vererbung hier sogar die <i>beste</i> Lö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ür die ID ist ein Dilemma">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt, wie rum man es auch auflöst, wird die Lösung auf einer Seite schlechter
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
wenn wir für den Payload-Typ einen Typ-Parameter nehmen, blähen wir den Standard-Fall (Setter) auf
|
|
</li>
|
|
<li>
|
|
andererseits <i>ist es unbstreitbar einfach so,</i> daß für den Mutator-Builder die Typisierung komplett implizit ist, das muß die Closure mit sich 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üfung aufwendiger (Stringvergleich statt Vergleich von Hashes), und außerdem wird ein Typ-Mismatch nicht mehr auf der Ebene der Verb-Anwendung entdeckt und entsprechend gekennzeichnet, sondern wir hoffen, daß 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ß dann der eingeschachtelte Mutator irgendwo auf Widerspruch lä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ür verschiedene UseCases.
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
Fall 1: String-Key und der Typ muß 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 übersieht man nur zu leicht!!!!!
|
|
</p>
|
|
<p>
|
|
Da es ein nested scope ist, ist es immer ein Objekt,
|
|
</p>
|
|
<p>
|
|
also repräsentiert als Rec<GenNode>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1457232746179" ID="ID_1793680066" MODIFIED="1512926192076" TEXT="Rec<GenNode>" VSHIFT="11">
|
|
<icon BUILTIN="full-4"/>
|
|
<node CREATED="1464305377785" ID="ID_396910166" MODIFIED="1512926192076" TEXT="Vorüberlegungen">
|
|
<node CREATED="1464305417066" ID="ID_1059660516" MODIFIED="1512926192077" TEXT="wü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ü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ätzliche Indirektion / VTable"/>
|
|
<node CREATED="1464305800207" ID="ID_1296045436" MODIFIED="1464305818736" TEXT="das "Backdoor" in Record::Mutator bleibt bestehen"/>
|
|
</node>
|
|
<node CREATED="1464305842833" ID="ID_365028607" MODIFIED="1512926192078" TEXT="Abwägung">
|
|
<node CREATED="1464305847001" ID="ID_845708071" MODIFIED="1512926192079" TEXT="Aufwand">
|
|
<node CREATED="1464305850440" ID="ID_592160280" MODIFIED="1512926192079" TEXT="dedizierte Impl">
|
|
<node CREATED="1464305871806" ID="ID_1200803242" MODIFIED="1464305874249" TEXT="ein Stack"/>
|
|
<node CREATED="1464306044598" ID="ID_780490719" MODIFIED="1512926192080" TEXT="pro Stackframe">
|
|
<node CREATED="1464305896754" ID="ID_569905839" MODIFIED="1464305908965" TEXT="ref Rec::Mutator"/>
|
|
<node CREATED="1464305910520" ID="ID_1883294095" MODIFIED="1512927037793" 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" ID="ID_1876525606" MODIFIED="1512926192081" TEXT="per TreeMutator">
|
|
<node CREATED="1464305876237" ID="ID_633615671" MODIFIED="1464305878376" TEXT="ein Stack"/>
|
|
<node CREATED="1464306061588" ID="ID_735374750" MODIFIED="1512926192081" TEXT="pro Stackframe">
|
|
<node CREATED="1472781610135" ID="ID_150002810" MODIFIED="1512927037793">
|
|
<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öriger Iterator"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1472781868035" HGAP="40" ID="ID_195135751" MODIFIED="1512926192082" 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> 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" ID="ID_1038582300" MODIFIED="1512926192084" 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ü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ö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ß 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ühren"/>
|
|
<node CREATED="1472931074754" ID="ID_1078549727" MODIFIED="1472931083789" TEXT="hab's daher dann fest verdrahtet"/>
|
|
<node CREATED="1472931084281" ID="ID_358955160" MODIFIED="1472931095987" TEXT="erlaube "Abkürzung" ü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ü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ängerfristig doch davon ausgehe,
|
|
</p>
|
|
<p>
|
|
daß es einfach einen Metadaten-Scope gibt
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Die Inkonsequenz nun ist, daß im Rec::Mutator keine Magie dafür vorgesehen ist
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1472931195618" ID="ID_1075996120" MODIFIED="1512926192087" TEXT="aber Meta-Attribut fü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="1512926192088" TEXT="betrifft">
|
|
<node CREATED="1472931395526" ID="ID_1159599973" MODIFIED="1472931403393" TEXT="ins(type = X)"/>
|
|
<node CREATED="1472931404525" ID="ID_1215961897" MODIFIED="1512926192088" TEXT="set(type = X)">
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1472931416323" ID="ID_1856124935" MODIFIED="1472931434577" TEXT="AUA: bisher ü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ö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üßte Binding-Operationen anpassen">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1472931829467" ID="ID_383672039" MODIFIED="1512926192090" STYLE="fork" TEXT="Dekorator">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1472934618917" ID="ID_1010335466" MODIFIED="1472934744607" TEXT="legt sich um den äuß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" ID="ID_1233852840" MODIFIED="1512926192090" 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ächlich liefert jeder DSL-Aufruf einen Builder<TreeMutator<...>>.
|
|
</p>
|
|
<p>
|
|
Die normalen DSL-Aufrufe sind eben genau so gestrickt, daß jeweils der oberste Builder entfernt wird,
|
|
</p>
|
|
<p>
|
|
ein neuer Layer darübergebaut und das Ganze wieder in einen Builder eingewickelt wird.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Dadurch ist es schwer bis unmö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 "abgreifen". Ich kann daher nicht die DSL-Notation verwenden,
|
|
</p>
|
|
<p>
|
|
um den Dekorator fü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ür GenNode">
|
|
<node CREATED="1472782055217" ID="ID_1053081307" MODIFIED="1472782069243" TEXT="Selector -> ID-Vergleich"/>
|
|
<node CREATED="1472782069784" ID="ID_893616200" MODIFIED="1472782075874" TEXT="Constructor -> copy"/>
|
|
<node CREATED="1472782077062" ID="ID_1012433129" MODIFIED="1472782092512" TEXT="Setter -> assign DataCap"/>
|
|
<node CREATED="1472782093956" ID="ID_1200489627" MODIFIED="1472782120696">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Mut -> <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ß Semantik im TreeMutator API korrigieren"/>
|
|
<node CREATED="1472830131284" ID="ID_1581714242" MODIFIED="1472830153132" TEXT="Problem: nur die Implementierung weiß, was ein "Attribut" ist"/>
|
|
<node CREATED="1472830122757" ID="ID_937476321" MODIFIED="1472830129487" TEXT="brauche Unterstützung vom Selector"/>
|
|
<node CREATED="1472830164119" ID="ID_1323583081" MODIFIED="1512926192093" TEXT="Lö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="1512926192093" TEXT="default-return muß true sein">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1472830226455" ID="ID_1975724782" MODIFIED="1472830232658" TEXT="aber natürlich nur wenn leer..."/>
|
|
<node CREATED="1472830286462" ID="ID_1170732286" MODIFIED="1472830298035" TEXT="Einsicht: END und ATTRIBS kö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ß von jeder Primitive unterstü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 »onion-layer«"/>
|
|
<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 "AFTER"-Verb">
|
|
<node CREATED="1461967962814" ID="ID_1667097505" MODIFIED="1472219338757" TEXT="weil das Zwischenschritte überspringt">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt,
|
|
</p>
|
|
<p>
|
|
das AFTER-Verb wird übersetzt in ein skip_until,
|
|
</p>
|
|
<p>
|
|
und das läuft dann entweder in jedem Layer
|
|
</p>
|
|
<p>
|
|
oder nur in dem Layer, der auf die Spec paßt.
|
|
</p>
|
|
<p>
|
|
In jedem Fall gerä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ßt also, es wird stets der zuerst gebundene Layer komplett durchgespult,
|
|
</p>
|
|
<p>
|
|
gefolgt dann von dem nächsten Layer.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Die Konsequenz ist, daß es keine Mischung der Typen geben kann.
|
|
</p>
|
|
<p>
|
|
Es müssen immer zwingend alle Elemente eines Typs von einem Layer behandelt werden
|
|
</p>
|
|
<p>
|
|
und diese Elemente müssen geschlossen hintereinander in der Reihenfolge liegen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1465428839332" ID="ID_909803930" MODIFIED="1512926192097" 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" ID="ID_132124444" MODIFIED="1512926192099" TEXT="Modus der Anwendung">
|
|
<node CREATED="1465664762944" ID="ID_1254081914" MODIFIED="1465665479208" TEXT="DiffApplicator<TreeMutator>">
|
|
<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önnte später geeignete Automatismen schaffen,
|
|
</p>
|
|
<p>
|
|
die sich diesen TreeMutator beschaffen
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
indem erkannt wird, daß 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äufig in C++ auftretende Problem:
|
|
</p>
|
|
<p>
|
|
wie baue und verwalte ich eine konkrete Implementierung,
|
|
</p>
|
|
<p>
|
|
ohne gleich ein ganzes Management-Framework einführen zu müssen.
|
|
</p>
|
|
<p>
|
|
Letzten Endes lief  das auch in diesem Fall auf inline-Storage hinaus...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1465665492727" ID="ID_743684748" MODIFIED="1465665500210" TEXT="muß 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="1512926192100" TEXT="problematisch">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1465665594969" ID="ID_1072421347" MODIFIED="1512926192101" TEXT="unbekannte Größe">
|
|
<node CREATED="1465665884698" ID="ID_418230667" MODIFIED="1465665893757" TEXT="default-Buffergöße vorlegen"/>
|
|
<node CREATED="1465665894273" ID="ID_970277186" MODIFIED="1465665901124" TEXT="Größe proben und anpassen"/>
|
|
<node CREATED="1465665901640" ID="ID_650164559" MODIFIED="1465665920298" TEXT="Größe für "bekannte" Targets statisch hinterlegen"/>
|
|
<node CREATED="1465852237233" HGAP="27" ID="ID_699424989" MODIFIED="1512926192101" TEXT="Beschluß" VSHIFT="12">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1465852248487" ID="ID_1402619250" MODIFIED="1465852255154" TEXT="zunächst die einfachste Lö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öglichkeit vorsehen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1465665614990" ID="ID_1851089586" MODIFIED="1512926192102" TEXT="verwirrendes API">
|
|
<node CREATED="1465665980686" ID="ID_1537039073" MODIFIED="1465665991232" TEXT="Anwendung sollte selbstevident sein"/>
|
|
<node CREATED="1465666009690" ID="ID_1006664389" MODIFIED="1512926192103" TEXT="Typ-Signatur sollte den Weg weisen">
|
|
<node CREATED="1465674483754" ID="ID_155190959" MODIFIED="1465674558135" TEXT="sehe nur eine Lö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 "Riten""/>
|
|
<node CREATED="1465666524573" HGAP="30" ID="ID_462712191" MODIFIED="1512926192103" TEXT="Schluß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 über Metaprogrammierung / Spezialisierung"/>
|
|
<node CREATED="1468761997202" ID="ID_1870085622" MODIFIED="1512926192103" TEXT="kombinierte Lösung">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1468762009304" ID="ID_1554371522" MODIFIED="1468762018314" TEXT="Interface DiffMutable"/>
|
|
<node CREATED="1468762031701" ID="ID_48737788" MODIFIED="1512927037793" 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" ID="ID_52899390" MODIFIED="1512927037806" 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ß länger leben als der Adapter"/>
|
|
<node CREATED="1468762118913" ID="ID_1064755787" MODIFIED="1468762128867" TEXT="Lö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ß ein unbedarfter client diesen Trick übershieht
|
|
</p>
|
|
<p>
|
|
und daher den Rückgabewert wegwirft.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Argument: we soweit einsteigt, die Metaprogramming-Lö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" HGAP="38" ID="ID_1718572301" MODIFIED="1512927037805" 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> bieten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1469544027620" HGAP="38" ID="ID_1475348824" MODIFIED="1512926192108" TEXT="Storage-Probleme" VSHIFT="11">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1469544055624" ID="ID_390940604" MODIFIED="1512926192109" 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ä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> 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" HGAP="35" ID="ID_366424331" MODIFIED="1512926192110" VSHIFT="16">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Lö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" ID="ID_1924059831" MODIFIED="1512926192111" 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ängigkeit vom konkreten Zieltyp"/>
|
|
<node CREATED="1469544400544" ID="ID_1789924824" MODIFIED="1469544413058" TEXT="Resultat ist ein TreeMutator im internen Puffer"/>
|
|
</node>
|
|
<node CREATED="1469544471294" ID="ID_1306807662" MODIFIED="1512926192111" TEXT="Problem-1: Puffer-Größ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ä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ö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ö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ß sie uns im gegebenen Kontext umbringen...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1469544496907" ID="ID_447935464" MODIFIED="1512926192113" 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> 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> 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" HGAP="41" ID="ID_268789302" MODIFIED="1512926192115" VSHIFT="17">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Lösungsversuch: <b>doppelte Hülle</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1469545168798" ID="ID_511952630" MODIFIED="1512926192115" 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" ID="ID_1145081121" MODIFIED="1512926192116" TEXT="konkrete Folgen...">
|
|
<node CREATED="1469545417579" ID="ID_474776082" MODIFIED="1469545427486" TEXT="alle virtuellen Methoden im generischen Teil"/>
|
|
<node CREATED="1469545428289" ID="ID_1077900797" MODIFIED="1512927037792" 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" ID="ID_1752356251" MODIFIED="1512927037792" 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ält Stack,"/>
|
|
<node CREATED="1469545562151" ID="ID_1390916085" MODIFIED="1469545568130" TEXT="mit passender Puffergröße"/>
|
|
</node>
|
|
<node CREATED="1469545592171" ID="ID_1826413238" MODIFIED="1512927037792" TEXT="dedizierter Applikator">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1469545598922" ID="ID_815414440" MODIFIED="1469545609733" TEXT="hä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> 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" HGAP="37" ID="ID_263708712" MODIFIED="1512926192120" 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<DiffMutable>"/>
|
|
<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="1512926192120" 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> muß 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öß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&Irrtum">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
ein sinnvoller Startwert wird heuristisch vorgegeben
|
|
</li>
|
|
<li>
|
|
wenn die Allokation scheitert, die Exception fangen und die tatsächlich benötigte Größ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ä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" ID="ID_1139754084" MODIFIED="1512926192124" TEXT="Zugang zum Mutator-Binding">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt:
|
|
</p>
|
|
<p>
|
|
gegeben ein syntaktisch sinnvoller top-level-Aufruf ("wende das Diff an")
|
|
</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ü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ß die Closure als Wert-Objekt rausgegeben werden"/>
|
|
<node CREATED="1472495487478" ID="ID_57266631" MODIFIED="1512926192125" TEXT="Lö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<TargetTyp>">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1472494413960" ID="ID_1460674703" MODIFIED="1472494571740" TEXT="Erweiterungspunkt fü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 CREATED="1465860736044" ID="ID_40337378" MODIFIED="1512926192126" 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ü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 überraschende Lösung.
|
|
</p>
|
|
<p>
|
|
und zwar per handle.get()
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1472172348526" ID="ID_1671229453" MODIFIED="1512926192127" TEXT="mögliche Alternativen">
|
|
<node CREATED="1472172364204" ID="ID_261496162" MODIFIED="1472172467939" TEXT="Closure gibt TreeMutator& zurück">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
erscheint mir fehleranfällig und irreführend für den Nutzer der Schnittstelle.
|
|
</p>
|
|
<p>
|
|
Denn er muß zwar das Objekt in das Handle platzieren, dann aber auch noch einen Pointer zurü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äre billig, aber auch wieder beliebig.
|
|
</p>
|
|
<p>
|
|
Es macht keinen Sinn vom API-Design her, sondern man müßte es halt machen,
|
|
</p>
|
|
<p>
|
|
weil die Implementierung den Zeiger auf den geschachtelen sub-Mutator umsetzen muß.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1472172586703" ID="ID_608960091" MODIFIED="1512926192128" TEXT="prüfen">
|
|
<node CREATED="1472172593710" ID="ID_1915451499" MODIFIED="1472172608024" TEXT="geschachtelter Scope muß beim Verlassen komplett abgearbeitet sein"/>
|
|
<node CREATED="1472172608636" ID="ID_1263541514" MODIFIED="1472172634020" TEXT="wir steigen niemals ü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ß vor dem Öffnen des geschachtelten Scopes
|
|
</p>
|
|
<p>
|
|
dieser zumindest einmal per ins "angelegt" 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äftiges Beispiel-Diff">
|
|
<node CREATED="1472122379548" ID="ID_270981817" MODIFIED="1472122384864" TEXT="sollte alle Features vorführen"/>
|
|
<node CREATED="1472122385380" ID="ID_773660909" MODIFIED="1472122391943" TEXT="sollte wichtige Grenzfä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ür den Leser verständlich zu halten.
|
|
</p>
|
|
<p>
|
|
Die Idee ist, daß 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üssen für jede Art von "onion-layer" (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ürzungen im Code-Pfad ausnützen. Die Gefahr schlummert aber im Zusammenspiel
|
|
</p>
|
|
<p>
|
|
der konkreten Bindings mit mehreren "onion layers"!
|
|
</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ü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ür Lambdas dokumentieren">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1465860661877" ID="ID_942624903" MODIFIED="1472498127725" TEXT="Builder-API fü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ür spä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önnen, oder gar Diff-Nachrichten erzeugen.
|
|
</p>
|
|
<p>
|
|
Das ist nun kein spezielles Problem der gewählten Implementierungs-Technik, sondern rührt daher,
|
|
</p>
|
|
<p>
|
|
daß der Client hier eigentlich ein Protokoll implementieren muß.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1458850263688" ID="ID_555018476" MODIFIED="1512926192135" TEXT="Zusammenführen">
|
|
<node CREATED="1458850294083" ID="ID_393704697" MODIFIED="1458850302901" TEXT="der normale GenNode-Applikator"/>
|
|
<node CREATED="1458850282285" ID="ID_435722140" MODIFIED="1512926192135" TEXT="Prü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ür Tree-Applikator ersetzen"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1461968295826" ID="ID_693317592" MODIFIED="1512926192135" TEXT="prüfen: soll das »AFTER«-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ützlich für handgeschriegbene Diffs"/>
|
|
<node CREATED="1461968443334" ID="ID_1266765273" MODIFIED="1461968454521" TEXT="es verträgt sich nicht mit gemischten Kindern"/>
|
|
<node CREATED="1465428190234" ID="ID_1957591180" MODIFIED="1512926192136" TEXT="Kompromiß">
|
|
<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ß es nicht immer anwendbar ist"/>
|
|
<node CREATED="1465428216271" ID="ID_1296901581" MODIFIED="1465428234145" TEXT="die generische Variante "after Ref::END" ist sehr gut"/>
|
|
<node CREATED="1465428236860" ID="ID_339833424" MODIFIED="1465428248614" TEXT="speziell Attribut-Binding unterstützt zur generische Variante"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1469545751885" ID="ID_660087752" MODIFIED="1469545906061" TEXT="Namensgebung fü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ä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ü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 ü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ührt zu verworrener Implementierung bzw. ist unmö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äß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 ü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äsentation der Payload">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1473352291785" ID="ID_1639951853" MODIFIED="1473352300715" TEXT="vorerst nicht benötigt"/>
|
|
<node CREATED="1473352306190" ID="ID_1647542723" MODIFIED="1473352310810" TEXT="wäre besser daß 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ür mö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ösen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1458850471228" ID="ID_167381938" MODIFIED="1473352333631" TEXT="Unit-Test hierfür">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1473352396906" HGAP="-48" ID="ID_392196966" MODIFIED="1512926192146" TEXT="Integration" VSHIFT="25">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1473352465473" ID="ID_158999012" MODIFIED="1502453392316" TEXT="in Tangible">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1475250911087" ID="ID_1042895809" MODIFIED="1512926192147" TEXT="zu klären">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1475250919286" ID="ID_211228413" MODIFIED="1512926192147" TEXT="wie sieht die initiale (diff)Nachricht aus">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1475355977081" ID="ID_1302138609" MODIFIED="1475355984716" TEXT="dediziertes API"/>
|
|
<node CREATED="1475356001462" ID="ID_1339165799" MODIFIED="1475356007240" TEXT="Nexus zerlegt das"/>
|
|
<node CREATED="1475356007860" ID="ID_1405013613" MODIFIED="1475356015255" TEXT="löst direkt Anwendung aus"/>
|
|
</node>
|
|
<node CREATED="1475251507800" ID="ID_1645310973" MODIFIED="1512926192147" TEXT="wo/wie wird Diff-Nachricht behandelt">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1475355925880" ID="ID_464242009" MODIFIED="1487275490746" TEXT="...analog zur "mark"-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="1512926192149" TEXT="wo steckt der Diff selber">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1475251013513" ID="ID_1464747905" MODIFIED="1475251058167" TEXT="Diff == iterierbare <DiffStep>-Sequenz">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1475251032255" ID="ID_824967618" MODIFIED="1475251053067" TEXT="paßt nicht in eine GenNode">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1475355960899" ID="ID_1468155641" MODIFIED="1475355974481">
|
|
<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="1512926192149" TEXT="wer ist der Kommunikationspartner">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1475356021762" ID="ID_1261042951" MODIFIED="1475356028310" TEXT="irrelevant, da abstrahiert"/>
|
|
</node>
|
|
<node CREATED="1475250957097" ID="ID_1839306136" MODIFIED="1475250969909" TEXT="wie kennt das Tangible diesen Partner">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#990000" CREATED="1475342135193" HGAP="31" ID="ID_336806935" MODIFIED="1502453682285" 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=""Diff" 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üßte der Benutzer die Mechanik sehr genau verstehen, und stets eine auto-Variable definieren.
|
|
</p>
|
|
<p>
|
|
Sinnvoll wäre dieser Ansatz nur, wenn das UI-Bus-API eine MutationMessage const& nehmen würde,
|
|
</p>
|
|
<p>
|
|
denn dann könnte man den Builder-Aufruf inline schreiben.
|
|
</p>
|
|
<p>
|
|
Da wir aber stets den Diff moven und dann iterieren, scheidet const& aus
|
|
</p>
|
|
<p>
|
|
Und fü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ücken.
|
|
</p>
|
|
<p>
|
|
Dafür wird die äußere Hü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="1502453801372" TEXT="Problem: Puffergröße">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1475444135180" ID="ID_1434100612" MODIFIED="1475444176904" TEXT="sinnvoll: Spezialfall fü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="1514342136914" TEXT="Schritt-2">
|
|
<linktarget COLOR="#bdbad3" DESTINATION="ID_89098030" ENDARROW="Default" ENDINCLINATION="821;-1406;" ID="Arrow_ID_554743885" SOURCE="ID_1584846573" STARTARROW="None" STARTINCLINATION="1459;870;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1502453814499" ID="ID_727706359" MODIFIED="1502453827917" 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ö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="1502454083982">
|
|
<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änger"/>
|
|
</node>
|
|
<node CREATED="1502454117907" ID="ID_995116747" MODIFIED="1502454124761" TEXT="abstrakter Iterator">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1502454128617" ID="ID_1019985292" MODIFIED="1502454135844" TEXT="muß Interface sein"/>
|
|
<node CREATED="1502454136368" ID="ID_1196043940" MODIFIED="1502454138836" TEXT="IterSource"/>
|
|
<node CREATED="1502454139496" ID="ID_455247221" MODIFIED="1502454151066" TEXT="Problem: Übergabe">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1502454152431" ID="ID_1452648004" MODIFIED="1502454163000" TEXT="Diff ü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ß Erzeugungskontext weitergeben">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1475449460694" HGAP="13" ID="ID_425831735" MODIFIED="1512926192154" TEXT="Prototyp: MockElm" VSHIFT="32">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1475449491378" ID="ID_1309107114" MODIFIED="1475449505548" TEXT="fü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ä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<string,string>"/>
|
|
<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ügt eben <i>irgendwo</i> ein
|
|
</p>
|
|
<p>
|
|
Und es gibt nicht sowas wie das "zuletzt behandelte" 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="1512926192157" TEXT="Sinnvoll das zu erweitern">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1475450034810" ID="ID_445949466" MODIFIED="1512926192158" TEXT="pro">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1475450042009" ID="ID_1941838908" MODIFIED="1512926192159" TEXT="man kö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" ID="ID_736367412" MODIFIED="1512926192159">
|
|
<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" ID="ID_1285250844" MODIFIED="1512926192160" 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 "zufällige" Reihenfolge, die von den Hash-Werten der gespeicherten Daten abhängt.
|
|
</p>
|
|
<p>
|
|
Das bricht mit unserem grundsätzlichen Konzept der <b>kongruenten</b>  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äß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="1512926192162" 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ändigkeitshalber unterstü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ützen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<font NAME="SansSerif" SIZE="10"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1475506514203" HGAP="45" ID="ID_1183193114" MODIFIED="1512926192163" TEXT="Begrü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änkt unterstützbar"/>
|
|
<node CREATED="1475506559309" ID="ID_1767038604" MODIFIED="1475506896798" TEXT="Objekt -> ETD -> 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="1502593433790" TEXT="Unit-Tests" VSHIFT="18">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1473352475375" ID="ID_731425414" MODIFIED="1475546284267" TEXT="AbstractTangible_test">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1473352482502" ID="ID_1891838260" MODIFIED="1502593427480" TEXT="BusTerm_test">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502453280050" ID="ID_60387485" MODIFIED="1502599865199" 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="1502499469658" TEXT="Basisfall: Producer / Consumer">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502459264523" ID="ID_640036069" MODIFIED="1502499477449" TEXT="Builder">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502459259123" ID="ID_372973959" MODIFIED="1502550701286" TEXT="Diagnose-Dekorator">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1502459266371" ID="ID_883276790" MODIFIED="1502550704268" TEXT="Integrationstest">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448658726090" HGAP="18" ID="ID_37610818" MODIFIED="1512926192176" TEXT="Commands" VSHIFT="36">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1448658755071" ID="ID_1033500384" MODIFIED="1512926192178" TEXT="wie definieren">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1448658974985" ID="ID_974207484" MODIFIED="1448658989011" TEXT="Definition braucht Session-Modell"/>
|
|
<node CREATED="1448659018412" ID="ID_1988707066" MODIFIED="1512926192180" TEXT="zentral">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1448659021803" ID="ID_1800666256" MODIFIED="1448659025502" TEXT="nah an der Session"/>
|
|
<node CREATED="1448659026042" ID="ID_831434285" MODIFIED="1448659032566" TEXT="ein Schnittstellen-Paket"/>
|
|
<node CREATED="1448669306480" ID="ID_1009169288" MODIFIED="1483910782488">
|
|
<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="1512926192180" TEXT="dezentral">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1448659059734" ID="ID_1682547207" MODIFIED="1448659065617" TEXT="im GUI-Kontext"/>
|
|
<node CREATED="1448659079044" ID="ID_508900352" MODIFIED="1448659121799" TEXT="muß Session referenzieren">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...was andernfalles komplett vermeidbar wäre,
|
|
</p>
|
|
<p>
|
|
da im Ü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="1492442037503" TEXT="referenzieren">
|
|
<node CREATED="1448659283641" ID="ID_209203268" MODIFIED="1448659290276" TEXT="letztlich ein String"/>
|
|
<node CREATED="1448659347728" ID="ID_508578010" MODIFIED="1448659355835" TEXT="Konstante bei der Command-Funktion"/>
|
|
<node CREATED="1448659334058" ID="ID_683316035" MODIFIED="1492442253152" TEXT="Makro + Namenskonvention">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1448683561882" ID="ID_839961131" MODIFIED="1492442273525">
|
|
<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" ID="ID_405705528" MODIFIED="1512926192181" TEXT="API explizit">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1448658861760" ID="ID_1373851015" MODIFIED="1512926192182" TEXT="pro">
|
|
<node CREATED="1448658867680" ID="ID_766147415" MODIFIED="1448658870931" TEXT="sauber"/>
|
|
<node CREATED="1448659206251" ID="ID_1542057563" MODIFIED="1448659212278" TEXT="nah am konkreten Widget"/>
|
|
<node CREATED="1448659217489" ID="ID_214385592" MODIFIED="1448659227396" TEXT="integriert in sonstiges UI-Verhalten"/>
|
|
<node CREATED="1448658947429" ID="ID_302940509" MODIFIED="1448659157613" TEXT="Fehlaufrufe ausgeschlossen"/>
|
|
</node>
|
|
<node CREATED="1448658873767" ID="ID_1028163948" MODIFIED="1512926192183" TEXT="con">
|
|
<node CREATED="1448658883341" ID="ID_543652783" MODIFIED="1448658885457" TEXT="Aufwand"/>
|
|
<node CREATED="1448658885973" ID="ID_1734626095" MODIFIED="1448658940946" TEXT="ctxt-Menü aufbauen"/>
|
|
<node CREATED="1448659158177" ID="ID_1496901578" MODIFIED="1448659162165" TEXT="Namen müssen matchen"/>
|
|
<node CREATED="1448659163089" ID="ID_431765107" MODIFIED="1448659252553" TEXT="man muß Korrektheit prüfen"/>
|
|
<node CREATED="1448683674443" ID="ID_1931753413" MODIFIED="1448683684206" TEXT="Einheitlichkeit gefährdet"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448683454504" HGAP="42" ID="ID_510876193" MODIFIED="1512926192185" TEXT="API generisch" VSHIFT="-1">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1448683636672" ID="ID_1485949406" MODIFIED="1448683647815" TEXT="verhindert Wildwuchs"/>
|
|
<node CREATED="1448683475853" ID="ID_24599710" MODIFIED="1448683492586">
|
|
<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="1512926192185" TEXT="unterstützt weiterreichende Konzepte">
|
|
<node CREATED="1448683518496" ID="ID_1987782234" MODIFIED="1448683521843" TEXT="Perspektiven"/>
|
|
<node CREATED="1448683522359" ID="ID_723377610" MODIFIED="1448683525346" TEXT="Fokus-Konzept"/>
|
|
<node CREATED="1448683525822" ID="ID_1395068730" MODIFIED="1448683529258" TEXT="Gesten"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448691191042" HGAP="35" ID="ID_1710578352" MODIFIED="1512926192187" 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ä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<GenNode>"/>
|
|
<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ände im UI einschlä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ür die erste Integrationsrunde vö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" HGAP="76" ID="ID_329609486" MODIFIED="1504459942376" 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="1488423307196" TEXT="ad-hoc oder systematisch" VSHIFT="-2">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1448669512988" ID="ID_1184892495" MODIFIED="1448669517328" TEXT="fundamentale Frage"/>
|
|
<node CREATED="1448669517796" ID="ID_1165902172" MODIFIED="1448669526326" TEXT="für mich eigentlich sofort klar"/>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1448669527274" ID="ID_129855368" MODIFIED="1448669537302" TEXT="aber Vorsicht">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1448669556607" ID="ID_493021007" MODIFIED="1448683719946" TEXT="das wird nie fertig...">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1448669562478" ID="ID_869338862" MODIFIED="1448683732978" TEXT="niemand wird es verstehen">
|
|
<icon BUILTIN="smiley-angry"/>
|
|
</node>
|
|
<node CREATED="1448669567765" ID="ID_1254931544" MODIFIED="1448669587150" TEXT="bürstet die UI-Toolkits »gegen den Strich«"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448669636900" HGAP="51" ID="ID_1111001545" MODIFIED="1487270090214" TEXT="Einführen einer Zwischenebene" VSHIFT="-24">
|
|
<node CREATED="1448669646474" ID="ID_1590745326" MODIFIED="1448669657189" TEXT="hyper-räumliche Anordnung"/>
|
|
<node CREATED="1448669657633" ID="ID_1054403772" MODIFIED="1448669661661" TEXT="Focus-Bewegung"/>
|
|
<node CREATED="1448669662417" ID="ID_828883183" MODIFIED="1448669674907" TEXT="Einteilung in Arbeits-Räume"/>
|
|
<node CREATED="1448669679694" ID="ID_729190965" MODIFIED="1448669698124" TEXT="Konfigurierbarkeit"/>
|
|
<node CREATED="1448669675495" ID="ID_1257367197" MODIFIED="1448669679146" TEXT="Perspektiven"/>
|
|
<node CREATED="1448669699148" ID="ID_1264820517" MODIFIED="1448669700591" TEXT="Gesten"/>
|
|
</node>
|
|
<node CREATED="1448669742334" HGAP="41" ID="ID_1679641405" MODIFIED="1506174960063" 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="1448669822183" TEXT="lauscht als Observer mit"/>
|
|
<node CREATED="1448669824243" ID="ID_1225519733" MODIFIED="1448669832398" TEXT="hängt sich in diverse Punkte ein"/>
|
|
<node CREATED="1448669838745" ID="ID_1663939304" MODIFIED="1448669848204" TEXT="hällt ein lokales Zustansmodell"/>
|
|
<node CREATED="1448669854119" ID="ID_874080079" MODIFIED="1448669857794" TEXT="wertet Regeln aus"/>
|
|
<node CREATED="1448669869973" ID="ID_1259588429" MODIFIED="1448669888646" TEXT="sendet Enablement">
|
|
<node CREATED="1448669889514" ID="ID_1191247113" MODIFIED="1448669898645" TEXT="an die konkreten Trigger-Orte"/>
|
|
<node CREATED="1448669899113" ID="ID_990871123" MODIFIED="1492442595736" TEXT="er sendet jeweils die passende Command-ID"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487213803525" HGAP="36" ID="ID_735655054" MODIFIED="1506174964342" 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="1487270223050" TEXT="betreibt SpotLocator"/>
|
|
<node CREATED="1487275297855" ID="ID_417844993" MODIFIED="1487275301530" TEXT="betreibt FocusTracker"/>
|
|
<node CREATED="1487273437019" ID="ID_1600127727" MODIFIED="1487273440390" TEXT="betreibt Navigator"/>
|
|
</node>
|
|
<node CREATED="1487270226342" HGAP="32" ID="ID_1501993794" MODIFIED="1506174970573" TEXT="SpotLocator">
|
|
<node CREATED="1487270240084" ID="ID_1171094973" MODIFIED="1487270974510" TEXT="Erfüllungsgehilfe">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1487270245884" ID="ID_1688031043" MODIFIED="1487270249375" TEXT="zwei Aspekte">
|
|
<node CREATED="1487270262137" ID="ID_1256894684" MODIFIED="1512926192190" TEXT="Query">
|
|
<node CREATED="1487270288630" ID="ID_744259530" MODIFIED="1487270293609" TEXT=""wo sind wir"?"/>
|
|
<node CREATED="1487270294269" ID="ID_903348018" MODIFIED="1487270315902" TEXT="aktuelle WorkSite"/>
|
|
<node CREATED="1487270397967" ID="ID_1021036860" MODIFIED="1487270402138" TEXT="LRU history"/>
|
|
<node CREATED="1487270732305" ID="ID_702780522" MODIFIED="1487270736429" TEXT="current MediaObject"/>
|
|
</node>
|
|
<node CREATED="1487270263705" ID="ID_302637820" MODIFIED="1512926192190" TEXT="Act">
|
|
<node CREATED="1487270473421" ID="ID_911216598" MODIFIED="1487270477624" TEXT="go to FocusPath"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487270846218" ID="ID_419002057" MODIFIED="1487270848613" TEXT="WorkSite">
|
|
<node CREATED="1487270854793" ID="ID_1953389172" MODIFIED="1487270857285" TEXT="management">
|
|
<node CREATED="1487270860976" ID="ID_1497253556" MODIFIED="1512926192190" TEXT="Speicher">
|
|
<node CREATED="1487270865216" ID="ID_685718473" MODIFIED="1487270867635" TEXT="ref counted"/>
|
|
<node CREATED="1487270874103" ID="ID_1447761407" MODIFIED="1487270876306" TEXT="registration"/>
|
|
</node>
|
|
<node CREATED="1487270895587" ID="ID_167087353" MODIFIED="1512926192190" TEXT="established">
|
|
<node CREATED="1487270906322" ID="ID_1777452351" MODIFIED="1487270908365" TEXT="automatically"/>
|
|
<node CREATED="1487270909074" ID="ID_837195046" MODIFIED="1487270911037" TEXT="explicitly"/>
|
|
<node CREATED="1487270914353" ID="ID_810579522" MODIFIED="1512926192191" TEXT="derived">
|
|
<node CREATED="1487270924112" ID="ID_594873450" MODIFIED="1487270926371" TEXT="split"/>
|
|
<node CREATED="1487270926887" ID="ID_1400861012" MODIFIED="1487270927931" TEXT="clone"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487271257011" ID="ID_322579744" MODIFIED="1487271263454" TEXT="Bezugs-Rahmen">
|
|
<node CREATED="1487271264969" ID="ID_1714809239" MODIFIED="1487271270093" TEXT="Befehle/Aktionen binden"/>
|
|
<node CREATED="1487271279399" ID="ID_1349326625" MODIFIED="1487271281035" TEXT="Toolbar"/>
|
|
</node>
|
|
<node CREATED="1487272549027" ID="ID_380137967" MODIFIED="1487272552111" TEXT="Abgrenzung">
|
|
<node CREATED="1487272553075" ID="ID_743796483" MODIFIED="1487272556990" TEXT="schwierige Aufgabe"/>
|
|
<node CREATED="1487272557314" ID="ID_1783972929" MODIFIED="1487272561917" TEXT="muß dynamisch passieren"/>
|
|
<node CREATED="1487272580751" ID="ID_1313858813" MODIFIED="1487272585866" TEXT="verlassene WorkSites"/>
|
|
<node CREATED="1487273190221" ID="ID_1338036086" MODIFIED="1512926192191" TEXT="Genzen">
|
|
<node CREATED="1487273192636" ID="ID_1111226069" MODIFIED="1487273196407" TEXT="Dinge innerhalb"/>
|
|
<node CREATED="1487273196763" ID="ID_412767726" MODIFIED="1487273199727" TEXT="Dinge außerhalb"/>
|
|
<node CREATED="1487273226775" ID="ID_303777362" MODIFIED="1487273231067" TEXT="wann Grenzen anpassen"/>
|
|
</node>
|
|
<node CREATED="1487273234190" ID="ID_752073036" MODIFIED="1512926192191" TEXT="mehrere WorkSites">
|
|
<node CREATED="1487273239502" ID="ID_1735700195" MODIFIED="1487273244361" TEXT="können sich überlappen"/>
|
|
<node CREATED="1487273245421" ID="ID_1239635545" MODIFIED="1487273249360" TEXT="können naheliegen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487210642170" HGAP="28" ID="ID_337241818" MODIFIED="1487273940717" TEXT="Rahmen global" VSHIFT="-1">
|
|
<node CREATED="1487210648449" ID="ID_1430752735" MODIFIED="1504478468810" TEXT="konzeptionell">
|
|
<arrowlink COLOR="#34dbd3" DESTINATION="ID_1259700796" ENDARROW="Default" ENDINCLINATION="450;232;" ID="Arrow_ID_114106295" STARTARROW="None" STARTINCLINATION="-1346;-1090;"/>
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
|
<node CREATED="1487269963098" ID="ID_723170966" MODIFIED="1487269973740" TEXT="Raum als Metapher"/>
|
|
<node CREATED="1487269990582" ID="ID_164128588" MODIFIED="1487270005514">
|
|
<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="1487270010535" TEXT="operational">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487270012283" ID="ID_212889115" MODIFIED="1487270016268" TEXT="noch unklar">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1487270108238" ID="ID_1957235452" MODIFIED="1487270116960" TEXT="Wechselwirkung: konventioneller Fokus"/>
|
|
<node CREATED="1487270131499" ID="ID_1523536395" MODIFIED="1487270139462" TEXT="Observer für Status-Änderungen"/>
|
|
<node CREATED="1487270141994" ID="ID_1312242119" MODIFIED="1487270153774" TEXT="Problem: wo andocken?">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487272791578" ID="ID_1159463727" MODIFIED="1487272793622" TEXT="Strukturen">
|
|
<node CREATED="1487272794426" ID="ID_1016756623" MODIFIED="1487272797557" TEXT="transient"/>
|
|
<node CREATED="1487272797857" ID="ID_1810657142" MODIFIED="1512926192192" TEXT="persistent">
|
|
<node CREATED="1487273054439" ID="ID_185665950" MODIFIED="1487273060674" TEXT="Worksites bleiben dauerhaft erhalten"/>
|
|
<node CREATED="1487273061054" ID="ID_1347275006" MODIFIED="1487273070912" TEXT="werden im Modell gespeichert"/>
|
|
<node CREATED="1487273078564" ID="ID_1502695356" MODIFIED="1487273085526" TEXT="aber an den Benutzer gebunden"/>
|
|
</node>
|
|
<node CREATED="1487272800417" ID="ID_344309590" MODIFIED="1512926192192" TEXT="Wurzel">
|
|
<node CREATED="1487273308748" ID="ID_1980246174" MODIFIED="1487273353071" 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="1487273380871" TEXT="SpotLocator"/>
|
|
</node>
|
|
<node CREATED="1487272813119" ID="ID_1794274698" MODIFIED="1487272815043" TEXT="Bezug">
|
|
<node CREATED="1504460091831" ID="ID_150523428" MODIFIED="1504479334931" TEXT="Koordinatensystem">
|
|
<linktarget COLOR="#a9a5cd" DESTINATION="ID_150523428" ENDARROW="Default" ENDINCLINATION="1440;-3055;" ID="Arrow_ID_1485937133" SOURCE="ID_50865654" STARTARROW="None" STARTINCLINATION="1135;-33;"/>
|
|
<node CREATED="1504462869149" ID="ID_248419130" MODIFIED="1504463098235" TEXT="beschreibt Zugangsweg">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1504462874221" ID="ID_259258109" MODIFIED="1504463223186" TEXT="[optional] top-level Fenster"/>
|
|
<node CREATED="1504462888107" ID="ID_291187993" MODIFIED="1504463167809" TEXT="[optional] Perspektive"/>
|
|
<node CREATED="1504462891394" ID="ID_1569864275" MODIFIED="1504462902036" TEXT="Panel"/>
|
|
<node CREATED="1504463016698" ID="ID_337670154" MODIFIED="1504463019877" TEXT="lokal">
|
|
<node CREATED="1504463020913" ID="ID_1114832380" MODIFIED="1504463027724" TEXT="[optional] Gruppe"/>
|
|
<node CREATED="1504463028384" ID="ID_604807253" MODIFIED="1504463033315" TEXT="View-ID"/>
|
|
<node CREATED="1504463067051" ID="ID_1393457815" MODIFIED="1504463076837" TEXT="Komponente.Komponente..."/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1506956495003" ID="ID_364730867" MODIFIED="1506956499822" TEXT="konktete Topologie">
|
|
<node CREATED="1506956525336" ID="ID_344871464" MODIFIED="1506956531880" TEXT="stateful"/>
|
|
<node CREATED="1506956501474" ID="ID_905779000" MODIFIED="1506956515389" TEXT="zugänglich duch Navigator">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487273942038" HGAP="4" ID="ID_1254651309" MODIFIED="1487273950941" TEXT="Dynamik" VSHIFT="19">
|
|
<font NAME="SansSerif" SIZE="13"/>
|
|
<node CREATED="1487274013493" ID="ID_1949865241" MODIFIED="1487274016432" TEXT="mitbewegen">
|
|
<node CREATED="1487274017164" ID="ID_1079230717" MODIFIED="1512926192193" TEXT="Trigger">
|
|
<node CREATED="1487274021596" ID="ID_1455392363" MODIFIED="1487274026503" TEXT="Fenster wird aktiviert"/>
|
|
<node CREATED="1487274135596" ID="ID_1979220741" MODIFIED="1487274142903" TEXT="Keyboard-Focus shift"/>
|
|
<node CREATED="1487274145667" ID="ID_771196046" MODIFIED="1487274152518" TEXT="Selection gesetzt"/>
|
|
<node CREATED="1487274153058" ID="ID_624086875" MODIFIED="1487274159365" TEXT="Navigation expliizit"/>
|
|
</node>
|
|
<node CREATED="1487274921058" ID="ID_817413556" MODIFIED="1512926192194" TEXT="Ansatzpunkt">
|
|
<node CREATED="1487274932472" ID="ID_362677382" MODIFIED="1487274940459" TEXT="wie kann man Trigger installieren?"/>
|
|
<node CREATED="1487274942383" ID="ID_1727411524" MODIFIED="1512926192194" TEXT="model::Tangible">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1487274952662" ID="ID_137454278" MODIFIED="1487274963190" TEXT="immer?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1487274957301" ID="ID_1317780625" MODIFIED="1487274965710" TEXT="explizit?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487275149467" ID="ID_46033493" MODIFIED="1487275158357" TEXT="FocusListener"/>
|
|
</node>
|
|
<node CREATED="1487275167712" ID="ID_421642010" MODIFIED="1512926192195" TEXT="FocusTracker">
|
|
<node CREATED="1487275245822" ID="ID_1999993873" MODIFIED="1487275254241" TEXT="gehört zum InteractionDirector"/>
|
|
<node CREATED="1487275255092" ID="ID_528280403" MODIFIED="1487275264335" TEXT="muß von jedem Listener erreichbar sein"/>
|
|
<node CREATED="1487275265227" ID="ID_1738811487" MODIFIED="1487275276390" TEXT="wie setzt man einen neuen Listener auf?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1487275767543" ID="ID_1953432961" MODIFIED="1487275780067" TEXT="Idee: StateMark -> UI-Bus">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1487275806658" ID="ID_46146913" MODIFIED="1512926192195" TEXT="CoreService <-> InteractionDirector">
|
|
<node CREATED="1487275821920" ID="ID_1911498338" MODIFIED="1487275828507" TEXT="Verbindung ohnehin notwendig"/>
|
|
<node CREATED="1487275829711" ID="ID_467014330" MODIFIED="1487275845616" TEXT="persistenter UI-State"/>
|
|
<node CREATED="1487275846133" ID="ID_1450222785" MODIFIED="1487275854287" TEXT="muß im Modell hängen"/>
|
|
<node CREATED="1487275854899" ID="ID_1437855457" MODIFIED="1487275861934" TEXT="und daher unter dem InteractionDirector"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487275415415" ID="ID_625776285" MODIFIED="1512926192196" TEXT="Bewegungs-Erkennung">
|
|
<node CREATED="1487275419726" ID="ID_379201934" MODIFIED="1512926192196" TEXT="ist ein Problem">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1487275427165" ID="ID_196683293" MODIFIED="1487275522436" TEXT="was ist noch in einer WorkSite?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1487275438371" ID="ID_1849848193" MODIFIED="1487275518165" TEXT="wohin bewegen wir uns?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487275567114" ID="ID_1956672414" MODIFIED="1512926192197" TEXT="Zusammenarbeit">
|
|
<node CREATED="1487275572706" ID="ID_1943137650" MODIFIED="1512926192197" TEXT="WorkSite">
|
|
<node CREATED="1487275575665" ID="ID_406351009" MODIFIED="1487275581972" TEXT="weiß, was zu ihr gehört"/>
|
|
</node>
|
|
<node CREATED="1487275584048" ID="ID_1846202031" MODIFIED="1512926192197" TEXT="WorkSiteTrail">
|
|
<node CREATED="1487275591375" ID="ID_1854949126" MODIFIED="1487275599218" TEXT="verfolgt die WorkSites und ihre Dynamik"/>
|
|
</node>
|
|
<node CREATED="1487275601373" ID="ID_786512805" MODIFIED="1512926192197" TEXT="FocusTracker">
|
|
<node CREATED="1487275654958" ID="ID_874086704" MODIFIED="1487275659705" TEXT="verfolgt die Einzelelemente"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487277157451" ID="ID_434494653" MODIFIED="1512926192198" TEXT="Teil-Aufgaben">
|
|
<node CREATED="1487277161738" ID="ID_400737524" MODIFIED="1487277169981" TEXT="Verlassen einer WorkSite erkennen"/>
|
|
<node CREATED="1487277171617" ID="ID_566526238" MODIFIED="1487277189314" TEXT="Ankommen in einer bestehenden WorkSite erkennen"/>
|
|
<node CREATED="1487277190310" ID="ID_34185478" MODIFIED="1487277211495" TEXT="Notwendigkeit, eine neue WorkSite zu konstituieren erkennen"/>
|
|
</node>
|
|
<node CREATED="1487277244375" ID="ID_375270405" MODIFIED="1512926192198" TEXT="Ansatz">
|
|
<node CREATED="1487277246766" ID="ID_747328276" MODIFIED="1512926192198" TEXT="wer?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1487277261909" ID="ID_551475434" MODIFIED="1512926192199" TEXT="WorkSite">
|
|
<node CREATED="1487277266908" ID="ID_1718346792" MODIFIED="1487277271479" TEXT="könnte das Verlassen erkennen"/>
|
|
</node>
|
|
<node CREATED="1487277274251" ID="ID_1319104550" MODIFIED="1487277280958" TEXT="WorkSiteTrail"/>
|
|
<node CREATED="1487277281882" ID="ID_620509405" MODIFIED="1487277284869" TEXT="FocusTracker"/>
|
|
</node>
|
|
<node CREATED="1487277256149" ID="ID_339253853" MODIFIED="1512926192199" TEXT="wie?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1487277291305" ID="ID_1246038804" MODIFIED="1487277306330" TEXT="zentraler Tabellen-Lookup"/>
|
|
<node CREATED="1487277307374" ID="ID_335467287" MODIFIED="1487277314153" TEXT="lokalere Member-Tabelle"/>
|
|
<node CREATED="1487277317725" ID="ID_381402724" MODIFIED="1487277323744" TEXT="Reverse-Index"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1487277349233" ID="ID_1249868383" MODIFIED="1512926192199" TEXT="Resultat">
|
|
<node CREATED="1487277352856" ID="ID_587566118" MODIFIED="1487277373993" TEXT="alte WorkSite: verlassen"/>
|
|
<node CREATED="1487277375317" ID="ID_977859604" MODIFIED="1487277382904" TEXT="neue WorkSite: aktiviert"/>
|
|
<node CREATED="1487277384604" ID="ID_958245251" MODIFIED="1487277397854" TEXT="WorkSiteTrail: aktualisiert"/>
|
|
<node CREATED="1487277407425" ID="ID_1880710738" MODIFIED="1487277414275" TEXT="FocusPath: aktualisiert"/>
|
|
<node CREATED="1487277414744" ID="ID_1564254807" MODIFIED="1487277429625" TEXT="FocusLocator: hat sich bewegt"/>
|
|
<node CREATED="1487277448219" ID="ID_681470264" MODIFIED="1487277485770" TEXT="InteratcionStateManager: benachrichtigt"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448070547667" HGAP="23" ID="ID_669457401" MODIFIED="1512926192203" TEXT="Bus-Terminal" VSHIFT="20">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1448070601165" ID="ID_1711137699" MODIFIED="1448070603296" TEXT="Methoden">
|
|
<node CREATED="1448407030239" ID="ID_619913132" MODIFIED="1448560681641">
|
|
<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="1448560688352">
|
|
<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="1448560743272" TEXT="Nachricht mit Subjekt == indirekt, zur Weiterleitung"/>
|
|
<node CREATED="1448560744380" ID="ID_310914031" MODIFIED="1448560762557" TEXT="Nachricht ohne Subjekt == direkt, Subjekt implizit"/>
|
|
<node CREATED="1448560790558" ID="ID_1545911136" MODIFIED="1448560800728" TEXT="Bedeutung der Nachricht ergibt sich aus ihrem Namen"/>
|
|
</node>
|
|
<node CREATED="1448070605948" ID="ID_1779744719" MODIFIED="1448070608272" TEXT="Verhalten">
|
|
<node CREATED="1448407128826" ID="ID_1974801494" MODIFIED="1448407138941" TEXT="Bus-Master ist ein speziell implementiertes BusTerm"/>
|
|
<node CREATED="1448407139441" ID="ID_392543622" MODIFIED="1450390220709" TEXT="das gewöhnliche BusTerm ist einem Tangible zugeordnet"/>
|
|
<node CREATED="1448407187035" ID="ID_1622894914" MODIFIED="1448407197917" TEXT="sowie bus-seitig an ein "upstream" BusTerm"/>
|
|
</node>
|
|
<node CREATED="1448070618434" ID="ID_1925738380" MODIFIED="1448070621878" TEXT="Zuordnung">
|
|
<node CREATED="1448406963801" ID="ID_1506114314" MODIFIED="1448406975982">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Bus-Design is <b>selbstähnlich</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448406977350" ID="ID_1450959387" MODIFIED="1448406993656" TEXT="jedes BusTerm ist lediglich eine personalisierte Bus-Anbindung"/>
|
|
<node CREATED="1450390181806" ID="ID_61666430" MODIFIED="1450390266704" TEXT="es registriert beim Bus-Mater einen Link zum zugehörigen Tangible"/>
|
|
<node CREATED="1448406994860" ID="ID_846198635" MODIFIED="1448407022869">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Kennzeichen ist die <b>EntryID</b> des zugehörigen Elements
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1434128059966" ID="ID_823283341" MODIFIED="1488672648352" TEXT="Connect">
|
|
<node CREATED="1434128071126" HGAP="13" ID="ID_1618124128" MODIFIED="1502453416754" 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="1448548224236" TEXT="Topologie">
|
|
<node CREATED="1448548225659" ID="ID_807917172" MODIFIED="1448548309275" TEXT="upstream = zum Verteiler"/>
|
|
<node CREATED="1448548310247" ID="ID_993096699" MODIFIED="1448548316619" TEXT="downstream = zum Empfänger"/>
|
|
<node CREATED="1448560840239" ID="ID_1912018032" MODIFIED="1448560846426" TEXT="indirekt = zur Weiterleitung"/>
|
|
</node>
|
|
<node CREATED="1434128297445" ID="ID_1971555917" MODIFIED="1434128300889" TEXT="Nachrichtenformat">
|
|
<node CREATED="1448560865804" ID="ID_907456829" MODIFIED="1448560869319" TEXT="Klassifikation">
|
|
<node CREATED="1448548400308" ID="ID_1714197552" MODIFIED="1448548403647" TEXT="dedicated"/>
|
|
<node CREATED="1448548404475" ID="ID_1237647034" MODIFIED="1448548407135" TEXT="targetted"/>
|
|
<node CREATED="1448548407819" ID="ID_1923087300" MODIFIED="1448548486692" TEXT="flooding"/>
|
|
</node>
|
|
<node CREATED="1448560887081" ID="ID_1783786781" MODIFIED="1448560890004" TEXT="Addressierung">
|
|
<node CREATED="1448560891416" ID="ID_1603035591" MODIFIED="1448560904026" TEXT="per Subjekt"/>
|
|
<node CREATED="1448560896232" ID="ID_931223590" MODIFIED="1448560899523" TEXT="implizit"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1434128301525" ID="ID_187622243" MODIFIED="1434128303993" TEXT="Parallelität">
|
|
<node CREATED="1450390447884" ID="ID_1176145978" MODIFIED="1450390453590" TEXT="nicht Threadsafe"/>
|
|
<node CREATED="1450390454236" ID="ID_1617539841" MODIFIED="1450390469325" TEXT="läuft ausschließlich im Event-Thrad"/>
|
|
</node>
|
|
<node CREATED="1434128332277" ID="ID_33025591" MODIFIED="1434128337777" TEXT="Deregistrierung">
|
|
<node CREATED="1450390522393" ID="ID_1448879688" MODIFIED="1450390558817" TEXT="Uplink: implizit, hält Link zu einem Router"/>
|
|
<node CREATED="1450390559805" ID="ID_1657985065" MODIFIED="1450390565215" TEXT="Downlink:">
|
|
<node CREATED="1450390566252" ID="ID_591456555" MODIFIED="1450390584621" TEXT="registriert eine Route zu einem Tangible"/>
|
|
<node CREATED="1450390585329" ID="ID_1371255341" MODIFIED="1450390595419" TEXT="der dtor entfernt diese Route wieder"/>
|
|
</node>
|
|
<node CREATED="1481413366826" HGAP="34" ID="ID_1180928280" MODIFIED="1488423307202" TEXT="problematisch im Shutdown" VSHIFT="5">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1481413410588" ID="ID_1106063275" MODIFIED="1512926192203" TEXT="Shutdown von Zombie-Nodes">
|
|
<node CREATED="1481413418027" ID="ID_998027739" MODIFIED="1481413421327" TEXT="reines Test-Problem"/>
|
|
<node CREATED="1481413421795" ID="ID_1335417806" MODIFIED="1481413432909" TEXT="gelöst durch self-link + tie break"/>
|
|
</node>
|
|
<node CREATED="1481413436529" ID="ID_195971284" MODIFIED="1512926192204" TEXT="Shutdown des CoreService">
|
|
<node CREATED="1481413462638" ID="ID_485427993" MODIFIED="1481413469848" TEXT="Problem: Backlink zum Nexus"/>
|
|
<node CREATED="1481413470268" ID="ID_688303898" MODIFIED="1481413610394" TEXT="Nexus ist zu dem Zeitpunkt schon destruiert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Die Lösung für diese wecheslseitige Abhängigkeit
|
|
</p>
|
|
<p>
|
|
ist, den Nexus als Member im CoreService zu haben,
|
|
</p>
|
|
<p>
|
|
weil man dann seine Addresse schon weiß, bevor er erzeugt ist.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Dummerweise rettet mich dieser Trick nicht im Shutdown,
|
|
</p>
|
|
<p>
|
|
denn hier nun läuft tatsächlicher Code aus dem Destruktor heraus!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1481413489290" ID="ID_24882673" MODIFIED="1481413519026" TEXT="folglich läuft nur noch die Impl vom BusTerm"/>
|
|
<node CREATED="1481413520326" ID="ID_471345968" MODIFIED="1481414008423" TEXT="Endlosschleife (ping-pong)">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
<node CREATED="1481414009877" ID="ID_269084554" MODIFIED="1512926192205" 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="1481414037813" TEXT="upstream und nicht upstream"/>
|
|
<node CREATED="1481414149018" ID="ID_1708781872" MODIFIED="1481414263785" TEXT="kann Reihenfolge nicht etablieren">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
bei einem <i>echten Downstream</i> könnte man dafür sorgen,
|
|
</p>
|
|
<p>
|
|
daß er grundsätzlich vor dem Nexus weggeht. Aber nun kommt, auf dem Umweg
|
|
</p>
|
|
<p>
|
|
über den Core-Service, der Nexus nach dem Nexus....
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1481414420406" ID="ID_559357688" MODIFIED="1512926192205" TEXT="erschwerend...">
|
|
<icon BUILTIN="smily_bad"/>
|
|
<node CREATED="1481414434148" ID="ID_333480677" MODIFIED="1481414440176" TEXT="BusTerm ist stateless"/>
|
|
<node CREATED="1481414477766" ID="ID_695637715" MODIFIED="1481414504287" TEXT="soll auch so bleiben">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
ich will nicht damit anfangen, daß 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="1512926192206" TEXT="Trick löst beide" VSHIFT="6">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481415996732" ID="ID_98181285" MODIFIED="1481416003799" TEXT="ein "circuit breaker""/>
|
|
<node CREATED="1481416013842" ID="ID_1905276259" MODIFIED="1481416044386">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
beendet Deregistrierung,
|
|
</p>
|
|
<p>
|
|
wenn ein BusTerm sich selbst deregistriert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1481416047509" ID="ID_1445652228" MODIFIED="1481416060327" TEXT="etwas halbseiden"/>
|
|
<node CREATED="1481416060843" ID="ID_354799236" MODIFIED="1481416128424" 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="1434128318561" TEXT="Knoten-ID">
|
|
<node CREATED="1450390501876" ID="ID_1750345192" MODIFIED="1450390509511" TEXT="ist die EntryID des Tangible"/>
|
|
<node CREATED="1450390512635" ID="ID_43739373" MODIFIED="1450390519885" TEXT="dient auch zum Routing"/>
|
|
</node>
|
|
<node CREATED="1453546261390" HGAP="25" ID="ID_1996322416" MODIFIED="1453546322869" TEXT="Test" VSHIFT="12">
|
|
<node CREATED="1453546264638" ID="ID_975821244" MODIFIED="1455421865474" TEXT="Test-Nexus">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1453546268998" ID="ID_1692848170" MODIFIED="1511572076157" 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>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548830035" HGAP="5" ID="ID_1295711115" MODIFIED="1485548844056" TEXT="Nutzen" VSHIFT="17">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1485548856639" ID="ID_1677281474" MODIFIED="1485548861522" TEXT="spezifische Aktionen">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548894522" ID="ID_826011549" MODIFIED="1512926192207" TEXT="Problem: globale Aktionen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Beispiel: Aktionen, die im globalen Menü stehen.
|
|
</p>
|
|
<p>
|
|
"Add Sequence"
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
wer bildet daraus ein Command?
|
|
</li>
|
|
<li>
|
|
auf welchen Kontext bezieht sich das
|
|
</li>
|
|
<li>
|
|
wen kann die Menü-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="1512926192207" TEXT="#1070 how to bind session commands into UI actions">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1486767998242" ID="ID_1898269374" MODIFIED="1486768004600" TEXT="InteractionDirector verwenden">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492444328031" ID="ID_1628732201" MODIFIED="1492444335898" TEXT="muß im Lauf der Zeit wachsen"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1502452724107" ID="ID_689474303" MODIFIED="1502452764489" TEXT="Mutationen">
|
|
<node CREATED="1502452771285" ID="ID_1091994004" MODIFIED="1502452862896" 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="1512926192208" 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="1502453137630" TEXT="abstrahierter Iterator">
|
|
<node CREATED="1502453110640" ID="ID_1024081141" MODIFIED="1502453115659" TEXT="IterSource-Interface"/>
|
|
<node CREATED="1502453116327" ID="ID_1762714186" MODIFIED="1502453127417" TEXT="opaque generaction context"/>
|
|
<node CREATED="1502453128198" ID="ID_1311188906" MODIFIED="1502453133721" TEXT="per smart-ptr gehalten"/>
|
|
</node>
|
|
<node CREATED="1502452909091" ID="ID_638887155" MODIFIED="1502452913262" TEXT="nur einmal konsumierbar"/>
|
|
<node CREATED="1502452913906" ID="ID_1500100371" MODIFIED="1502453059636" 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="1485548877800" TEXT="Commands"/>
|
|
<node CREATED="1485548878292" ID="ID_49934573" MODIFIED="1485548882087" TEXT="Broadcast"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1453545812389" HGAP="43" ID="ID_202253849" MODIFIED="1511572076206" 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 DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-197;638;" ID="Arrow_ID_1686519160" STARTARROW="Default" STARTINCLINATION="-83;-1020;"/>
|
|
<font NAME="SansSerif" SIZE="13"/>
|
|
<icon BUILTIN="prepare"/>
|
|
<node CREATED="1453545875627" ID="ID_1411740156" MODIFIED="1511572076214" TEXT="Definition »Zentral-Dienste«">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Dienste im UI, erreichbar ü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" ID="ID_399884859" MODIFIED="1512926192211" TEXT="Command-Handler">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1453546129537" ID="ID_1926242869" MODIFIED="1488423307204" TEXT="empfängt "act"-Nachrichten">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1453546381255" ID="ID_1252400934" MODIFIED="1492205672239" TEXT=""bind" -> Bindung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1453546393573" ID="ID_857178151" MODIFIED="1453546568844" TEXT="Paradigmen-Mismatch">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1453546417098" ID="ID_676713402" MODIFIED="1453546563455" TEXT="DOM vs. compiletime typing">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1453546436455" ID="ID_129001401" MODIFIED="1512926192213" 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ährliche ausschließ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öst in GCC-5 -- <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ä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ö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ächlich möglichen Umwandlungen drüber
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1453590667630" ID="ID_792450888" MODIFIED="1453590699782" TEXT="überprüft: mit -O3 und strip bleibt erstaunlich wenig übrig"/>
|
|
<node CREATED="1453590741428" ID="ID_1733557933" MODIFIED="1453590749327" TEXT="1.6MiB -> 100k"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1453546367201" ID="ID_1473684366" MODIFIED="1492205727394" TEXT=""bang" -> HandlingPattern">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1492205728949" ID="ID_730154835" MODIFIED="1492205731704" TEXT="abgeschafft"/>
|
|
<node CREATED="1492205732389" ID="ID_1080697951" MODIFIED="1492205739216" TEXT="wir können stets gleich triggern"/>
|
|
</node>
|
|
<node CREATED="1492205741483" ID="ID_1132272888" MODIFIED="1492205758781" TEXT="Command wird sofort nach dem Binden getriggert"/>
|
|
<node COLOR="#338800" CREATED="1483925280108" HGAP="30" ID="ID_1479669922" MODIFIED="1492205824434" TEXT="Protokoll-Erweiterung" VSHIFT="8">
|
|
<arrowlink COLOR="#e9ba2d" DESTINATION="ID_242219866" ENDARROW="Default" ENDINCLINATION="-784;1692;" ID="Arrow_ID_1617518648" STARTARROW="None" STARTINCLINATION="3436;-1136;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1483925298713" ID="ID_347702585" MODIFIED="1483925306749" TEXT="Command-Prototyp forken"/>
|
|
<node CREATED="1483925307385" ID="ID_509982277" MODIFIED="1492205808486" TEXT="ID durch Kontext-ID dekorieren"/>
|
|
<node CREATED="1483925311624" ID="ID_1592410347" MODIFIED="1483925338280" TEXT="Anforderung vom InvocationStateManager"/>
|
|
<node CREATED="1483925338796" ID="ID_348930186" MODIFIED="1492205821280" TEXT="implementiert in SessionCommandService">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1453546138215" ID="ID_621186206" MODIFIED="1488423307209" TEXT="Verbindung zum ProcDispatcher">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1483927603312" ID="ID_1803909975" MODIFIED="1483927622749" TEXT="Aufruf der SessionCommand facade">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1483927624157" ID="ID_86978128" MODIFIED="1483927636406" TEXT="in CommandHandler gepackt">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1483927637022" ID="ID_455471953" MODIFIED="1483927642261" TEXT="total einfach hier">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1453546183561" ID="ID_1080090125" MODIFIED="1453546187900" TEXT="Mock-Variante">
|
|
<node CREATED="1453546195240" ID="ID_1905175534" MODIFIED="1454711242234" TEXT="loggen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1453546197727" ID="ID_606855270" MODIFIED="1454711245274" TEXT="verifizierbar machen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1453546215117" ID="ID_31965862" MODIFIED="1453546220236" TEXT="pseudo-Command">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483927678318" HGAP="25" ID="ID_1324099152" MODIFIED="1501775739313" TEXT="Notification-Facade ö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="flag-yellow"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483927692988" ID="ID_354422174" MODIFIED="1483927756533" TEXT="Lebenszyklus-Fragen verifizieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483927735679" ID="ID_783490676" MODIFIED="1483927757596" TEXT="Integration in UI-Main verifizieren">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483927710450" ID="ID_1085939201" MODIFIED="1483927759044" TEXT="Hochfahren des UI / Schließen des UI">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501778430101" ID="ID_489078622" MODIFIED="1514829311464" TEXT="#1098 hand-over to UI thread">
|
|
<linktarget COLOR="#6c5f80" DESTINATION="ID_489078622" ENDARROW="Default" ENDINCLINATION="289;0;" ID="Arrow_ID_485145709" SOURCE="ID_31825421" STARTARROW="None" STARTINCLINATION="1538;-37;"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1453546083296" ID="ID_1154674875" MODIFIED="1455421793848" TEXT="Presentation-State-Manager">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1455290707481" ID="ID_551153117" MODIFIED="1455290724712">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
empfängt alle <b>state mark notificatons</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1455290726358" ID="ID_386120755" MODIFIED="1455290731577" TEXT="muß gruppieren">
|
|
<node CREATED="1455290732805" ID="ID_1731455164" MODIFIED="1455290737616" TEXT="nach Ui-Element"/>
|
|
<node CREATED="1455290738044" ID="ID_1309710182" MODIFIED="1455290745959" TEXT="nach property innerhalb"/>
|
|
</node>
|
|
<node CREATED="1455290748539" ID="ID_504317246" MODIFIED="1455290870527" TEXT="zeichnet jeweils den letzten aktuellen Zustand auf">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1455290768888" ID="ID_1779151953" MODIFIED="1455290865016" TEXT="Wechselwirkungen">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1455290773936" ID="ID_533210684" MODIFIED="1455290798348" TEXT="geplant, absehbar">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
<node CREATED="1455290807459" ID="ID_1222290895" MODIFIED="1455290825988" TEXT="muß Auszüge aus dieser Info schaffen"/>
|
|
<node CREATED="1455290827193" ID="ID_1429808095" MODIFIED="1455290846062">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
nach <b>Perspektive</b>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1455290833048" ID="ID_1650274766" MODIFIED="1455290841159">
|
|
<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="1455290855766" TEXT="future work">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488672534372" HGAP="78" ID="ID_1920838120" MODIFIED="1492444203152" TEXT="core commands" VSHIFT="21">
|
|
<icon BUILTIN="prepare"/>
|
|
<node CREATED="1488672580926" ID="ID_1920974710" MODIFIED="1488672584130" TEXT="konzeptionell">
|
|
<node CREATED="1488672621585" ID="ID_1461875887" MODIFIED="1488672817699" 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="1488672841439" TEXT="Interaktionen">
|
|
<node CREATED="1492442637686" ID="ID_1148014554" MODIFIED="1512926192217" TEXT="brauche Command-ID">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1492442643942" ID="ID_184523090" MODIFIED="1492442652024" TEXT="muß grundsätzlich bekannt sein"/>
|
|
<node CREATED="1492442652612" ID="ID_1774585291" MODIFIED="1492442658400" TEXT="ggfs fest definierte Konstante"/>
|
|
<node CREATED="1492442665858" ID="ID_48986283" MODIFIED="1492442702309" TEXT="definiert in proc/cmd.hpp">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492442694199" ID="ID_502474813" MODIFIED="1492442698767" TEXT="CommandSetup">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1492442659060" ID="ID_707740928" MODIFIED="1492442706387" TEXT="lib::Symbol">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488672957922" ID="ID_329010871" MODIFIED="1488676593469" 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="1488676118181" TEXT="Anfrage ...für ein bestimmes Command"/>
|
|
<node CREATED="1488676629451" ID="ID_989334768" MODIFIED="1488676647900" TEXT="Problem: wie findet man den Zuständigen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1488676134951" ID="ID_1426727929" MODIFIED="1488676142770" TEXT="N : M">
|
|
<node CREATED="1488676119929" ID="ID_70646733" MODIFIED="1488676172343">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
einer könnte für
|
|
</p>
|
|
<p>
|
|
mehrere Commands zuständig sein
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1488676210948" ID="ID_1003704499" MODIFIED="1488676230046" TEXT="verschiedene Ausprägungen"/>
|
|
<node CREATED="1488676230802" ID="ID_1711345566" MODIFIED="1488676234293" TEXT="generische Situation"/>
|
|
</node>
|
|
<node CREATED="1488676179840" ID="ID_1207866065" MODIFIED="1488676200726">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
mehrere könnten für
|
|
</p>
|
|
<p>
|
|
ein Command zuständig sein
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1488676238120" ID="ID_62079120" MODIFIED="1488676259969" TEXT="da an ein Control/Interface-System gebunden"/>
|
|
<node CREATED="1488676280459" ID="ID_800780235" MODIFIED="1511572076363" 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="1488676361392" TEXT="besser? InteractionStateManager == Geste">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488674244218" ID="ID_121485208" MODIFIED="1488676593469" TEXT="Aktivitä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="1492444018018" TEXT="Command-Instanz">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488674520524" ID="ID_895059689" MODIFIED="1488674526217" TEXT="Prototyp-Pattern">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1488674528035" ID="ID_1084922722" MODIFIED="1511572076391">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>muß</i> 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 "gleichzeitig" unterwegs sein könnten
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1488674659521" ID="ID_1283697108" MODIFIED="1512926192220" TEXT="Problem: Instanz-Management">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1488674675895" ID="ID_1414738474" MODIFIED="1488674746218" TEXT="benannt oder anonyom">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1488674682869" ID="ID_1865712804" MODIFIED="1488674755779" TEXT="anonym == ref counted">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1488674692293" ID="ID_1154381764" MODIFIED="1488674711644" TEXT="bindet uns an Proc">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1488674807716" ID="ID_1220416942" MODIFIED="1488674814949" TEXT="ist das ein Problem?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1488674815867" ID="ID_417989611" MODIFIED="1488674903230" 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ßerdem...
|
|
</p>
|
|
<p>
|
|
...coden wir ja nicht gegen die Implementierung,
|
|
</p>
|
|
<p>
|
|
sondern gegen eine Abstraction (Command), die eigens dafür geschaffen wurde
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1488674905160" ID="ID_1688143285" MODIFIED="1488674916271" TEXT="ungutes Gefühl">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="smily_bad"/>
|
|
<node CREATED="1488674941243" ID="ID_1628081916" MODIFIED="1488674949133" TEXT="unterläuft das Interface-System"/>
|
|
<node CREATED="1488675139160" ID="ID_1466153465" MODIFIED="1488675146082" TEXT="unterläuft das Messaging / UI-Bus"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488674721265" ID="ID_1409487095" MODIFIED="1488674735629" TEXT="aber: benannte Instanzen leben einfach weiter">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1488677059648" ID="ID_1869818470" MODIFIED="1488677072562" TEXT="war eigentlich nur für "Spezialisierungen" gedacht"/>
|
|
<node CREATED="1488936223175" ID="ID_1105962999" MODIFIED="1488936233654" TEXT="zu prüfen: overhead">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1488936242413" ID="ID_1255236132" MODIFIED="1488936261039" TEXT="könnte eigener, dritter Typus werden">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488936634128" ID="ID_857930488" MODIFIED="1488936700939" TEXT="Konsequenz">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488936638247" ID="ID_699367403" MODIFIED="1488936651353" TEXT="man sollte auf das Bauchgefühl hören"/>
|
|
<node CREATED="1488936653341" ID="ID_629143054" MODIFIED="1488936669310" TEXT="Design leitet in richtige Bahnen"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488936670970" ID="ID_697148715" MODIFIED="1488936742194" 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" ID="ID_134788782" MODIFIED="1492443988327" TEXT="Aufgaben">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node COLOR="#338800" CREATED="1488675788278" ID="ID_241828684" MODIFIED="1488936420989" TEXT="wer erzeugt die Instanz?">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488676735628" ID="ID_845338567" MODIFIED="1488936413573" TEXT="der InteractionStateManager">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1488676746667" ID="ID_1675443482" MODIFIED="1488936417954" TEXT="jemand in Proc">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1488936425628" ID="ID_273815265" MODIFIED="1488936428431" TEXT="neue Entität"/>
|
|
<node CREATED="1488936429139" ID="ID_858892843" MODIFIED="1488936433830" TEXT="gehört zum Command-System"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488675795485" ID="ID_560742641" MODIFIED="1488936760622" TEXT="wer benennt die Instanz?">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1488676790165" ID="ID_450420022" MODIFIED="1488676795858" TEXT="der der sie erzeugt">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1488676796892" ID="ID_399980219" MODIFIED="1488676813292" TEXT="ein Benennungs-Service in Proc">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1488676805491" ID="ID_1995019439" MODIFIED="1488676815444" TEXT="ein Instanz-Pool">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1488675800668" ID="ID_260870361" MODIFIED="1512926192222" TEXT="wer hä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 -> 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ührung im Dispatcher erst spä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äuft ja synchron.
|
|
</p>
|
|
<p>
|
|
D.h. wir wissen, wenn wir das Air-Gap überstanden haben.
|
|
</p>
|
|
<p>
|
|
Ab diesem Punkt hä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ß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ü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ützt einfachen Fallback">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
aufruf direkt mit Command-ID -> 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="1512926192227" 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ä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ür UI-Entitä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ö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ö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: "kann dieses Command ausgeführt werden"?"/>
|
|
<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 übergeben?">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
es könnte z.B. sein, daß man vom InteractionState
|
|
</p>
|
|
<p>
|
|
direkt einen Record<GenNode> bezieht, und bei diesem Zugriff
|
|
</p>
|
|
<p>
|
|
automatisch die Kontext-Accessor-Ausdrücke ausgewertet werden
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1488940519518" ID="ID_1875791797" MODIFIED="1488940533992" TEXT="bei nächster Anfrage wird CmdInstanceManager daher neue Instanz anlegen"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488677859619" HGAP="-15" ID="ID_827179653" MODIFIED="1511572076459" 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ß jedes Widget
|
|
</p>
|
|
<p>
|
|
mit dem InteractionDirector verdrahtet sein muß!
|
|
</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;"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1488936835940" ID="ID_1322149090" MODIFIED="1511572076467" TEXT="separates Problem">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
hat ü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 CREATED="1488936840059" ID="ID_1305671938" MODIFIED="1511572076475" 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>
|
|
<node CREATED="1488937419308" ID="ID_994813744" MODIFIED="1488937424552" TEXT="lib::Depend ausbauen"/>
|
|
<node CREATED="1488937436890" ID="ID_1184288068" MODIFIED="1488937442437" TEXT="kann auf später vertagt werden"/>
|
|
<node CREATED="1488937424996" ID="ID_1712367280" MODIFIED="1488937434311" TEXT="vorerst eigenes Front-End verwenden"/>
|
|
<node CREATED="1488937449896" ID="ID_1352702920" MODIFIED="1511572076499" 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>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488674268407" ID="ID_284516869" MODIFIED="1488674271114" TEXT="Parameter">
|
|
<node CREATED="1488937542963" ID="ID_853531623" MODIFIED="1488937550998" TEXT="passiert im InvocationStateManager"/>
|
|
<node CREATED="1488937551514" ID="ID_1024843173" MODIFIED="1488937557157" TEXT="es könnte Binde-Regeln geben"/>
|
|
<node CREATED="1488937996901" ID="ID_1000532365" MODIFIED="1511572076522" TEXT="Lösungsweg vom Command vorkonfiguriert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nicht klar, ob das notwendig (und gut) ist
|
|
</p>
|
|
<p>
|
|
es kö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="1511572076530" 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="1488937977999" TEXT="Binde-Muster">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1488937670778" ID="ID_696645875" MODIFIED="1511572076544" TEXT="fest hinterlegte Eintität einsetzen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das UI weiß,
|
|
</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önnte ein <i>Advice</i> sein
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1488937682649" ID="ID_1090053275" MODIFIED="1511572076553" 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 "aktuelle Element" wir eine Art Typ-Match gemacht.
|
|
</p>
|
|
<p>
|
|
Wenn der paß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="1511572076561" TEXT="partial application">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
eine Argumentliste mit mehreren Parametern wir Schritt für Schritt geschlossen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1488937724867" ID="ID_231519502" MODIFIED="1511572076569" 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äß Scope "nächstgelegne" genommen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488937933566" ID="ID_170827087" MODIFIED="1488937945712" TEXT="das sind komplexe Pläne">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1488937947004" ID="ID_1297081811" MODIFIED="1488937965632" TEXT="Schlußfolgerung: nur die Strategie vorsehen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488672976664" ID="ID_476262016" MODIFIED="1488672983866" TEXT="Rollen">
|
|
<node CREATED="1488673008668" ID="ID_1231961413" MODIFIED="1492443048878" TEXT="InvocationTrail">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1488673045793" ID="ID_969627518" MODIFIED="1488673045793" TEXT="passiver Marker für eine Instanz"/>
|
|
<node CREATED="1492443050502" ID="ID_333085641" MODIFIED="1492443058596" TEXT="Konzept aufgegeben">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488673032384" ID="ID_1621941781" MODIFIED="1488673052737" TEXT="InteractionStateManager">
|
|
<node CREATED="1488673053917" ID="ID_312201027" MODIFIED="1488673056808" TEXT="Vermittler"/>
|
|
<node CREATED="1488673066524" ID="ID_1129594057" MODIFIED="1488673069415" TEXT="Bildung von Sätzen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488672585310" ID="ID_50525010" MODIFIED="1488672593368" TEXT="framework">
|
|
<node CREATED="1489191062441" ID="ID_772085108" MODIFIED="1489191064789" TEXT="Aktoren">
|
|
<node CREATED="1489191072415" ID="ID_546981226" MODIFIED="1489191086697" TEXT="Command Definition"/>
|
|
<node CREATED="1489191088613" ID="ID_1858363588" MODIFIED="1489191093288" TEXT="CmdAccessor"/>
|
|
<node CREATED="1489191103187" ID="ID_1016072906" MODIFIED="1489191107214" TEXT="InteractionStateManager"/>
|
|
<node CREATED="1489191095700" ID="ID_1053653890" MODIFIED="1489191101056" TEXT="InteractionDirector"/>
|
|
</node>
|
|
<node CREATED="1489191112026" ID="ID_1805268724" MODIFIED="1489191116245" TEXT="Implementierung">
|
|
<node CREATED="1489191118705" ID="ID_1501573546" MODIFIED="1489191120741" TEXT="Aufbau">
|
|
<node CREATED="1489191126256" HGAP="24" ID="ID_127004361" MODIFIED="1489777546596" TEXT="Tickets" VSHIFT="26">
|
|
<icon BUILTIN="info"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489191161395" ID="ID_346158251" MODIFIED="1489191839053" 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" ID="ID_632390561" MODIFIED="1512926192227" TEXT="#1088 Command definition registration">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1490986190364" ID="ID_266121409" MODIFIED="1490986197777" TEXT="CommandSetup helper">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1490986198683" ID="ID_658767230" MODIFIED="1490986204279" TEXT="Build-Skript vertagt">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489191229098" ID="ID_341428100" MODIFIED="1492169151289" 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="flag-yellow"/>
|
|
<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ü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" ID="ID_1920622498" MODIFIED="1492167861240" 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="1512926192228" TEXT="zu klä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 überbü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" ID="ID_662216926" MODIFIED="1512926192229" 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ä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ß Commands auch ausgeführt werdern können,
|
|
</p>
|
|
<p>
|
|
gehört nicht zum Thema "Instanz-Management"
|
|
</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ührt werden, während ein weiteres
|
|
</p>
|
|
<p>
|
|
schon "in der Mache ist"
|
|
</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" HGAP="35" ID="ID_118278209" MODIFIED="1512926192230" TEXT="Refactoring" VSHIFT="2">
|
|
<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ß ich mir das überlegt hatte).
|
|
</p>
|
|
<p>
|
|
Sofern Definitionen wirklich concurrent geändert oder gelöscht werden,
|
|
</p>
|
|
<p>
|
|
könnte es sein, daß jemand auf einer stale reference arbeitet,
|
|
</p>
|
|
<p>
|
|
denn das Lock schü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öht.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1491753132377" ID="ID_1441469124" MODIFIED="1491753156451" TEXT="müßte dafü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ückt machen.....
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="smiley-oh"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491656361886" HGAP="62" ID="ID_1269299900" MODIFIED="1512926192235" 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ünftige Weiterung:
|
|
</p>
|
|
<p>
|
|
auch in EntryID kö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ür jedes Command passiert,
|
|
</p>
|
|
<p>
|
|
möchte ich mit dem Minimum an Hashtable-Zugriffen auskommen.
|
|
</p>
|
|
<p>
|
|
Daher prü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ü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ür explizite Spezialisierungen?"/>
|
|
<node CREATED="1491692779933" ID="ID_184706664" MODIFIED="1491692783680" TEXT="Abwägung">
|
|
<node CREATED="1491692784692" ID="ID_875264954" MODIFIED="1491693521708" 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ö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="1491693518988" 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ückgabewert">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
d.h. wir müß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ßt, für das ganze Thema InteractionControl
|
|
</p>
|
|
<p>
|
|
schwebt mir eine Zwischenschicht unabhängig von den Widgets vor
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Wenn nun aber das Anfordern einer neuen Instanz über den Bus laufen soll,
|
|
</p>
|
|
<p>
|
|
dann wü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üßte sich InteractionState irgendwo "hinten rum" an den Bus ranmachen,
|
|
</p>
|
|
<p>
|
|
z.B. über den InteractionDirector. Das ist aber nun wirklich absurrd,
|
|
</p>
|
|
<p>
|
|
da es letztlich nur darum geht ein <i>ohnehin öffentliches</i>  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" HGAP="28" ID="ID_1660020661" MODIFIED="1512926192244" TEXT="Ü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ß nicht explizit eröffnet werden"/>
|
|
<node CREATED="1492293307511" ID="ID_582978700" MODIFIED="1492293317442" TEXT="Instanzen selbst fü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üfungen"/>
|
|
<node CREATED="1492293588400" ID="ID_1878334690" MODIFIED="1492293883630" TEXT="Binden und Dispatch mü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önnte längerfristig wegfallen"/>
|
|
</node>
|
|
<node CREATED="1492293450067" ID="ID_1626482891" MODIFIED="1492293452767" TEXT="Fä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>ö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> 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 übergeben"/>
|
|
<node CREATED="1492294063183" ID="ID_1341000232" MODIFIED="1492294094983" TEXT="hinterläß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ü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 übergeben"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492294356319" ID="ID_1877638479" MODIFIED="1492294363265" TEXT="Semantik-Ä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="1492295093557" 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="1492295124521" 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ä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="1492295855364" 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 übergeben"/>
|
|
</node>
|
|
<node CREATED="1492295855881" ID="ID_1570343929" MODIFIED="1492295857092" 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ä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" ID="ID_1621107057" MODIFIED="1492293466151" 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="1489196604278" TEXT="Access-Front-End">
|
|
<node CREATED="1492095519827" HGAP="16" ID="ID_983435641" MODIFIED="1492095548376" TEXT="Grundprinzip" VSHIFT="-5">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1492095551151" ID="ID_1172833434" MODIFIED="1492095589981" TEXT="verweist auf andere Komponente"/>
|
|
<node CREATED="1492095590481" ID="ID_842137243" MODIFIED="1492095600151">
|
|
<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="1492095621089" TEXT="open/closed state"/>
|
|
<node CREATED="1492095627868" ID="ID_463853539" MODIFIED="1492095634455" TEXT="Exception when closed"/>
|
|
</node>
|
|
<node CREATED="1489196605530" HGAP="104" ID="ID_1235925214" MODIFIED="1492095546225" TEXT="anschauen" VSHIFT="1">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1489196613065" ID="ID_1738286518" MODIFIED="1489196617396" TEXT="Proxy-Instanz"/>
|
|
<node CREATED="1489196617873" ID="ID_1676140831" MODIFIED="1489196620860" TEXT="Session Services"/>
|
|
</node>
|
|
<node CREATED="1492094142303" ID="ID_12953370" MODIFIED="1492094146995" TEXT="Zukunft / Plan">
|
|
<node CREATED="1492094148054" ID="ID_988050021" MODIFIED="1492094152138" TEXT="lib::Depend"/>
|
|
<node CREATED="1492094154237" ID="ID_1058052889" MODIFIED="1492094160809" TEXT="müßte generalisiert werden"/>
|
|
<node CREATED="1492094161724" ID="ID_657768231" MODIFIED="1492094170895" TEXT="Refactoring notwendig">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492094235291" HGAP="36" ID="ID_451964727" MODIFIED="1492169201615" TEXT="#1086 unify Depend singleton and instance management" VSHIFT="-20">
|
|
<linktarget COLOR="#8697be" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="-8;-7;" ID="Arrow_ID_1211717131" SOURCE="ID_1032947061" STARTARROW="None" STARTINCLINATION="18;-266;"/>
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1492094294218" ID="ID_531986736" MODIFIED="1492094303413" TEXT="Komplexität wirklich notwendig?">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1492094305497" ID="ID_1689865131" MODIFIED="1492094314971" TEXT="Zweifel wegen double checked locking"/>
|
|
<node CREATED="1492094321039" ID="ID_1545149473" MODIFIED="1492094329902">
|
|
<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="1492095418446" TEXT="vorläufig eigenständig" VSHIFT="4">
|
|
<node CREATED="1492094528370" ID="ID_1032947061" MODIFIED="1492169201615" TEXT="später mal integrieren">
|
|
<arrowlink COLOR="#8697be" DESTINATION="ID_451964727" ENDARROW="Default" ENDINCLINATION="-8;-7;" ID="Arrow_ID_1211717131" STARTARROW="None" STARTINCLINATION="18;-266;"/>
|
|
</node>
|
|
<node CREATED="1492095379262" ID="ID_16023242" MODIFIED="1492095385569" TEXT="einfache Implementierung"/>
|
|
<node CREATED="1492096252231" ID="ID_1892095908" MODIFIED="1492096256378" TEXT="Problem">
|
|
<node CREATED="1492096257182" ID="ID_682054688" MODIFIED="1492096269176" TEXT="externe Kompnente muß kooperieren"/>
|
|
<node CREATED="1492096285706" ID="ID_1257721538" MODIFIED="1492096301772" TEXT="oder externe Kompnente muß einen Adapter installieren"/>
|
|
<node CREATED="1492096269716" ID="ID_527173807" MODIFIED="1492096283102" TEXT="oder externe Komponente muß das Front-end betreiben"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492095433567" HGAP="69" ID="ID_1208499974" MODIFIED="1512926192249" 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).<operation>(args)"/>
|
|
<node CREATED="1492096317382" ID="ID_554292510" MODIFIED="1492096319497" TEXT="möglich">
|
|
<node CREATED="1492096321341" ID="ID_543087109" MODIFIED="1492096656547" TEXT="CmdAccess::for(id).<operation>(args)"/>
|
|
<node CREATED="1492096678244" ID="ID_1032312440" MODIFIED="1492096690927" TEXT="cmdAccess(id).<operation>(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ählbare Kontext-ID">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1492096925259" ID="ID_1180559929" MODIFIED="1492096943012" TEXT="müß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ä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ßen komplex">
|
|
<icon BUILTIN="smiley-neutral"/>
|
|
</node>
|
|
<node CREATED="1492099069702" ID="ID_1623888568" MODIFIED="1492099073097" TEXT="Bestandteile">
|
|
<node CREATED="1492099077900" ID="ID_489218136" MODIFIED="1492099086127" 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ü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="1492099171844" 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ß so konstruiert werden,
|
|
</p>
|
|
<p>
|
|
daß die Syntax-Elemente nahtlos simplifiziert werden können,
|
|
</p>
|
|
<p>
|
|
in eine Form, die sich unmittelbar jetzt implementieren läß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ß Argument-Rollen auszeichnen kö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="1492281870856" TEXT="einfache Lö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="1492359761121" TEXT="automatische Instanz-Erzeugung">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492281619901" ID="ID_887103826" MODIFIED="1492440987297" TEXT="direkter Aufruf mit CommandDef-ID">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281659520" ID="ID_488879231" MODIFIED="1492281875331" TEXT="Argument-Resolver für Kontext-Zugriff">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281675557" ID="ID_1256848300" MODIFIED="1492281876522" TEXT="InvocationState mit Callbacks">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492463479663" ID="ID_1449859033" MODIFIED="1492463546644" TEXT="#1096 passing object IDs">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489777406155" HGAP="74" ID="ID_1319269544" MODIFIED="1489777541271" TEXT="Grundstrukturen" VSHIFT="25">
|
|
<node CREATED="1489777414729" ID="ID_464574092" MODIFIED="1492444044555" TEXT="CommandID">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489777420817" ID="ID_1146990209" MODIFIED="1489777427435" TEXT="Command access"/>
|
|
<node CREATED="1489777429111" ID="ID_148471534" MODIFIED="1492443074494" TEXT="InvocationTrail">
|
|
<icon BUILTIN="button_cancel"/>
|
|
</node>
|
|
<node CREATED="1489777438663" ID="ID_729917092" MODIFIED="1492444060171" TEXT="InteractionState">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1489777502366" ID="ID_1798143241" MODIFIED="1492444050599" TEXT="Command-Definitionen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489777517315" ID="ID_922436346" MODIFIED="1492444053255" TEXT="instance management">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489777523266" ID="ID_136474944" MODIFIED="1492444055556" TEXT="trigger Invocation">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489778159357" HGAP="105" ID="ID_1046149430" MODIFIED="1489778168498" TEXT="Command-Zyklus" VSHIFT="36">
|
|
<node CREATED="1489544225984" ID="ID_695057205" MODIFIED="1489544240309" TEXT="Triggern">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1489544261547" ID="ID_782648362" MODIFIED="1489544266933" TEXT="wer">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544403984" ID="ID_382753424" MODIFIED="1489544416135" TEXT=""ein UI-Element"">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1489544439187" ID="ID_278628492" MODIFIED="1489544450590" TEXT="Beispiel: Toolbar-Button"/>
|
|
<node CREATED="1489544452034" ID="ID_1252070479" MODIFIED="1489544459404" TEXT="Beispiel: Kontextmenü-Eintrag"/>
|
|
<node CREATED="1489544513577" ID="ID_1918576059" MODIFIED="1489544521044" TEXT="Beispiel: Aktion per Keybinding"/>
|
|
<node CREATED="1489544524128" ID="ID_620530211" MODIFIED="1489544534314" TEXT="Beispiel: Signal drag-n-drop"/>
|
|
</node>
|
|
<node CREATED="1489544268018" ID="ID_317151852" MODIFIED="1489544273089" TEXT="was">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544652414" ID="ID_61156502" MODIFIED="1489544658199" TEXT="lokal bekannt"/>
|
|
<node CREATED="1489544640288" ID="ID_1660798945" MODIFIED="1489544651898" TEXT="fest verdrahtet"/>
|
|
<node CREATED="1489544659597" ID="ID_519858607" MODIFIED="1489544666376" TEXT="ggfs. Auswahl aus kleiner Menge"/>
|
|
</node>
|
|
<node CREATED="1489544717333" ID="ID_154924026" MODIFIED="1489544720305" TEXT="falls">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1489544722261" ID="ID_1252784107" MODIFIED="1489544725320" TEXT="ausführbar"/>
|
|
<node CREATED="1489544725860" ID="ID_1860103561" MODIFIED="1489544728848" TEXT="d.h. aktiviert"/>
|
|
<node CREATED="1489544826383" ID="ID_1190793385" MODIFIED="1489544970504" TEXT="zwei verschiedene Effekte">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1489544836757" ID="ID_1364306635" MODIFIED="1511572077071" TEXT="Ausführung abweisen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...stattdessen einen Fehler-Indikator auslösen
|
|
</p>
|
|
<p>
|
|
(Beispiel "in-point fehlt")
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1489544910395" ID="ID_909938815" MODIFIED="1511572077080" TEXT="enable Action">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das ist eine Reaktion,
|
|
</p>
|
|
<p>
|
|
die von einem managing Ui-Element ausgeführt wird,
|
|
</p>
|
|
<p>
|
|
aber von einem externen State-Change getriggert wird
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491005020528" ID="ID_1665806173" MODIFIED="1491005024747" TEXT="zu klären">
|
|
<node CREATED="1491005025928" ID="ID_1805144008" MODIFIED="1512926192252" 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öglichkeiten">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1491005058931" ID="ID_1108733153" MODIFIED="1492391288793" TEXT="mit neuem Klon ü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ö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ß geht von Exclusivität aus"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491005071634" ID="ID_178338289" MODIFIED="1492443389733" TEXT="zur Klärung">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1491005078409" ID="ID_1515823316" MODIFIED="1492391288793" TEXT="...muß ich wissen, wie newInstance verwendet wird"/>
|
|
<node CREATED="1491005491226" ID="ID_1986906306" MODIFIED="1492443381583" TEXT="und das hängt von InvocationTrail ab">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
invocationTral wurde aufgegeben.
|
|
</p>
|
|
<p>
|
|
Insofern lö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> 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="1512926192253" TEXT="Instanzen registrieren">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1491494779796" ID="ID_1437580350" MODIFIED="1491494872286" TEXT="oder nur Prototypen?">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt, es geht um die Haupt-Registry für Commands.
|
|
</p>
|
|
<p>
|
|
Wenn wir eine Instanz machen, um Parameter zu binden und sie dann schließlich auszuführen,
|
|
</p>
|
|
<p>
|
|
könnte man dieser Instanz einen Namen geben, und sie in die Haupt-Registry eintragen..
|
|
</p>
|
|
<p>
|
|
Oder man könnte sie anonym verarbeiten, weil Command selber ein smart-Handle ist.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1491494889781" ID="ID_737410509" MODIFIED="1491495069450" TEXT="Analyse">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1491494903779" ID="ID_1388732102" MODIFIED="1491495065587" TEXT="ja">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1491494912266" ID="ID_32553701" MODIFIED="1491494926628" TEXT="Vorteil: Zugriff per-Name"/>
|
|
<node CREATED="1491494928040" ID="ID_76613856" MODIFIED="1491494938066" TEXT="Nachteil: Druck auf die Registry"/>
|
|
<node CREATED="1491494938614" ID="ID_189174601" MODIFIED="1491494953016" TEXT="Nachteil: IDs müssen verwaltet werden"/>
|
|
</node>
|
|
<node CREATED="1491494957020" ID="ID_266987025" MODIFIED="1491495063214" TEXT="nein">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1491494972658" ID="ID_1987998531" MODIFIED="1491494987067" TEXT="Vorteil: spart jede Menge Infrastruktur"/>
|
|
<node CREATED="1491494989215" ID="ID_1302849116" MODIFIED="1491495018271" TEXT="Nachteil: Aufruf-Protokol sehr festgelegt"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491495071460" ID="ID_597368143" MODIFIED="1491495081513" TEXT="wir registrieren nicht">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492167970338" ID="ID_1983035921" MODIFIED="1512926192261" TEXT="InteractionState <=> InvocationTrail">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...ist jetzt geklä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="1512926192262" TEXT="InvocationTrail">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1492168200986" ID="ID_579400142" MODIFIED="1492168224827" TEXT="ist fest"/>
|
|
<node CREATED="1492168716660" ID="ID_644301358" MODIFIED="1492168728814" TEXT="ist ein front-End"/>
|
|
<node CREATED="1492168226078" ID="ID_1848898275" MODIFIED="1492168250599" TEXT="ist pro Command Instanz"/>
|
|
<node CREATED="1492443100375" ID="ID_1946114739" MODIFIED="1492443106250" TEXT="Konzept aufgegeben">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492168193355" ID="ID_841284230" MODIFIED="1492168197790" TEXT="InteractionState">
|
|
<node CREATED="1492168702845" ID="ID_1065430835" MODIFIED="1492168710310" TEXT="ermöglicht Registrierung"/>
|
|
<node CREATED="1492168535004" ID="ID_93617758" MODIFIED="1492168700855" TEXT="sammelt dynamischen state"/>
|
|
<node CREATED="1492168515983" ID="ID_607058891" MODIFIED="1492168523994" TEXT="bedient einen ganzen Kontext"/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492168662947" ID="ID_1857185767" MODIFIED="1492168684800" TEXT="automatisiert die Argument-Versorgung">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492169260089" HGAP="30" ID="ID_172791747" MODIFIED="1492169296654" TEXT="usage patterns" VSHIFT="18">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1492169311714" ID="ID_1022909876" MODIFIED="1492206462841" 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="1492170878032" TEXT="Beispiel">
|
|
<node CREATED="1492170878863" MODIFIED="1492170878863" TEXT="globale Menü-Aktion"/>
|
|
<node CREATED="1492170880371" ID="ID_594766034" MODIFIED="1492170903172" TEXT="schließe Session!"/>
|
|
</node>
|
|
<node CREATED="1492170941739" ID="ID_1680428229" MODIFIED="1492170946550" TEXT="Lö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="1492443158483" 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ührt aber dann das Binden direkt aus"/>
|
|
<node CREATED="1492171547624" ID="ID_1140206188" MODIFIED="1492171549876" TEXT="Lö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="1492171804091" 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="1492206473683" 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ß, ob Command ausfü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="1492173461536" TEXT="Lö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ührbarkeit"/>
|
|
<node CREATED="1492173787950" ID="ID_318157835" MODIFIED="1492173802664" TEXT="Command-Instanz wird erst spä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="1492206519102" 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ötigt"/>
|
|
<node CREATED="1492206505907" ID="ID_427665863" MODIFIED="1492206512494" TEXT="und im Moment auch nicht abschätzbar"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492173833368" HGAP="42" ID="ID_769512112" MODIFIED="1492268942474" TEXT="widersprüchlich" VSHIFT="12">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<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ösung über BusTerm eines Widgets">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...wenn es doch offenbar für den "fire-and-forget"-Fall
|
|
</p>
|
|
<p>
|
|
genauso gut möglich ist, über eine zentrale Stelle zu triggern.
|
|
</p>
|
|
<p>
|
|
Nebenläufigkeit ist kein Argument (da das UI single-threaded lä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önnte auf die bang!-Nachricht verzichten">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1492205847909" ID="ID_20433747" MODIFIED="1492205860240" TEXT="entfernt eine Menge Komplexität">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1492205861275" ID="ID_1520439061" MODIFIED="1492205867150" TEXT="der dämliche Visitor ist weg!"/>
|
|
<node COLOR="#338800" CREATED="1492205867738" ID="ID_1598058671" MODIFIED="1492206444561" TEXT="sofort ausgefü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önnte</i> 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ßfolgerung" VSHIFT="15">
|
|
<icon BUILTIN="forward"/>
|
|
<node CREATED="1492205906237" ID="ID_900884756" MODIFIED="1492205949716" 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ü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="1492205967697" TEXT="deshalb werden Command nicht "hintenrum" 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" HGAP="114" ID="ID_1743832326" MODIFIED="1512926192269" 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ä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 ü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> verwendet
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1492269433415" ID="ID_55077056" MODIFIED="1492269446161" TEXT="es würde genügen, sie beim Einfü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ö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 ü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ürde fall-Back auf globale Commands beseitigen"/>
|
|
<node CREATED="1492270075064" ID="ID_814785630" MODIFIED="1492270086423" TEXT="wäre eigentlich sauberer als dieser Fall-back">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1492270046164" ID="ID_191900745" MODIFIED="1492270058746" TEXT="das kö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 "Protokoll"">
|
|
<node CREATED="1492270115626" ID="ID_1073186006" MODIFIED="1492270139603" TEXT="...jenseits von »Binden und Ausführen«"/>
|
|
<node CREATED="1492270174242" ID="ID_884795984" MODIFIED="1492270187724" TEXT="die Varianten sind bis zur Beliebigkeit "offen""/>
|
|
<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ötige Last">
|
|
<node CREATED="1492270239793" ID="ID_1729040008" MODIFIED="1492270283358" TEXT="ist notwendig als factory fü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 »Zugriff auf Command«">
|
|
<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ß, um sie zu bekommen">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1492270339851" ID="ID_238907164" MODIFIED="1492270358381" TEXT="suggeriert »Ausführen von Commands«">
|
|
<node CREATED="1492271004097" ID="ID_511583689" MODIFIED="1492271014907" TEXT="muß man aber selber machen, via BusTerm"/>
|
|
<node CREATED="1492271017087" ID="ID_321529761" MODIFIED="1492271024673" TEXT="dafü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ö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ü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äre ein "this"-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üßte der InvocationTrail die aufgesammelten Argumente transportieren.
|
|
</p>
|
|
<p>
|
|
allein <i>dafür</i> genügt eine GenNode
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492281297561" ID="ID_627059506" MODIFIED="1492281314387" TEXT="Schlußfolgerung">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node COLOR="#338800" CREATED="1492281320758" ID="ID_1465764553" MODIFIED="1492443778419" TEXT="InvocationTrail fällt weg">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492281327277" ID="ID_1090150746" MODIFIED="1492443783658" TEXT="Aufruf erfolgt mit reiner Command-ID">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492281338555" ID="ID_220910293" MODIFIED="1492443785434" 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="1492443793917" TEXT="CmdAccess wird für den komplexen Fall umgewidmet">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1492281402666" ID="ID_1263822028" MODIFIED="1492281416173" TEXT="es bleibt ein Access-front-End"/>
|
|
<node CREATED="1492281417025" ID="ID_1229681605" MODIFIED="1492281424772" TEXT="der Name wird angepaßt"/>
|
|
<node CREATED="1492281425672" ID="ID_1330862297" MODIFIED="1492443802756" TEXT="es dient zum Konfigurieren eines Kontextes"/>
|
|
<node CREATED="1492281434678" ID="ID_1036338249" MODIFIED="1492281446664" TEXT="für Zugriff auf den InteractionState"/>
|
|
<node CREATED="1492281448845" ID="ID_1396633899" MODIFIED="1492281457639" TEXT="für Callback-Registrierung"/>
|
|
<node CREATED="1492281466282" ID="ID_1012579063" MODIFIED="1492281474149" TEXT="Callbacks schicken direkt eine GenNode"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#252298" CREATED="1489546623162" HGAP="-24" ID="ID_1622574347" MODIFIED="1504478445810" 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="1932;0;"/>
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="help"/>
|
|
<node COLOR="#f10a1a" CREATED="1489546678250" ID="ID_228157787" MODIFIED="1492168992958" TEXT="Vorsicht UI-Programmierung">
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1489546705798" ID="ID_43582318" MODIFIED="1492281498587" 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="1489546749259" TEXT="muß letztlich explizit sein">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489546837172" ID="ID_665817500" MODIFIED="1489546841173" TEXT="aber">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1489546843356" ID="ID_1556795494" MODIFIED="1489546854590" TEXT="ich will Gestaltbarkeit"/>
|
|
<node CREATED="1489546855202" ID="ID_1824748232" MODIFIED="1489546862101" TEXT="ich will Konfigurierbarkeit"/>
|
|
</node>
|
|
<node CREATED="1489546994743" ID="ID_1851585461" MODIFIED="1489546998138" TEXT="im Einzelnen">
|
|
<node CREATED="1489777326111" ID="ID_497480483" MODIFIED="1489777329632" 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=""leere" 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ä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.ä."/>
|
|
<node CREATED="1489716870000" ID="ID_907818022" MODIFIED="1489716875547" TEXT="Wert-Semantik"/>
|
|
<node CREATED="1489716876183" ID="ID_880911498" MODIFIED="1489716883650" TEXT="enthä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ält direkt den Zä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="1512926192269" 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ötige Indirektion"/>
|
|
</node>
|
|
<node CREATED="1489717406447" ID="ID_1938762085" MODIFIED="1492205512167" 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ö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ösung ist auf den Punkt"/>
|
|
<node CREATED="1489717927279" ID="ID_845301501" MODIFIED="1489717959263" TEXT="Command-ID erfü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 "offene" Instanz gibt.
|
|
</p>
|
|
<p>
|
|
Also genü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="1511572077408" TEXT="Aktivierung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
gemeint ist:
|
|
</p>
|
|
<p>
|
|
Ein UI-Control wird <i>aktivierbar,</i> weil das zugrundeliegende Command
|
|
</p>
|
|
<p>
|
|
alle seine Argumente aus dem aktuellen Kontext befriedigen kann
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Beispiel: Menü-Eintrag "create duplicate"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1489547002918" ID="ID_728456926" MODIFIED="1489547015360" TEXT="Callback installieren"/>
|
|
<node CREATED="1489547016564" ID="ID_41325273" MODIFIED="1489547028606" TEXT="Anfrage: ist dies aktivierbar?"/>
|
|
</node>
|
|
<node CREATED="1489547086458" HGAP="48" ID="ID_1858100202" MODIFIED="1489781264701" TEXT="Argumente" VSHIFT="-1">
|
|
<node CREATED="1489547096857" ID="ID_184341736" MODIFIED="1492167490875" TEXT=""gib mir die Argumente!"">
|
|
<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äßt sich das ü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ß diese generischen Rollen bereits in der Einrichtung der Command-Definition verwendet werden.
|
|
</p>
|
|
<p>
|
|
Das heißt, für einen bestimmten Invocation-Trail legt man fest,
|
|
</p>
|
|
<p>
|
|
daß 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ß 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="1492281598270" TEXT="das kö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ü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ührt,
|
|
</p>
|
|
<p>
|
|
daß ich das ganze Konzept "InvocationTrail"
|
|
</p>
|
|
<p>
|
|
wieder komplett zurü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="1492281859482" TEXT="einfache Lö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="1492359767992" TEXT="automatische Instanz-Erzeugung">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1492281619901" ID="ID_423372741" MODIFIED="1492440997416" TEXT="direkter Aufruf mit CommandDef-ID">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1492281659520" ID="ID_1742758477" MODIFIED="1492281669306" TEXT="Argument-Resolver für Kontext-Zugriff"/>
|
|
<node CREATED="1492281675557" ID="ID_1809773326" MODIFIED="1492281681224" TEXT="InvocationState mit Callbacks"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489781392694" ID="ID_1312397991" MODIFIED="1489781396114" TEXT="Festlegungen">
|
|
<node CREATED="1489781404925" ID="ID_1918933171" MODIFIED="1489781408881" TEXT="Command-ID">
|
|
<node CREATED="1489781409876" ID="ID_1973020417" MODIFIED="1491003215267" TEXT="Basis-ID ist ein Symbol"/>
|
|
<node CREATED="1491003215783" ID="ID_1537560721" MODIFIED="1491003227609" TEXT="es wird mit einer Invocation-ID dekoriert"/>
|
|
<node CREATED="1491003228101" ID="ID_661472357" MODIFIED="1491003254161" TEXT="wir brauchen keine laufende Nummer">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1491003237108" ID="ID_1167308664" MODIFIED="1491003252150" TEXT="Instance-Management funktioniert anonym"/>
|
|
</node>
|
|
<node CREATED="1489781426978" ID="ID_1543445405" MODIFIED="1490985671060" TEXT="konkrete Definition">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1489781443184" ID="ID_966382785" MODIFIED="1489781445387" TEXT="Ort">
|
|
<node CREATED="1489781447639" ID="ID_588776773" MODIFIED="1489781474176" TEXT="proc/cmd/*-cmd.cpp"/>
|
|
<node CREATED="1489781476355" ID="ID_1953562265" MODIFIED="1489781480998" TEXT="Namespace proc::cmd"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1489781611257" ID="ID_179887792" MODIFIED="1512926192272" TEXT="brauche">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1489781616257" ID="ID_1645536558" MODIFIED="1489781625283" TEXT="Schema für ID-Konstanten"/>
|
|
<node CREATED="1489781628743" ID="ID_1733247268" MODIFIED="1489781635194" TEXT="Mechanismus, der die Definition treibt"/>
|
|
<node CREATED="1489781758389" ID="ID_1124650374" MODIFIED="1489781765521" TEXT="gewünscht">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1489781775443" ID="ID_379002135" MODIFIED="1489785133742" TEXT="Name und Definition nahe zusammen"/>
|
|
<node CREATED="1489781769500" ID="ID_998243238" MODIFIED="1489781774456" TEXT="keine Redundanz"/>
|
|
<node CREATED="1489781902770" ID="ID_1568226956" MODIFIED="1489781907366" TEXT="gut lesbar"/>
|
|
<node CREATED="1489781907906" ID="ID_1206063892" MODIFIED="1489781915492" TEXT="debuggbar"/>
|
|
<node CREATED="1489781923640" ID="ID_241861600" MODIFIED="1489781930043" TEXT="kommentierbar (Doxygen)"/>
|
|
<node CREATED="1489785114574" ID="ID_241665479" MODIFIED="1489785123487" TEXT="nur unsichtbare Magie"/>
|
|
</node>
|
|
<node CREATED="1489785137083" ID="ID_1466955376" MODIFIED="1512926192276" TEXT="Möglichkeiten">
|
|
<node CREATED="1489785163216" ID="ID_1992894903" MODIFIED="1489785168547" TEXT="zu Fuß...">
|
|
<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äuft es immer darauf hinaus
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
daß cmd.hpp die Implementierungs-Einheiten includiert
|
|
</li>
|
|
<li>
|
|
oder daß 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önnte const char* nehmen"/>
|
|
<node CREATED="1489790053044" ID="ID_1594786428" MODIFIED="1489790070534" TEXT="könnte dann nach Literal konvertibel sein"/>
|
|
<node CREATED="1489790158335" ID="ID_1828195626" MODIFIED="1489790166017" TEXT="Template kö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.ä"/>
|
|
<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ä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ß 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="1490927727826" TEXT="kombinierte Magie">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1489791798116" ID="ID_197500257" MODIFIED="1490927767187" 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="1489795286417" 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örigen Header proc/cmd.hpp im Build-Prozeß regenerieren">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1489811274588" ID="ID_1635051629" MODIFIED="1489811278807" TEXT="Mechanismus">
|
|
<node COLOR="#338800" CREATED="1489811285746" ID="ID_1726037509" MODIFIED="1490927663610" TEXT="CommandSetup">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1489811291313" ID="ID_1780064476" MODIFIED="1490927667601" TEXT="Makro COMMAND_DEFINITION">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1489811304111" ID="ID_1976451454" MODIFIED="1490927673243" TEXT="Build-Generierung">
|
|
<icon BUILTIN="hourglass"/>
|
|
<node CREATED="1490927680004" ID="ID_1456638216" MODIFIED="1490927687183" TEXT="auf "später" vertagt"/>
|
|
<node CREATED="1490927702128" ID="ID_1355040899" MODIFIED="1490927711041" TEXT="wenn die händische Pflege zum Problem wird"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1490985673313" ID="ID_1705714293" MODIFIED="1492167018027" TEXT="Instanzen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1490985683359" ID="ID_476048128" MODIFIED="1512926192279" 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" ID="ID_1386937508" MODIFIED="1490985736292" TEXT="ist nur eine Registry mit etwas Funktionalität">
|
|
<node CREATED="1490986294710" ID="ID_558020871" MODIFIED="1490986301601" TEXT="Comand-IDs dekorieren"/>
|
|
<node CREATED="1490986302197" ID="ID_1305641719" MODIFIED="1491004967731" TEXT="fortlaufenden Zähler verwalten">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1490986345879" ID="ID_1736956933" MODIFIED="1490986393723" TEXT="denn: Dispatch bedeutet Verzögerung">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...also ist eine Instanz durchaus noch am Leben,
|
|
</p>
|
|
<p>
|
|
während bereits die nächste Instanz fü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 ü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äre gefä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äufig überschreibe ich stillschweigend">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1490986309084" ID="ID_1432845924" MODIFIED="1490986319583" TEXT="sicher Ü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ä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="1512926192280" TEXT="Instanzbildung">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1490985756381" ID="ID_1346029720" MODIFIED="1490985767448" TEXT="wird durch ID-Dekoration getrieben"/>
|
|
<node CREATED="1491656301121" ID="ID_566719122" MODIFIED="1491656320281" TEXT="es ist stets nur eine Instanz offen"/>
|
|
<node CREATED="1492359658654" ID="ID_712987844" MODIFIED="1492359667329" TEXT="erfolgt weitgehend automatisch/transparent">
|
|
<node CREATED="1492359686938" ID="ID_1447317770" MODIFIED="1492359700986" TEXT="anonyme Klon-Kopie von CommandDef">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
<node CREATED="1492359678835" ID="ID_608610767" MODIFIED="1492359736655" TEXT="explizite Instanzbildung ist optional">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...implementiert "für die Zukunft",
|
|
</p>
|
|
<p>
|
|
wenn wir context-bound -Commands verwenden
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491694174845" ID="ID_344801148" MODIFIED="1491694242610" TEXT="Instanzbildung gehört nicht in das Tangible">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das ist ein grundlegender Beschluß.
|
|
</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="1512926192281" TEXT="Regelfall">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1492444215374" ID="ID_1593808752" MODIFIED="1492444219377" TEXT="einfacher direkter Aufruf"/>
|
|
<node CREATED="1492444220086" ID="ID_1379993947" MODIFIED="1492444226369" TEXT="rein die Command-ID genügt"/>
|
|
<node CREATED="1492444235604" ID="ID_821909125" MODIFIED="1492444242935" TEXT="diese ist per proc/cmd.hpp festgelegt"/>
|
|
<node CREATED="1492444226909" ID="ID_1827091909" MODIFIED="1492444231680" TEXT="Instanzen werden automatisch erzeugt"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1492461052551" ID="ID_1120178298" MODIFIED="1492461061655" TEXT="Objekt-IDs">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1492461062788" ID="ID_685772910" MODIFIED="1492461075325" TEXT="was wird verwendet, um auf Objekte zu verweisen"/>
|
|
<node CREATED="1492461075842" ID="ID_1775175141" MODIFIED="1492461081172" TEXT="Möglichkeiten">
|
|
<node CREATED="1492461081978" ID="ID_1041621476" MODIFIED="1492461083733" TEXT="LuidH">
|
|
<node CREATED="1492461102167" ID="ID_541671903" MODIFIED="1492461108473" TEXT="schon unterstützt"/>
|
|
</node>
|
|
<node CREATED="1492461084232" ID="ID_1450157918" MODIFIED="1492461140885" TEXT="EntryID">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1492461110341" ID="ID_1884085083" MODIFIED="1492461120786" TEXT="müßte in GenNode transportiert werden">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1492461121691" ID="ID_1456848003" MODIFIED="1492461131233" TEXT="GenNode-Datentypen erweitern">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1488672593812" ID="ID_1454459609" MODIFIED="1488672598271" TEXT="konkret"/>
|
|
</node>
|
|
<node CREATED="1448063874479" HGAP="43" ID="ID_739054690" MODIFIED="1481413149364" TEXT="UI-Modell" VSHIFT="1">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1434128074725" HGAP="28" ID="ID_933994138" MODIFIED="1512926192293" TEXT="Diff-System" VSHIFT="1">
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1434128278990" ID="ID_106354755" MODIFIED="1434128283641" TEXT="Diff-Darstellung"/>
|
|
<node CREATED="1434128267381" ID="ID_823706141" MODIFIED="1434128551925" TEXT="List-diff">
|
|
<icon BUILTIN="go"/>
|
|
</node>
|
|
<node CREATED="1434128078638" ID="ID_1704749549" MODIFIED="1473353206035" TEXT="Tree-Diff">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1434128095838" ID="ID_419405890" MODIFIED="1434128561967" TEXT="Detector">
|
|
<icon BUILTIN="stop"/>
|
|
</node>
|
|
<node CREATED="1434128092877" ID="ID_105246595" MODIFIED="1434128109517" TEXT="Applikator">
|
|
<node CREATED="1434128115462" ID="ID_1299653797" MODIFIED="1434128119065" TEXT="Tree-Mutator"/>
|
|
</node>
|
|
<node CREATED="1434128083878" ID="ID_937754899" MODIFIED="1434128494612" TEXT="Format">
|
|
<node CREATED="1434128153773" ID="ID_1289483934" MODIFIED="1512926192294" TEXT="Objekt-Repräs">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1434128243334" ID="ID_1828331212" MODIFIED="1434128248667" TEXT="Typ-Darstellung"/>
|
|
<node CREATED="1434128239517" ID="ID_1886740948" MODIFIED="1434128250041" TEXT="Mapping"/>
|
|
<node CREATED="1434128170381" ID="ID_976705384" MODIFIED="1512926192295" TEXT="GenNode">
|
|
<linktarget COLOR="#ff0033" DESTINATION="ID_976705384" ENDARROW="Default" ENDINCLINATION="10;45;" ID="Arrow_ID_1285375088" SOURCE="ID_553361956" STARTARROW="Default" STARTINCLINATION="-13;-67;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1435421658394" ID="ID_1938259420" MODIFIED="1512926192295" TEXT="ID">
|
|
<node CREATED="1435421670349" ID="ID_1358247529" MODIFIED="1512926192296" TEXT="verwende EntryID">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1435421678004" ID="ID_691179282" MODIFIED="1512926192296" TEXT="Abhä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ört in Library">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1435885214592" ID="ID_1198930165" MODIFIED="1512926192296" TEXT="sanitise stö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="1439842291292" TEXT="spezielle Ref-IDs"/>
|
|
</node>
|
|
<node CREATED="1434128174030" ID="ID_1395250463" MODIFIED="1512926192297" TEXT="Variant">
|
|
<node CREATED="1435943070542" ID="ID_949070153" MODIFIED="1512926192297" 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&">
|
|
<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" ID="ID_1790054544" MODIFIED="1512926192300" 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... ähm vertagt
|
|
</p>
|
|
<p>
|
|
aber nicht wirklich; der workaround könnte schon die Lö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örigen Buffer die Sorge,
|
|
</p>
|
|
<p>
|
|
daß ich die Implikationen einer generischen Lö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ö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" ID="ID_947731706" MODIFIED="1512926192305" 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 überhaupt brauchen
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
entweder nur die unmittelbaren Kinder -> komplexe Logik fällt auf den Client
|
|
</li>
|
|
<li>
|
|
oder nur die Blätter -> 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üß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" ID="ID_1991218497" MODIFIED="1512926192309" 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ön!
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
ü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ßt genau"/>
|
|
<node CREATED="1440983880715" ID="ID_617483189" MODIFIED="1440983893678" TEXT="erfordert speziellen ResultIter"/>
|
|
<node COLOR="#999999" CREATED="1440984125546" ID="ID_461442477" MODIFIED="1512926192310" TEXT="TODO">
|
|
<font NAME="SansSerif" SIZE="10"/>
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1440984130872" ID="ID_579146044" MODIFIED="1512926192310" 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" ID="ID_761913732" MODIFIED="1512926192311" 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" ID="ID_128176235" MODIFIED="1512926192312" 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ü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üssen den Weg zurü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öglich,</i> eine Traversierung mit konstantem Speicher zu machen.
|
|
</p>
|
|
<p>
|
|
Das geht nur bei einer Struktur mit Rückreferenzen -- diese enthalten dann nämlich genau den Speicher,
|
|
</p>
|
|
<p>
|
|
der wä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ährend der Traversierung.
|
|
</p>
|
|
<p>
|
|
Dies ist die Abwägung, und darunter läß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ür die Speicherung des Rückweges mitzuverwenden;
|
|
</p>
|
|
<p>
|
|
in dem Moment, wo ich mich für einen Iterator entscheide, ist diese Mö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ß man die Funktion speichern"/>
|
|
<node CREATED="1441936142563" ID="ID_161796731" MODIFIED="1441936150975" TEXT="und wir brauchen gar keine flexible Funktion"/>
|
|
</node>
|
|
<node CREATED="1441936154834" ID="ID_1320687783" MODIFIED="1512926192313">
|
|
<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ällt"/>
|
|
<node CREATED="1441936285368" ID="ID_1119180152" MODIFIED="1441936296746" TEXT="wir brauchen genauso einen maßgeschneiderten Scope-Iterator"/>
|
|
<node CREATED="1441936356831" ID="ID_1423049913" MODIFIED="1441936372500" TEXT="aber die Indirektion für die Funktion fällt weg">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1441936386803" ID="ID_588658088" MODIFIED="1512926192314" 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" ID="ID_455233841" MODIFIED="1512926192314" 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önnte man die Storage mit beiden Bedeutungen überlagern.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Voraussetzung wäre, daß man anhand der konkreten Daten <b>gefahrlos</b>  jeweils herausfinden kann,
|
|
</p>
|
|
<p>
|
|
welcher Zweig grade gilt. Da wir aber keine Introspektion haben (und auch nicht wollen!),
|
|
</p>
|
|
<p>
|
|
würde das auf Taschenspielertricks mit der Implementierung hinauslaufen
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
GenNode und Record beginnen beide fraktisch mit einem String. Man müßte diesen interpretieren kö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" ID="ID_1582043438" MODIFIED="1512926192315" 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ß den inneren Iterator liefern"/>
|
|
<node CREATED="1441937000487" ID="ID_312630797" MODIFIED="1441937028412">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Entscheidung: <i>falls</i> 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änglich machen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Begrü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ä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> Monade
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1440984348699" HGAP="64" ID="ID_1327214042" MODIFIED="1512926192316" TEXT="Prädikate" VSHIFT="-26">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1440984366937" ID="ID_1806640214" MODIFIED="1440984465790">
|
|
<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="1440984463833" TEXT="Wert-Match">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1440984392453" ID="ID_1665153106" MODIFIED="1443147806504" 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" ID="ID_863330674" MODIFIED="1512926192317" 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ä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<GenNode>
|
|
</p>
|
|
<p>
|
|
Und die Builder-Funktionen brauchen eigentlich spezielles Wissen ü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ü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ährlich </b>
|
|
</p>
|
|
<p>
|
|
aber auch deutlich effizienter,
|
|
</p>
|
|
<p>
|
|
denn wir mü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> 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ß 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" ID="ID_714336641" MODIFIED="1512926192324" 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ückgabetyp von Attribut-Gettern">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
möglicherweise schon gelöst,
|
|
</p>
|
|
<p>
|
|
denn Record ist insgesamt immutable.
|
|
</p>
|
|
<p>
|
|
Also kö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ä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ü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="-> ü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="1512926192327" 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="1512926192328" TEXT="in Attribut-Iterator">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1439826529649" ID="ID_1514781996" MODIFIED="1439826559628" TEXT="wäre schö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ö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ösung, daß die Typ-ID in einem weiteren Vektor gespeichert wird.
|
|
</p>
|
|
<p>
|
|
Das könnte dann ein Metadaten-Vektor sein.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Natürlich ist dieser Ansatz nur sinnvoll, <i>wenn wir wirklich Metadaten brauchen.</i>
|
|
</p>
|
|
<p>
|
|
Denn jeder Record zahlt den Preis für die komplexere (zusätzliche) Datenstruktur!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1436924578936" ID="ID_677097690" MODIFIED="1512926192328" 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üßte jede Eingans-Collection normalisieren"/>
|
|
<node CREATED="1439826782368" ID="ID_386953463" MODIFIED="1439826789763" TEXT="man müß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="'magische' IDs als Attribute">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1439827021297" ID="ID_154339557" MODIFIED="1439827028484" TEXT="brauche ich fü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ört das in einen hö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" ID="ID_1688475597" MODIFIED="1512926192332" 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="1512926192333" TEXT="stand-in heiß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ür den Aufrufer"/>
|
|
<node CREATED="1434205862449" ID="ID_1736858324" MODIFIED="1434205879837" TEXT="Konsequenz: DataCap muß das verstehen"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1434128128869" ID="ID_244966341" MODIFIED="1512926192333" TEXT="Verben">
|
|
<node CREATED="1434128134508" ID="ID_553361956" MODIFIED="1512926192334" TEXT="ID-Repräs">
|
|
<arrowlink COLOR="#ff0033" DESTINATION="ID_976705384" ENDARROW="Default" ENDINCLINATION="10;45;" ID="Arrow_ID_1285375088" STARTARROW="Default" STARTINCLINATION="-13;-67;"/>
|
|
<node CREATED="1434128393429" ID="ID_1275202366" MODIFIED="1434128584214" TEXT="muß GenNode sein">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1434128412934" ID="ID_1319614474" MODIFIED="1512926192334" TEXT="Reprä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ß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=""fehlkonstruierte" ID + prüf-Prä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ündung">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1436021581655" ID="ID_124352424" MODIFIED="1436021603779" TEXT="hash-identische ID sorgt für transparente Integration"/>
|
|
<node CREATED="1436021610648" ID="ID_1621632066" MODIFIED="1436021618067" TEXT="das nimmt Komplexität aus der Anwendung heraus"/>
|
|
<node CREATED="1436021623799" ID="ID_929212705" MODIFIED="1436021637115" TEXT="fü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ält sich dann nicht transparent, denn sie hat eine andere Identitä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ämlich auch Ausdrucksmittel sein"/>
|
|
<node CREATED="1436021848790" ID="ID_742066846" MODIFIED="1436021874042" TEXT="problematisch ist die Implementerung des Erkennungs-Prädikates"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1434128446029" ID="ID_1779802587" MODIFIED="1512926192338" TEXT="hash-identisch">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
heiß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>
|
|
"ungenutzten" DataCap
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1434128996949" ID="ID_654762061" MODIFIED="1434239007746" TEXT="kö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ä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ü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="1512926192342" TEXT="brauchen wir einen ref-Typ">
|
|
<font NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1434129063053" ID="ID_1242923371" MODIFIED="1434129082821">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Verarbeiten
|
|
</p>
|
|
<p>
|
|
von Teilbäumen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1436019533354" ID="ID_1500539399" MODIFIED="1436019542698" TEXT="Konzept-Bruch">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1436042718309" ID="ID_109270255" MODIFIED="1436042725210" TEXT="Ja!">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1443733567706" HGAP="241" ID="ID_143203937" MODIFIED="1502452847840" TEXT="Diff-Language" VSHIFT="23">
|
|
<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öß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> 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ä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ß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=""type"-Attribut">
|
|
<font NAME="SansSerif" SIZE="11"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1443734030329" ID="ID_257027438" MODIFIED="1443734033052" TEXT="befü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ürde sagen: ja, aber auch <i>nur</i> für das after-Verb!
|
|
</p>
|
|
<p>
|
|
allgemein halte ich einen wrap-around für keine gute Idee,
|
|
</p>
|
|
<p>
|
|
weil er zu Zweideutigekeigen führt und daher Struktur oder Konsistenzfehler ü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ä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="überflüssig">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
läßt sich stets duch eine inverse Folge von <i>find</i> und <i>pick</i>  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ö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ü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="1512926192352" TEXT="Objekt-Baum-Semantik" VSHIFT="13">
|
|
<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ät">
|
|
<node CREATED="1443736349465" ID="ID_1312270317" MODIFIED="1512926192354" TEXT="strikt">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
vorerst verworfen, da zusätzlicher Prü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" ID="ID_1936057196" MODIFIED="1512926192355" 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ür Attribute"/>
|
|
<node CREATED="1473353095051" ID="ID_484062615" MODIFIED="1473353096974" TEXT="fü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" ID="ID_1359413673" MODIFIED="1512926192357" TEXT="Modell "Liste"">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1443737510238" ID="ID_1135997794" MODIFIED="1443737510238" TEXT="Duplikate anhängen"/>
|
|
<node CREATED="1443737516852" ID="ID_636329172" MODIFIED="1443737527750" TEXT="Einfügen erlauben"/>
|
|
<node CREATED="1443737528578" ID="ID_1554159544" MODIFIED="1443737538461" TEXT="Umordnen erlauben"/>
|
|
<node CREATED="1443737570229" ID="ID_28119998" MODIFIED="1443737576392" TEXT="Löschen erfordert Ansteuern"/>
|
|
</node>
|
|
<node CREATED="1443737497870" ID="ID_113467015" MODIFIED="1512926192358" TEXT="Modell "Map"">
|
|
<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 überschreiben"/>
|
|
<node CREATED="1443737605080" ID="ID_609776485" MODIFIED="1443737739674" TEXT="Neue an Standardort anfügen"/>
|
|
<node CREATED="1443737747941" ID="ID_1552219906" MODIFIED="1443737757207" TEXT="Umordnungen verweigern/ignorieren"/>
|
|
<node CREATED="1443737769122" ID="ID_697980786" MODIFIED="1443737777276" TEXT="Löschen an beliebiger Stelle wirksam"/>
|
|
</node>
|
|
<node CREATED="1443738082216" HGAP="38" ID="ID_870184525" MODIFIED="1512926192358" TEXT="Abwägung" VSHIFT="7">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1443738097022" ID="ID_1609921484" MODIFIED="1443738178020" TEXT="Modelle schließen sich aus">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...Grund: sie werden durch einen jeweils komplett anderen Ansatz implementiert
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
"Liste" beruht auf dem Attribut-Iterator und dem Aufbauen einer neuen Attribut-Sammlung
|
|
</li>
|
|
<li>
|
|
"Map" beruht darauf, alle Operationen an die Storage zu delegieren
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1443738179947" ID="ID_1249607715" MODIFIED="1512926192359" TEXT=""Liste"">
|
|
<node CREATED="1443738196336" ID="ID_855336404" MODIFIED="1512926192359" 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ßt, man kann Attribute in einer "sinnvoll lesbaren" Ordnung anschreiben
|
|
</p>
|
|
<p>
|
|
und später angefügte Attribute bleiben so erkennbar.
|
|
</p>
|
|
<p>
|
|
Vorteilhaft fü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>
|
|
"hoch effizient", unter der Annahme, daß fast immer nur konforme Änderungen kommen.
|
|
</p>
|
|
<p>
|
|
Weil dann nämlich die in unserer Implementierung ggfs. kostspieligen Umordnungen entfallen,
|
|
</p>
|
|
<p>
|
|
kommen wir auf lineare Komplexität für die Verarbeitung
|
|
</p>
|
|
<p>
|
|
+ NlogN für den Index zur Diff-Erzeugung
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1443738199160" ID="ID_955544777" MODIFIED="1512926192360" 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 (!)</i>
|
|
</p>
|
|
<p>
|
|
baut einen Index auf (N*logN), um Einfügungen/Entfernungen zu erkennen und Umordnungs-Suche zu unterstützen.
|
|
</p>
|
|
<p>
|
|
Wenn wir aber von ausschließlich konformen Operationen ausgehen,
|
|
</p>
|
|
<p>
|
|
wird dieser Index nicht benötigt. Leider können wir das aber nicht garantieren, denn
|
|
</p>
|
|
<p>
|
|
es könnte ja zwischenzeitlich ein Attribut gelöscht und dann später (am Ende) wieder
|
|
</p>
|
|
<p>
|
|
angehä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="1512926192360" TEXT=""Map"">
|
|
<node CREATED="1443738196336" ID="ID_997066012" MODIFIED="1512926192360" TEXT="Vorteile">
|
|
<node CREATED="1443738237731" ID="ID_1438410748" MODIFIED="1443738244389" TEXT="Konformität garantiert"/>
|
|
</node>
|
|
<node CREATED="1443738199160" ID="ID_571621671" MODIFIED="1512926192361" 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> die Storage hoch-optimiert ist,
|
|
</p>
|
|
<p>
|
|
dann überträ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üssen wir für jede Einfügung eine vollstä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=""Listen"-Modell"/>
|
|
<node CREATED="1443739228542" ID="ID_773218806" MODIFIED="1443739244615" TEXT="eindeutig vorzuziehen"/>
|
|
<node CREATED="1443739245483" ID="ID_1943112941" MODIFIED="1512926192362" TEXT="zwei Grü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" ID="ID_1428762486" MODIFIED="1512926192363" TEXT=""zwei Listen"-Modell">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1443739335823" ID="ID_860198617" MODIFIED="1443739349777" TEXT="intern führen wir zwei Listen-Diffs durch"/>
|
|
<node CREATED="1443739350869" ID="ID_464299464" MODIFIED="1443739368974" TEXT="ein Trennkriterium fü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ä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ä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ä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ährlich bei strikter Konformitä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ü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ür das "Listen"-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ßt:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
es wird einfach vom zuständigen Layer (der für die Attribute) aufgegriffen
|
|
</li>
|
|
<li>
|
|
es hat keinen Einfluß auf die nach auß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ührt zum Fehler wg. "zwei Listen"-Modell">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...da das Kind in der Liste der Attribute nä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ächste Operation ein fetch eines Kindes ist, müssen wir implizit den
|
|
</p>
|
|
<p>
|
|
Wechsel in den Scope vollziehen und die Operation dort ausfü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äß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-Überschuß 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=""zwei Listen"-Modell"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1443741905157" HGAP="364" ID="ID_1960988662" MODIFIED="1488423307285" TEXT="Diff-Implementierung" VSHIFT="17">
|
|
<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 -> kovariant"/>
|
|
<node CREATED="1444523091939" ID="ID_720826260" MODIFIED="1444523103670" TEXT="akzeptiert Interpreter -> 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="1512926192376">
|
|
<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äume">
|
|
<node CREATED="1445295582392" ID="ID_243770452" MODIFIED="1445295587819" TEXT="Umhängen von Teilbäumen"/>
|
|
<node CREATED="1445295588127" ID="ID_1541079773" MODIFIED="1445295598746" TEXT="Abstieg in Teilbä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ü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ß">
|
|
<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ö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 ü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> 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ö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ß 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 ü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="1512926192447" TEXT="technische Komplikation: "2 Listen"-Modell">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1445620914088" ID="ID_1919426539" MODIFIED="1445621018036" TEXT="Verhalten ä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äsentation klassifizieren"/>
|
|
<node CREATED="1473352784533" ID="ID_1907760521" MODIFIED="1473352794511" TEXT="das normale Binding fü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ä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="1512926192449" 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ü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ösungsansä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ür den geschachtelten Kontext
|
|
</p>
|
|
<p>
|
|
und gibt ihm rekursiv den Diff hinein. Wenn dieser Aufruf zurückkehrt
|
|
</p>
|
|
<p>
|
|
ist der gesammte Diff fü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ä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ß das Token anschauen"/>
|
|
<node CREATED="1446159999939" ID="ID_1385561919" MODIFIED="1446160014569" TEXT="nicht kompatibel mit userem "Interpreter"-Modell"/>
|
|
<node CREATED="1446159858701" ID="ID_751122481" MODIFIED="1446160039239" TEXT="Applikator muß 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ü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 "Interpreter"-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ündet duch die generische Architektur.
|
|
</p>
|
|
<p>
|
|
Die Trennung von Diff-Iteration und dem Interpreter ermöglicht verschiedene Sprach-Ebenen.
|
|
</p>
|
|
<p>
|
|
Allerdings werde ich fü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ür GenNodeBasic_test">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Problem sind mal wieder die automatisch generierten IDs.
|
|
</p>
|
|
<p>
|
|
Die sind natürlich anders, wenn wir die ganze Testsuite ausführen...
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446356588505" ID="ID_895292312" MODIFIED="1512926192454" TEXT="gründlicher Test">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1473352634730" ID="ID_955392554" MODIFIED="1473352641908" TEXT="bis jetzt nur "positiv-Tests""/>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1473352642473" ID="ID_839131437" MODIFIED="1473352654368" TEXT="Abdeckung der Grenzfä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ö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ü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ösen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Dekorator-Prinzip.
|
|
</p>
|
|
<p>
|
|
Paß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ür Systemdiagnose"/>
|
|
<node CREATED="1502454479907" ID="ID_234469818" MODIFIED="1502454491525" TEXT="lesbare Formattierung"/>
|
|
<node CREATED="1502454492162" ID="ID_983774503" MODIFIED="1502454496237" TEXT="auf später vertagt"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1460934597764" HGAP="163" ID="ID_1014666775" MODIFIED="1488423307306" TEXT="Review" VSHIFT="6">
|
|
<font NAME="SansSerif" SIZE="15"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1460934670043" ID="ID_1299827687" MODIFIED="1460934677134" TEXT="später zu überprüfen">
|
|
<node CREATED="1460934686017" ID="ID_900313780" MODIFIED="1460934697931" TEXT="Klarheit"/>
|
|
<node CREATED="1460934698430" ID="ID_1527149180" MODIFIED="1460934702241" TEXT="praktischer Kontext"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1460934704022" ID="ID_369718039" MODIFIED="1460934723329" TEXT="fragwürdig">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1460934726315" ID="ID_865694069" MODIFIED="1512926192457" TEXT="Immutabilität">
|
|
<node CREATED="1460934748064" ID="ID_321786426" MODIFIED="1460934753060" TEXT="keine klare Linie"/>
|
|
<node CREATED="1460934753440" ID="ID_44139402" MODIFIED="1460934764386" TEXT="einerseits ja, feste Datenwerte"/>
|
|
<node CREATED="1460934764830" ID="ID_594837209" MODIFIED="1460934769313" TEXT="dann aber doch Assignment"/>
|
|
<node CREATED="1460934771253" ID="ID_1299180901" MODIFIED="1460934782511" TEXT="und ein Gemurkse bei den Records"/>
|
|
</node>
|
|
<node CREATED="1460934785067" ID="ID_945933568" MODIFIED="1512926192457" TEXT="Abkürzungen in der Sprache">
|
|
<node CREATED="1460934793738" ID="ID_1602968303" MODIFIED="1460934798453" TEXT="Ref::CHILD"/>
|
|
<node CREATED="1460934799137" ID="ID_1189559717" MODIFIED="1460934801653" TEXT="Ref::THIS"/>
|
|
<node CREATED="1460934802385" ID="ID_961490107" MODIFIED="1460934807556" TEXT="Ref::ATTRIBS"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1443740543812" HGAP="17" ID="ID_1766169268" MODIFIED="1488423307314" TEXT="Tests" VSHIFT="20">
|
|
<font NAME="SansSerif" SIZE="14"/>
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1443740549220" ID="ID_167459949" MODIFIED="1443740564198" TEXT="List-Diff">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1443740554315" ID="ID_1970336632" MODIFIED="1443740562083" TEXT="Anwenden">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1443740556587" ID="ID_1725890953" MODIFIED="1443740560218" TEXT="Erzeugen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1443740566042" ID="ID_632827470" MODIFIED="1502593717967" TEXT="Baum-Diff">
|
|
<icon BUILTIN="prepare"/>
|
|
<node CREATED="1443740576744" ID="ID_335386387" MODIFIED="1502593705932" 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ügen"/>
|
|
<node CREATED="1443741383579" ID="ID_69718214" MODIFIED="1443741387039" TEXT="Kind anfü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ä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="1448063892056" TEXT="Zyklus">
|
|
<node CREATED="1448063893293" ID="ID_1135705575" MODIFIED="1448063895640" TEXT="initial"/>
|
|
<node CREATED="1448063896300" ID="ID_1403759288" MODIFIED="1448063901895" TEXT="Zuordnung"/>
|
|
<node CREATED="1448063902387" ID="ID_1822852634" MODIFIED="1448063907367" TEXT="Aktion"/>
|
|
<node CREATED="1448063908243" ID="ID_474614648" MODIFIED="1448063912622" TEXT="Update"/>
|
|
<node CREATED="1448063913618" ID="ID_1967302094" MODIFIED="1448063944777" TEXT="Ende"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448314834155" ID="ID_1725514536" MODIFIED="1482524387497" POSITION="right" TEXT="Integral">
|
|
<node CREATED="1448315011484" ID="ID_867104544" MODIFIED="1482524639777" TEXT="generisch">
|
|
<node CREATED="1448315015107" ID="ID_1900900399" MODIFIED="1448315016511" TEXT="JSON">
|
|
<node CREATED="1448315031553" ID="ID_1177387568" MODIFIED="1448321655258" TEXT="parser">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1448315067524" ID="ID_430746611" MODIFIED="1488423307320" TEXT="Libs">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1448315070908" ID="ID_1328571674" MODIFIED="1512926192465" TEXT="JSON-C">
|
|
<node CREATED="1448318526124" ID="ID_737325795" MODIFIED="1448318530232" TEXT="einfach"/>
|
|
<node CREATED="1448318531644" ID="ID_745699377" MODIFIED="1448318533543" TEXT="robust"/>
|
|
<node CREATED="1448318534203" ID="ID_1415146809" MODIFIED="1448318535863" TEXT="grottig"/>
|
|
</node>
|
|
<node CREATED="1448316910322" ID="ID_677006595" MODIFIED="1512926192466" TEXT="JsonCpp">
|
|
<node CREATED="1448318540363" ID="ID_269049852" MODIFIED="1448318568235" TEXT="sehr weit verbreitet"/>
|
|
<node CREATED="1448318569151" ID="ID_239373731" MODIFIED="1448318601522">
|
|
<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="1448318719135" TEXT="unterstützt Builder für Integration in den Parse-Vorgang"/>
|
|
<node CREATED="1448318726098" ID="ID_1386753436" MODIFIED="1448318736621" TEXT="unterstützt Kommentarte (non-Standard)"/>
|
|
<node CREATED="1448318671009" ID="ID_1620559470" MODIFIED="1448318691459" TEXT="kann als eine große CPP-Datei eingebunden werden"/>
|
|
<node CREATED="1448319454226" ID="ID_108762123" MODIFIED="1448319476071">
|
|
<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="1448320354088" TEXT="MIT"/>
|
|
</node>
|
|
<node CREATED="1448316923520" ID="ID_1207744350" MODIFIED="1512926192468" TEXT="rapidjson">
|
|
<node CREATED="1448320356547" ID="ID_18433884" MODIFIED="1448320362967" TEXT="MIT / teils BSD"/>
|
|
<node CREATED="1448320418619" ID="ID_972456274" MODIFIED="1448320428198" TEXT="gilt als schnell und effizient"/>
|
|
<node CREATED="1448320428906" ID="ID_279600641" MODIFIED="1448321207817">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
hat ein DOM-API <i>und</i> ein SAX-artiges API
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1448320473828" ID="ID_681519615" MODIFIED="1448320508422" TEXT="header-only, self-contained, keine Abhängigkeiten!">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
das heißt: <b>nicht einmal</b> abhängig von der STL
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448320555049" ID="ID_1836540415" MODIFIED="1448321597617" TEXT="erweiterter Unicode-Support, incl. recoding beim Parsen"/>
|
|
<node CREATED="1448321567452" ID="ID_933252727" MODIFIED="1448321582600" 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="1448320554597" TEXT="vollständig, incl Ersetzungen"/>
|
|
<node CREATED="1448321598848" ID="ID_1151875949" MODIFIED="1448321606499" TEXT="eigener Block-Allokator, ersetzbar"/>
|
|
</node>
|
|
<node CREATED="1448318965627" ID="ID_453761706" MODIFIED="1512926192468" TEXT="vjson / gason">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
vjson war Google Code;
|
|
</p>
|
|
<p>
|
|
nach dem Umzug auf Github heißt es gason
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1448319925356" ID="ID_1589130421" MODIFIED="1448320242925" TEXT="angeblich ziemlich schnell">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
lt. eigenen Benchmakrs deutlich schneller als rapitjson, welches eigentlich immer als der "schnelle" JSON-Parser gilt.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448319936915" ID="ID_1093677957" MODIFIED="1448319953316" TEXT="C++, aber ehr C-artiges API"/>
|
|
<node CREATED="1448319955328" ID="ID_534293846" MODIFIED="1448319962555" TEXT="type-tag, switch-on-type"/>
|
|
<node CREATED="1448319963711" ID="ID_1858072437" MODIFIED="1448320100768" 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="1448320003901" TEXT="Werte werden in IEEE double NaN geboxt"/>
|
|
<node CREATED="1448320035173" ID="ID_226864203" MODIFIED="1448320053255" TEXT="eigener Block-Allokator"/>
|
|
<node CREATED="1448320365290" ID="ID_1044522194" MODIFIED="1448320366526" TEXT="MIT"/>
|
|
</node>
|
|
<node CREATED="1448315073819" ID="ID_280907535" MODIFIED="1512926192469" TEXT="boost spirit">
|
|
<node CREATED="1448316823037" ID="ID_726858418" MODIFIED="1448316825976" TEXT="reiner parser"/>
|
|
<node CREATED="1448321185310" ID="ID_180554028" MODIFIED="1448321192489" TEXT="kann direkt in Vector parsen"/>
|
|
<node CREATED="1448316826444" ID="ID_263014084" MODIFIED="1448316840095" TEXT="grammatik via metaprogrmming"/>
|
|
<node CREATED="1448316840474" ID="ID_1878535070" MODIFIED="1448321141123" TEXT="code bloat, vor allem in Debug-builds">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1448321146283" ID="ID_1257942632" MODIFIED="1448321166341" TEXT="Verö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="1512926192469" TEXT="boost property-tree">
|
|
<node CREATED="1448316790553" ID="ID_1199102717" MODIFIED="1448316795764" TEXT="einfaches API"/>
|
|
<node CREATED="1448316796240" ID="ID_1402766358" MODIFIED="1448316803299" TEXT="parst in einen boost::property_tree"/>
|
|
<node CREATED="1448316803799" ID="ID_534763461" MODIFIED="1448321138090" TEXT="keine Typisierung">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448320959060" ID="ID_937046843" MODIFIED="1448321217315" TEXT="Entscheidung">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1448320963067" ID="ID_824752283" MODIFIED="1448321223059" TEXT="rapidjson">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1448320987776" ID="ID_545245790" MODIFIED="1512926192470" TEXT="Begründung...">
|
|
<node CREATED="1448321001518" ID="ID_671858484" MODIFIED="1448321049432">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
ich will nicht <i>noch ein</i> Objekt-System
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1448321022444" ID="ID_658035448" MODIFIED="1448321032302" TEXT="das SAX-API ist genau, was ich brauche"/>
|
|
<node CREATED="1448321063078" ID="ID_923664235" MODIFIED="1448321070185" TEXT="außerdem klein und schmerzlos"/>
|
|
<node CREATED="1448321614174" ID="ID_1319618589" MODIFIED="1448321630999" TEXT="schönes API, und ist schnell"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448315063541" ID="ID_430049414" MODIFIED="1448315065344" TEXT="framework">
|
|
<node CREATED="1448321310054" ID="ID_180974747" MODIFIED="1448321312681" TEXT="Forderungen">
|
|
<node CREATED="1448321258189" ID="ID_1374008180" MODIFIED="1448321323703" TEXT="diff::Record als Container"/>
|
|
<node CREATED="1448321329691" ID="ID_982254628" MODIFIED="1448321335478" TEXT="Validierung beim Parsen"/>
|
|
<node CREATED="1448321280178" ID="ID_1241470226" MODIFIED="1448321328887" TEXT="Erweiterbarkeit auf Objekt-Serialisieierung"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482524641484" ID="ID_1651495185" MODIFIED="1482524645893" TEXT="Architektur"/>
|
|
<node CREATED="1482524498822" ID="ID_431883229" MODIFIED="1482524501904" TEXT="Datenstrom"/>
|
|
<node CREATED="1482524516371" ID="ID_396707258" MODIFIED="1482524525561" TEXT="Event-Sourcing"/>
|
|
<node CREATED="1482524530842" ID="ID_606738640" MODIFIED="1482524535059" TEXT="Dependency-Injection"/>
|
|
<node CREATED="1482524535575" ID="ID_387248900" MODIFIED="1482524540392" TEXT="Extension-System"/>
|
|
<node CREATED="1482524569705" ID="ID_1815572475" MODIFIED="1482524583394" TEXT="Parametrisierung"/>
|
|
</node>
|
|
<node CREATED="1448314890907" ID="ID_411012156" MODIFIED="1488423307321" POSITION="right" TEXT="Session">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1481688464060" ID="ID_53574817" MODIFIED="1481688467351" TEXT="Architektur">
|
|
<node CREATED="1481688469507" ID="ID_1691953889" MODIFIED="1481688476974" TEXT="Session-Subsystem">
|
|
<node CREATED="1481688478057" ID="ID_1082882066" MODIFIED="1481688486685" TEXT="äquivalent zum ProcDispatcher"/>
|
|
<node CREATED="1481688490000" ID="ID_579694361" MODIFIED="1481688499051" TEXT="koordiniert die Abläufe in Proc"/>
|
|
</node>
|
|
<node CREATED="1481688500943" ID="ID_1821833408" MODIFIED="1482464848610" 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="1484377682969" TEXT="Logik" VSHIFT="5">
|
|
<icon BUILTIN="hourglass"/>
|
|
</node>
|
|
<node CREATED="1481688517437" HGAP="24" ID="ID_241232196" MODIFIED="1483927980740" TEXT="Lifecycle" VSHIFT="8">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1481688521532" ID="ID_1825349679" MODIFIED="1483927971331" TEXT="Session startet on demand"/>
|
|
<node CREATED="1481688529539" ID="ID_1972961763" MODIFIED="1481688540109" TEXT="SessionManager ist zuständig"/>
|
|
<node CREATED="1481688544921" ID="ID_1934560784" MODIFIED="1481688561386" TEXT="wenn Session geladen, ist ProcDispatcher freigegeben"/>
|
|
<node CREATED="1481688562830" ID="ID_708961458" MODIFIED="1481688582024" TEXT="SessionSubsystem startet processing loop im ProcDispatcher"/>
|
|
<node CREATED="1481777252497" ID="ID_1789585729" MODIFIED="1488423307323" TEXT="Shutdown">
|
|
<linktarget COLOR="#5a97df" DESTINATION="ID_1789585729" ENDARROW="Default" ENDINCLINATION="3216;0;" ID="Arrow_ID_1930701586" SOURCE="ID_1392452935" STARTARROW="None" STARTINCLINATION="8475;0;"/>
|
|
<node CREATED="1481777297635" ID="ID_483368010" MODIFIED="1481777305432" TEXT="Deadlock-Gefahr">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1481777308978" ID="ID_1380229085" MODIFIED="1481777327818" TEXT="Lebensdauer der Session-Datenstruktur">
|
|
<node CREATED="1481777328479" ID="ID_1668359018" MODIFIED="1481777336447" TEXT="unabhängig vom Session-Subsystem">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1481777343548" ID="ID_354877994" MODIFIED="1481777350704" TEXT="irgendwann post main()"/>
|
|
</node>
|
|
<node CREATED="1481777355747" ID="ID_1804595708" MODIFIED="1481777364326" TEXT="Subsystem->end">
|
|
<node CREATED="1481777368330" ID="ID_1933237483" MODIFIED="1481777374277" TEXT="Halte-Nachricht"/>
|
|
<node COLOR="#338800" CREATED="1481777374801" ID="ID_1844558240" MODIFIED="1483654878632" TEXT="sicherstellen, daß Loop anhält">
|
|
<arrowlink COLOR="#f70841" DESTINATION="ID_1748096848" ENDARROW="Default" ENDINCLINATION="-353;-77;" ID="Arrow_ID_506637666" STARTARROW="None" STARTINCLINATION="-200;38;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1483654823454" ID="ID_397283548" MODIFIED="1483654831113" TEXT="shutdown -> requireAction"/>
|
|
<node CREATED="1483654831773" ID="ID_911489519" MODIFIED="1483654845495" TEXT="shutdown-Trigger macht Notify"/>
|
|
<node CREATED="1483654846083" ID="ID_1926442698" MODIFIED="1483654852935" TEXT="Loop-Thread wacht auf"/>
|
|
<node CREATED="1483654853850" ID="ID_934617670" MODIFIED="1483654862885" TEXT="...und fällt aus der Loop heraus"/>
|
|
</node>
|
|
<node CREATED="1481777397542" ID="ID_1147135932" MODIFIED="1481778447806" TEXT="DispatcherLoop stirbt"/>
|
|
<node CREATED="1481777410972" ID="ID_457965735" MODIFIED="1481777418982" TEXT="sigTerm"/>
|
|
<node CREATED="1483927907096" ID="ID_1366384241" MODIFIED="1483927919263" TEXT="destruktor setzt auch PImpl auf NULL">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1483927920718" ID="ID_409709261" MODIFIED="1483927929088" TEXT="niemand sonst faßt den PImpl an"/>
|
|
<node CREATED="1483927929773" ID="ID_1082393310" MODIFIED="1483927945790" TEXT="atomar wg. Lock auf ProcDispatcher"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481778538165" HGAP="37" ID="ID_522398894" MODIFIED="1488423307326" TEXT="ProcDispatcher" VSHIFT="12">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481826274018" HGAP="18" ID="ID_1916296972" MODIFIED="1482430840977" TEXT="Requirements" VSHIFT="-7">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481826329819" ID="ID_1238318698" MODIFIED="1481826431105" TEXT="enqueue commands concurrently">
|
|
<node CREATED="1481827297122" ID="ID_860095678" MODIFIED="1481827311268" TEXT="FIFO for regular commands"/>
|
|
<node CREATED="1481827312024" ID="ID_850193431" MODIFIED="1481827318187" TEXT="LIFO for priority requests">
|
|
<node CREATED="1482712100745" ID="ID_1387300775" MODIFIED="1482712106824" TEXT="vorerst nicht implementiert">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481826431861" ID="ID_328583048" MODIFIED="1481826440935" TEXT="process sequentially"/>
|
|
<node CREATED="1481826441884" ID="ID_952327020" MODIFIED="1481826446791" TEXT="until queue is empty"/>
|
|
<node CREATED="1481826997930" ID="ID_576341056" MODIFIED="1488423307326" TEXT="provide a check point">
|
|
<node CREATED="1481827040748" ID="ID_406205627" MODIFIED="1481827045172" TEXT="when">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1481827019615" ID="ID_1169845292" MODIFIED="1481827024402" TEXT="after each command"/>
|
|
<node CREATED="1481827024942" ID="ID_137101226" MODIFIED="1483747035198" TEXT="after each builder run"/>
|
|
</node>
|
|
<node CREATED="1481827051787" ID="ID_1911969568" MODIFIED="1481827055340" TEXT="why">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1483747048432" ID="ID_1165337571" MODIFIED="1483747060594" TEXT="to ensure sane state logic"/>
|
|
<node CREATED="1483747065326" ID="ID_896973402" MODIFIED="1511572078227" 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="1511572078236" 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="1481827646856" TEXT="match current session"/>
|
|
<node CREATED="1481827647491" ID="ID_1849886325" MODIFIED="1481827652111" TEXT="aggregate similar"/>
|
|
<node CREATED="1481827652539" ID="ID_313823253" MODIFIED="1481827657846" TEXT="supersede"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481917572639" HGAP="74" ID="ID_190109346" MODIFIED="1488423307332" TEXT="operational..." VSHIFT="-27">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1481917612602" ID="ID_567971228" MODIFIED="1481917622388" TEXT="Loop läuft stets, aber blockt ggfs"/>
|
|
<node CREATED="1481917641910" ID="ID_1157396234" MODIFIED="1481917663639" TEXT="anfänglich idle --> schlafen"/>
|
|
<node CREATED="1481918441020" ID="ID_584625018" MODIFIED="1481918463933" TEXT="Command-Queue wird ohne Verzögerung abgearbeitet"/>
|
|
<node CREATED="1481918465680" ID="ID_973127249" MODIFIED="1481918474355" TEXT="Builder startet">
|
|
<node CREATED="1481918475295" ID="ID_1997533333" MODIFIED="1481918480586" TEXT="nach kurzer Idle-Periode"/>
|
|
<node CREATED="1481918481102" ID="ID_335740959" MODIFIED="1481918491976" TEXT="nach längerer Command-Abarbeitung"/>
|
|
</node>
|
|
<node CREATED="1481917691047" ID="ID_714937554" MODIFIED="1481917700266" TEXT="Änderung der Umstände">
|
|
<node CREATED="1481917700998" ID="ID_470084004" MODIFIED="1481917705641" TEXT="kommt stets über Interface"/>
|
|
<node CREATED="1481917726683" ID="ID_962119246" MODIFIED="1481917738197" TEXT="weckt den Loop-Thread auf"/>
|
|
<node CREATED="1481917766837" ID="ID_1794908304" MODIFIED="1511572078319" TEXT="ist atomar (locking)">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Guard beim Zugang über das Interface
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1481918074269" ID="ID_1984339005" MODIFIED="1481918091136">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>nur sie</i> ist atomar
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481918117831" ID="ID_924462902" MODIFIED="1483746949675" TEXT="asynchron">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1481918130245" ID="ID_1624017067" MODIFIED="1481918382409">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<b>nur ein Thread</b> fü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="1481918180762" TEXT="essentiell für Konsitenz der Session"/>
|
|
<node CREATED="1481918181254" ID="ID_1313994065" MODIFIED="1481918191233" TEXT="stellt bereits sicher, daß der Builder blockt"/>
|
|
</node>
|
|
<node CREATED="1481918194356" ID="ID_1233041580" MODIFIED="1481918206823" TEXT="einfügen neuer Commands"/>
|
|
<node CREATED="1481918273490" ID="ID_1214851922" MODIFIED="1481918368739" TEXT="nä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="1481918331776" 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="1481918221844" TEXT="Shutdown-Triggger"/>
|
|
<node CREATED="1481918222577" ID="ID_1588368762" MODIFIED="1481918245517" TEXT="Sperre setzen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481918517018" HGAP="11" ID="ID_916331172" MODIFIED="1483654611468" TEXT="Sperre" VSHIFT="8">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481918524673" ID="ID_1705856370" MODIFIED="1483654636642" TEXT="verhindert Command- und Builder-start">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1481918547182" ID="ID_920627724" MODIFIED="1483654595721" TEXT="bestehende Commands / Builder-Läufe werden noch abgeschlossen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481920722100" ID="ID_1378897740" MODIFIED="1483654575032" TEXT="SessionManager muß auf Sperre warten">
|
|
<linktarget COLOR="#5a97df" DESTINATION="ID_1378897740" ENDARROW="Default" ENDINCLINATION="9540;0;" ID="Arrow_ID_1446486242" SOURCE="ID_284397306" STARTARROW="None" STARTINCLINATION="9540;0;"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481926040310" ID="ID_667460598" MODIFIED="1483746929724" TEXT="Deadlock wenn der Session-Thread selber auf diese Sperre wartet">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1482197251133" ID="ID_1245878337" MODIFIED="1483746892436">
|
|
<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="1482197288634" TEXT="neues API auf unserem Thread-Wrapper schaffen">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1482197280297" ID="ID_1142010083" MODIFIED="1482197291127" TEXT="rein technisch bereits heute möglich">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482197292263" ID="ID_669497196" MODIFIED="1511572078432" TEXT="jeder Lumiera-Thread speichert "self" in thread local storage">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...und "self" == LumieraThrea* == "handle" (im Wrapper).
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
D.h. solange der Wrapper lebt (!), kann er selber leicht feststellen, ob die aktuelle Ausfü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öne bei diesem Ansatz ist, daß man dafür weder das Handle exponieren muß,
|
|
</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="1482430869706" TEXT="Aufbau" VSHIFT="-35">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481828611347" ID="ID_160907866" MODIFIED="1481828614071" TEXT="Front-End"/>
|
|
<node CREATED="1481828614827" ID="ID_1752707995" MODIFIED="1481828622958" TEXT="DispatcherLoop PImpl"/>
|
|
<node CREATED="1481828624042" ID="ID_1970372601" MODIFIED="1481828635748" TEXT="Looper für Schleifen-Logik"/>
|
|
<node CREATED="1481828639584" ID="ID_1344182776" MODIFIED="1481828648402" TEXT="CommandQueue"/>
|
|
</node>
|
|
<node CREATED="1481778549940" HGAP="50" ID="ID_676848252" MODIFIED="1488423307337" TEXT="DispatcherLoop" VSHIFT="1">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481778741546" ID="ID_684867533" MODIFIED="1481778755694" TEXT="öffnet Session-Interface">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481778565298" ID="ID_1803510423" MODIFIED="1481778569181" TEXT="Schleifen-Logik">
|
|
<node CREATED="1481778570153" ID="ID_6904207" MODIFIED="1481778579395" TEXT="beruht auf CondVar / wait"/>
|
|
<node CREATED="1481831352239" ID="ID_947882756" MODIFIED="1481831357242" TEXT="Looper-Hilfskomponente"/>
|
|
<node CREATED="1481831372092" ID="ID_411828431" MODIFIED="1481832034056" TEXT="muß...">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1481831398297" ID="ID_1100709659" MODIFIED="1481831407731" TEXT="aufwachen wenn Commands anstehen"/>
|
|
<node CREATED="1481831722406" ID="ID_462123533" MODIFIED="1481831730937" TEXT="aufwachen wenn Checkpoint"/>
|
|
<node CREATED="1481831408415" ID="ID_1091888781" MODIFIED="1481831424193" TEXT="aufwachen bei Shutdown"/>
|
|
<node CREATED="1481831432220" ID="ID_1256743195" MODIFIED="1481831446206" TEXT="Shutdown-Flag verwalten"/>
|
|
<node CREATED="1481831886448" ID="ID_1022163658" MODIFIED="1512926192470" TEXT="Betriebszustand">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1481831945472" ID="ID_756400184" MODIFIED="1481831947772" TEXT="arbeitend"/>
|
|
<node CREATED="1481831948240" ID="ID_349500680" MODIFIED="1481832004796" TEXT="Leerlauf"/>
|
|
<node CREATED="1481831950160" ID="ID_602481733" MODIFIED="1481831962578" TEXT="gesperrt"/>
|
|
<node CREATED="1481831965253" ID="ID_1644273707" MODIFIED="1481832013139" TEXT="sterbend"/>
|
|
</node>
|
|
<node CREATED="1481831638089" ID="ID_209292609" MODIFIED="1482375840758" 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="1512926192471" TEXT="Checkpoint bieten">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1482365008444" ID="ID_1520027430" MODIFIED="1482712182562" TEXT="warum">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1482365012947" ID="ID_10844185" MODIFIED="1482712196344" TEXT="um zuverlässig anhalten zu können"/>
|
|
<node CREATED="1482712199900" ID="ID_1990071363" MODIFIED="1482712291119" TEXT="Checkpoint == Zustand ausgeglichen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482712212930" ID="ID_1065088226" MODIFIED="1512926192472" TEXT="das heißt">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1482712227048" ID="ID_172281578" MODIFIED="1482712234491" TEXT="keine schwebenden Zustandsänderungen"/>
|
|
<node CREATED="1482712235016" ID="ID_943771142" MODIFIED="1482712249961" TEXT="Alle zustands-Relevanten Änderungen sind ausgewertet"/>
|
|
<node CREATED="1482712250461" ID="ID_610930154" MODIFIED="1482712260744" TEXT="alle Prädikate spiegeln den wirklichen Zustand wider"/>
|
|
<node CREATED="1482712261876" ID="ID_47966817" MODIFIED="1482712282765">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Kontrollfluß ist <i>nicht</i> in einer Arbeitsfunktion
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1481831747042" ID="ID_134003952" MODIFIED="1511572078574" 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="1481826297245" TEXT="Anhalten">
|
|
<linktarget COLOR="#f70841" DESTINATION="ID_1748096848" ENDARROW="Default" ENDINCLINATION="-353;-77;" ID="Arrow_ID_506637666" SOURCE="ID_1844558240" STARTARROW="None" STARTINCLINATION="-200;38;"/>
|
|
<node CREATED="1481778666820" ID="ID_1860590145" MODIFIED="1481917471448" TEXT="Trigger-Variable im Looper">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1481917462421" ID="ID_200909201" MODIFIED="1481917474864" TEXT="shutdown-Trigger ebenda">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1481917478412" ID="ID_594556769" MODIFIED="1481917505131" TEXT="kombiniert enabled und shutdown">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481778708207" HGAP="50" ID="ID_1311208726" MODIFIED="1488423307342" 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="1481828497838" TEXT="Hysterese"/>
|
|
<node CREATED="1481828498618" ID="ID_321199314" MODIFIED="1481828519539" TEXT="nach neuem Command, mit kleiner Verzögerung"/>
|
|
<node CREATED="1481828520176" ID="ID_239973202" MODIFIED="1481828532570" TEXT="bei voller Schlange mit Toleranzschwelle"/>
|
|
<node CREATED="1481828568129" ID="ID_295162940" MODIFIED="1481828574412" TEXT="Builder-Lauf ist monolithisch"/>
|
|
<node CREATED="1481928858318" ID="ID_1695005029" MODIFIED="1481928863793" TEXT="verdecken...">
|
|
<node CREATED="1481928864549" ID="ID_515765693" MODIFIED="1481928867281" TEXT="wenn gesperrt"/>
|
|
<node CREATED="1481928867893" ID="ID_1200076817" MODIFIED="1481928871448" TEXT="wenn in Shutdown"/>
|
|
</node>
|
|
<node CREATED="1481928874500" ID="ID_73724471" MODIFIED="1481928881567" TEXT="idle-timeout">
|
|
<node CREATED="1481928882723" ID="ID_770033134" MODIFIED="1482375680096" TEXT="dynamisch steuern">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481928888035" ID="ID_927205346" MODIFIED="1482375682035" TEXT="kurz, wenn der Builder laufen muß">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481928913687" ID="ID_696704157" MODIFIED="1482375684299" TEXT="lang sonst">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1481928939300" ID="ID_1625916543" MODIFIED="1482375686245" TEXT="kein Timeout wenn gesperrt">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1481928958233" ID="ID_350657817" MODIFIED="1482375661113" TEXT="Builder-Lauf erzwingen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1481928966167" ID="ID_1511723472" MODIFIED="1481928974435" TEXT="wenn lange Timeout-Spanne überschritten"/>
|
|
<node CREATED="1481928978223" ID="ID_106761868" MODIFIED="1482375654382" TEXT="Implementierung erfordert Zeitmessung">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1482365133332" ID="ID_99275973" MODIFIED="1482365147008" TEXT="moderne / zeitgemäße Implementierung">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1482365613228" ID="ID_1195899391" MODIFIED="1488423307343">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>billig:</i> unsere Zeit-Lib nutzen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1482430715396" ID="ID_1005651794" MODIFIED="1482430722896" TEXT="nicht besonders schön">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1482430724019" ID="ID_880234680" MODIFIED="1482430733678" TEXT="sollte mit std::chrono integrieren">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482202066204" HGAP="23" ID="ID_41541843" MODIFIED="1482202078184" TEXT="Lösungnsansatz" VSHIFT="16">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1482202080675" ID="ID_12774028" MODIFIED="1482202126233" TEXT="CommandQueue muß helfen und dirty-state verwalten">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1482202099752" ID="ID_434677221" MODIFIED="1482202114130" TEXT="geht, weil sie weiß, wann ein Command wirklich läuft"/>
|
|
<node CREATED="1482202114630" ID="ID_1833945556" MODIFIED="1482202123872" TEXT="unschön, weil wir nun massive Kopplung haben"/>
|
|
</node>
|
|
<node CREATED="1482202127252" ID="ID_1720469294" MODIFIED="1482375697342" TEXT="Looper in State-machine verwandeln">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1482202136235" ID="ID_239151488" MODIFIED="1482202175455" TEXT="schwierig">
|
|
<icon BUILTIN="stop-sign"/>
|
|
</node>
|
|
<node CREATED="1482202142818" ID="ID_1412852448" MODIFIED="1482202181794" TEXT="benötigt Hilfe von der DispatcherLoop">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1482202156416" ID="ID_1161547825" MODIFIED="1482202183920" TEXT="geht aber: nach jedem WHILE-Durchlauf">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482202165423" ID="ID_1845799711" MODIFIED="1482202186673" TEXT="schaut sauberer aus">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
<node CREATED="1482202187620" ID="ID_259250017" MODIFIED="1512926192472" TEXT="geht das überhaupt">
|
|
<icon BUILTIN="help"/>
|
|
<node CREATED="1482375716922" ID="ID_1702615812" MODIFIED="1482375756924" TEXT="ja">
|
|
<icon BUILTIN="forward"/>
|
|
</node>
|
|
<node CREATED="1482375724321" ID="ID_218202011" MODIFIED="1482375736264" TEXT="einfacher trap-door-Mechanismus">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1482375737327" ID="ID_1980564250" MODIFIED="1482375746202" TEXT="tendentiell bereits schwer zu verstehen">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node COLOR="#338800" CREATED="1482202207242" ID="ID_1287224856" MODIFIED="1482375808494" TEXT="Test">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1482202211049" ID="ID_1159832087" MODIFIED="1482202222520" TEXT="komplexen Ablauf als Szenario durchspielen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1482375826635" ID="ID_1275445978" MODIFIED="1482375832687" TEXT="beinhaltet auch einen Timeout">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1482202223536" ID="ID_374030732" MODIFIED="1482375796750">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Logik im Looper auf Basis
|
|
</p>
|
|
<p>
|
|
generischer Überlegungen implementiert
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1482202243253" ID="ID_1342399342" MODIFIED="1482202264229" TEXT="verhält er sich dann richtig">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1448314932726" ID="ID_669869188" MODIFIED="1484377639206" POSITION="right" TEXT="Render">
|
|
<icon BUILTIN="stop"/>
|
|
<node CREATED="1512923568305" ID="ID_1329323311" MODIFIED="1512923591458" TEXT="Player">
|
|
<node CREATED="1512923658341" ID="ID_1855109590" MODIFIED="1512923661209" TEXT="Interface"/>
|
|
<node CREATED="1512923661892" ID="ID_1580804608" MODIFIED="1512923669879" TEXT="Control"/>
|
|
<node CREATED="1512923672275" ID="ID_1369059082" MODIFIED="1512923681942" TEXT="Wiring"/>
|
|
<node CREATED="1512923682530" ID="ID_1204903801" MODIFIED="1512925181771" TEXT="Planning">
|
|
<node CREATED="1512925214070" ID="ID_491842947" MODIFIED="1512925216721" TEXT="1.Entwurf">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512925217693" ID="ID_704714253" MODIFIED="1512925229103" TEXT="steckengeblieben">
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1512925253328" ID="ID_922277724" MODIFIED="1512925255988" TEXT="JobTicket"/>
|
|
<node CREATED="1512925246057" ID="ID_181262071" MODIFIED="1512925953265" TEXT="JobPlanning">
|
|
<linktarget COLOR="#5379b5" DESTINATION="ID_181262071" ENDARROW="Default" ENDINCLINATION="41;130;" ID="Arrow_ID_1786254694" SOURCE="ID_1543264108" STARTARROW="Default" STARTINCLINATION="-100;0;"/>
|
|
<node CREATED="1512925265295" ID="ID_1502143527" MODIFIED="1512927071452">
|
|
<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;"/>
|
|
<icon BUILTIN="flag-blue"/>
|
|
<node CREATED="1512925334501" ID="ID_409327286" MODIFIED="1512925338369" TEXT="IterExplorer">
|
|
<node CREATED="1512925397741" ID="ID_1352590559" MODIFIED="1512925399832" TEXT="Design">
|
|
<node CREATED="1512925342773" ID="ID_1304424851" MODIFIED="1512925349647" TEXT="unbefriedigend"/>
|
|
<node CREATED="1512925350379" ID="ID_21486020" MODIFIED="1512925358222" TEXT="zu offen und flexibel"/>
|
|
<node CREATED="1512925358954" ID="ID_27814827" MODIFIED="1512925365830" TEXT="keine leitende Kohärenz"/>
|
|
<node CREATED="1512925366562" ID="ID_581707193" MODIFIED="1512925380755" TEXT="daher wie ein Gestrüpp"/>
|
|
</node>
|
|
<node CREATED="1512925431577" ID="ID_1834933729" MODIFIED="1512925435276" TEXT="Iterator-Chain">
|
|
<node CREATED="1512925436224" ID="ID_573800195" MODIFIED="1512925469481" TEXT="nice to have">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
gehört zu dem Themenkomplex "itertools"
|
|
</p>
|
|
<p>
|
|
Python hat das auch, Java neuerdings auch
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512925438992" ID="ID_1273839582" MODIFIED="1512925442243" TEXT="bisher nicht verwendet"/>
|
|
</node>
|
|
<node CREATED="1512925491857" ID="ID_652705156" MODIFIED="1512925500107" TEXT="Depth-fist / breadth fist">
|
|
<node CREATED="1512925501216" ID="ID_1197407538" MODIFIED="1512925507571" TEXT="Programmier-Übung"/>
|
|
<node CREATED="1512925508183" ID="ID_1861334930" MODIFIED="1512925519129" TEXT="ohne innere Notwendigkeit"/>
|
|
<node CREATED="1512925519653" ID="ID_1558680477" MODIFIED="1512925525928" TEXT="nicht verwendet"/>
|
|
</node>
|
|
<node CREATED="1512925529484" ID="ID_1844773201" MODIFIED="1512925535199" TEXT="SelfIntegration">
|
|
<node CREATED="1512925547393" ID="ID_1866032394" MODIFIED="1512925824495" TEXT="Design-Sackgasse">
|
|
<icon BUILTIN="stop-sign"/>
|
|
<node CREATED="1512925769363" ID="ID_582578425" MODIFIED="1512925776564" TEXT="geht gegen die Natur der Dinge"/>
|
|
<node CREATED="1512925732065" ID="ID_1377165331" MODIFIED="1512925739915" TEXT="verwirrendes Extension-API">
|
|
<node CREATED="1512925805416" MODIFIED="1512925805416" TEXT="build(...).wrapping(...)"/>
|
|
<node CREATED="1512925817645" MODIFIED="1512925817645" TEXT="build(...).usingSequence(...)"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512925552137" ID="ID_43735106" MODIFIED="1512925566984" TEXT="wollte den Stack vermeiden">
|
|
<icon BUILTIN="smiley-oh"/>
|
|
<node CREATED="1512925568958" ID="ID_1805640819" MODIFIED="1512925572706" TEXT="was gar nicht geht"/>
|
|
<node CREATED="1512925574782" ID="ID_22338010" MODIFIED="1512925588801" TEXT="Idee Inline-stack">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1512925593195" ID="ID_1333973816" MODIFIED="1512925598838" TEXT="das wäre aber eine reine Komponente"/>
|
|
<node CREATED="1512925599402" ID="ID_551236508" MODIFIED="1512925712030" 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> 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ürde
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512925864774" ID="ID_1543264108" MODIFIED="1512925953264" TEXT="verwendet für JobPlanning">
|
|
<arrowlink COLOR="#5379b5" DESTINATION="ID_181262071" ENDARROW="Default" ENDINCLINATION="41;130;" ID="Arrow_ID_1786254694" STARTARROW="Default" STARTINCLINATION="-100;0;"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512925959074" ID="ID_30857289" MODIFIED="1514748787067" TEXT="TODO: ablö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 CREATED="1512927162098" HGAP="93" ID="ID_1774532014" MODIFIED="1512927174286" TEXT="Einsichten" VSHIFT="37">
|
|
<node CREATED="1512927175056" ID="ID_516152902" MODIFIED="1512927179587" TEXT="nicht das Gelbe vom Ei">
|
|
<node CREATED="1512927204460" ID="ID_1166808329" MODIFIED="1512927213254" TEXT="kein wirkliches Design-Pattern"/>
|
|
<node CREATED="1512927213962" ID="ID_1374430987" MODIFIED="1512927217870" TEXT="es fehlt die Nennkraft"/>
|
|
</node>
|
|
<node CREATED="1512927667023" ID="ID_67694617" MODIFIED="1512927675338" TEXT="Probleme">
|
|
<node CREATED="1512927676973" ID="ID_1019834257" MODIFIED="1512927686736" TEXT="Mondaden sind eine rein technische Lösung"/>
|
|
<node CREATED="1512927687844" ID="ID_1680797364" MODIFIED="1512927702702" TEXT="sie vereinigen Themen ohne innere Verwadtschaft"/>
|
|
<node CREATED="1512927766769" ID="ID_943419159" MODIFIED="1512927805824" TEXT="Zusammenspiel gebundener Funktionen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...bindet die Betrachtung auf einen technischen Level,
|
|
</p>
|
|
<p>
|
|
und führt dazu, daß die Abstraktion undicht wird
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512927978133" ID="ID_1491853321" MODIFIED="1512927982640" TEXT="passen schlecht in C++">
|
|
<node CREATED="1512928064858" ID="ID_1221151193" MODIFIED="1512928075356" TEXT="entweder massiv Metaprogrammierung"/>
|
|
<node CREATED="1512928075920" ID="ID_491825441" MODIFIED="1512928086226" TEXT="oder man schafft ein runtime-Meta-System"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512928100557" ID="ID_767453821" MODIFIED="1512928107975" TEXT="nützlich">
|
|
<node CREATED="1512928114707" ID="ID_21920250" MODIFIED="1512928209813" TEXT="um Zustand auszukoppeln">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
genau der Umstand,
|
|
</p>
|
|
<p>
|
|
daß funktionale Sprachen von einer Zustands-Phobie getrieben sind,
|
|
</p>
|
|
<p>
|
|
macht Monaden nützlich, um inhä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="1512928365715" TEXT="um Konfigurierbarkeit zu schaffen"/>
|
|
<node CREATED="1512928258312" ID="ID_1469652928" MODIFIED="1512928264307" TEXT="um technische Details zu entflechten"/>
|
|
</node>
|
|
<node CREATED="1512928287812" ID="ID_212632305" MODIFIED="1512928290727" TEXT="Fazit">
|
|
<node CREATED="1512928291555" ID="ID_1651357350" MODIFIED="1512928300822" TEXT="nur ein »Monaden-Motiv« nutzen"/>
|
|
<node CREATED="1512928301386" ID="ID_589389944" MODIFIED="1512928321363" TEXT="das Builder-Pattern in den Vordergrund stellen">
|
|
<node CREATED="1512928322567" ID="ID_462235185" MODIFIED="1512928336304" TEXT="Builder ist ein wirkliches Pattern">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1512923592590" ID="ID_540019681" MODIFIED="1512923604912" TEXT="Engine"/>
|
|
<node CREATED="1512923605740" ID="ID_319280946" MODIFIED="1512923628557" TEXT="Fixture"/>
|
|
<node CREATED="1512923629577" ID="ID_617347424" MODIFIED="1512923646402" TEXT="Backend"/>
|
|
<node CREATED="1512923647255" ID="ID_1800845122" MODIFIED="1512923650242" TEXT="Plug-in"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#c9d1da" COLOR="#2d2198" CREATED="1439664045448" HGAP="240" ID="ID_21531707" MODIFIED="1439664212589" POSITION="left" TEXT="Info" VSHIFT="-500">
|
|
<edge COLOR="#b4a9e3"/>
|
|
<font NAME="SansSerif" SIZE="16"/>
|
|
<node CREATED="1439664217489" ID="ID_104059794" MODIFIED="1439664227516" TEXT="GTK-3">
|
|
<node CREATED="1439664230168" ID="ID_235548644" LINK="https://wiki.gnome.org/Projects/GTK%2B/Inspector" MODIFIED="1488423307344" TEXT="GKT+ Inspector">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1439664318604" ID="ID_1327496126" MODIFIED="1439664322871" TEXT="keyboard shortcut">
|
|
<node CREATED="1439664330354" ID="ID_257893375" MODIFIED="1439664338622" TEXT="SHIFT-Ctrl I"/>
|
|
<node CREATED="1439664339353" ID="ID_559550607" MODIFIED="1439664367761" TEXT="aktivieren via dconf">
|
|
<node CREATED="1439664358287" ID="ID_1044303564" MODIFIED="1439664384559" TEXT="apt-get install dconf-editor"/>
|
|
<node CREATED="1439664574202" ID="ID_1254903463" MODIFIED="1439664576765" TEXT="org > gtk > settings > debug"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439664638857" ID="ID_1095180651" MODIFIED="1439664652889">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>saugeil</i>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477523681978" HGAP="23" ID="ID_400257229" MODIFIED="1477523760062" TEXT="Richtlinien" VSHIFT="-21">
|
|
<node CREATED="1477523701544" ID="ID_1802991794" MODIFIED="1477523708299" TEXT="empfohlen">
|
|
<node CREATED="1477523709342" ID="ID_781118281" MODIFIED="1477523710386" TEXT="Box">
|
|
<node CREATED="1477524273619" ID="ID_216152004" MODIFIED="1477524281302" 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="1477524315404" TEXT="packing options">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477523710854" ID="ID_1520577996" MODIFIED="1477523711882" TEXT="Grid"/>
|
|
</node>
|
|
<node CREATED="1477523714526" ID="ID_654535915" MODIFIED="1511572078906" TEXT="Application verwenden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...nicht mehr das <i>klassische</i> gtk::Main
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
Wozu das?
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
Design: Main war ein Singleton; aber sein dtor hat auch Plattform-Aufräum-Arbeiten gemacht
|
|
</li>
|
|
<li>
|
|
Framework: anscheinend ist hier eine Tendenz in Richtung auf ein integriertes Framework im Gange; im Besonderen will man "Aktionen" direkt aus dem Desktop aufrufen können<br />
|
|
</li>
|
|
</ul>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1495221220040" HGAP="43" ID="ID_782313223" MODIFIED="1495224771516" TEXT="Framework" VSHIFT="-20">
|
|
<node CREATED="1495221242285" ID="ID_185528211" MODIFIED="1495221245344" TEXT="Applikation">
|
|
<node CREATED="1495221272545" ID="ID_624250153" MODIFIED="1495221279676" TEXT="Gtk::Application">
|
|
<node CREATED="1495222327564" ID="ID_175461027" MODIFIED="1495222335031" TEXT="initialisiert Gio::Application"/>
|
|
<node CREATED="1495222337235" ID="ID_348472460" MODIFIED="1495222345078" TEXT="setzt ggfs. die Applikations-ID"/>
|
|
<node CREATED="1495223436241" ID="ID_1015366549" MODIFIED="1495223444611" TEXT="Application::run">
|
|
<node CREATED="1495223445527" ID="ID_1531454773" MODIFIED="1495223451122" TEXT="optional mit Window">
|
|
<node CREATED="1495223506111" ID="ID_992095337" MODIFIED="1495223512914" TEXT="macht aber nur window->show"/>
|
|
<node CREATED="1495223513438" ID="ID_1178606368" MODIFIED="1511572078961" 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 "Registrierung" 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="1495223458873" TEXT="startet Gio::Application::run"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1495221280336" ID="ID_1925569425" MODIFIED="1495221287043" TEXT="Gio::Application">
|
|
<node CREATED="1495221530614" ID="ID_1085605910" MODIFIED="1495221536730" TEXT="initialisiert das Framework"/>
|
|
<node CREATED="1495221537366" ID="ID_381245884" MODIFIED="1495221545280" TEXT="stellt eine dBus-Verbindung bereit"/>
|
|
<node CREATED="1495221546252" ID="ID_771692992" MODIFIED="1495221585963" TEXT="erbt von Gio::ActionGroup und ActionMap"/>
|
|
<node CREATED="1495223467588" ID="ID_666842762" MODIFIED="1495223470456" TEXT="run">
|
|
<node CREATED="1495223902619" ID="ID_11620264" MODIFIED="1495223911861" TEXT="behandelt Argumente"/>
|
|
<node CREATED="1495223912401" ID="ID_1575164060" MODIFIED="1495223926363" TEXT="falls Service: wartet auf Nachricht vom dBus"/>
|
|
<node CREATED="1495224012668" ID="ID_566886010" MODIFIED="1495224030469" TEXT="Event-Loop">
|
|
<node CREATED="1495224031057" ID="ID_1352224458" MODIFIED="1495224034093" TEXT="use-count"/>
|
|
<node CREATED="1495224034585" ID="ID_1852291898" MODIFIED="1495224040084" TEXT="bestimmt, ob die Loop weiter läuft"/>
|
|
<node CREATED="1495224111895" ID="ID_1808871678" MODIFIED="1495224970269" TEXT="g_main_context_iteration">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
</node>
|
|
<node CREATED="1495224682595" HGAP="35" ID="ID_1221113124" MODIFIED="1495224749447" 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" HGAP="33" ID="ID_1924897671" MODIFIED="1495224986880" TEXT="Gtk::Main" VSHIFT="10">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1495224595638" ID="ID_1774384379" MODIFIED="1495224606876" TEXT="@deprecated">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1495224609188" ID="ID_1615155508" MODIFIED="1495224916588">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
initialisiert das
|
|
</p>
|
|
<p>
|
|
Framework
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1495224862227" ID="ID_762530588" MODIFIED="1495224863391" TEXT="init_gtkmm_internals"/>
|
|
<node CREATED="1495224890119" ID="ID_137730290" MODIFIED="1495224898674" TEXT="statische funktion"/>
|
|
</node>
|
|
<node CREATED="1495224625466" ID="ID_668309036" MODIFIED="1495224626870" TEXT="run">
|
|
<node CREATED="1495224647071" ID="ID_660577000" MODIFIED="1495224959968" TEXT="gtk_main">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<node CREATED="1495224927362" ID="ID_904812640" MODIFIED="1495224934333" TEXT="Kommandozeile"/>
|
|
</node>
|
|
<node CREATED="1495224649943" ID="ID_1753452940" MODIFIED="1495224673144" TEXT="g_main_loop_run">
|
|
<node CREATED="1495224690714" ID="ID_355427981" MODIFIED="1495224759310" 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>
|
|
</node>
|
|
<node CREATED="1495224989674" HGAP="18" ID="ID_381583771" MODIFIED="1495225134340" TEXT="Verhältnis beider" VSHIFT="9">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1495225019502" ID="ID_1829681403" MODIFIED="1495225041024" TEXT="beide machen in etwas das Gleiche"/>
|
|
<node CREATED="1495225006920" ID="ID_1631847350" MODIFIED="1495225014650" TEXT="Application ist generischer"/>
|
|
<node CREATED="1495226503104" ID="ID_1991720691" MODIFIED="1495226552821" TEXT="es geht dabei um Desktop-Integration"/>
|
|
<node CREATED="1495225050138" ID="ID_1077152710" MODIFIED="1511572079157" TEXT="gtk_main beruht heute auf Gio">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt, es wurde "retrofitted".
|
|
</p>
|
|
<p>
|
|
die Lib Gio bietet ein generisches "Main-Loop-Framework",
|
|
</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" ID="ID_1830965770" MODIFIED="1501848604862" TEXT="Threading">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501848605874" ID="ID_420183704" MODIFIED="1501848627005" TEXT="nur ein GUI-Thread">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1501848662730" ID="ID_699612019" MODIFIED="1501848671702" TEXT="absichtlich nicht treadsafe">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1501848672921" ID="ID_1641235315" MODIFIED="1501848714359" TEXT="SigC++ nicht Threadsafe">
|
|
<icon BUILTIN="clanbomber"/>
|
|
<node CREATED="1501848716179" ID="ID_969916851" MODIFIED="1501848727837" TEXT="alle Signals + Slots nur im GUI-Thread"/>
|
|
<node CREATED="1501848914377" ID="ID_1614034013" MODIFIED="1511572079197" TEXT="Vorsicht: Desktuktoren">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
der springende Punkt mit sigc::trackable ist,
|
|
</p>
|
|
<p>
|
|
daß Desktuktoren automatisch die Signale abkoppeln.
|
|
</p>
|
|
<p>
|
|
Dieser Vorgang ist <b>nicht threadsafe</b>. Folglich müssen
|
|
</p>
|
|
<p>
|
|
auch die <b>Destruktoen</b> 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="1501848749638">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
alles was von sigc::<b>trackable</b> erbt
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1501848774883" ID="ID_1801418640" MODIFIED="1501848779736" TEXT="Glib::Dispatcher">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1501848781850" ID="ID_356349390" MODIFIED="1511572079218">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
für <b>alles</b> 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="1501848856842" TEXT="Dispatcher im GUI-Thread erzeugen">
|
|
<icon BUILTIN="clanbomber"/>
|
|
<node CREATED="1501861717318" ID="ID_852290990" MODIFIED="1501861726488" TEXT="braucht einen Glib::MainContext"/>
|
|
<node CREATED="1501861732604" ID="ID_958721843" MODIFIED="1501861765955" TEXT="und den gibts, wenn gtk_init gelaufen ist"/>
|
|
</node>
|
|
<node CREATED="1501848867535" ID="ID_1897804143" MODIFIED="1501848880993" TEXT="emit -> Event-Loop"/>
|
|
</node>
|
|
<node CREATED="1501849055902" ID="ID_569777034" MODIFIED="1501849091606" TEXT="Policy">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1501849060757" ID="ID_1858198840" MODIFIED="1501849067656" TEXT="Mutterklasse statt Singletons"/>
|
|
<node CREATED="1501849075795" ID="ID_374275577" MODIFIED="1501849086774" TEXT="alle Aufrufe via Facade"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477785704584" ID="ID_528329491" MODIFIED="1477785711408" TEXT="event handling">
|
|
<node CREATED="1477785727469" ID="ID_129787833" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/chapter-signals.html.en" MODIFIED="1477785743493" TEXT="Guide: Kapitel "Signals""/>
|
|
<node CREATED="1477785747138" ID="ID_4618201" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-xeventsignals.html.en" MODIFIED="1477785785076" TEXT="speziell Details zu event Handlern: X event signals">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1477785807338" ID="ID_80062368" MODIFIED="1477788924929" TEXT="wie">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1477785809930" ID="ID_596393977" MODIFIED="1477785817884" TEXT="signal connect()"/>
|
|
<node COLOR="#ca1b00" CREATED="1477785830295" ID="ID_94782325" MODIFIED="1477785836644" TEXT="-- oder --"/>
|
|
<node CREATED="1477785818920" ID="ID_1600280983" MODIFIED="1477788924929" TEXT="on_xxx() ü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="1477785865998" TEXT="Rückgabewert: true == fertig behandelt"/>
|
|
</node>
|
|
<node CREATED="1504215708147" ID="ID_975007807" MODIFIED="1504215714526" TEXT="Widget">
|
|
<node CREATED="1477526858307" ID="ID_676269117" MODIFIED="1477526862502" 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="1477788908756" 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="1511572079333" TEXT="custom style properties">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...können vom CSS-Stylesheet aus gesetzt werden.
|
|
</p>
|
|
<p>
|
|
Siehe Beschreibung im Beispiel/Tutorial
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1476375676818" ID="ID_1029920942" MODIFIED="1504215692514" TEXT="Canvas">
|
|
<node CREATED="1476375696215" ID="ID_1397403295" MODIFIED="1476375700698" TEXT="GtkDrawingArea">
|
|
<node CREATED="1476375709157" ID="ID_981405457" MODIFIED="1476375712568" TEXT="custom drawing"/>
|
|
</node>
|
|
<node CREATED="1476375702166" ID="ID_290806424" MODIFIED="1476375741250" TEXT="GtkLayout">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1476375715644" ID="ID_1233704735" MODIFIED="1476375723495" TEXT="scrollable"/>
|
|
<node CREATED="1476375723915" ID="ID_72518723" MODIFIED="1476375732734" TEXT="can place sub-widgets"/>
|
|
<node CREATED="1476375733298" ID="ID_1024321268" MODIFIED="1476375738517" TEXT="allows custom drawing"/>
|
|
<node CREATED="1476468254712" HGAP="64" ID="ID_1424353399" MODIFIED="1476468264189" TEXT="Eigenschaften" VSHIFT="45">
|
|
<icon BUILTIN="pencil"/>
|
|
<node CREATED="1476468265399" HGAP="2" ID="ID_257790579" MODIFIED="1512926192473" TEXT="Test-Setup schaffen" VSHIFT="-15">
|
|
<node CREATED="1476468390830" ID="ID_1922633406" MODIFIED="1512926192473" TEXT="soll">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1476468393174" ID="ID_412857359" MODIFIED="1476468395498" TEXT="schnell gehen"/>
|
|
<node CREATED="1476468395941" ID="ID_1419405883" MODIFIED="1476468401560" TEXT="nicht das UI kaputtmachen"/>
|
|
<node CREATED="1476468402085" ID="ID_1171941848" MODIFIED="1476468410471" TEXT="realistisch sein"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1476468272510" ID="ID_150722005" MODIFIED="1512926192473" TEXT="Untersuchung">
|
|
<node CREATED="1477595404814" HGAP="37" ID="ID_1078486680" MODIFIED="1512926192474" TEXT="Goals" VSHIFT="-12">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1476468292804" ID="ID_283291482" MODIFIED="1476468314044" TEXT="overlapping widgets"/>
|
|
<node CREATED="1476468292805" ID="ID_140846763" MODIFIED="1476468325987" TEXT="resizing of widgets"/>
|
|
<node CREATED="1476468292805" ID="ID_1075320324" MODIFIED="1487275491503" 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="1487275491510" 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="1476468383131" TEXT="custom drawing and widget drawing"/>
|
|
</node>
|
|
<node CREATED="1477595408918" ID="ID_387371672" MODIFIED="1512926192476" TEXT="Tasks">
|
|
<node CREATED="1477595418669" ID="ID_1316314985" MODIFIED="1512926192476" 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="1477601711906" TEXT="Kind-Klasse anlegen"/>
|
|
<node CREATED="1477601712063" ID="ID_1720776876" MODIFIED="1477601717354" TEXT="Kinder managen"/>
|
|
</node>
|
|
<node CREATED="1477595418669" ID="ID_517122292" MODIFIED="1512926192477" 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="1512926192477" TEXT="documentation">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1477788823751" ID="ID_111966354" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/chapter-drawingarea.html.en" MODIFIED="1477788918987" 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="1477788908756" 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="1477789523593" TEXT="Cairomm API-doc"/>
|
|
</node>
|
|
<node CREATED="1477784938038" ID="ID_93104177" MODIFIED="1512926192478" TEXT="how-to...">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1477788718965" ID="ID_1354942176" MODIFIED="1477788722040" TEXT="derived class"/>
|
|
<node CREATED="1477788722228" ID="ID_720985572" MODIFIED="1477788730239" TEXT="override on_draw()"/>
|
|
<node CREATED="1477788731163" ID="ID_421749777" MODIFIED="1477788740646" TEXT="invoke inherited on_draw()">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1477788749289" ID="ID_1466181075" MODIFIED="1487275491561" TEXT="returns false">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...meaning, "this event is not yet fully processed",
|
|
</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="1512926192479" TEXT="coordinates" VSHIFT="11">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1477791885614" ID="ID_380369648" MODIFIED="1477791916343">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<font color="#bd0053">Warning</font>: allocation is the <i>visible</i> area
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1477791921953" ID="ID_555455740" MODIFIED="1477791952896" TEXT="...not the extension of the canvas!"/>
|
|
<node CREATED="1477841655353" ID="ID_1533125137" MODIFIED="1512926192479" TEXT="adjust to compensate">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1477841600713" ID="ID_1319450558" LINK="http://stackoverflow.com/questions/40325668/scrollable-drawing-in-gtklayout" MODIFIED="1477841645668" 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="1512926192480" TEXT="explicitly by code">
|
|
<node CREATED="1477841706107" ID="ID_1685967940" MODIFIED="1477841722860" TEXT="use get_value() from adjustment"/>
|
|
<node CREATED="1477841728496" ID="ID_935017463" MODIFIED="1477841747713" TEXT="because this represents coord. of visible viewport"/>
|
|
<node CREATED="1477841753180" ID="ID_501431504" MODIFIED="1477841795159" 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" ID="ID_1400891730" MODIFIED="1512926192480" TEXT="context->translate">
|
|
<node CREATED="1477841816516" ID="ID_642580279" MODIFIED="1477841841348" TEXT="by -value"/>
|
|
<node CREATED="1477841842512" ID="ID_1549119493" MODIFIED="1477841854051" TEXT="allows us to use absolute coords."/>
|
|
<node CREATED="1477841854807" ID="ID_1202368941" MODIFIED="1477841859362" TEXT="clipping happens automatically"/>
|
|
<node CREATED="1477841860278" ID="ID_208350074" MODIFIED="1477841903458" TEXT="need to ctx->save() and ctx->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="1512926192481" TEXT="Problem: widget extension">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1477843543126" ID="ID_1096450231" MODIFIED="1477843556632" TEXT="seems to be defined only after drawing it"/>
|
|
<node CREATED="1478032584364" ID="ID_1961636905" MODIFIED="1478032597162" TEXT="need to find the right signal">
|
|
<icon BUILTIN="yes"/>
|
|
</node>
|
|
<node CREATED="1478032598165" ID="ID_275509060" MODIFIED="1512926192481" TEXT="need to get foreach working">
|
|
<icon BUILTIN="yes"/>
|
|
<node CREATED="1478032633704" ID="ID_1067159761" MODIFIED="1478032641714" 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="1478032658384" TEXT="Tutorial: custom container"/>
|
|
<node CREATED="1478037794935" HGAP="41" ID="ID_614099643" MODIFIED="1512926192482" TEXT="geht doch" VSHIFT="38">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
<node CREATED="1478037802776" ID="ID_1706111079" MODIFIED="1478037817305" TEXT="keine Ahnung warums neulich einen SEGFAULT gab"/>
|
|
<node CREATED="1478037818037" ID="ID_1257597772" MODIFIED="1478037846037" TEXT="wichtig: Funktor inline bestehen lassen"/>
|
|
<node CREATED="1478037849449" ID="ID_171841689" MODIFIED="1478037859121" TEXT="habe diesmal sogar ein Lambda verwendet">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1478037888539" ID="ID_1261247197" MODIFIED="1512926192482" TEXT="wie">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1478037893658" ID="ID_1711061664" MODIFIED="1478037896669" TEXT="trigger-Variable"/>
|
|
<node CREATED="1478037899458" ID="ID_132096735" MODIFIED="1512926192483" TEXT="im on_draw()-Callback">
|
|
<node CREATED="1478037908465" ID="ID_1414994452" MODIFIED="1478037915835" TEXT="erst hier sind die Allokationen gesetzt"/>
|
|
<node CREATED="1478037916303" ID="ID_1781865207" MODIFIED="1478037977495" TEXT="konnte keine anderen sinnvollen callbacks finden">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...die anderen, die noch in Frage kommen würden,
|
|
</p>
|
|
<p>
|
|
sind nur für den Fall, daß ein Widget neu instantiiert wird
|
|
</p>
|
|
<p>
|
|
oder neu in das Window-System gemappt wird.
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1478037986046" ID="ID_1293899679" MODIFIED="1478037990857">
|
|
<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="1478038010982" TEXT="rufe foreach mit inline-Lambda auf"/>
|
|
<node CREATED="1478038011427" ID="ID_399044896" MODIFIED="1478038019797" TEXT="melde per max in die lokalen Variablen zurück"/>
|
|
<node CREATED="1478038020338" ID="ID_541293489" MODIFIED="1478038026524" TEXT="Layout->set_size()"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477784943797" ID="ID_298493039" MODIFIED="1512926192483" TEXT="layering">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1477791842091" ID="ID_671463871" MODIFIED="1477791848942" TEXT="depends on order of parent call"/>
|
|
<node CREATED="1477791849578" ID="ID_96793101" MODIFIED="1477791858929" TEXT="and on order of cairo draw operations">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477784949533" ID="ID_1496795315" MODIFIED="1477784952776" TEXT="custom styling"/>
|
|
</node>
|
|
<node CREATED="1477595418670" ID="ID_770195423" MODIFIED="1477596119220" 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="1512926192483" 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="1477668671481" TEXT="order: later on top">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1477668674577" ID="ID_431152757" MODIFIED="1477694925233" TEXT="place widgets out of sight">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1477694911349" ID="ID_93004070" MODIFIED="1477694932280" TEXT="widgets beyond the scrollable area">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477595418670" ID="ID_1370967982" MODIFIED="1478039086087" 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="1477596119219" 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="1478039095462" 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="1512926192484" 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="1512926192484" TEXT="move">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1477703730073" ID="ID_1070867956" MODIFIED="1477703771801" TEXT="foreach doesn't work">
|
|
<icon BUILTIN="smiley-angry"/>
|
|
</node>
|
|
<node CREATED="1479424603959" ID="ID_194428894" MODIFIED="1487275491645" 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öglicherweise ist der einzige Unterschied, daß ich es nun aus dem draw-callback
|
|
</p>
|
|
<p>
|
|
aufrufe, und daß demgegenü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="1477703768906" TEXT="get_children returns copy">
|
|
<icon BUILTIN="smiley-oh"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477748350140" ID="ID_1672717051" MODIFIED="1477748361823" TEXT="align all in a row">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1477749635577" ID="ID_592134506" MODIFIED="1477749644284" TEXT="delete arbitrary children">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477595418670" ID="ID_1275908576" MODIFIED="1477757749992" 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="1477596119218" TEXT="# build a custom "''clip''" widget">
|
|
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="full-1"/>
|
|
<icon BUILTIN="full-0"/>
|
|
</node>
|
|
<node CREATED="1477595418670" ID="ID_1708640864" MODIFIED="1477596119217" TEXT="# retrofit all preceding tests to use this "''clip''" 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="1504215733451" TEXT="howto">
|
|
<node CREATED="1446515847047" ID="ID_290915762" MODIFIED="1512926192485" TEXT="GtkCssProvider">
|
|
<node CREATED="1446515865029" ID="ID_1503616150" MODIFIED="1446515869624" TEXT="parsing errors"/>
|
|
<node CREATED="1477784584821" ID="ID_1810760662" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-custom-widgets.html.en" MODIFIED="1504215608190" 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ür Parse-Fehler anschließ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="-227;-646;"/>
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1504215750653" ID="ID_110831069" MODIFIED="1504215754256" TEXT="Textanzeige">
|
|
<node CREATED="1504215755484" ID="ID_1858414199" MODIFIED="1504215760087" TEXT="TextView widget"/>
|
|
<node CREATED="1504215761547" ID="ID_925639969" LINK="https://developer.gnome.org/gtkmm-tutorial/stable/sec-textview-examples.html.en" MODIFIED="1504215815883">
|
|
<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="1504220029652" 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="1504220186708" TEXT="scroll_to(iterator) ist ungenau">
|
|
<icon BUILTIN="broken-line"/>
|
|
</node>
|
|
<node CREATED="1504215849336" ID="ID_832996389" MODIFIED="1504215853816" TEXT="Marker setzen">
|
|
<icon BUILTIN="idea"/>
|
|
<node CREATED="1504220053691" ID="ID_905781900" MODIFIED="1504220060382" TEXT="benannt oder anonym"/>
|
|
<node CREATED="1504220061178" ID="ID_474843943" MODIFIED="1511572079465" TEXT=""Gravity" beachten">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<ul>
|
|
<li>
|
|
left gravity: Marker bleibt beim Einfügen an dieser Stelle links von der Einfügung stehen
|
|
</li>
|
|
<li>
|
|
right gravity: Marker wird durch Einfügen an dieser Stelle nach rechts geschoben
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
Beachte: der Text-Cursor (Marker "insert") 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="1504215873156">
|
|
<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="1504219963912" TEXT="Trick: Cursor ist ein Marker namens "insert"">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1482365415326" HGAP="87" ID="ID_886002365" MODIFIED="1482365429434" TEXT="Standard C++" VSHIFT="-21">
|
|
<node CREATED="1482365430484" ID="ID_1414724077" MODIFIED="1482365432879" TEXT="chrono">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1482365434203" ID="ID_1026694670" MODIFIED="1482365437852" TEXT="lernen">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
<node CREATED="1482365448257" ID="ID_1648116305" MODIFIED="1482365468841">
|
|
<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="1512178958161">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Lessons
|
|
</p>
|
|
<p>
|
|
learned
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1512178960281" ID="ID_1847018554" MODIFIED="1512926192486" TEXT="SFINAE">
|
|
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1512178984189" ID="ID_226963358" MODIFIED="1512179008554" TEXT="Fehler im Check scheitern stillschweigend">
|
|
<icon BUILTIN="clanbomber"/>
|
|
</node>
|
|
<node CREATED="1512179012761" ID="ID_1425607905" MODIFIED="1512179029688">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
auf <i>incomplete type</i> achten
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<node CREATED="1512179030982" ID="ID_895612426" MODIFIED="1512179034418" TEXT="sizeof()"/>
|
|
<node CREATED="1512179035013" ID="ID_1663591306" MODIFIED="1512179038425" TEXT="member-pointer"/>
|
|
<node CREATED="1512179039109" ID="ID_746391928" MODIFIED="1512179057691">
|
|
<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="1512179132703" TEXT="während der Instantiierung....">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
kann eines der Templates im Zyklus vorrübergehend als "incomplete" gelten.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512179134400" ID="ID_1738202679" MODIFIED="1512179201014" 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ählt dann z.B. eine subtil falsche Spezialisierung.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1512179201831" ID="ID_1577563892" MODIFIED="1512179219196" TEXT="tückischer Fehler">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1450488895106" ID="ID_1586185818" MODIFIED="1488423307351" TEXT="Threading">
|
|
<node CREATED="1450488902049" ID="ID_1126260262" MODIFIED="1450488906100" TEXT="static init">
|
|
<node CREATED="1450489361187" ID="ID_1013681859" LINK="http://stackoverflow.com/a/17803616/444796" MODIFIED="1450489380816" TEXT="gute Zusammenfassung (SO)">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1450489388912" ID="ID_1935538293" MODIFIED="1450489435398" TEXT="function-static">
|
|
<icon BUILTIN="info"/>
|
|
<node CREATED="1450489395711" ID="ID_1661542298" MODIFIED="1450489410592" TEXT="when ctrl flow enters first"/>
|
|
<node CREATED="1450489412364" ID="ID_965405072" LINK="http://stackoverflow.com/a/8102145/444796" MODIFIED="1450489553742" TEXT="threadsafe since C++11"/>
|
|
<node CREATED="1450489421795" ID="ID_12247357" MODIFIED="1450489566108" TEXT="lives until the end of the program"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1491098340549" ID="ID_938211341" MODIFIED="1491098343944" TEXT="Toolchain">
|
|
<node CREATED="1491098346053" ID="ID_1333373693" MODIFIED="1491098349439" TEXT="Doxygen">
|
|
<node CREATED="1491098370281" ID="ID_1904535196" MODIFIED="1491098373325" TEXT="Konfig"/>
|
|
<node CREATED="1491098373816" ID="ID_1022990703" MODIFIED="1491098376332" TEXT="Fallen">
|
|
<node CREATED="1491099064125" ID="ID_651937703" MODIFIED="1491099078088" TEXT="Dateien ohne @file werden nicht dokumentiert"/>
|
|
<node CREATED="1491099088362" ID="ID_1507484869" MODIFIED="1511572079612" 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ü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<RES>::resolveBy
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1491099311253" ID="ID_307124479" MODIFIED="1511572079622">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
@param hat <b>stets</b> einen Parameternamen als Argument
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...der ist <i>nicht</i> 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="1491098384859" TEXT="Probleme">
|
|
<node CREATED="1491098385823" ID="ID_801230289" MODIFIED="1491098392530" TEXT="Auto-Links">
|
|
<node CREATED="1491098393405" ID="ID_1408589913" MODIFIED="1491098400681" TEXT="funktionieren in vielen Fällen nicht"/>
|
|
<node CREATED="1491098402197" ID="ID_1572559975" MODIFIED="1491098411983" TEXT="Verdacht: muß Namespaces qualifizieren?"/>
|
|
<node CREATED="1491098427785" ID="ID_719835617" MODIFIED="1511572079658" 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="1491098493701" TEXT="Sqlite-Support">
|
|
<node CREATED="1491098494497" ID="ID_1565133197" MODIFIED="1491098499291" TEXT="ist wohl noch sehr vorläufig"/>
|
|
<node CREATED="1491098499712" ID="ID_1643743799" MODIFIED="1491098515234" TEXT="wenn eine Sqlite-DB gefunden wird...."/>
|
|
<node CREATED="1491098515845" ID="ID_1313255620" MODIFIED="1491098524850" TEXT="produziert er jede Menge Constraint-Verletzungen"/>
|
|
<node CREATED="1491098525396" ID="ID_1962242264" MODIFIED="1491098532791" TEXT="Tip: Sqlite-DB weglöschen!!!"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1437693678626" ID="ID_1536988357" MODIFIED="1488423307352" POSITION="left" TEXT="Doku">
|
|
<node CREATED="1437693687650" ID="ID_1484874437" MODIFIED="1437693692821" TEXT="Sound-Systeme">
|
|
<node CREATED="1437693693617" ID="ID_955932218" LINK="https://wiki.debian.org/Sound" MODIFIED="1511572079710" TEXT="siehe die Debian-Übersichtsseite">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...im Besonderen die guten Diagramme für Pulse, ALSA und Jack
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439176872457" HGAP="15" ID="ID_355008543" MODIFIED="1488423307355" POSITION="left" TEXT="Plattform" VSHIFT="41">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1439176875682" HGAP="47" ID="ID_1487331591" MODIFIED="1488423307355" TEXT="Debian/Jessie" VSHIFT="60">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1439176890840" ID="ID_170863947" MODIFIED="1488423307364" TEXT="Probleme">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1439176900293" ID="ID_949460307" MODIFIED="1439176911529" 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="1439593303788">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
bekannter Bug <b>binutils</b> <font color="#c72011">#16936</font>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1439593578558" ID="ID_1155824773" LINK="http://issues.lumiera.org/ticket/965" MODIFIED="1439593639824">
|
|
<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="1511572079758">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
gelöst in <font color="#4c1383">4e8e63ebe</font>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...man "hilft" dem Linker mit
|
|
</p>
|
|
<p style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; text-indent: 0px">
|
|
"-Wl,-rpath-link=target/modules"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439176912636" ID="ID_584884488" MODIFIED="1511572079768" 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="1439593733607" TEXT="Beobachtung: Meldungen im journal" VSHIFT="2"/>
|
|
<node CREATED="1439176948063" HGAP="54" ID="ID_1726494484" MODIFIED="1439609524714" TEXT="5 Thread/Parallel" VSHIFT="1">
|
|
<node CREATED="1439566266701" ID="ID_1280061419" MODIFIED="1439566273007" TEXT="hängt mit ulimit zusammen">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1439566274091" ID="ID_1628790738" MODIFIED="1511572079797" 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="1512926192487" TEXT="Untersuchung">
|
|
<node CREATED="1439566872203" ID="ID_1734454643" MODIFIED="1512926192488" TEXT="ulimit -T funktioniert nicht">
|
|
<node CREATED="1439566882418" ID="ID_410204401" MODIFIED="1439566885548" TEXT="bekanntes Problem"/>
|
|
<node CREATED="1439566886513" ID="ID_1412848120" LINK="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724461" MODIFIED="1439566919527">
|
|
<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="1512926192489">
|
|
<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="1439592767460">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Christian:  bash -c "ulimit -t 1; while :; do :; done"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1439592774041" ID="ID_1603492676" MODIFIED="1439592810442" 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="1511572079813" 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="1439608916216" TEXT="Problem mit der Hash-Funktion"/>
|
|
<node CREATED="1439609043316" ID="ID_1585741290" MODIFIED="1439609051775" TEXT="hatte ich schon mal untersucht"/>
|
|
<node CREATED="1439608917061" ID="ID_1631109794" LINK="http://issues.lumiera.org/ticket/587" MODIFIED="1439609040794">
|
|
<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="1511572079842" TEXT="Problem hat sich verschä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="1439609125633">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
erinnere mich an den
|
|
</p>
|
|
<p>
|
|
guten alten "Knuth-Trick"
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1439609127137" ID="ID_509487220" MODIFIED="1439609175040">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wow: es genü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 CREATED="1439176963604" ID="ID_582047980" MODIFIED="1439176971256" TEXT="test-lib nicht zu debuggern">
|
|
<node CREATED="1439177141197" ID="ID_140380975" MODIFIED="1511572079871" 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="1439514690123" TEXT="heruntergedampft auf einen Aufruf">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1439491824537" ID="ID_1765691004" MODIFIED="1439514686397">
|
|
<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ßenden Funktion aufgegriffen wird
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1439492258423" ID="ID_1751368693" MODIFIED="1512926192490" TEXT="Plan">
|
|
<node CREATED="1439492266470" ID="ID_730637506" MODIFIED="1439514683843" 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="1439514718652">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Bugreport für Debian/Jessie <font color="#e02f0a">#795445</font>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node CREATED="1439492285635" ID="ID_1706807629" MODIFIED="1512926192490" TEXT="gdb-Version untersuchen">
|
|
<node CREATED="1439516472396" ID="ID_1002859575" MODIFIED="1512926192491" TEXT="backports">
|
|
<node CREATED="1439516512684" ID="ID_1031030614" MODIFIED="1439516547964">
|
|
<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="1512926192492" TEXT="Ver 7.8.2">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1439516495534" ID="ID_413946117" MODIFIED="1439516594092" TEXT="Bau-Abhä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="1439519167562">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
<i>dutzende</i> Tests scheitern
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="smily_bad"/>
|
|
</node>
|
|
<node CREATED="1439519171155" ID="ID_509605117" MODIFIED="1439519260555" TEXT="das scheint nicht ungewöhnlich zu sein">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
verräterrischer Code im debian/rules
|
|
</p>
|
|
<p>
|
|
check-stamp:
|
|
</p>
|
|
<p>
|
|
ifeq ($(run_tests),yes)
|
|
</p>
|
|
<p>
|
|
        $(MAKE) $(NJOBS) -C $(DEB_BUILDDIR)/gdb check \
|
|
</p>
|
|
<p>
|
|
          || echo "**Tests failed, of course.**"
|
|
</p>
|
|
<p>
|
|
endif
|
|
</p>
|
|
<p>
|
|
        touch $@
|
|
</p>
|
|
<p>
|
|
|
|
</p>
|
|
<p>
|
|
<b>au weia</b> LEUTE!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#f7f2b7" CREATED="1439521655505" ID="ID_746337758" MODIFIED="1439521712263" TEXT="funktioniert, kein Segfault mehr">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439492295754" ID="ID_199817664" MODIFIED="1439492300517" TEXT="ggfs. upstream reporten"/>
|
|
<node CREATED="1439492301698" ID="ID_1431884134" MODIFIED="1512926192492" TEXT="workaround">
|
|
<node CREATED="1439492309920" ID="ID_1258344281" MODIFIED="1439492325419" TEXT="andere gdb-version">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1439492315080" ID="ID_45132365" MODIFIED="1439492323111" TEXT="clang verwenden">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439177191998" ID="ID_1188941582" MODIFIED="1439177199595" TEXT="Syslog nicht mehr STDOUT">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439655684119" ID="ID_1194655899" MODIFIED="1511572079906" 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ächlich: das <i>ist</i> daneben, GCC hat Recht!
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1439644339480" ID="ID_239239923" MODIFIED="1511572079915" 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="1447996291004" TEXT="Doku: Referenz-System">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446505444775" HGAP="106" ID="ID_721807850" MODIFIED="1446505465178" TEXT="Buildsystem" VSHIFT="-5">
|
|
<node CREATED="1446505367113" ID="ID_335245102" LINK="http://issues.lumiera.org/ticket/971" MODIFIED="1446505490390">
|
|
<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="1511572079943" TEXT="Versionen hochsetzen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
wähle Kompatibiltät genau so, daß Ubuntu-Trusty noch unterstützt wird.
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1446509422423" ID="ID_1328716100" MODIFIED="1446516746079" TEXT="gtkmm-3.0 3.10">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446509430758" ID="ID_371171235" MODIFIED="1446516743246" TEXT="glibmm-2.4 2.39">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446509601271" ID="ID_1477664506" MODIFIED="1447996256363" TEXT="libglib2.0 2.40">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1446510347931" ID="ID_559552800" MODIFIED="1446510354349" TEXT="direkten Check hierfür"/>
|
|
<node CREATED="1446510354914" ID="ID_1787485177" MODIFIED="1446510366196" TEXT="check für gthread fraglich"/>
|
|
</node>
|
|
<node CREATED="1446509752707" ID="ID_1392554051" MODIFIED="1446509764365" TEXT="libgdl-3-dev 3.12">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446509983556" ID="ID_366391443" MODIFIED="1446516706132" TEXT="libcairomm-1.0-dev 1.10">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446510475202" ID="ID_514495017" MODIFIED="1446516657520" TEXT="librsvg2-dev 2.30">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446511275302" ID="ID_359693763" MODIFIED="1446516636391" TEXT="libgavl-dev 1.4">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446510776857" ID="ID_674774779" MODIFIED="1446516531133" TEXT="Kommentar: librt gehört zu libc 6">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446511125266" ID="ID_1198662071" MODIFIED="1446516619027" TEXT="Kommentar zu xv, x11 und xext : TODO videodisplayer obsolet?">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1447566875500" HGAP="35" ID="ID_773580451" MODIFIED="1488423307369" TEXT="wünschenswert..." VSHIFT="16">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1447566892252" ID="ID_649638170" MODIFIED="1511572080057" 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>  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="1511572080066" TEXT="clean soll .sconf_temp und *.pyc mit wegräumen">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...denn die stö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="1488423307371" TEXT="Compiler" VSHIFT="-10">
|
|
<icon BUILTIN="prepare"/>
|
|
<node CREATED="1447978472591" ID="ID_281213456" MODIFIED="1447978479035" TEXT="GCC-4.9">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1447978381986" ID="ID_378439500" MODIFIED="1447991011184" TEXT="GCC-5">
|
|
<icon BUILTIN="flag"/>
|
|
<node CREATED="1447983098958" ID="ID_291439119" MODIFIED="1447983115489">
|
|
<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="1447991003636">
|
|
<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="1447990965857" TEXT="Lösung für std::hash finden">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1447978388930" ID="ID_78828927" MODIFIED="1447978395115" TEXT="Clang 3.5">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446480582168" HGAP="46" ID="ID_554745278" MODIFIED="1488423307372" TEXT="Release" VSHIFT="-5">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1446480601381" ID="ID_1870415321" MODIFIED="1511572080124" TEXT="release prep: clean-up obsolete information">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Doku durchkämmen nach Mü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="1511572080134" 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="1511572080144" 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üfen / umschreiben
|
|
</p>
|
|
<p>
|
|
insgesamt sorgfältig durchlesen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1446489425420" ID="ID_1155768637" MODIFIED="1446489430943" TEXT="building from source"/>
|
|
<node CREATED="1446489431443" ID="ID_1672115205" MODIFIED="1446489435759" TEXT="building the debian way"/>
|
|
<node CREATED="1446489436395" ID="ID_52990160" MODIFIED="1446489439070" TEXT="contributing"/>
|
|
</node>
|
|
<node CREATED="1446482485648" ID="ID_718218074" MODIFIED="1446483382066" TEXT="technical/build/Dependencies">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446480725508" ID="ID_789754974" MODIFIED="1511572080179" 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="1446480798862" TEXT="admin/scons/Setup.py"/>
|
|
<node CREATED="1446480787392" ID="ID_1638555946" MODIFIED="1446480803790" TEXT="data/config/setup.ini"/>
|
|
<node CREATED="1446480787392" ID="ID_619067196" MODIFIED="1446480810516" TEXT="doc/devel/Doxyfile"/>
|
|
<node CREATED="1446480787392" ID="ID_193733835" MODIFIED="1446480819004" TEXT="doc/devel/Doxyfile.browse"/>
|
|
</node>
|
|
<node CREATED="1446481181543" ID="ID_1995398229" MODIFIED="1511572080214" TEXT="Rü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ürfte es hier keinen Rückfluß von Änderungen geben.
|
|
</p>
|
|
<p>
|
|
Bitte auch daran denken, zuerst den DEB-Zweig zu prüfen. Diesen aber nicht zurü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="1447567060657" TEXT="Release-Zweig">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446481305102" ID="ID_1191774545" MODIFIED="1447567063510" TEXT="lfd Fixes von den DEBs">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446481314669" ID="ID_477388235" MODIFIED="1447996222578" TEXT="Plattform-Abhängigkeiten checken">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446480963028" ID="ID_83763074" MODIFIED="1511572080243" 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="1446481126435" TEXT="README"/>
|
|
<node CREATED="1446481126974" ID="ID_537666758" MODIFIED="1446481128522" TEXT="AUTHORS">
|
|
<node CREATED="1446481146548" ID="ID_1310945179" MODIFIED="1446481154546" TEXT="GTK-UI">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
<node CREATED="1446481155762" ID="ID_290411770" MODIFIED="1446481160406" TEXT="setup.ini">
|
|
<icon BUILTIN="help"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446481129206" ID="ID_799927356" MODIFIED="1446481131809" TEXT="LICENSE"/>
|
|
</node>
|
|
<node CREATED="1446481516578" ID="ID_552450474" MODIFIED="1511572080283" 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="1488423307375" TEXT="Paketieren">
|
|
<icon BUILTIN="full-6"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1446481606134" ID="ID_212330450" MODIFIED="1446515946971" TEXT="Merge release -> deb">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446481618196" ID="ID_1882691551" MODIFIED="1446515950202" TEXT="Paket-Beschreibung">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446481637738" ID="ID_1002196753" MODIFIED="1446515972779" TEXT="Manpages">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
<node CREATED="1446481646057" ID="ID_262549512" MODIFIED="1446515957896" TEXT="control">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446481655743" ID="ID_269337100" MODIFIED="1446515960028" TEXT="rules">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446481713984" ID="ID_1112453089" MODIFIED="1511572080331" TEXT="ausliefern">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...das heißt bauen und hochladen
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="full-7"/>
|
|
<node CREATED="1447566826434" HGAP="0" ID="ID_808634666" MODIFIED="1447990847522" TEXT="Bugfix-Release 0.pre.03-2" VSHIFT="-1">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1447566826434" HGAP="4" ID="ID_1582615496" MODIFIED="1447990857409" TEXT="Bugfix-Release 0.pre.03-3" VSHIFT="-14">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1446482059174" ID="ID_1294670881" MODIFIED="1488423307378">
|
|
<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="1447567131949" TEXT="alte version war broken"/>
|
|
<node CREATED="1447566721616" ID="ID_520179523" MODIFIED="1447566730787" TEXT="32 / 64bit Probleme"/>
|
|
<node CREATED="1447566743461" ID="ID_1754275668" LINK="http://issues.lumiera.org/ticket/973" MODIFIED="1447566802450">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Probleme mit der Compile-Reihenfolge  <font color="#d41807">#973</font>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
<node CREATED="1447566806556" ID="ID_708047854" MODIFIED="1447566823633" TEXT="neues Bugfix-Release">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446482059174" ID="ID_1693967692" MODIFIED="1488423307379" TEXT="Ubuntu/Trusty (14.LTS) : i386 and x86_64">
|
|
<icon BUILTIN="button_ok"/>
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1446509774664" ID="ID_458867123" MODIFIED="1446509787931" TEXT="Ausnahmen für libgdl-3-dev 3.8"/>
|
|
<node CREATED="1447567139480" ID="ID_183954019" MODIFIED="1447567151655" TEXT="-> diese Ausnahmen in Paketdefinition übernommen">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1447971961407" ID="ID_1876285814" MODIFIED="1447971977858" TEXT="habe dann aber doch gdl 3.16 gebackported">
|
|
<icon BUILTIN="idea"/>
|
|
</node>
|
|
<node CREATED="1447971982360" ID="ID_1118580069" MODIFIED="1447972076993" TEXT="Beobachtung: Paket läßt sich nicht installieren">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1447971995582" ID="ID_1170070076" MODIFIED="1447972670793" TEXT="Doku-Registrierung scheitert">
|
|
<icon BUILTIN="clanbomber"/>
|
|
</node>
|
|
<node CREATED="1447972005940" ID="ID_876035298" MODIFIED="1511572080422" TEXT="doc-base Definition">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
...fü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="1511572080432">
|
|
<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ßt, daß ich versuchen kann, das Problem erst mal "unter den Teppich zu kehren"
|
|
</p>
|
|
<p>
|
|
Die Wahrscheinlichkeit, daß <i>irgend jemand</i> Lumiera unter Ubuntu/Trusty <i>installieren </i>möchte, erscheint mir akademisch
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446482059174" ID="ID_1906801117" MODIFIED="1447978241196" TEXT="Ubuntu/Vivid (15.04) : i386">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446482059175" ID="ID_1107419581" MODIFIED="1488423307381" TEXT="Ubuntu/Wily (15.10) : x86_64">
|
|
<icon BUILTIN="button_cancel"/>
|
|
<node CREATED="1447978249148" ID="ID_218315533" MODIFIED="1447978290271">
|
|
<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="1447978513225" TEXT="ein Problem mit std::hash - Spezialisierung">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1447983052852" ID="ID_1130315053" MODIFIED="1511572080467" TEXT="liegt nur an fehlendem #include <utility>">
|
|
<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="1447990755430">
|
|
<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="1511572080484">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
bauen mit gcc-4.9 <i>nicht mö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="1447990809916" TEXT="ABBRUCH"/>
|
|
</node>
|
|
<node CREATED="1446482059175" ID="ID_904094860" MODIFIED="1447978537433" TEXT="Mint/Rafaela (17.2.LTS) : x86_64">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446482249336" ID="ID_1088469455" MODIFIED="1511572080507" 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="1488423307382" TEXT="alte Repos wegwerfen">
|
|
<icon BUILTIN="button_ok"/>
|
|
<node CREATED="1446589487798" ID="ID_1080472422" MODIFIED="1447995228489" TEXT="Lumi-Depot: Wheezy">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446589495445" ID="ID_1083044545" MODIFIED="1447990889351" TEXT="VBox Wheezy">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
<node CREATED="1446589502132" ID="ID_271504207" MODIFIED="1447990893689" TEXT="VBox Mint Quiana">
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446481892624" ID="ID_1020531472" MODIFIED="1447996207720" TEXT="Ticket schließen">
|
|
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
|
|
<icon BUILTIN="button_ok"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1439842359711" ID="ID_1982964862" MODIFIED="1446480466245" TEXT="Paket">
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
<node CREATED="1439842379420" ID="ID_1336697213" MODIFIED="1439842385655" TEXT="gtk-Abhängigkeiten"/>
|
|
<node CREATED="1446486970358" ID="ID_1758732894" MODIFIED="1511572080596" TEXT="was ist mit libXV">
|
|
<richcontent TYPE="NOTE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
eigentlich war die nur notwendig für das Video-Viewer Widget,
|
|
</p>
|
|
<p>
|
|
was nun leider tot ist. Wir haben noch keinen Ersatz. Deshalb lasse ich die Abhängigkeit
|
|
</p>
|
|
<p>
|
|
bestehen, aber irgendwann mü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="1446505429946">
|
|
<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="1488423307382" TEXT="debian/copyright">
|
|
<icon BUILTIN="flag-yellow"/>
|
|
<node CREATED="1478387345624" ID="ID_666713431" MODIFIED="1478387376477" TEXT="sollte alle Copyright-statements korrekt zusammenfassen"/>
|
|
<node CREATED="1478387362709" ID="ID_1001009846" MODIFIED="1478387376477" TEXT="siehe Debian-Policy"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1446356359992" HGAP="9" ID="ID_1850896628" MODIFIED="1446480440058" POSITION="left" TEXT="QA" VSHIFT="69">
|
|
<icon BUILTIN="go"/>
|
|
<node CREATED="1447985496639" ID="ID_1191711297" MODIFIED="1447985500927" TEXT="untersuchen">
|
|
<node CREATED="1447985501798" ID="ID_732609615" MODIFIED="1488423307383" TEXT="std::hash-Spezialisierung">
|
|
<node CREATED="1447985531602" ID="ID_515281257" LINK="http://issues.lumiera.org/ticket/722" MODIFIED="1447985548240">
|
|
<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="1511572080658" 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="1447985636328" TEXT="Frage: wie kann ich ein SFINAE-Brücke bauen"/>
|
|
<node CREATED="1447985637132" ID="ID_1680970111" MODIFIED="1447985646206" TEXT="Problem: wir haben nur einen Typparameter"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1447567187010" ID="ID_1008538054" MODIFIED="1447567220394" TEXT="später...">
|
|
<icon BUILTIN="bell"/>
|
|
<node CREATED="1447567193361" ID="ID_661445245" MODIFIED="1488423307384" TEXT="preliminary optimization">
|
|
<icon BUILTIN="ksmiletris"/>
|
|
<node CREATED="1447566743461" ID="ID_1971297499" LINK="http://issues.lumiera.org/ticket/973" MODIFIED="1447566802450">
|
|
<richcontent TYPE="NODE"><html>
|
|
<head>
|
|
|
|
</head>
|
|
<body>
|
|
<p>
|
|
Probleme mit der Compile-Reihenfolge  <font color="#d41807">#973</font>
|
|
</p>
|
|
</body>
|
|
</html></richcontent>
|
|
<icon BUILTIN="messagebox_warning"/>
|
|
</node>
|
|
</node>
|
|
<node CREATED="1477665256799" ID="ID_685276209" MODIFIED="1488423307384" TEXT="Ärger">
|
|
<icon BUILTIN="smily_bad"/>
|
|
<node CREATED="1477665276421" ID="ID_714740974" MODIFIED="1477665294382" TEXT="dlclose #1034">
|
|
<node CREATED="1477665304137" ID="ID_65862146" MODIFIED="1477665319167" TEXT="Assertion, da Library nicht entladen werden kann">
|
|
<icon BUILTIN="info"/>
|
|
</node>
|
|
<node CREATED="1477665320934" ID="ID_1841226938" MODIFIED="1477665322506" TEXT="LD_DEBUG=all NOBUG_LOG=pluginloader_dbg:TRACE 2>&1 target/lumiera | c++filt >weia">
|
|
<node CREATED="1477665330317" ID="ID_1760958407" MODIFIED="1477665341818" TEXT="weitere Untersuchung notwendig....">
|
|
<icon BUILTIN="bell"/>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
</node>
|
|
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#990000" CREATED="1446356368070" ID="ID_768449868" MODIFIED="1447996318860" TEXT="Au Au"/>
|
|
</node>
|
|
</node>
|
|
</map>
|