DockAccess: elaborate design of the DSL
This commit is contained in:
parent
b27681ec4f
commit
8a36327604
2 changed files with 113 additions and 40 deletions
|
|
@ -2747,7 +2747,7 @@ Command instances are like prototypes -- thus each additional level of different
|
|||
see the description in → CommandSetup
|
||||
</pre>
|
||||
</div>
|
||||
<div title="GuiComponentView" creator="Ichthyostega" modifier="Ichthyostega" created="201709021521" modified="201709081647" tags="def GuiPattern design" changecount="23">
|
||||
<div title="GuiComponentView" creator="Ichthyostega" modifier="Ichthyostega" created="201709021521" modified="201709091319" tags="def GuiPattern design" changecount="28">
|
||||
<pre>//A view within the UI, featuring some component of relevance to »the model«.//
|
||||
While any UI is comprised of numerous widgets acting as //view of something,// only some of those views play the prominent role to act as //building block component// of the user interface.
|
||||
Such UI component views exhibit some substantial traits
|
||||
|
|
@ -2823,6 +2823,30 @@ locate = currentWindow, existingPanel(infobox)
|
|||
}}}
|
||||
;Playcontrol
|
||||
://not determined yet what we'll need here....//
|
||||
|
||||
!!DSL structure
|
||||
* the DSL assigns tokens to some expected Specs
|
||||
* the tokens themselves are provided as constants
|
||||
* in fact those tokens are functors
|
||||
* and are opaquely bound into {{{ViewLocator}}}'s implementation
|
||||
__Signatures__:
|
||||
;locate
|
||||
:is run first and determines the UICoord of the target view
|
||||
;count
|
||||
:is run on those coordinates and actually //allocates// the view
|
||||
:returns coordinates of an (now) existing view
|
||||
__Tokens__:
|
||||
;locate
|
||||
:firstWindow
|
||||
: currentWindow
|
||||
: perspective(id)
|
||||
: panel(id)
|
||||
: existingPanel(id)
|
||||
: existingGroup {{red{WIP 9/17 not clear if possible}}}
|
||||
;count
|
||||
: unlimited
|
||||
: onlyOne
|
||||
: limitPerWindow(cnt)
|
||||
</pre>
|
||||
</div>
|
||||
<div title="GuiConnection" modifier="Ichthyostega" created="200812050543" modified="201705192329" tags="GuiIntegration overview" changecount="11">
|
||||
|
|
@ -3521,7 +3545,7 @@ The InstanceHandle is created by the service implementation and will automatical
|
|||
&rarr; see [[detailed description here|LayerSeparationInterfaces]]
|
||||
</pre>
|
||||
</div>
|
||||
<div title="InteractionControl" creator="Ichthyostega" modifier="Ichthyostega" created="201511272315" modified="201709032319" tags="design decision Concepts GuiPattern draft discuss" changecount="26">
|
||||
<div title="InteractionControl" creator="Ichthyostega" modifier="Ichthyostega" created="201511272315" modified="201709091320" tags="design decision Concepts GuiPattern draft discuss" changecount="27">
|
||||
<pre>This overarching topic is where the arrangement of our interface components meets considerations about interaction design.
|
||||
The interface programming allows us to react on events and trigger behaviour, and it allows us to arrange building blocks within a layout framework. Beyond that, there needs to be some kind of coherency in the way matters are arranged -- this is the realm of conventions and guidelines. Yet in any more than trivial UI application, there is an intermediate and implicit level of understanding, where things just happen, which can not fully be derived from first principles. It is fine to have a convention to put the "OK" button right -- but how to we get at trimming a clip? How do we how we are to get at trimming a clip? if we work with the mouse? or the keyboard? or with a pen? or with a hardware controller we don't even know yet? We could deal with such on a case-by-case base (as the so called reasonable people do) or we could aim at an abstract intermediary space, with the ability to assimilate the practical situation yet to come.
|
||||
|
||||
|
|
@ -3571,7 +3595,7 @@ The concept of a //focus goal// has several ramifications: for one it implies th
|
|||
To create such a system is an ambitious goal. We can not reach it in a single step, since it entails the formation of a whole intermediary layer, on top of the //usual UI mechanics,// yet below the concrete UI interactions. Especially, we'd need to clarify the meaning of //perspective,// we need to decide on the relation of top level frame, individual view, layout, focus and //current location within the UI.// On a second thought, building such a system implies we'll have to live with an intermediary state of evolution, where parts of the new framework are already in place without interfering with common conventional usage of the interface as-is.
|
||||
|
||||
!!!UI coordinates
|
||||
Especially the focus navigation entails the use of some kind of ubiquitous coordinate system within the user interface. In fact this is more of a topological navigation, since these coordinates describe the decisions and forks taken on navigation down the //focus path.//
|
||||
Especially the focus navigation entails the use of some kind of ubiquitous [[coordinate system within the user interface|UICoord]]. In fact this is more of a topological navigation, since these coordinates describe the decisions and forks taken on navigation down the //focus path.//
|
||||
* [optional] top-level Window (UI frame)
|
||||
* [optional] Perspective
|
||||
* Panel
|
||||
|
|
|
|||
|
|
@ -3627,7 +3627,7 @@
|
|||
<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="1504479893778" TEXT="ehr effizient">
|
||||
<node CREATED="1504479813553" ID="ID_141842675" MODIFIED="1504962317641" TEXT="ehr effizient">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
|
|
@ -3650,8 +3650,54 @@
|
|||
</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;"/>
|
||||
<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="1504961932714" 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;"/>
|
||||
<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="1504832198246" TEXT="aber etwas übertrieben...">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
@ -3684,7 +3730,8 @@
|
|||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1504832266793" ID="ID_1279692021" MODIFIED="1504832277220" TEXT="einfache Funktoren?">
|
||||
<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>
|
||||
|
|
@ -3695,8 +3742,7 @@
|
|||
wir brauchen keine <i>Token</i>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
<node CREATED="1504832413997" ID="ID_439230153" MODIFIED="1504832607044" TEXT="namentlich bekannte Definitionen">
|
||||
|
|
@ -3715,47 +3761,23 @@
|
|||
sondern interpretieren jeweils nur eine einzige feste Konfiguration
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</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;"/>
|
||||
<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 BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504479933641" ID="ID_686917529" MODIFIED="1504884753616" TEXT="Idee: 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;"/>
|
||||
<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"/>
|
||||
<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="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="1504885000748" TEXT="Primitive">
|
||||
<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="347;-150;" ID="Arrow_ID_1853267431" SOURCE="ID_673872785" STARTARROW="None" STARTINCLINATION="7;150;"/>
|
||||
<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="1504884428417" TEXT="Machbarkeit...">
|
||||
<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">
|
||||
|
|
@ -3829,7 +3851,34 @@
|
|||
</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="1504959626084" TEXT="count ->">
|
||||
<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="1504961783294" 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="1504962127304" TEXT="Spec.count">
|
||||
<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 CREATED="1504833110793" ID="ID_10881417" MODIFIED="1504833114828" TEXT="Ausdrücke">
|
||||
|
|
|
|||
Loading…
Reference in a new issue