DockAccess: analysis continued...
exploring the idea of a configuration DSL. As a first step, this could be a simple internal DSL, implemented as a bunch of static functor objects, which are internally bound and thus implemented by the ViewLocator within InteractionDirector
This commit is contained in:
parent
eb04552c88
commit
a9797e4a4f
4 changed files with 191 additions and 10 deletions
|
|
@ -109,6 +109,11 @@ namespace gui {
|
|||
struct Descriptor<ErrorLogView>
|
||||
{
|
||||
///////////////////////////////////////////////////////////////////////////////////////////TICKET #1105 : need a model placeholder to represent UI specific global entities
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////TICKET #1105 : consider use of a DSL to configure component view access
|
||||
//
|
||||
// count = onePerWindow
|
||||
// locate = within(InfoBoxPanel)
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,16 @@
|
|||
** @todo WIP ///////////////////////TICKET #955
|
||||
** @todo WIP ///////////////////////TICKET #961
|
||||
**
|
||||
** @see gui::model::SessionFacade
|
||||
** @todo as of 9/2017 there is now a whole subsystem based on those ideas,
|
||||
** yet still we can not demonstrate a complete integration as was
|
||||
** intended by this test. For now this test is an empty placeholder and
|
||||
** reminder to create a concise and readable high-level demonstration
|
||||
** eventually. And the idea to provide a model::Diagnostics counterpart
|
||||
** for test invocation seems worth exploring further...
|
||||
**
|
||||
** @note meanwhile there is a working diff framework and implementation in place...
|
||||
** @see DiffTreeApplication_test
|
||||
** @see DiffComplexApplication_test
|
||||
**
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@
|
|||
* *****************************************************/
|
||||
|
||||
/** @file verb-function-dispatch-test.cpp
|
||||
** unit test \ref VerbFunctionDispatch_test
|
||||
** Demonstrate the concept of a _verb language_ based on double dispatch.
|
||||
** @see diff-language.hpp
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -124,7 +125,7 @@ namespace test{
|
|||
* of double dispatch; thus the implementation relies on a
|
||||
* variation of the visitor pattern.
|
||||
*
|
||||
* @see session-structure-mapping-test.cpp
|
||||
* @see DiffListApplication_test
|
||||
*/
|
||||
class VerbFunctionDispatch_test : public Test
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3407,7 +3407,7 @@
|
|||
<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="1504193591717" TEXT="globale Aktionen">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485549081728" ID="ID_1122969153" MODIFIED="1504833848551" TEXT="globale Aktionen">
|
||||
<arrowlink COLOR="#824f68" DESTINATION="ID_826011549" ENDARROW="Default" ENDINCLINATION="-906;-1187;" ID="Arrow_ID_1373278707" STARTARROW="Default" STARTINCLINATION="873;259;"/>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1488419973349" ID="ID_1855791702" MODIFIED="1488419978923" TEXT="brauche ein Konzept">
|
||||
|
|
@ -3523,16 +3523,29 @@
|
|||
<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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504393188615" ID="ID_1397553997" MODIFIED="1504393201193" TEXT="todo: was wird hier konfiguriert">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1504834023671" ID="ID_1906244318" MODIFIED="1504834100937" TEXT="konfiguriert">
|
||||
<node CREATED="1504834102408" 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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504393295097" ID="ID_65709251" MODIFIED="1504479574076" TEXT="wie erreicht man einen ComponentView?">
|
||||
<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"/>
|
||||
|
|
@ -3637,10 +3650,85 @@
|
|||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<node CREATED="1504831930030" ID="ID_1191902349" MODIFIED="1504832734409" TEXT="double dispatch?">
|
||||
<linktarget COLOR="#6b768e" DESTINATION="ID_1191902349" ENDARROW="Default" ENDINCLINATION="11;121;" ID="Arrow_ID_1105816510" SOURCE="ID_1380298925" STARTARROW="None" STARTINCLINATION="305;0;"/>
|
||||
<node CREATED="1504832179925" ID="ID_878950103" MODIFIED="1504832186896" TEXT="wäre akzeptabel"/>
|
||||
<node CREATED="1504831934790" ID="ID_1800843653" MODIFIED="1504832198246" 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="1504832277220" TEXT="einfache Funktoren?">
|
||||
<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="1504832607044" 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="1504832819973" TEXT="Voraussetzung: sinnvolle Primitive">
|
||||
<arrowlink COLOR="#b16174" DESTINATION="ID_879982156" ENDARROW="Default" ENDINCLINATION="347;-150;" ID="Arrow_ID_1853267431" STARTARROW="None" STARTINCLINATION="7;150;"/>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504479933641" ID="ID_686917529" MODIFIED="1504480235023" TEXT="Idee: DSL">
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504479933641" ID="ID_686917529" MODIFIED="1504834120416" TEXT="Idee: DSL">
|
||||
<linktarget COLOR="#5e819b" DESTINATION="ID_686917529" ENDARROW="Default" ENDINCLINATION="-89;-122;" ID="Arrow_ID_1067086551" SOURCE="ID_1397553997" STARTARROW="None" STARTINCLINATION="-322;62;"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1504479939664" ID="ID_1158508729" MODIFIED="1504479950115" TEXT="Term-Schreibweise"/>
|
||||
<node CREATED="1504479950607" ID="ID_118638432" MODIFIED="1504479958289" TEXT="generiert Funktoren/Closures"/>
|
||||
|
|
@ -3656,10 +3744,58 @@
|
|||
<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="1504480386312" STYLE="fork" TEXT="=> double-dispatch"/>
|
||||
<node CREATED="1504480375006" ID="ID_1380298925" MODIFIED="1504832734409" STYLE="fork" TEXT="=> double-dispatch">
|
||||
<arrowlink COLOR="#6b768e" DESTINATION="ID_1191902349" ENDARROW="Default" ENDINCLINATION="11;121;" ID="Arrow_ID_1105816510" STARTARROW="None" STARTINCLINATION="305;0;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1504832752113" ID="ID_1801527547" MODIFIED="1504832757116" TEXT="Sprachdesign?">
|
||||
<node CREATED="1504832762680" ID="ID_879982156" MODIFIED="1504832813133" TEXT="Primitive">
|
||||
<linktarget COLOR="#b16174" DESTINATION="ID_879982156" ENDARROW="Default" ENDINCLINATION="347;-150;" ID="Arrow_ID_1853267431" SOURCE="ID_673872785" STARTARROW="None" STARTINCLINATION="7;150;"/>
|
||||
</node>
|
||||
<node CREATED="1504833110793" ID="ID_10881417" MODIFIED="1504833114828" TEXT="Ausdrücke">
|
||||
<node CREATED="1504833126079" ID="ID_286801467" MODIFIED="1504834719008" TEXT="konkret">
|
||||
<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>
|
||||
<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="1504834569831" ID="ID_1909335075" MODIFIED="1504834594807" TEXT="maximal N Viewer Panel"/>
|
||||
</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>
|
||||
<node CREATED="1504833574246" ID="ID_1680764695" MODIFIED="1504833610906" TEXT="Infobox">
|
||||
<node CREATED="1504834859584" ID="ID_693499241" MODIFIED="1504834866267" TEXT="im aktuellen Infobox-Panel"/>
|
||||
</node>
|
||||
<node CREATED="1504833575700" ID="ID_1341951504" MODIFIED="1504833606683" TEXT="Playcontrol"/>
|
||||
</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>
|
||||
|
|
@ -5670,6 +5806,21 @@
|
|||
<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">
|
||||
|
|
@ -5885,6 +6036,21 @@
|
|||
<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">
|
||||
|
|
@ -12548,7 +12714,7 @@
|
|||
<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" FOLDED="true" ID="ID_826011549" MODIFIED="1504193591717" TEXT="Problem: globale Aktionen">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485548894522" FOLDED="true" ID="ID_826011549" MODIFIED="1504833848551" TEXT="Problem: globale Aktionen">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue