UI-top-level: reactivate the updateActionState function as NOP

as it turned out, the former functionality was deactivated in 2009
with changeset 6151415

The whole concept seems to be unfinished, and needs to be reworked
and integrated with "Views and Perspectives" (whatever that is...)

See also #1097
This commit is contained in:
Fischlurch 2017-05-04 01:24:32 +02:00
parent a3ed982da4
commit 5e172ff6a0
5 changed files with 125 additions and 63 deletions

View file

@ -224,6 +224,35 @@ namespace ctrl {
/**
* Updates the state of the menu/toolbar actions
* to reflect the current state of the workspace
* @note the actual functionality was disabled by Joel with changeset 6151415 (from 4.4.2009),
* which introduced a PanelManager. This whole concept was seemingly never finished.
* @todo as of 2017, the relation of panels to top level windows is unclear and likely
* needs to be replaced by a focus + perspective concept (--> see topic "Interaction Control")
*/
void
updateActionState (workspace::WorkspaceWindow& currentWindow)
{
///////////////////////////////////////////////////////////////////////////////////////TICKET #1076 find out how to handle this properly
///////////////////////////////////////////////////////////////////////////////////////TICKET #1097 clarify the role and behaviour of Panels
/* unfinished, disabled by Joel with changeset 6151415 (from 4.4.2009)
*
REQUIRE(currentWindow.assetsPanel != NULL);
REQUIRE(currentWindow.timelinePanel != NULL);
REQUIRE(currentWindow.viewerPanel != NULL);
// is_updating_action_state = true;
assetsPanelAction->set_active (currentWindow.assetsPanel->is_shown());
timelinePanelAction->set_active(currentWindow.timelinePanel->is_shown());
viewerPanelAction->set_active (currentWindow.viewerPanel->is_shown());
// is_updating_action_state = false;
*/
}
private: /* ===== Internals ===== */
@ -267,34 +296,6 @@ namespace ctrl {
/**
* Updates the state of the menu/toolbar actions
* to reflect the current state of the workspace */
void
updateActionState()
{
///////////////////////////////////////////////////////////////////////////////////////TICKET #1076 find out how to handle this properly
/*
WorkspaceWindow& currentWindow = getWorkspaceWindow();
REQUIRE(currentWindow.assetsPanel != NULL);
REQUIRE(currentWindow.timelinePanel != NULL);
REQUIRE(currentWindow.viewerPanel != NULL);
is_updating_action_state = true;
assetsPanelAction->set_active (currentWindow.assetsPanel->is_shown());
timelinePanelAction->set_active(currentWindow.timelinePanel->is_shown());
viewerPanelAction->set_active (currentWindow.viewerPanel->is_shown());
is_updating_action_state = false;
*/
}
private:
/* ============ View Actions ========== */
@ -305,6 +306,7 @@ namespace ctrl {
//if(!is_updating_action_state)
// workspaceWindow.assetsPanel->show(
// assetsPanelAction->get_active()); //////global -> InteractionDirector
unimplemented ("view assets");
}
void
@ -313,6 +315,7 @@ namespace ctrl {
/////////////////////////////////////////////////////////////////////////////////////TODO defunct since GTK-3 transition
//if(!is_updating_action_state)
// workspaceWindow.timelinePanel->show(timelinePanActionselAction->get_active());
unimplemented ("view timeline");
}
void
@ -321,6 +324,7 @@ namespace ctrl {
/////////////////////////////////////////////////////////////////////////////////////TODO defunct since GTK-3 transition
//if(!is_updating_action_state)
// workspaceWindow.viewerPanel->show(viewerPanelAction->get_active()); //////global -> InteractionDirector
unimplemented ("view viewer");
}

View file

@ -121,8 +121,8 @@ namespace ctrl {
void
UiManager::updateWindowFocusRelatedActions()
{
UNIMPLEMENTED ("how to handle activation of menu entries depending on window focus"); ////////TICKET #1076 find out how to handle this properly
//////see Actions::updateActionState()
///////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1076 find out how to handle this properly
actions_->updateActionState (globals_->windowList_.findActiveWindow());
}

View file

@ -24,6 +24,9 @@
/** @file panel-manager.hpp
** Management of dockable panels.
**
** @todo 2017 need to clarify the intended behaviour of panels
** ///////////////////////////////////////////////////////////////////////////TICKET #1097 clarify the role and behaviour of Panels
**
** @see actions.hpp
*/

View file

@ -3420,7 +3420,7 @@ The InstanceHandle is created by the service implementation and will automatical
→ see [[detailed description here|LayerSeparationInterfaces]]
</pre>
</div>
<div title="InteractionControl" creator="Ichthyostega" modifier="Ichthyostega" created="201511272315" modified="201703140208" tags="design decision Concepts GuiPattern draft discuss" changecount="23">
<div title="InteractionControl" creator="Ichthyostega" modifier="YourName" created="201511272315" modified="201705032208" tags="design decision Concepts GuiPattern draft discuss" changecount="25">
<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 &quot;OK&quot; 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.
@ -3464,7 +3464,10 @@ The primary insight is //that we build upon a spatial metaphor// -- and thus we
:navigating means to move the SpotLocator, in order to move the spot from work site to work site
:the spot locator is relocated by loading a new focus path to another [[work site|WorkSite]]
The concept of a //focus goal// has several ramifications: for one it implies that there is something like //&quot;current cotrol system&quot;,// which also could be the //currently active control system(s).// Simply because focus, as the realisation of the abstract notion of the spot, is always tied to a control system able to implement it. And when we're able to define generic location coordinates and then //&quot;move there&quot;,// with the help of the spotLocator, we draw the conclusion that there must be a focus (implementation) be moving towards that location. Like e.g. the desired entity gaining the keyboard focus. And the second thing we may conclude is that there is some degree of leeway in the way how such a focus goal is reached. Since the inner logic of control systems can be quite drastically different from each other, we need to leave it to the actual control system //how a focus goal is reached.// To point out an obvious example: it is not a good idea to move the mouse pointer forcibly onto a screen element. Rather, we must use the established mechanisms of switching, scrolling and unfolding to bring the desired target element into the visible area, leaving the last step to the user, which must actively move the mouse onto the target. And we must give good visual clues as to what happened, and what we expect from the user (namely to direct her attention onto the element brought into focus).
The concept of a //focus goal// has several ramifications: for one it implies that there is something like //&quot;current cotrol system&quot;,// which also could be the //currently active control system(s).// Simply because focus, as the realisation of the abstract notion of the spot, is always tied to a control system able to implement it. And when we're able to define generic location coordinates and then //&quot;move there&quot;,// with the help of the SpotLocator, we draw the conclusion that there must be a focus (implementation) be moving towards that location. Like e.g. the desired entity gaining the keyboard focus. And the second thing we may conclude is that there is some degree of leeway in the way how such a focus goal is reached. Since the inner logic of control systems can be quite drastically different from each other, we need to leave it to the actual control system //how a focus goal is reached.// To point out an obvious example: it is not a good idea to move the mouse pointer forcibly onto a screen element. Rather, we must use the established mechanisms of switching, scrolling and unfolding to bring the desired target element into the visible area, leaving the last step to the user, which must actively move the mouse onto the target. And we must give good visual clues as to what happened, and what we expect from the user (namely to direct her attention onto the element brought into focus).
!Building the framework
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.
</pre>
</div>
<div title="InteractionDirector" creator="Ichthyostega" modifier="Ichthyostega" created="201702102146" modified="201703021658" tags="def draft" changecount="9">

View file

@ -1783,8 +1783,9 @@
<node CREATED="1485126410424" ID="ID_1158773288" MODIFIED="1485549693700" TEXT="wir haben mehrere Fenster">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1485126418431" ID="ID_1145950660" MODIFIED="1485550989113" TEXT="GtkLumiera sollte kein Singleton sein">
<arrowlink COLOR="#80b3ef" DESTINATION="ID_164246989" ENDARROW="Default" ENDINCLINATION="-42;-74;" ID="Arrow_ID_401425747" STARTARROW="None" STARTINCLINATION="348;19;"/>
<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&#xfc;r jedes top-level Window repliziert">
<icon BUILTIN="pencil"/>
@ -1801,17 +1802,17 @@
<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="flag-yellow"/>
</node>
<node COLOR="#338800" CREATED="1485126609878" FOLDED="true" ID="ID_815018040" MODIFIED="1493752914183" TEXT="#1064 investigate WindowManager lifecycle">
<node COLOR="#338800" CREATED="1485126609878" FOLDED="true" ID="ID_815018040" MODIFIED="1493846218724" 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="1493752913019" TEXT="er ist jetzt nur noch eine WindowList"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485550950793" ID="ID_50100583" MODIFIED="1493752801215" TEXT="#1048 rectify UI Lifecycle">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1485550968230" FOLDED="true" ID="ID_164246989" MODIFIED="1493752805598" 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="348;19;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485550950793" FOLDED="true" ID="ID_50100583" MODIFIED="1493853661580" 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>
@ -1819,8 +1820,11 @@
<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&#xf6;st">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1485550992299" FOLDED="true" ID="ID_1685125156" MODIFIED="1493752789466" TEXT="es blocken">
</node>
<node CREATED="1485550992299" ID="ID_1685125156" MODIFIED="1493846205911" TEXT="es blocken">
<icon BUILTIN="button_ok"/>
<node CREATED="1485550999762" ID="ID_249139218" MODIFIED="1485917500008" TEXT="WindowList">
<icon BUILTIN="button_cancel"/>
@ -1829,6 +1833,45 @@
<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="1493853586818" TEXT="Project &amp; Controller restlos entfernen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wartet noch darauf,
</p>
<p>
da&#223; die alte, obsolete Timeline zur&#252;ckgebaut ist
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="hourglass"/>
</node>
<node CREATED="1493853590149" ID="ID_1075149702" MODIFIED="1493853655203" TEXT="Race beim triggerShutdown">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
siehe guifacade.cpp
</p>
<p>
Problem ist: wenn das triggerShutdown kommt,
</p>
<p>
bevor die Notification-Facade ge&#246;ffnet werden konnte
</p>
</body>
</html>
</richcontent>
</node>
</node>
</node>
<node CREATED="1485551018975" FOLDED="true" ID="ID_1865473127" MODIFIED="1488423342658" TEXT="obsoletes Project &amp; Controller">
<node CREATED="1485551030086" ID="ID_1052165402" MODIFIED="1485551034969" TEXT="in GtkLumiera definiert"/>
@ -1855,17 +1898,16 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1485126441508" ID="ID_1227132808" MODIFIED="1485454325864" TEXT="GtkLumiera">
<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&#xfc;r die Verdrahtung zust&#xe4;ndig"/>
<node CREATED="1485463525736" ID="ID_1608786246" MODIFIED="1485463536587" TEXT="h&#xe4;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 BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1485917690936" HGAP="93" ID="ID_939419460" MODIFIED="1485917706156" TEXT="im Moment komplett kaputt" VSHIFT="57">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node CREATED="1485126457025" ID="ID_1698853761" MODIFIED="1489460543116" 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;"/>
@ -2367,15 +2409,21 @@
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1485898796393" ID="ID_1217726538" MODIFIED="1485898814419" TEXT="#1069 how to refer to the current window">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1492965823743" ID="ID_729520839" MODIFIED="1492965829769" TEXT="grunds&#xe4;tzlich gel&#xf6;st"/>
<node CREATED="1492965830381" ID="ID_1556963629" MODIFIED="1492965844407" TEXT="globalCtx -&gt; find active window"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1492965845115" ID="ID_1375700494" MODIFIED="1492965909373" TEXT="TODO Panel-Aktionen">
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1485898796393" FOLDED="true" ID="ID_1217726538" MODIFIED="1493853319444" 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&#xe4;tzlich gel&#xf6;st">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1492965830381" ID="ID_1556963629" MODIFIED="1493852099751" TEXT="globalCtx -&gt; find active window">
<icon BUILTIN="idea"/>
</node>
<node COLOR="#990000" CREATED="1492965845115" FOLDED="true" ID="ID_1375700494" MODIFIED="1493852949884" 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 BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1492965918377" ID="ID_673471196" MODIFIED="1492965927247" TEXT="blockt noch das ganze UI">
<icon BUILTIN="messagebox_warning"/>
<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&#xdf; &#xfc;berarbeitet werden">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
@ -2613,13 +2661,17 @@
<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="1488672665626" ID="ID_590886664" MODIFIED="1488672675810" TEXT="Grundlagen f&#xfc;r Command-handling"/>
<node CREATED="1487313769425" FOLDED="true" ID="ID_728232011" MODIFIED="1488423342542" TEXT="Grundlagen f&#xfc;r InteractionControl">
<node CREATED="1487313769425" ID="ID_728232011" MODIFIED="1493847644509" TEXT="Grundlagen f&#xfc;r InteractionControl">
<node CREATED="1488419854029" ID="ID_932507511" MODIFIED="1488419868604" TEXT="erst mal: Konzept">
<icon BUILTIN="help"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487313191100" FOLDED="true" ID="ID_1619021408" MODIFIED="1488423308109" TEXT="Fazit(TODO)">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487313191100" ID="ID_1619021408" MODIFIED="1493847646952" TEXT="Fazit(TODO)">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1487313203254" FOLDED="true" ID="ID_573801539" MODIFIED="1488423308094" TEXT="Klassen anlegen">
<icon BUILTIN="button_ok"/>
@ -2642,16 +2694,16 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1487313454220" FOLDED="true" ID="ID_640048374" MODIFIED="1488423308095" TEXT="Abgriff in CoreServices">
<node CREATED="1487313454220" FOLDED="true" ID="ID_640048374" MODIFIED="1493847715324" 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" FOLDED="true" ID="ID_951423078" MODIFIED="1488423308076" TEXT="&#xfc;ber Lifecycle nachdenken">
<node CREATED="1487313475593" FOLDED="true" ID="ID_951423078" MODIFIED="1493847702078" TEXT="&#xfc;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 -&gt; InteractionDirector -&gt; Ui-State"/>
<node CREATED="1487472711453" FOLDED="true" ID="ID_759583421" MODIFIED="1488423308055" TEXT="beim Zerst&#xf6;ren von GtkLumiera">
<node CREATED="1487472711453" FOLDED="true" ID="ID_759583421" MODIFIED="1493847694759" TEXT="beim Zerst&#xf6;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&#xf6;nnen aber noch Fenster existieren"/>
<node CREATED="1487472757439" ID="ID_977443666" MODIFIED="1487475766036">
@ -2673,7 +2725,7 @@
<node CREATED="1487472971330" ID="ID_81364279" MODIFIED="1487472986931" TEXT="grunds&#xe4;tzliches Shutdown-Problem">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1487472987984" FOLDED="true" ID="ID_1443542622" MODIFIED="1488423308055" TEXT="aber harmlos">
<node CREATED="1487472987984" FOLDED="true" ID="ID_1443542622" MODIFIED="1493847700253" TEXT="aber harmlos">
<icon BUILTIN="button_ok"/>
<node CREATED="1487472993439" ID="ID_310404379" MODIFIED="1487473004097" TEXT="unter der Annahme, da&#xdf; das UI wirklich single-threaded l&#xe4;uft"/>
<node CREATED="1487473004949" ID="ID_1092623141" MODIFIED="1487473018151" TEXT="wenn wir die Garantie haben, da&#xdf; die Event-Loop nichts mehr macht"/>
@ -2695,7 +2747,7 @@
</node>
</node>
</node>
<node CREATED="1487475679257" FOLDED="true" ID="ID_1700311138" MODIFIED="1488423308077" TEXT="wir injizieren anders herum">
<node CREATED="1487475679257" FOLDED="true" ID="ID_1700311138" MODIFIED="1493847709045" 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&#xf6;rt CoreService"/>
@ -2710,13 +2762,13 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1487313659680" FOLDED="true" ID="ID_1420397002" MODIFIED="1488423308095" TEXT="FocusTap">
<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" FOLDED="true" ID="ID_268630370" MODIFIED="1488423308095" TEXT="Methoden">
<node CREATED="1487313566901" FOLDED="true" ID="ID_268630370" MODIFIED="1493847747167" TEXT="Methoden">
<node CREATED="1487313570932" ID="ID_1733821258" MODIFIED="1487313578015" TEXT="getCurrentWorkSite"/>
<node CREATED="1487313578555" FOLDED="true" ID="ID_671600782" MODIFIED="1488423308077" TEXT="getCurrentMO">
<node CREATED="1487313612063" ID="ID_1795028934" MODIFIED="1487313618034" TEXT="ggfs.sinnvollen Dummy hier"/>
@ -2749,7 +2801,7 @@
<arrowlink DESTINATION="ID_816848691" ENDARROW="Default" ENDINCLINATION="111;0;" ID="Arrow_ID_792016162" STARTARROW="None" STARTINCLINATION="111;0;"/>
</node>
</node>
<node CREATED="1487461476736" FOLDED="true" ID="ID_912393863" MODIFIED="1488566326476" TEXT="Actions">
<node CREATED="1487461476736" FOLDED="true" ID="ID_912393863" MODIFIED="1493847773819" TEXT="Actions">
<node CREATED="1487461484935" ID="ID_951148221" MODIFIED="1487461491098" TEXT="Kontext f&#xfc;r globale Aktionen"/>
</node>
</node>