DemoGuiRoundtrip: successfully completed (closes #1999)

This commit is contained in:
Fischlurch 2018-10-06 17:42:22 +02:00
parent e8931bf4bf
commit cd557f50ec
13 changed files with 338 additions and 310 deletions

View file

@ -0,0 +1,80 @@
GUI Connection
==============
The Lumiera application is built from several segregated software layers, and the user interface, the GUI-Layer is
optional and loaded as a plug-in. This deliberate design decision has far reaching consequences in all parts of the
application: Anything of relevance for editing or rendering need to be _represented explicitly_ within a model, distinct
and abstracted from the presentation for the user. For example, many media handling applications let you ``snap'' some
entity to a ``grid'', which happens conveniently during a given user interaction, just resulting in a new position for
the element at hand. In Lumiera, we can not follow this obvious and pragmatic approach -- rather, both the time grid
and the fact an object as been attached and aligned to such a grid need to be represented in the session model proper,
resulting in a `Placement`. More specifically, we can not derive behaviour of such an object from circumstantial
state data present in the UI. Rather, we need to compute the new position based on rules within the session.
And then we need to _communicate_ the result back into the UI -- if and when an UI is present to reflect that change.
So instead of having a _»Controller«_ mediate the interplay of a _»Model«_ and the _»View«_ presentation, we end up
with a complete _communication cycle,_ where messages are sent in both directions, and _sent asynchronously._
Principles of UI / Core interaction
-----------------------------------
By all means, we avoid a common shared data structure as foundation for interaction. Such a _data centric_ approach
may lean towards two extremes, both of which are problematic. A _naively written application_ starts with building
the user interface and hinges any further internal structures directly below. For a tiny application, which is
basically ``just some interface controls'', such an approach might be adequate -- yet maintaining the ``code behind''
the control surface quickly becomes a nightmare. We may avoid those immediate problems by settling down on a strictly
codified central _core data model._ And while this shift towards the other extreme of a data centric architecture
indeed resolves the immediately pressing maintenance problems, this settlement comes with an substantial price tag.
Since interface and core functionality are now torn apart, the code conducting even the simplest interaction is
scattered over various parts of the system, and thus everything need to be very well defined and documented.
Such a system becomes rigid as soon as it is built. And additionally it tends to suffer from structure duplication
and multiplication, since cross interactions involving several parts of the core and the surface tend to be had
to express: Interaction state need to be materialised into the core data, to allow other, distinct parts of the
interface to collaborate.
We may escape from that dichotomy when we cease to _rely on data as the fundamental substrate of our system._
To collaborate, both parts still need to share a structure, yet it suffices for this structure to be a _common
understanding:_ both the UI-Layer and the Proc-Layer need to share a common understanding how the parts of a editing
session can be arranged. Yet they do not need to share a _common data representation_ of the session.
The consequence is that both sides, ``the core'' and ``the UI'' remain autonomous within their realm. For some concerns, namely _the core concerns,_ that is editing, arranging, processing, the core is in charge and has absolute authority.
On the other hand, when it comes to user interaction, especially the _mechanics and materiality of interaction,_ the UI
is the authority; it is free to decide about what is exposed and in which way. Yet the common structural understanding
is never fully, totally cast in concrete data structures.
Rather, the core sends *diff messages* up to the UI, indicating how it sees this virtual structure to be changing.
The UI reflects these changes into _its own understanding and representation,_ which is here a structure of display
widgets. When the user interacts with these structures of the presentation layer, *action command messages* are generated,
using the element-IDs to designate the arguments of the intended operation. Acting on these messages again causes reaction and change in the core, which is reflected back in the form of further diff messages.
Anatomy of the Proc/GUI interface
---------------------------------
- the `GuiFacade` is used as a general lifecycle facade to start up the GUI and to set up the »Layer Separation
Interfaces«. The `GuiFacade` is implemented by a class _in Proc-Layer_ and loads the Lumiera GTK-UI as a plug-in.
- once the UI is running, it exposes the `GuiNotificationFacade`, to allow pushing state and structure updates up into
the user interface.
- in the opposite direction, for initiating actions from the UI, the Session Subsystem opens the `SessionCommandFacade`,
which can be considered __ ``the'' public session interface.__
Both these primary interfaces operate *message based.* As immediate consequence, these interfaces are comparatively
narrow, and interactions can easily be serialised, enqueued and dispatched. On the Proc-Layer side, the `ProcDispatcher`
coordinates command execution and the _Builder run_ to derive the consequences of those session command invocations.
And within the UI, the GTK-Event loop runs likewise single threaded, and the Notification facade automatically
dispatches any invocation into the UI thread.
Within the UI-Layer, we do not rely on a central ``shadow model'', rather, the backbone of the UI is a communication
structure, the *UI-Bus*. Data within the GUI is kept very local, close to the presentation widgets. In fact, we
identify a selection of _really important_ UI elements, which we call ``the tangible elements'' (`gui::model::Tangible`).
Each of those primary elements within the UI _is connected to the UI-Bus,_ and can be addressed by its ID, and it
happens to correspond and reflect an entity within the session model, there denoted by the same ID. The core can
thus send a message towards the corresponding tangible UI element, without any knowledge as to how and where this
element is actually attached within the widget tree of the user interface. Even diff messages are dispatched over
the UI-Bus; it is up to the receiving tangible element to decide about the meaning of such a diff message, and
how to reshape its internal widget state to reflect that change.
When it comes to the more elaborate parts of the model and the UI -- especially for the timeline -- those tangible
elements need not be widgets by themselves. Rather, they can be local presentation controllers, often also referred
to as *Presenter*. These manage and control a selection of slave widgets to form the visual presentation of the
corresponding session entity. For example, a `ClipPresenter` injects one or a conglomerate of several widgets
into the track canvas, depending on the current zoom level and the display state of the clip (collapsed, expanded,
abridged display).

View file

@ -17,7 +17,9 @@ introduce additional engine specific styles and settings.
GTK-3 supports the powerful 'cascading' and 'contextual selectors' from CSS. Thus the nesting of elements
in the GUI forms the base for creating styling rules. Hereby, widget class names translate into ``tag'' names
in the CSS selectors. Widgets may also expose CSS classes for styling -- the standard widgets define a generic set
in the CSS selectors.footnote:[The ``tag'' name is the widget's class name without the `Gtk::` prefix, and transformed
into all lower caps, single word, no underscores. E.g. `Gtk::TextView` -> `textview`]
Widgets may also expose CSS classes for styling -- the standard widgets define a generic set
of https://developer.gnome.org/gtk3/3.4/GtkStyleContext.html#gtkstylecontext-classes[predefined CSS style classes],
which can be used to establish the foundation for theming. Obviously it is preferable to keep styling rules as
concise, generic and systematic as possible; yet we may still refer to individual gui elements by name (`#ID`) though.
@ -53,6 +55,15 @@ A good recommendation is really to ``probe'' settings by changing them temporari
(e.g. `background-color: red`). It is just too easy to learn wrong techniques based on false conclusions.
the GTK+ inspector
~~~~~~~~~~~~~~~~~~
An essential tool when working with styles and Gtk widgets in general is the
https://wiki.gnome.org/Projects/GTK%2B/Inspector[GTK+ inspector], which is part of the standard GTK distribution.
It allows to inspect all GTK objects with their properties, and to see the actual tree of CSS nodes and the
corresponding selectors. You can even add a style class or state flag (like ``hover'') dynamically, and you
may add style rules and verify the effect on the application immediately. To use this ispector, launch the
application like `GTK_DEBUG=interactive target/lumiera`
binary themes
~~~~~~~~~~~~~

View file

@ -41,12 +41,11 @@
** The actual widget for information display is prepared, but it is actually allocated when
** the need for information display arises. Which means, the user may close this display
** widget, thereby discarding its current information content -- but when the next notification
** needs to be shown, the controller will ensure to allocate an appropriate widget again. Moreover,
** the widget can be _expanded_ or _collapsed_, without affecting its content.
** needs to be shown, the controller will ensure to allocate an appropriate widget again.
** Moreover, the widget can be _expanded_ or _collapsed_, without affecting its content.
** - information messages are just added to the buffer without much ado. No attempt is made
** to reveal or expand the widget (but if necessary, a new widget is allocated)
** - error messages also set an error marker state (*TODO* reflect this in the presentation),
** and they cause the display widget to be expanded
** - error messages also set an error marker state, and cause expansion of the display widget.
** - the error state can be _cleared_, which also demotes all error messages to mere information.
** - information content can also be _cleared_, which removes all mere information messages,
** while retaining the error entries.
@ -91,7 +90,7 @@ namespace ctrl {
{
/** content population and manipulation via UI-Bus */
/** population and manipulation of persistent content via UI-Bus */
void
buildMutator (lib::diff::TreeMutator::Handle buffer) override
{

View file

@ -1,112 +0,0 @@
/*
DemoGuiRoundtrip - placeholder to further progress of the GUI-Session connection
Copyright (C) Lumiera.org
2017, Hermann Vosseler <Ichthyostega@web.de>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *****************************************************/
/** @file demo-gui-roundtrip.cpp
** Dummy and scaffolding to help development of the UI - Session connection.
** The Goal is to establish a full messaging round-trip between UI and Proc-Layer
** - a menu entry
** - which issues a Proc-Command
** - which in turn accesses the Notification-facade
** - and sends a "mark" message towards some UI demo widget
** - which in turn displays the mark text
**
** @todo WIP as of 8/2017 ////////////////////////////////////////////////////////////////////////TICKET #1099
**
** @see CallQueue_test
** @see notification-service.hpp
**
*/
#include "gui/gtk-base.hpp"
#include "lib/error.hpp"
#include "lib/depend.hpp"
#include "gui/ui-bus.hpp"
#include "gui/ctrl/ui-manager.hpp"
#include "lib/nocopy.hpp"
#include <string>
//using lumiera::error::LUMIERA_ERROR_STATE;
using std::string;
namespace gui {
namespace { // implementation details
//using util::isnil;
using std::string;
} // (End) impl details
/**
* Quick-n-dirty hack to establish a prototypic connection between Application Core and UI...
*
* @todo be commendable
* @todo don't misbehave
*
* @see SomeSystem
* @see CallQueue_test
*/
class DemoGuiRoundtrip
: util::NonCopyable
{
string nothing_;
DemoGuiRoundtrip();
~DemoGuiRoundtrip();
friend class lib::DependencyFactory<DemoGuiRoundtrip>;
public:
/** access point to set up the scaffolding.
* @internal this is a development helper and will be remoulded all the time.
*/
static lib::Depend<DemoGuiRoundtrip> instance;
/* == X interface for == */
/* == Adapter interface for == */
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1099
void setSolution (string const& solution = "")
{
UNIMPLEMENTED ("tbw");
if (isDeaf())
this->transmogrify (solution);
}
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1099
};
} // namespace gui

View file

@ -29,7 +29,7 @@
** helper routines to be hooked up easily within the UI. Actions launched from here
** perform within the same environment as regular user interactions.
**
** @todo as of 9/2018, this is a first rough draft, relevant for #1099 ////////////////////////////TICKET #1074 gradually augment the self-diagnostics controls in the UI
** @todo as of 9/2018, this is a first rough draft, relevant for #1099 ////////////////////////////TICKET #1140 gradually augment the self-diagnostics controls in the UI
** @todo this header also features a design draft how to simplify building notebook widgets.
** Which could be polished and moved into a separate utility header eventually.
*/

View file

@ -109,11 +109,6 @@ namespace interact {
void
InteractionDirector::populateContent_afterStart()
{
///////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1099 trigger creation of the UI notification display here
//// TODO : this clearly is a preliminary solution. Later it might be possible,
//// : to create the notification display on demand. But right now (8/2018)
//// : we need a GuiComponentView with predictable ID instructed to exist "somewhere"
////
invoke (cmd::test_meta_activateContentDiff); ////////////////////////////////////////////TICKET #211 prefix test_ bypasses logging and immediately executes for now (2018)
}

View file

@ -24,7 +24,7 @@
/** @file flash-deco.hpp
** Decorator to add the ability to display a visual flash action to a GTK widget.
** The protocol for operating UI elements connected to the [UI-Bus](\ref ui-bus.hpp) includes
** a message to make the receiving widget flash for a short time, to mandate the users attention.
** a message to make the receiving widget flash for a short time, to mandate the user's attention.
** The visual change itself is effected by adding a CSS class, while adding a timeout callback
** to revert to normal display after a short timespan. In itself, this modification sequence
** is entirely generic, and can thus be added by decorating the widget to affect; moreover,
@ -44,13 +44,9 @@
#include "gui/gtk-base.hpp"
#include "gui/style-scheme.hpp"
//#include <utility>
namespace gui {
namespace model {
// using std::move;
/**
@ -90,6 +86,5 @@ namespace model {
};
}} // namespace gui::model
#endif /*GUI_MODEL_FLASH_DECO_H*/

View file

@ -79,8 +79,8 @@ namespace panel{
// after the UI is actually mapped to screen.
Glib::signal_idle()
.connect_once ( sigc::bind<bool>(
sigc::mem_fun(*this, &InfoBoxPanel::reflect_LogErrorState), false
));
sigc::mem_fun (*this, &InfoBoxPanel::reflect_LogErrorState), false)
);
}
@ -98,7 +98,7 @@ namespace panel{
/** on demand allocate display of information / error log
* @note we assume it stays alive forever, once allocated
* @note we assume it stays alive until the panel itself is closed.
* @remark the ErrorLogDisplay widget exposes a \ref Expander functor,
* which is wired here with the Gtk::Expander container holding the Log.
* This setup allows to trigger the expand/collapse functionality and
@ -113,7 +113,7 @@ namespace panel{
theLog_.reset (new ErrorLogDisplay{});
logExpander_.set_expanded (false);
logExpander_.add (*theLog_);
theLog_->expand = model::Expander{[&]() { return logExpander_.get_expanded(); }
theLog_->expand = model::Expander{[&]() -> bool { return logExpander_.get_expanded(); }
,[&](bool yes) { logExpander_.set_expanded (yes); }
};
theLog_->reveal = model::Revealer{[&]() { Panel::show(true);
@ -135,7 +135,6 @@ namespace panel{
{
buttonClearErr_.set_visible (isError);
buttonClearInfo_.set_visible (isError);
INFO (gui, "Error = %d", isError);
}

View file

@ -26,7 +26,7 @@
** Such an »Info Box« typically exposes detail settings from some other component
** currently selected, and allows to access those in a non modal fashion.
**
** @todo as of 8/2017 this is (ab)used as space for UI / Proc-Layer integration experiments
** @todo as of 10/2017 this is used as space to host the information and error log
*/
@ -53,7 +53,8 @@ namespace panel{
* @param PanelManager The owner panel manager widget.
* @param DockItem The GdlDockItem that will host this panel.
*
* @todo as of 8/2017 this is placeholder code for UI experiments...
* @todo just used as place for the error log as of 10/2017.
* More to come...
*/
InfoBoxPanel (workspace::PanelManager&, Gdl::DockItem&);

View file

@ -36,7 +36,10 @@ namespace gui {
const Literal TAG_ERROR{"ERROR"}; ////////////////////////////////////////////////////////////TICKET #1168 : find a way to manage style of custom extended UI elements
const Literal TAG_WARN{"WARN"};
cuString CSS_CLASS_FLASH{"indication_flash"}; ///< CSS class added temporarily to make a widget "flash" in response to the corresponding UI-Bus message
/** CSS class added temporarily to make a widget "flash"
* in response to the corresponding UI-Bus message
* @see flash-deco.hpp */
cuString CSS_CLASS_FLASH{"indication_flash"};
const uint STYLE_FLASH_DURATION_in_ms = 1100;

View file

@ -34,9 +34,9 @@
** to an ErrorLogDisplay found within the InfoBoxPanel, using it as holder for
** information and error messages pushed into the GUI. For that reason, it is
** important really _to destroy_ the ErrorLogDisplay, when it is taken out of
** service. Since ErrorLogDisplay inherits from `sigc::tangible`, it is
** service. Since ErrorLogDisplay inherits from `sigc::trackable`, it is
** automatically detached from the WLink implementing this cross-attachment,
** when actually the dtor is called.
** but only when _actually the dtor is called._
** @note this is a special convention; usually it is sufficient just to hide()
** a GTK widget, because it is then left alone by the event handling and
** automatically cleaned up at shutdown. Moreover, if you ` remove()` a
@ -51,7 +51,7 @@
** used as receiver by the GuiNotificationService.
** @todo WIP-WIP and in 9/2018 this draft gradually shifts towards a prototype
** how to deal with custom configured widget behaviour, and how to integrate
** with our GUI framework /////////////////////////////////////////////////////////////TICKET #1099 : build a prototype/dummy for UI <-> Proc integration
** with our GUI framework (#1099)
**
*/
@ -149,8 +149,8 @@ namespace widget {
// the vertical scrollbar will always be necessary....
set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS);
this->add (textLog_);
textLog_.set_editable (false);
this->add (textLog_);
populateStandardTextTags (textLog_.get_buffer()->get_tag_table());
}
@ -163,7 +163,7 @@ namespace widget {
void
clearAll()
{
bool shallNotify = not errorMarks_.empty();
bool shallNotify = this->isError();
errorMarks_.clear();
size_t lineCnt = max (0, textLog_.get_buffer()->get_line_count() - 1);
@ -202,10 +202,10 @@ namespace widget {
void
addError (string text)
{
bool shallNotify = errorMarks_.empty();
bool shallNotify = not this->isError();
errorMarks_.emplace_back(
addEntry ("ERROR: "+text, TAG_ERROR));
addEntry ("ERROR: "+text, TAG_ERROR));
if (not expand.isExpanded())
expand (true);
@ -226,7 +226,7 @@ namespace widget {
for (Entry& entry : errorMarks_)
{
newBuff->insert (newBuff->end(), "\n");
auto pos = newBuff->end();
auto pos = newBuff->end();
--pos;
newMarks.emplace_back(
make_pair (
@ -255,7 +255,7 @@ namespace widget {
void
turnError_into_InfoMsg()
{
bool shallNotify = not errorMarks_.empty();
if (not isError()) return;
auto buff = textLog_.get_buffer();
for (Entry& entry : errorMarks_)
@ -264,17 +264,15 @@ namespace widget {
auto end = entry.second->get_iter();
buff->remove_tag_by_name(uString{TAG_ERROR}, begin,end);
buff->apply_tag_by_name (uString{TAG_WARN}, begin,end);
buff->apply_tag_by_name (uString{TAG_WARN}, begin,end);
}
errorMarks_.clear();
if (shallNotify)
errorChangedSignal_.emit (false);
errorChangedSignal_.emit (false);
}
/** temporarily change display style to prompt for attention;
* set callback-timeout to return to normal state.
* set callback-timeout for return to normal state.
* @see \ref gui::CSS_CLASS_FLASH
*/
void
@ -308,7 +306,7 @@ namespace widget {
* @remark an entry is content sans the following line break, which is appended automatically.
* We inject the content _between_ two marks, which will adjust when content is altered.
* @remark According to the [API doc], `TextView::scroll_to(iter)` is not reliable; preferably
* we should use a text mark and set that text mark to the [insert position][insert-mark].
* we should use a text mark, which could e.g. be the [insert position][insert-mark].
* The handling of marks and tags is described in the [GTKmm tutorial].
* @warning Each entry creates a new pair of marks. Not sure about the impact on performance...
*
@ -324,7 +322,7 @@ namespace widget {
auto pos = buff->end();
--pos;
auto begin = buff->create_mark (pos, true); // "left gravity" : stays to the left of inserted text
auto after = buff->create_mark (pos, false);// "right gravity": sticks right behind the inserted text
auto after = buff->create_mark (pos, false); // "right gravity": sticks right behind the inserted text
if (markupTagName)
buff->insert_with_tag(pos, text, cuString{markupTagName});
else

View file

@ -39,10 +39,10 @@
#include "proc/control/command-def.hpp"
//#include "proc/mobject/session.hpp"
#include "include/gui-notification-facade.h"
#include "gui/interact/wizard.hpp" //////////////////////////////////////////////////////////////TICKET #1099 : include needed temporarily
#include "gui/interact/wizard.hpp" //////////////////////////////////////////////////////////////TICKET #1140 : include needed temporarily
#include "lib/diff/gen-node.hpp"
#include "lib/idi/entry-id.hpp"
#include "lib/format-string.hpp" //////////////////////////////////////////////////////////////TICKET #1099 : include needed temporarily
#include "lib/format-string.hpp" //////////////////////////////////////////////////////////////TICKET #1140 : include needed temporarily
//#include "lib/symbol.hpp"
#include "lib/util.hpp"
@ -57,7 +57,7 @@ using gui::NotifyLevel;
using gui::GuiNotification;
using lib::diff::GenNode;
//using util::cStr;
using util::_Fmt; //////////////////////////////////////////////////////////////TICKET #1099 : include needed temporarily
using util::_Fmt; //////////////////////////////////////////////////////////////TICKET #1140 : include needed temporarily
using util::isYes;
using std::string;
@ -144,7 +144,7 @@ COMMAND_DEFINITION (meta_deactivateContentDiff)
/* ===== Demo and Development ===== */
/** DemoGuiRoundtrip: push a notification info message back up into the UI.
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1099 : prototypical Proc-GUI communication
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1140 : prototypical Proc-GUI communication
*/
COMMAND_DEFINITION (test_meta_displayInfo)
{
@ -164,7 +164,7 @@ COMMAND_DEFINITION (test_meta_displayInfo)
/** DemoGuiRoundtrip: send a `markError` message back up into the UI.
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1099 : prototypical Proc-GUI communication
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1140 : prototypical Proc-GUI communication
*/
COMMAND_DEFINITION (test_meta_markError)
{
@ -185,7 +185,7 @@ COMMAND_DEFINITION (test_meta_markError)
/** DemoGuiRoundtrip: send a `markNote` message back up into the UI.
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1099 : prototypical Proc-GUI communication
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1140 : prototypical Proc-GUI communication
*/
COMMAND_DEFINITION (test_meta_markNote)
{
@ -206,7 +206,7 @@ COMMAND_DEFINITION (test_meta_markNote)
/** DemoGuiRoundtrip: send a generic `mark` message with given _action ID_ back up into the UI.
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1099 : prototypical Proc-GUI communication
* @todo this is a demo mock setup to further development of the Proc-UI integration //////////////////TICKET #1140 : prototypical Proc-GUI communication
*/
COMMAND_DEFINITION (test_meta_markAction)
{

View file

@ -38,23 +38,45 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501940591109" ID="ID_1925240675" MODIFIED="1518487921039" 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 COLOR="#338800" CREATED="1501940591109" ID="ID_1925240675" MODIFIED="1538838811130" TEXT="#1099 DemoGuiRoundtrip">
<arrowlink COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" STARTARROW="None" STARTINCLINATION="-7;605;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1501940627280" ID="ID_1675066241" MODIFIED="1518487921039" TEXT="Dummy-Code im UI"/>
<node CREATED="1501940632871" ID="ID_189611570" MODIFIED="1518487921039" TEXT="Dummy Proc-Command"/>
<node CREATED="1501940639479" ID="ID_1314787910" MODIFIED="1518487921039" TEXT="komplettes Ping-Pong"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1481320590214" ID="ID_635303062" MODIFIED="1518487921039" TEXT="DummySessionConnection">
<arrowlink COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="123;-106;" ID="Arrow_ID_1867016690" STARTARROW="None" STARTINCLINATION="-144;215;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1481320590214" ID="ID_635303062" MODIFIED="1538840404782" TEXT="DummySessionConnection">
<arrowlink COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-9;-46;" ID="Arrow_ID_1867016690" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<icon BUILTIN="idea"/>
<node CREATED="1481320639544" ID="ID_1440497947" MODIFIED="1518487921039" TEXT="Singleton"/>
<node CREATED="1481320642455" ID="ID_1938045938" MODIFIED="1518487921039" TEXT="hat fake Session content"/>
<node CREATED="1481320650486" ID="ID_155238526" MODIFIED="1518487921039" TEXT="bietet fake Commands"/>
<node CREATED="1481320666196" ID="ID_1580591981" MODIFIED="1518487921039" TEXT="plus zugeh&#xf6;rige Diagnostik"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419217662" ID="ID_1622732481" MODIFIED="1531419224038" TEXT="#1147 establish UI start-up sequence">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1531419217662" ID="ID_1622732481" MODIFIED="1538838868097" TEXT="#1147 establish UI start-up sequence">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538839140096" ID="ID_1491571377" MODIFIED="1538839161659" TEXT="#1145 define startup sequence">
<icon BUILTIN="pencil"/>
<node CREATED="1538839163477" ID="ID_840651927" MODIFIED="1538839181676" TEXT="&quot;eigentlich&quot; schon erledigt">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
</node>
<node CREATED="1538839170700" ID="ID_172497653" MODIFIED="1538839196789" STYLE="fork">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<b><font color="#e01f1f">TODO</font></b>: Infos zusammentragen und dokumentieren
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1538839205056" ID="ID_1118716259" MODIFIED="1538839221765" TEXT="Lumiera Website -- Design-Sektion">
<icon BUILTIN="info"/>
</node>
</node>
<node CREATED="1531419242634" ID="ID_1022049727" MODIFIED="1531419624076" TEXT="Interfaces hochfahren">
<arrowlink COLOR="#effa97" DESTINATION="ID_687951877" ENDARROW="Default" ENDINCLINATION="-545;-1640;" ID="Arrow_ID_1500281313" STARTARROW="None" STARTINCLINATION="-189;37;"/>
</node>
@ -66,9 +88,10 @@
<node CREATED="1477784793993" ID="ID_1868522177" MODIFIED="1518487921039" 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="1518487921039" 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;"/>
<node CREATED="1477784813895" FOLDED="true" ID="ID_1343270939" MODIFIED="1538840432473" TEXT="Model durch UI-Bus ersetzen">
<linktarget COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-9;-46;" ID="Arrow_ID_1867016690" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-34;70;"/>
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-197;638;" ID="Arrow_ID_1686519160" SOURCE="ID_202253849" STARTARROW="Default" STARTINCLINATION="-83;-1020;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1481320683706" ID="ID_1226263415" MODIFIED="1518487921039" TEXT="kl&#xe4;ren, wo der Bus aufgeh&#xe4;ngt wird">
<icon BUILTIN="button_ok"/>
<node CREATED="1481331063782" ID="ID_1606852933" MODIFIED="1518487921039" TEXT="Lifecycle-Frontend UI-Bus"/>
@ -216,7 +239,7 @@
<node COLOR="#338800" CREATED="1481320759472" ID="ID_687951877" MODIFIED="1538263556139" TEXT="Interfaces &#xf6;ffnen">
<linktarget COLOR="#effa97" DESTINATION="ID_687951877" ENDARROW="Default" ENDINCLINATION="-545;-1640;" ID="Arrow_ID_1500281313" SOURCE="ID_1022049727" STARTARROW="None" STARTINCLINATION="-189;37;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1481320765135" ID="ID_379585622" MODIFIED="1518487921041">
<node CREATED="1481320765135" FOLDED="true" ID="ID_379585622" MODIFIED="1538840210708">
<richcontent TYPE="NODE"><html>
<head>
@ -228,6 +251,7 @@
</body>
</html></richcontent>
<linktarget COLOR="#51517b" DESTINATION="ID_379585622" ENDARROW="Default" ENDINCLINATION="-476;439;" ID="Arrow_ID_1616528570" SOURCE="ID_1324099152" STARTARROW="Default" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1484792679322" HGAP="13" ID="ID_426218722" MODIFIED="1538267933539" TEXT="#1047 preliminary definition of GuiNotification facade" VSHIFT="-3">
<richcontent TYPE="NOTE"><html>
<head>
@ -665,7 +689,7 @@
</node>
<node COLOR="#435e98" CREATED="1484797646771" HGAP="44" ID="ID_1605520996" MODIFIED="1538263574976" TEXT="Ausgestaltung" VSHIFT="10">
<icon BUILTIN="button_ok"/>
<node CREATED="1501859455212" ID="ID_751494565" MODIFIED="1518487921045" TEXT="Lebenszyklus">
<node CREATED="1501859455212" ID="ID_751494565" MODIFIED="1538840190401" TEXT="Lebenszyklus">
<node CREATED="1484797663121" ID="ID_134980216" MODIFIED="1518487921045" TEXT="braucht Bus-Connection">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1484797863862" FOLDED="true" ID="ID_464230340" MODIFIED="1538268217733" TEXT="zum Controller machen?">
@ -935,7 +959,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1484797808349" HGAP="31" ID="ID_389264738" MODIFIED="1538263470364" TEXT="Notification-Funktionen" VSHIFT="11">
<node COLOR="#338800" CREATED="1484797808349" FOLDED="true" HGAP="31" ID="ID_389264738" MODIFIED="1538840134333" TEXT="Notification-Funktionen" VSHIFT="11">
<icon BUILTIN="button_ok"/>
<node CREATED="1501854084264" HGAP="-42" ID="ID_1333991907" MODIFIED="1538263469663" TEXT="allgemein...." VSHIFT="-60">
<icon BUILTIN="messagebox_warning"/>
@ -943,8 +967,9 @@
<arrowlink COLOR="#a75677" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="-317;-24;" ID="Arrow_ID_274836249" STARTARROW="None" STARTINCLINATION="-647;-66;"/>
</node>
<node CREATED="1501854114284" ID="ID_168912186" MODIFIED="1538263469663" TEXT="Lebenszyklus"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#01908b" CREATED="1502411488645" ID="ID_1875294174" MODIFIED="1538263469663" TEXT="Fehler im UI">
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1502411488645" FOLDED="true" ID="ID_1875294174" MODIFIED="1538840090150" TEXT="Fehler im UI">
<linktarget COLOR="#84b6b7" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1297;-64;" ID="Arrow_ID_245240331" SOURCE="ID_1177399909" STARTARROW="None" STARTINCLINATION="285;0;"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
<node CREATED="1502411559060" ID="ID_1282973269" MODIFIED="1538263469663" TEXT="GTK nicht exception-safe">
<icon BUILTIN="messagebox_warning"/>
@ -996,8 +1021,10 @@
</node>
</node>
</node>
<node CREATED="1484797813373" ID="ID_536855363" MODIFIED="1538263469663" TEXT="generische Nachricht"/>
<node CREATED="1484797818780" ID="ID_354397333" MODIFIED="1538263469663" TEXT="state mark">
<node COLOR="#338800" CREATED="1484797813373" ID="ID_536855363" MODIFIED="1538840099146" TEXT="generische Nachricht">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1484797818780" FOLDED="true" ID="ID_354397333" MODIFIED="1538840102986" TEXT="state mark">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1484877574046" ID="ID_251939815" MODIFIED="1538263469663" TEXT="Error">
<icon BUILTIN="button_ok"/>
@ -1006,12 +1033,12 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1504203488690" ID="ID_149796171" MODIFIED="1538263469663" TEXT="Fehlermeldungen">
<node COLOR="#338800" CREATED="1504203488690" FOLDED="true" ID="ID_149796171" MODIFIED="1538840105074" TEXT="Fehlermeldungen">
<linktarget COLOR="#c19dc4" DESTINATION="ID_149796171" ENDARROW="Default" ENDINCLINATION="1300;76;" ID="Arrow_ID_451002492" SOURCE="ID_821848615" STARTARROW="None" STARTINCLINATION="1509;156;"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504203497529" ID="ID_1933339677" MODIFIED="1538263469663" TEXT="#1102 brauche Fehlerlog-Widget">
<node COLOR="#338800" CREATED="1504203497529" ID="ID_1933339677" MODIFIED="1538839626771" TEXT="#1102 brauche Fehlerlog-Widget">
<linktarget COLOR="#5e6d7f" DESTINATION="ID_1933339677" ENDARROW="Default" ENDINCLINATION="201;-32;" ID="Arrow_ID_1887448672" SOURCE="ID_376091136" STARTARROW="None" STARTINCLINATION="-44;52;"/>
<icon BUILTIN="bell"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1504203643550" ID="ID_764647453" MODIFIED="1538263469663" TEXT="via InteractionDirector ansprechen"/>
<node CREATED="1504203694423" ID="ID_812129962" MODIFIED="1538263469663">
<richcontent TYPE="NODE"><html>
@ -1035,9 +1062,9 @@
</node>
<node CREATED="1504203511199" ID="ID_1027795869" MODIFIED="1538263469664" TEXT="Nachricht per UI-Bus senden"/>
</node>
<node CREATED="1484797822403" ID="ID_364545191" MODIFIED="1538263469664" TEXT="Diff">
<node COLOR="#338800" CREATED="1484797822403" FOLDED="true" HGAP="37" ID="ID_364545191" MODIFIED="1538840131323" TEXT="Diff" VSHIFT="8">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1502401930856" ID="ID_634125084" MODIFIED="1538263469664" TEXT="#1066 concept how to hand over diff messages">
<node COLOR="#338800" CREATED="1502401930856" FOLDED="true" ID="ID_634125084" MODIFIED="1538839622321" TEXT="#1066 concept how to hand over diff messages">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502410099141" ID="ID_1388523431" MODIFIED="1538263469664" TEXT="unn&#xf6;tig: zwei Abstraktions-Typen">
<icon BUILTIN="stop-sign"/>
@ -1270,7 +1297,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1493753249399" HGAP="75" ID="ID_1023343635" MODIFIED="1538263469665" TEXT="#1098 hand-over in UI-Thread" VSHIFT="61">
<node COLOR="#338800" CREATED="1493753249399" FOLDED="true" HGAP="64" ID="ID_1023343635" MODIFIED="1538840125563" TEXT="#1098 hand-over in UI-Thread" VSHIFT="83">
<linktarget COLOR="#a75677" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="-317;-24;" ID="Arrow_ID_274836249" SOURCE="ID_1146157818" STARTARROW="None" STARTINCLINATION="-647;-66;"/>
<linktarget COLOR="#84c6b8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="21;233;" ID="Arrow_ID_1372135725" SOURCE="ID_995145542" STARTARROW="None" STARTINCLINATION="237;0;"/>
<linktarget COLOR="#7caaa8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="2513;3565;" ID="Arrow_ID_1832047032" SOURCE="ID_489078622" STARTARROW="Default" STARTINCLINATION="3463;134;"/>
@ -1281,7 +1308,7 @@
<node CREATED="1501850603736" ID="ID_1030340631" MODIFIED="1538263469665" TEXT="im UI-Thread erzeugen und binden"/>
<node CREATED="1501850614630" ID="ID_196299293" MODIFIED="1538263469665" TEXT="emit() -&gt; event im UI-Thread"/>
</node>
<node COLOR="#435e98" CREATED="1501850632636" ID="ID_431682708" MODIFIED="1538263469665" TEXT="technische Probleme">
<node COLOR="#435e98" CREATED="1501850632636" FOLDED="true" ID="ID_431682708" MODIFIED="1538839594460" TEXT="technische Probleme">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1501850684373" ID="ID_1688212376" MODIFIED="1538263469665" TEXT="ein Dispatcher pro Call">
<richcontent TYPE="NOTE"><html>
@ -1363,7 +1390,7 @@
</body>
</html></richcontent>
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1501938738836" ID="ID_1257499857" MODIFIED="1538263469665" TEXT="Helper: CallQueue">
<node COLOR="#338800" CREATED="1501938738836" FOLDED="true" ID="ID_1257499857" MODIFIED="1538839544330" TEXT="Helper: CallQueue">
<icon BUILTIN="button_ok"/>
<node CREATED="1501938715247" ID="ID_1286525769" MODIFIED="1538263469666" TEXT="simplistic">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
@ -1373,7 +1400,7 @@
<node CREATED="1501938690626" ID="ID_353231581" MODIFIED="1538263469666" TEXT="thread safe queue"/>
<node CREATED="1501938705321" ID="ID_1924064403" MODIFIED="1538263469666" TEXT="lambdas f&#xfc;r Argument-binding"/>
</node>
<node COLOR="#338800" CREATED="1501938776839" ID="ID_1031878628" MODIFIED="1538263469666" TEXT="Convenience-Wrapper">
<node COLOR="#338800" CREATED="1501938776839" FOLDED="true" ID="ID_1031878628" MODIFIED="1538839555201" TEXT="Convenience-Wrapper">
<icon BUILTIN="button_ok"/>
<node CREATED="1501939110138" ID="ID_203135379" MODIFIED="1538263469666" TEXT="Lambda konstruieren">
<icon BUILTIN="button_ok"/>
@ -1384,7 +1411,7 @@
<node CREATED="1501939149837" ID="ID_1733976265" MODIFIED="1538263469666" TEXT="diese an Glib::Dispatcher binden">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1502404797300" ID="ID_1177399909" MODIFIED="1538263469666" TEXT="Exceptions fangen">
<node CREATED="1502404797300" FOLDED="true" ID="ID_1177399909" MODIFIED="1538839553473" TEXT="Exceptions fangen">
<arrowlink COLOR="#84b6b7" DESTINATION="ID_1875294174" ENDARROW="Default" ENDINCLINATION="1297;-64;" ID="Arrow_ID_245240331" STARTARROW="None" STARTINCLINATION="285;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1522935881957" HGAP="23" ID="ID_564244010" MODIFIED="1538263469666" TEXT="4/2018 was ist hier der Stand?" VSHIFT="16">
@ -1450,7 +1477,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1501939174506" ID="ID_504999068" MODIFIED="1538263469666" TEXT="in NotificationService integrieren">
<node COLOR="#338800" CREATED="1501939174506" FOLDED="true" ID="ID_504999068" MODIFIED="1538839557169" TEXT="in NotificationService integrieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1502375098210" ID="ID_581509556" MODIFIED="1538263469666" STYLE="fork" TEXT="als PImpl">
<icon BUILTIN="button_ok"/>
@ -1465,7 +1492,7 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1502375294344" ID="ID_640199096" MODIFIED="1538263469666" TEXT="Spezialbehandlung f&#xfc;r Shutdown">
<node COLOR="#338800" CREATED="1502375294344" FOLDED="true" ID="ID_640199096" MODIFIED="1538839576310" TEXT="Spezialbehandlung f&#xfc;r Shutdown">
<icon BUILTIN="button_ok"/>
<node CREATED="1502375312469" ID="ID_1075926054" MODIFIED="1538263469666" TEXT="ironischerweise...">
<richcontent TYPE="NOTE"><html>
@ -1534,14 +1561,14 @@
<node CREATED="1502390886681" ID="ID_985994192" MODIFIED="1538263469666" TEXT="f&#xfc;hre Benachrichtiguns-Level ein">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502390603674" ID="ID_125356908" MODIFIED="1538263469666" TEXT="#1102 : build a message display box in the UI">
<node COLOR="#338800" CREATED="1502390603674" ID="ID_125356908" MODIFIED="1538839473841" TEXT="#1102 : build a message display box in the UI">
<arrowlink COLOR="#8c8bae" DESTINATION="ID_1926586811" ENDARROW="Default" ENDINCLINATION="1456;47;" ID="Arrow_ID_1593124756" STARTARROW="None" STARTINCLINATION="-839;779;"/>
<icon BUILTIN="hourglass"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node CREATED="1501939193031" HGAP="3" ID="ID_1045913810" MODIFIED="1538263469666" TEXT="Test" VSHIFT="20">
<icon BUILTIN="bell"/>
<node CREATED="1501939193031" HGAP="3" ID="ID_1045913810" MODIFIED="1538839583477" TEXT="Test" VSHIFT="20">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1501939204166" ID="ID_383444966" MODIFIED="1538263469666" TEXT="CallQueue_test">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1501946847700" ID="ID_1917302142" MODIFIED="1538263469666" TEXT="basic">
@ -1554,11 +1581,12 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1501939212693" ID="ID_1007296291" MODIFIED="1538263469666" 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;"/>
<node BACKGROUND_COLOR="#fefc4e" COLOR="#351d75" CREATED="1501939212693" FOLDED="true" ID="ID_1007296291" MODIFIED="1538839532670" TEXT="#1099 DemoGuiRoundtrip">
<linktarget COLOR="#e5e53f" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-931;34;" ID="Arrow_ID_1440938291" SOURCE="ID_1925240675" STARTARROW="None" STARTINCLINATION="-7;605;"/>
<linktarget COLOR="#f0eca5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="881;2029;" ID="Arrow_ID_1736540527" SOURCE="ID_1456159316" STARTARROW="None" STARTINCLINATION="418;-44;"/>
<linktarget COLOR="#ebf0a5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="-3154;1704;" ID="Arrow_ID_1091720734" SOURCE="ID_1098045534" STARTARROW="None" STARTINCLINATION="1627;38;"/>
<icon BUILTIN="pencil"/>
<font BOLD="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="idea"/>
<node CREATED="1501939235834" FOLDED="true" ID="ID_1160414548" MODIFIED="1538263469666" TEXT="Men&#xfc;-Eintrag">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533402935579" ID="ID_263665767" MODIFIED="1533402958273" TEXT="erst mal Bang!-Button verwenden">
<icon BUILTIN="flag-yellow"/>
@ -1570,7 +1598,7 @@
<node CREATED="1501939240217" ID="ID_325602880" MODIFIED="1538263469667" TEXT="triggert Proc-Command"/>
<node CREATED="1501939252991" ID="ID_31140909" MODIFIED="1538263469667" TEXT="dieses sendet Mark zur&#xfc;ck"/>
<node CREATED="1501939263030" ID="ID_381890207" MODIFIED="1538263469667" TEXT="ein Widget im UI reagiert">
<node COLOR="#338800" CREATED="1533402866549" ID="ID_899369632" MODIFIED="1538263469667" TEXT="fest verdrahtete ID">
<node COLOR="#338800" CREATED="1533402866549" FOLDED="true" ID="ID_899369632" MODIFIED="1538777700165" TEXT="fest verdrahtete ID">
<icon BUILTIN="button_ok"/>
<node CREATED="1533688905326" ID="ID_709974587" MODIFIED="1538263469667" TEXT="geh&#xf6;rt dem NotificationController"/>
<node CREATED="1533688913996" ID="ID_33570780" MODIFIED="1538263469667">
@ -1592,11 +1620,11 @@
<arrowlink COLOR="#455086" DESTINATION="ID_396920290" ENDARROW="Default" ENDINCLINATION="-38;-97;" ID="Arrow_ID_729082861" STARTARROW="None" STARTINCLINATION="101;-7;"/>
</node>
</node>
<node COLOR="#338800" CREATED="1533771813324" ID="ID_930319427" MODIFIED="1538263758857" TEXT="wo ist die ID selber definiert">
<node COLOR="#338800" CREATED="1533771813324" ID="ID_930319427" MODIFIED="1538777683159" TEXT="wo ist die ID selber definiert">
<icon BUILTIN="help"/>
<node CREATED="1533911116328" ID="ID_1079600246" MODIFIED="1533911128764" TEXT="sie mu&#xdf; insgesamt reprouzierbar sein"/>
<node CREATED="1533911129424" ID="ID_659618402" MODIFIED="1533911139946" TEXT="zumindest innerhalb einer Program-Ausf&#xfc;hrung"/>
<node CREATED="1533911854871" HGAP="23" ID="ID_1953310668" MODIFIED="1534026766064" TEXT="Problem dabei" VSHIFT="11">
<node CREATED="1533911854871" FOLDED="true" HGAP="23" ID="ID_1953310668" MODIFIED="1538777693883" TEXT="Problem dabei" VSHIFT="11">
<node CREATED="1533911897569" ID="ID_1876551933" MODIFIED="1533911919154" TEXT="ID ist somit Teil des Interface"/>
<node CREATED="1533911919814" ID="ID_558535868" MODIFIED="1533911928937" TEXT="welches Interface?">
<node CREATED="1533915325903" ID="ID_1053391149" MODIFIED="1533915334817" TEXT="GuiNotification">
@ -1767,13 +1795,7 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850824341" ID="ID_1234148559" MODIFIED="1538263469667" TEXT="vorl&#xe4;ufiges Grid-Layout">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850841673" ID="ID_375492094" MODIFIED="1538263469667" TEXT="ParentView-Interface">
<icon BUILTIN="flag-yellow"/>
</node>
<node CREATED="1504203667130" HGAP="50" ID="ID_1745777873" MODIFIED="1538584290312" TEXT="vorl&#xe4;ufig Empf&#xe4;nger f&#xfc;r Fehler-Log" VSHIFT="2">
<node CREATED="1504203667130" FOLDED="true" HGAP="50" ID="ID_1745777873" MODIFIED="1538778298136" TEXT="vorl&#xe4;ufig Empf&#xe4;nger f&#xfc;r Fehler-Log" VSHIFT="2">
<arrowlink COLOR="#98a2c5" DESTINATION="ID_217810080" ENDARROW="Default" ENDINCLINATION="1891;-1228;" ID="Arrow_ID_1688804340" STARTARROW="None" STARTINCLINATION="-1261;74;"/>
<linktarget COLOR="#7893b2" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="-499;-464;" ID="Arrow_ID_1590510093" SOURCE="ID_812129962" STARTARROW="None" STARTINCLINATION="808;0;"/>
<linktarget COLOR="#628195" DESTINATION="ID_1745777873" ENDARROW="Default" ENDINCLINATION="245;349;" ID="Arrow_ID_1743659141" SOURCE="ID_1981930639" STARTARROW="None" STARTINCLINATION="397;197;"/>
@ -2514,8 +2536,8 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533689031860" ID="ID_657232437" MODIFIED="1538263469670" TEXT="Implementierung">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1533689031860" HGAP="97" ID="ID_657232437" MODIFIED="1538778282275" TEXT="Implementierung" VSHIFT="9">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1533689046050" ID="ID_32330448" MODIFIED="1538263469670" TEXT="ErrorLog-Widget">
<icon BUILTIN="button_ok"/>
</node>
@ -2591,7 +2613,7 @@
<node COLOR="#435e98" CREATED="1533689076590" ID="ID_321096443" MODIFIED="1538263469671" TEXT="mit Bus verdrahten und ID global konstant definieren">
<icon BUILTIN="full-2"/>
</node>
<node COLOR="#435e98" CREATED="1533689098787" ID="ID_191346591" MODIFIED="1538756289018" TEXT="Empfangs-Logik im NotificationHub (Controller)">
<node COLOR="#435e98" CREATED="1533689098787" FOLDED="true" ID="ID_191346591" MODIFIED="1538778263755" TEXT="Empfangs-Logik im NotificationHub (Controller)">
<icon BUILTIN="full-3"/>
<node COLOR="#338800" CREATED="1534119968325" ID="ID_1630503080" MODIFIED="1538746815645" TEXT="Einrichtung">
<icon BUILTIN="button_ok"/>
@ -2832,15 +2854,15 @@
</p>
</body>
</html></richcontent>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721528967" ID="ID_1984401497" MODIFIED="1538263469671" TEXT="verifizieren">
<node COLOR="#338800" CREATED="1534721528967" ID="ID_1984401497" MODIFIED="1538778232908" TEXT="verifizieren">
<arrowlink DESTINATION="ID_1360416196" ENDARROW="Default" ENDINCLINATION="417;34;" ID="Arrow_ID_1337668046" STARTARROW="None" STARTINCLINATION="-454;-9;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1534721523435" ID="ID_679085788" MODIFIED="1538263469671" TEXT="dokumentieren">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721512505" ID="ID_1260021418" MODIFIED="1538263469671" TEXT="sofern es im Panel lebt, passiert das automatisch">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1534721512505" ID="ID_1260021418" MODIFIED="1538778245658" TEXT="sofern es im Panel lebt, passiert das automatisch">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
@ -3023,7 +3045,7 @@
<node COLOR="#435e98" CREATED="1533689164394" ID="ID_405297881" MODIFIED="1538708568344" TEXT="in NotificationService integrieren">
<icon BUILTIN="full-4"/>
</node>
<node COLOR="#435e98" CREATED="1533689225658" ID="ID_662017160" MODIFIED="1538263469673" TEXT="Pling! -Button">
<node COLOR="#435e98" CREATED="1533689225658" FOLDED="true" ID="ID_662017160" MODIFIED="1538777756201" TEXT="Pling! -Button">
<icon BUILTIN="full-5"/>
<node COLOR="#338800" CREATED="1533689235200" FOLDED="true" ID="ID_1760873318" MODIFIED="1538263469673" TEXT="non-modal TestControl">
<icon BUILTIN="button_ok"/>
@ -3808,7 +3830,7 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1534721737507" ID="ID_1467431829" MODIFIED="1538263469675" TEXT="verifizieren">
<node COLOR="#338800" CREATED="1534721737507" FOLDED="true" ID="ID_1467431829" MODIFIED="1538778273497" TEXT="verifizieren">
<icon BUILTIN="full-6"/>
<node COLOR="#338800" CREATED="1538234826126" ID="ID_1989018475" MODIFIED="1538263469675" TEXT="Round-Trip &#xfc;ber Thrad-Grenzen hinweg">
<icon BUILTIN="button_ok"/>
@ -3816,24 +3838,24 @@
<node COLOR="#338800" CREATED="1538234843916" ID="ID_1672079020" MODIFIED="1538263469675" TEXT="Argument-&#xdc;bergabe per Kopie">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721764680" ID="ID_237796687" MODIFIED="1538263469675" TEXT="Belegen der View">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1534721764680" ID="ID_237796687" MODIFIED="1538777025274" TEXT="Belegen der View">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538747863296" ID="ID_1171544173" MODIFIED="1538747871991" TEXT="Reaktion auf Error-state">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1538747863296" ID="ID_1171544173" MODIFIED="1538777026741" TEXT="Reaktion auf Error-state">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721772238" ID="ID_130695962" MODIFIED="1538263469675" TEXT="Verbinden mit bestehendem InfoboxPanel">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1534721772238" ID="ID_130695962" MODIFIED="1538777041184" TEXT="Verbinden mit bestehendem InfoboxPanel">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721811969" ID="ID_1320259895" MODIFIED="1538263469675" TEXT="auch in einerm anderen Fenster">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1534721811969" ID="ID_1320259895" MODIFIED="1538777615902" TEXT="auch in einerm anderen Fenster">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721785596" ID="ID_1517054985" MODIFIED="1538263469675" TEXT="Erzeugen eines neuen InfoboxPanels">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1534721785596" ID="ID_1517054985" MODIFIED="1538777054390" TEXT="Erzeugen eines neuen InfoboxPanels">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534721819264" ID="ID_1360416196" MODIFIED="1538263469675" TEXT="Panel durch Ersetzung zerst&#xf6;ren">
<node COLOR="#338800" CREATED="1534721819264" ID="ID_1360416196" MODIFIED="1538778252025" TEXT="Panel durch Ersetzung zerst&#xf6;ren">
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1360416196" ENDARROW="Default" ENDINCLINATION="417;34;" ID="Arrow_ID_1337668046" SOURCE="ID_1984401497" STARTARROW="None" STARTINCLINATION="-454;-9;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1537531073966" ID="ID_973305985" MODIFIED="1538708635973" TEXT="Funktionen">
<icon BUILTIN="button_ok"/>
@ -3861,8 +3883,8 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1537532006073" HGAP="-92" ID="ID_135756255" MODIFIED="1538263469676" TEXT="Neben-Nutzen" VSHIFT="15">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1537532006073" HGAP="-92" ID="ID_135756255" MODIFIED="1538839483837" TEXT="Neben-Nutzen" VSHIFT="15">
<icon BUILTIN="button_ok"/>
<node CREATED="1537532035141" ID="ID_188521578" MODIFIED="1538263469676" TEXT="NotificationService">
<icon BUILTIN="info"/>
</node>
@ -3874,8 +3896,22 @@
<arrowlink COLOR="#c19dc4" DESTINATION="ID_149796171" ENDARROW="Default" ENDINCLINATION="1300;76;" ID="Arrow_ID_451002492" STARTARROW="None" STARTINCLINATION="1509;156;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1537532456004" ID="ID_1700828304" MODIFIED="1538266369889" TEXT="dokumentieren und Ticket #1047 schlie&#xdf;en">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1537532456004" ID="ID_1700828304" MODIFIED="1538839492410" TEXT="dokumentieren und Ticket #1047 schlie&#xdf;en">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538836931857" ID="ID_438461567" MODIFIED="1538839523006" TEXT="#1174 kann auch geschlossen werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
#1174 UI self diagnostics window
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
@ -3883,7 +3919,7 @@
</node>
</node>
</node>
<node CREATED="1484797684438" HGAP="21" ID="ID_932852399" MODIFIED="1518487921054" TEXT="GUI-Shutdown implementieren" VSHIFT="13">
<node COLOR="#338800" CREATED="1484797684438" FOLDED="true" HGAP="21" ID="ID_932852399" MODIFIED="1538840181217" TEXT="GUI-Shutdown implementieren" VSHIFT="13">
<richcontent TYPE="NOTE"><html>
<head>
@ -3897,6 +3933,7 @@
</p>
</body>
</html></richcontent>
<icon BUILTIN="button_ok"/>
<node CREATED="1485116867963" ID="ID_1146024699" MODIFIED="1518487921054" TEXT="bisher kann man nur das Fenster schlie&#xdf;en">
<icon BUILTIN="info"/>
<node CREATED="1485116884925" ID="ID_296160451" MODIFIED="1518487921055" TEXT="wie funktioniert das?">
@ -3917,7 +3954,7 @@
<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="1518487921055" TEXT="wie signalisieren wir das">
<node COLOR="#763434" CREATED="1484797766035" FOLDED="true" ID="ID_1740926324" MODIFIED="1538840144165" TEXT="wie signalisieren wir das">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
<node CREATED="1501781461059" ID="ID_1041497316" MODIFIED="1518487921055" TEXT="wie den UiManager erreichen?">
@ -3978,7 +4015,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1501804804734" HGAP="33" ID="ID_1925973923" MODIFIED="1518487921055" TEXT="Mechanismus zum Schlie&#xdf;en" VSHIFT="6">
<node COLOR="#338800" CREATED="1501804804734" FOLDED="true" HGAP="33" ID="ID_1925973923" MODIFIED="1538840149116" TEXT="Mechanismus zum Schlie&#xdf;en" VSHIFT="6">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1484797911392" ID="ID_286857196" MODIFIED="1531585120208" TEXT="geeigneten Mechanisums definieren">
<linktarget COLOR="#872666" DESTINATION="ID_286857196" ENDARROW="Default" ENDINCLINATION="-684;0;" ID="Arrow_ID_1606936924" SOURCE="ID_405470138" STARTARROW="Default" STARTINCLINATION="1461;0;"/>
@ -4009,7 +4046,7 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1488419591265" HGAP="75" ID="ID_471609909" MODIFIED="1518487921055" VSHIFT="14">
<node COLOR="#435e98" CREATED="1488419591265" HGAP="77" ID="ID_471609909" MODIFIED="1538840175237" VSHIFT="53">
<richcontent TYPE="NODE"><html>
<head>
@ -4025,7 +4062,7 @@
</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="1533608413545" TEXT="#1032 use gtk::Application instead of gtk::Main" VSHIFT="11">
<node COLOR="#338800" CREATED="1485118623744" FOLDED="true" HGAP="23" ID="ID_392996871" MODIFIED="1538840161485" TEXT="#1032 use gtk::Application instead of gtk::Main" VSHIFT="11">
<arrowlink COLOR="#ae1856" DESTINATION="ID_206480879" ENDARROW="Default" ENDINCLINATION="715;0;" ID="Arrow_ID_926482654" STARTARROW="Default" STARTINCLINATION="134;383;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1485118668802" ID="ID_575152579" MODIFIED="1518487921055" TEXT="WindowManager verwendet gtk::Main"/>
@ -4112,7 +4149,7 @@
<font BOLD="true" NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="info"/>
</node>
<node CREATED="1493754789137" ID="ID_1903744710" MODIFIED="1518487921055" TEXT="kommt mir komisch vor">
<node CREATED="1493754789137" FOLDED="true" ID="ID_1903744710" MODIFIED="1538778578031" TEXT="kommt mir komisch vor">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1493754799439" ID="ID_288205807" MODIFIED="1518487921055" TEXT="das &quot;riecht&quot; nach Framework"/>
<node CREATED="1493754808373" ID="ID_998804989" MODIFIED="1533608413546" TEXT="&quot;wir machen bequem alles f&#xfc;r Sie&quot;">
@ -4180,7 +4217,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1485130302095" HGAP="28" ID="ID_506541774" MODIFIED="1518487921056" TEXT="neuer UiManager" VSHIFT="14">
<node COLOR="#338800" CREATED="1485130302095" FOLDED="true" HGAP="28" ID="ID_506541774" MODIFIED="1538840166338" TEXT="neuer UiManager" VSHIFT="14">
<icon BUILTIN="button_ok"/>
<node CREATED="1485452508180" ID="ID_549617075" MODIFIED="1518487921056" TEXT="ist front-end daf&#xfc;r">
<icon BUILTIN="button_cancel"/>
@ -4194,7 +4231,7 @@
<linktarget COLOR="#667e90" DESTINATION="ID_599315721" ENDARROW="None" ENDINCLINATION="41;328;" ID="Arrow_ID_1963473410" SOURCE="ID_1478388503" STARTARROW="Default" STARTINCLINATION="943;-58;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1493762472175" ID="ID_964179569" MODIFIED="1518487921056" TEXT="verwendet Fenster-Liste"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_869056268" MODIFIED="1534511296643" TEXT="alle noch offenen Fenster verbergen">
<node COLOR="#435e98" CREATED="1493762490205" ID="ID_869056268" MODIFIED="1538778695808" TEXT="alle noch offenen Fenster verbergen">
<arrowlink COLOR="#543c6f" DESTINATION="ID_159568066" ENDARROW="Default" ENDINCLINATION="489;-554;" ID="Arrow_ID_373486067" STARTARROW="None" STARTINCLINATION="-762;-46;"/>
<icon BUILTIN="help"/>
</node>
@ -4247,7 +4284,7 @@
</node>
</node>
</node>
<node CREATED="1481320772830" HGAP="21" ID="ID_1607125695" MODIFIED="1518487921056" VSHIFT="11">
<node CREATED="1481320772830" FOLDED="true" HGAP="21" ID="ID_1607125695" MODIFIED="1538840336285" VSHIFT="11">
<richcontent TYPE="NODE"><html>
<head>
@ -4345,7 +4382,7 @@
</html></richcontent>
</node>
</node>
<node CREATED="1481320847724" HGAP="42" ID="ID_545146501" MODIFIED="1518487921056" TEXT="wo ansiedeln" VSHIFT="-6">
<node CREATED="1481320847724" FOLDED="true" HGAP="42" ID="ID_545146501" MODIFIED="1538840221525" TEXT="wo ansiedeln" VSHIFT="-6">
<icon BUILTIN="help"/>
<node CREATED="1481509901926" ID="ID_1612540786" MODIFIED="1518487921056" TEXT="in proc::control"/>
<node CREATED="1481767522123" ID="ID_789146708" MODIFIED="1518487921056">
@ -4458,7 +4495,7 @@
</node>
<node CREATED="1481320850779" HGAP="45" ID="ID_1632600003" MODIFIED="1518487921057" TEXT="hochfahren" VSHIFT="-3">
<icon BUILTIN="button_ok"/>
<node CREATED="1481509921211" ID="ID_1515469097" MODIFIED="1525124214734">
<node CREATED="1481509921211" FOLDED="true" ID="ID_1515469097" MODIFIED="1538840237755">
<richcontent TYPE="NODE"><html>
<head>
@ -4541,7 +4578,7 @@
<node CREATED="1482464436919" ID="ID_64274402" MODIFIED="1482464442042" TEXT="f&#xfc;hrt Commands aus"/>
<node CREATED="1482464442438" ID="ID_1339868449" MODIFIED="1482464449049" TEXT="startet den Builder"/>
</node>
<node CREATED="1481599421021" ID="ID_461768132" MODIFIED="1512926191671" TEXT="Locking kl&#xe4;ren">
<node CREATED="1481599421021" FOLDED="true" ID="ID_461768132" MODIFIED="1538840232706" TEXT="Locking kl&#xe4;ren">
<icon BUILTIN="button_ok"/>
<node CREATED="1481684383530" ID="ID_236117" MODIFIED="1512926191672" TEXT="zwei unabh&#xe4;ngige Locks">
<icon BUILTIN="yes"/>
@ -4662,7 +4699,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1481510231986" HGAP="23" ID="ID_45803267" MODIFIED="1518487921057" TEXT="dort SessionCommandService instantiieren" VSHIFT="4">
<node COLOR="#338800" CREATED="1481510231986" FOLDED="true" HGAP="23" ID="ID_45803267" MODIFIED="1538840243056" TEXT="dort SessionCommandService instantiieren" VSHIFT="4">
<icon BUILTIN="button_ok"/>
<node CREATED="1481769089234" ID="ID_1152351588" MODIFIED="1518487921057" TEXT="lebt in der DispatcherLoop">
<arrowlink COLOR="#4aff51" DESTINATION="ID_1364443356" ENDARROW="Default" ENDINCLINATION="10;30;" ID="Arrow_ID_870320696" STARTARROW="Default" STARTINCLINATION="-221;-88;"/>
@ -4752,9 +4789,9 @@
<node CREATED="1483748231330" ID="ID_1962213649" MODIFIED="1518487921057" TEXT="soll hierzu sehen, da&#xdf; ein einfacher Aufruf wirklich klappt">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1483748323014" ID="ID_1031176077" MODIFIED="1518487921057" TEXT="Nachrichten vom UI-Bus entnehmen">
<node CREATED="1483748323014" FOLDED="true" ID="ID_1031176077" MODIFIED="1538840309345" TEXT="Nachrichten vom UI-Bus entnehmen">
<icon BUILTIN="button_ok"/>
<node COLOR="#520262" CREATED="1483908814960" HGAP="34" ID="ID_430949603" MODIFIED="1518487921057" TEXT="Design sinnvoll?" VSHIFT="6">
<node COLOR="#520262" CREATED="1483908814960" FOLDED="true" HGAP="34" ID="ID_430949603" MODIFIED="1538840277766" TEXT="Design sinnvoll?" VSHIFT="6">
<linktarget COLOR="#b694bf" DESTINATION="ID_430949603" ENDARROW="Default" ENDINCLINATION="178;425;" ID="Arrow_ID_1062305149" SOURCE="ID_329609486" STARTARROW="Default" STARTINCLINATION="-629;-2354;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="help"/>
@ -4778,9 +4815,9 @@
<node CREATED="1483909496110" ID="ID_1500666281" MODIFIED="1518487921058" TEXT="Command-Functor invocation VTable"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1483909585362" HGAP="1" ID="ID_1047452263" MODIFIED="1518487921058" TEXT="mu&#xdf; sich noch rechtfertigen" VSHIFT="11">
<node COLOR="#435e98" CREATED="1483909585362" HGAP="1" ID="ID_1047452263" MODIFIED="1538840272769" TEXT="mu&#xdf; sich noch rechtfertigen" VSHIFT="11">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="yes"/>
<node CREATED="1483909605879" ID="ID_1463483386" MODIFIED="1518487921058" TEXT="war eine Design-Wahl auf Verdacht">
<icon BUILTIN="idea"/>
</node>
@ -4792,7 +4829,7 @@
<node CREATED="1483755303243" HGAP="86" ID="ID_1425274731" MODIFIED="1518487921058" TEXT="Brauche Command-Handler" VSHIFT="11">
<icon BUILTIN="button_ok"/>
<node CREATED="1483755317105" ID="ID_775818551" MODIFIED="1518487921058" TEXT="ist ein Visitor"/>
<node CREATED="1483755320136" ID="ID_1343109260" MODIFIED="1518487921058" TEXT="Knackpunkt: Command-ID">
<node CREATED="1483755320136" FOLDED="true" ID="ID_1343109260" MODIFIED="1538840288235" TEXT="Knackpunkt: Command-ID">
<node CREATED="1483755331671" ID="ID_1913103415" MODIFIED="1518487921058" TEXT="wird im Visitor gebraucht">
<node CREATED="1483909964935" ID="ID_991182613" MODIFIED="1518487921058">
<richcontent TYPE="NODE"><html>
@ -4868,7 +4905,7 @@
<node CREATED="1483755360196" ID="ID_514688462" MODIFIED="1518487921058" TEXT="Nachrichten kommen ohne bestimmte Ordnung an"/>
</node>
</node>
<node CREATED="1483910254385" HGAP="88" ID="ID_267402281" MODIFIED="1518487921058" TEXT="Command-Instanz-Management" VSHIFT="-8">
<node CREATED="1483910254385" FOLDED="true" HGAP="88" ID="ID_267402281" MODIFIED="1538840283620" TEXT="Command-Instanz-Management" VSHIFT="-8">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1483910266799" ID="ID_86909318" MODIFIED="1518487921058" TEXT="wie funktioniert&apos;s?">
<icon BUILTIN="help"/>
@ -4905,7 +4942,7 @@
<node CREATED="1483921070115" ID="ID_398046799" MODIFIED="1518487921058" TEXT="Prototyp-Service"/>
<node CREATED="1483921132114" ID="ID_1652398711" MODIFIED="1518487921058" TEXT="liefert dekorierte Command-ID"/>
<node CREATED="1483921149368" ID="ID_1028150245" MODIFIED="1518487921058" TEXT="im GUI nur noch Command-IDs"/>
<node CREATED="1483924872930" ID="ID_242219866" MODIFIED="1533303593408">
<node CREATED="1483924872930" ID="ID_242219866" MODIFIED="1538838665321">
<richcontent TYPE="NODE"><html>
<head>
@ -4933,7 +4970,7 @@
</node>
</node>
</node>
<node CREATED="1483755390640" ID="ID_1882657994" MODIFIED="1518487921058" TEXT="Vorlage">
<node CREATED="1483755390640" HGAP="66" ID="ID_1882657994" MODIFIED="1538840301236" TEXT="Vorlage" VSHIFT="-1">
<icon BUILTIN="info"/>
<node CREATED="1483755399334" ID="ID_582834462" MODIFIED="1518487921058" TEXT="AbstractTangible_test">
<node CREATED="1483755406254" ID="ID_1800773105" MODIFIED="1518487921058" TEXT="hat inline-Visitor"/>
@ -4970,7 +5007,7 @@
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node COLOR="#338800" CREATED="1483927552823" HGAP="-105" ID="ID_458362835" MODIFIED="1518487921058" TEXT="Unit-Test" VSHIFT="12">
<node COLOR="#338800" CREATED="1483927552823" HGAP="-160" ID="ID_458362835" MODIFIED="1538840308219" TEXT="Unit-Test" VSHIFT="24">
<icon BUILTIN="button_ok"/>
<node CREATED="1484294389310" ID="ID_100306048" MODIFIED="1518487921058" TEXT="direkter Aufruf der Facade">
<icon BUILTIN="button_ok"/>
@ -5000,7 +5037,7 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1482464658193" HGAP="-14" ID="ID_726798260" MODIFIED="1518487921059" TEXT="Ausgestaltung" VSHIFT="29">
<node CREATED="1482464658193" FOLDED="true" HGAP="-14" ID="ID_726798260" MODIFIED="1538840330479" TEXT="Ausgestaltung" VSHIFT="29">
<icon BUILTIN="button_ok"/>
<node CREATED="1482465840843" ID="ID_818984499" MODIFIED="1518487921059" TEXT="Entwurf">
<icon BUILTIN="stop-sign"/>
@ -5039,7 +5076,7 @@
<node CREATED="1484377535829" ID="ID_488242691" MODIFIED="1518487921059" TEXT="Verwerfen von Commands"/>
<node CREATED="1484377546779" ID="ID_1097356179" MODIFIED="1518487921059" TEXT="Command-ID - Typ"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1482465854513" HGAP="26" ID="ID_1477532018" MODIFIED="1518487921059" TEXT="Widerspruch zu Tangible " VSHIFT="12">
<node COLOR="#435e98" CREATED="1482465854513" HGAP="26" ID="ID_1477532018" MODIFIED="1538840324244" TEXT="Widerspruch zu Tangible " VSHIFT="12">
<icon BUILTIN="broken-line"/>
<node CREATED="1482465965660" ID="ID_1945056449" MODIFIED="1518487921059" TEXT="Tangible::prepareCommand"/>
<node CREATED="1482466012484" ID="ID_283758092" MODIFIED="1518487921059" TEXT="verwendet InvocationTrail">
@ -5124,7 +5161,8 @@
</node>
</node>
</node>
<node CREATED="1481320870369" HGAP="17" ID="ID_454465129" MODIFIED="1518487921059" TEXT="Rolle des &quot;Model&quot; kl&#xe4;ren" VSHIFT="20">
<node CREATED="1481320870369" HGAP="17" ID="ID_454465129" MODIFIED="1538840353947" TEXT="Rolle des &quot;Model&quot; kl&#xe4;ren" VSHIFT="20">
<icon BUILTIN="forward"/>
<node CREATED="1484882430390" HGAP="56" ID="ID_836665320" MODIFIED="1518487921059" TEXT="Diff-Nachrichten" VSHIFT="-23">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1484882437421" ID="ID_1948154354" MODIFIED="1518487921059" TEXT="#1066 concept to pass diff messages">
<icon BUILTIN="flag-yellow"/>
@ -5138,6 +5176,10 @@
<node CREATED="1484882506156" ID="ID_1297602514" MODIFIED="1518487921059" TEXT="Callback aus dem Event-Thread"/>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1538840339858" ID="ID_304902509" MODIFIED="1538840347494" TEXT="es gibt kein Model im klassischen Sinn">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1477784829157" ID="ID_1998357180" MODIFIED="1518487921059" TEXT="Icon-Laden modernisieren"/>
@ -5674,9 +5716,9 @@
<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="1518487921060" TEXT="komplett?" VSHIFT="39">
<icon BUILTIN="help"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_159568066" MODIFIED="1534511296643" TEXT="alle noch offenen Fenster verbergen">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1493762490205" ID="ID_159568066" MODIFIED="1538778675278" 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"/>
<icon BUILTIN="bell"/>
<node CREATED="1495234856782" ID="ID_1605922951" MODIFIED="1518487921060" TEXT="machen wir bisher nicht"/>
<node CREATED="1495234865717" ID="ID_1261122199" MODIFIED="1518487921060" TEXT="ist das notwendig?"/>
<node CREATED="1538588192126" ID="ID_1032145387" MODIFIED="1538588303275" TEXT="wohl nicht">
@ -18464,9 +18506,10 @@
</node>
<node CREATED="1504200743610" ID="ID_1973994759" MODIFIED="1518487921083" TEXT="vorl&#xe4;ufig....">
<node CREATED="1504200750905" ID="ID_1728645080" MODIFIED="1518487921083" TEXT="gibt es noch eine ZombieTimeline"/>
<node CREATED="1504200758920" ID="ID_19179662" MODIFIED="1534850802878" TEXT="hab ich schon mal eine InfoBox dazugebaut">
<node COLOR="#338800" CREATED="1504200758920" FOLDED="true" ID="ID_19179662" MODIFIED="1538838760854" 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="1518487921083" TEXT="...f&#xfc;r #1099 DemoGuiRoundtrip">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1504200878312" ID="ID_1934842950" MODIFIED="1538838347571" TEXT="...f&#xfc;r #1099 DemoGuiRoundtrip">
<richcontent TYPE="NOTE"><html>
<head>
@ -18479,62 +18522,43 @@
</html></richcontent>
<icon BUILTIN="info"/>
</node>
<node CREATED="1504200907356" ID="ID_1939871955" MODIFIED="1518487921083" TEXT="neues Dock">
<node CREATED="1504200907356" ID="ID_1939871955" MODIFIED="1538838450291" TEXT="neues Dock">
<icon BUILTIN="button_ok"/>
<node CREATED="1504201024836" ID="ID_541911572" MODIFIED="1518487921083" TEXT="brauche Icon"/>
<node CREATED="1504201506172" ID="ID_739793394" MODIFIED="1518487921083" TEXT="nimm vorerst Asset-Icon">
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
<icon BUILTIN="yes"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504201029004" ID="ID_1898190659" MODIFIED="1518487921083" TEXT="als SVG machen...">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1518487921083" TEXT="Anleitung">
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1518487921083" TEXT="SVG in data/icons/svg"/>
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1518487921083" TEXT="Dokument-Gr&#xf6;e anscheinend egal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wird zwar vom Skript ausgelesen,
</p>
<p>
aber nicht weiterverwendet.
</p>
<p>
Die Icon-Gr&#246;&#223;en ergeben sich aus den Boxes auf 'plate'
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1518487921083" TEXT="braucht &apos;artwork:&apos;-Layer"/>
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1518487921083" TEXT="braucht Sub-Layer &apos;plate&apos;">
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1518487921083" TEXT="dort bounding-boxes"/>
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1518487921084" TEXT="deren Gr&#xf6;&#xdf;e in PX ist die Icon-Gr&#xf6;&#xdf;e"/>
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1518487921084" TEXT="brauche 16, 22, 32"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1504201029004" ID="ID_1898190659" MODIFIED="1538838744207" TEXT="als SVG machen...">
<arrowlink COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-459;-144;" ID="Arrow_ID_421953450" STARTARROW="None" STARTINCLINATION="-861;94;"/>
<icon BUILTIN="hourglass"/>
</node>
</node>
</node>
</node>
<node CREATED="1534523269133" ID="ID_403796438" MODIFIED="1534523275983" TEXT="interne Struktur">
<node CREATED="1534523277547" ID="ID_1662503806" MODIFIED="1534523282527" TEXT="FelerLog-Anzeige">
<node COLOR="#338800" CREATED="1534523269133" ID="ID_403796438" MODIFIED="1538838457405" TEXT="interne Struktur">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523277547" ID="ID_1662503806" MODIFIED="1538838460701" TEXT="FelerLog-Anzeige">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1534523283443" ID="ID_329149746" MODIFIED="1534524676311" TEXT="erst bei Bedarf belegen">
<arrowlink COLOR="#7ca8bc" DESTINATION="ID_1941760302" ENDARROW="Default" ENDINCLINATION="-1967;5936;" ID="Arrow_ID_192358692" STARTARROW="None" STARTINCLINATION="670;0;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534523296448" ID="ID_734584528" MODIFIED="1534523306232" TEXT="zuklappbar">
<icon BUILTIN="hourglass"/>
<node COLOR="#338800" CREATED="1534523296448" ID="ID_734584528" MODIFIED="1538838422608" TEXT="zuklappbar">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534523292305" ID="ID_1595061322" MODIFIED="1534523310503" TEXT="Platzhalter">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1534523292305" ID="ID_1595061322" MODIFIED="1538838426589" TEXT="Platzhalter">
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538838427984" ID="ID_1386470288" MODIFIED="1538838432888" TEXT="Buttonts">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1534850747192" ID="ID_109802175" MODIFIED="1534850758654" TEXT="vorl&#xe4;ufig per Grid implementieren">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1534850747192" ID="ID_109802175" MODIFIED="1538838438202" TEXT="vorl&#xe4;ufig per Grid implementieren">
<icon BUILTIN="button_cancel"/>
</node>
</node>
<node CREATED="1504200915915" ID="ID_335470074" MODIFIED="1534850514830" TEXT="sp&#xe4;ter wird das ein nichtmodaler Parameter-Editor">
<node CREATED="1504200915915" ID="ID_335470074" MODIFIED="1538838470692" TEXT="sp&#xe4;ter wird das ein nichtmodaler Parameter-Editor">
<arrowlink DESTINATION="ID_1405249171" ENDARROW="Default" ENDINCLINATION="222;-82;" ID="Arrow_ID_1395046288" STARTARROW="None" STARTINCLINATION="644;0;"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
@ -18794,9 +18818,9 @@
</node>
</node>
<node CREATED="1477522287316" ID="ID_1942021610" MODIFIED="1518487921084" TEXT="TimelinePanel"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1502390603674" ID="ID_1926586811" MODIFIED="1518487921084" TEXT="#1102 : build a message display box in the UI">
<node COLOR="#338800" CREATED="1502390603674" ID="ID_1926586811" MODIFIED="1538839841064" 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"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1504833474521" HGAP="39" ID="ID_1439141983" MODIFIED="1518487921084" TEXT="Struktur" VSHIFT="10">
@ -18937,9 +18961,12 @@
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1533401271538" ID="ID_613065826" MODIFIED="1538263724168" TEXT="erst mal nur eine Nachricht als UI-Notification">
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1533402513829" ID="ID_1456159316" MODIFIED="1535892210892" TEXT="#1099 DemoGuiRoundtrip">
<node COLOR="#338800" CREATED="1533402513829" ID="ID_1456159316" MODIFIED="1538839303541" TEXT="#1099 DemoGuiRoundtrip">
<arrowlink COLOR="#f0eca5" DESTINATION="ID_1007296291" ENDARROW="Default" ENDINCLINATION="881;2029;" ID="Arrow_ID_1736540527" STARTARROW="None" STARTINCLINATION="418;-44;"/>
<icon BUILTIN="flag-pink"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1538839326830" ID="ID_1942975878" MODIFIED="1538839342189" TEXT="jetzt retul&#xe4;r &#xfc;ber die Notification facade">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1533401303142" ID="ID_1338326263" MODIFIED="1533401327708" TEXT="hart gecodeten initialen Diff hochschicken">
@ -26899,7 +26926,7 @@
<node CREATED="1485548878292" ID="ID_49934573" MODIFIED="1518487921090" TEXT="Broadcast"/>
</node>
</node>
<node CREATED="1453545812389" HGAP="43" ID="ID_202253849" MODIFIED="1518487921090" TEXT="Core-Services" VSHIFT="2">
<node COLOR="#435e98" CREATED="1453545812389" HGAP="43" ID="ID_202253849" MODIFIED="1538839405827" TEXT="Core-Services" VSHIFT="2">
<richcontent TYPE="NOTE"><html>
<head>
@ -26915,7 +26942,7 @@
</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"/>
<icon BUILTIN="go"/>
<node CREATED="1453545875627" ID="ID_1411740156" MODIFIED="1518487921090" TEXT="Definition &#xbb;Zentral-Dienste&#xab;">
<richcontent TYPE="NOTE"><html>
<head>
@ -26934,7 +26961,7 @@
</body>
</html></richcontent>
</node>
<node CREATED="1453545968166" ID="ID_399884859" MODIFIED="1518487921090" TEXT="Command-Handler">
<node CREATED="1453545968166" FOLDED="true" ID="ID_399884859" MODIFIED="1538839448111" TEXT="Command-Handler">
<icon BUILTIN="button_ok"/>
<node CREATED="1453546129537" ID="ID_1926242869" MODIFIED="1518487921090" TEXT="empf&#xe4;ngt &quot;act&quot;-Nachrichten">
<icon BUILTIN="button_ok"/>
@ -26946,7 +26973,7 @@
<node CREATED="1453546417098" ID="ID_676713402" MODIFIED="1518487921090" TEXT="DOM vs. compiletime typing">
<icon BUILTIN="info"/>
</node>
<node CREATED="1453546436455" ID="ID_129001401" MODIFIED="1525124215243" TEXT="double-dispatch">
<node CREATED="1453546436455" FOLDED="true" ID="ID_129001401" MODIFIED="1538839439898" TEXT="double-dispatch">
<icon BUILTIN="idea"/>
<node CREATED="1453546450317" ID="ID_1899026394" MODIFIED="1512926192213" TEXT="Variant-Visitor">
<icon BUILTIN="button_ok"/>
@ -27040,7 +27067,7 @@
<node CREATED="1492205732389" ID="ID_1080697951" MODIFIED="1518487921090" TEXT="wir k&#xf6;nnen stets gleich triggern"/>
</node>
<node CREATED="1492205741483" ID="ID_1132272888" MODIFIED="1518487921090" TEXT="Command wird sofort nach dem Binden getriggert"/>
<node COLOR="#338800" CREATED="1483925280108" HGAP="30" ID="ID_1479669922" MODIFIED="1533303593408" TEXT="Protokoll-Erweiterung" VSHIFT="8">
<node COLOR="#338800" CREATED="1483925280108" HGAP="30" ID="ID_1479669922" MODIFIED="1538838665321" TEXT="Protokoll-Erweiterung" VSHIFT="8">
<arrowlink COLOR="#e9ba2d" DESTINATION="ID_242219866" ENDARROW="Default" ENDINCLINATION="-944;1604;" ID="Arrow_ID_1617518648" STARTARROW="None" STARTINCLINATION="3617;-1097;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1483925298713" ID="ID_347702585" MODIFIED="1518487921090" TEXT="Command-Prototyp forken"/>
@ -27075,7 +27102,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1483927678318" HGAP="25" ID="ID_1324099152" MODIFIED="1538263681166" TEXT="Notification-Facade &#xf6;ffnen" VSHIFT="4">
<node COLOR="#338800" CREATED="1483927678318" FOLDED="true" HGAP="25" ID="ID_1324099152" MODIFIED="1538839422411" TEXT="Notification-Facade &#xf6;ffnen" VSHIFT="4">
<arrowlink COLOR="#51517b" DESTINATION="ID_379585622" ENDARROW="Default" ENDINCLINATION="-476;439;" ID="Arrow_ID_1616528570" STARTARROW="Default" STARTINCLINATION="-541;0;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1483927692988" ID="ID_354422174" MODIFIED="1538263617013" TEXT="Lebenszyklus-Fragen verifizieren">
@ -27092,7 +27119,7 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node COLOR="#338800" CREATED="1501778430101" ID="ID_489078622" MODIFIED="1531588554277" TEXT="#1098 hand-over to UI thread">
<node COLOR="#338800" CREATED="1501778430101" FOLDED="true" ID="ID_489078622" MODIFIED="1538839420819" TEXT="#1098 hand-over to UI thread">
<arrowlink COLOR="#7caaa8" DESTINATION="ID_1023343635" ENDARROW="Default" ENDINCLINATION="2513;3565;" ID="Arrow_ID_1832047032" STARTARROW="Default" STARTINCLINATION="3463;134;"/>
<linktarget COLOR="#6c5f80" DESTINATION="ID_489078622" ENDARROW="Default" ENDINCLINATION="725;-39;" ID="Arrow_ID_485145709" SOURCE="ID_31825421" STARTARROW="None" STARTINCLINATION="1538;-37;"/>
<icon BUILTIN="button_ok"/>
@ -27106,7 +27133,7 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1453546083296" ID="ID_1154674875" MODIFIED="1518487921091" TEXT="Presentation-State-Manager">
<node CREATED="1453546083296" FOLDED="true" ID="ID_1154674875" MODIFIED="1538839418972" TEXT="Presentation-State-Manager">
<icon BUILTIN="button_ok"/>
<node CREATED="1455290707481" ID="ID_551153117" MODIFIED="1518487921091">
<richcontent TYPE="NODE"><html>
@ -40547,6 +40574,38 @@
</node>
</node>
</node>
<node CREATED="1538838573613" ID="ID_1610361741" MODIFIED="1538838575776" TEXT="Graphic">
<node CREATED="1538838576956" ID="ID_1174319279" MODIFIED="1538838580256" TEXT="SVG-Icons">
<node CREATED="1504201038435" ID="ID_1569870904" MODIFIED="1538838744207" TEXT="Anleitung">
<linktarget COLOR="#8697d2" DESTINATION="ID_1569870904" ENDARROW="Default" ENDINCLINATION="-459;-144;" ID="Arrow_ID_421953450" SOURCE="ID_1898190659" STARTARROW="None" STARTINCLINATION="-861;94;"/>
<node CREATED="1504201044122" ID="ID_612955500" MODIFIED="1518487921083" TEXT="SVG in data/icons/svg"/>
<node CREATED="1504201192870" ID="ID_823572488" MODIFIED="1538838400312" TEXT="Dokument-Gr&#xf6;&#xdf;e anscheinend egal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...wird zwar vom Skript ausgelesen,
</p>
<p>
aber nicht weiterverwendet.
</p>
<p>
Die Icon-Gr&#246;&#223;en ergeben sich aus den Boxes auf 'plate'
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1504201055449" ID="ID_1652674635" MODIFIED="1518487921083" TEXT="braucht &apos;artwork:&apos;-Layer"/>
<node CREATED="1504201074566" ID="ID_1803123712" MODIFIED="1518487921083" TEXT="braucht Sub-Layer &apos;plate&apos;">
<node CREATED="1504201085348" ID="ID_971103885" MODIFIED="1518487921083" TEXT="dort bounding-boxes"/>
<node CREATED="1504201089491" ID="ID_1411697919" MODIFIED="1518487921084" TEXT="deren Gr&#xf6;&#xdf;e in PX ist die Icon-Gr&#xf6;&#xdf;e"/>
<node CREATED="1504201101314" ID="ID_813225733" MODIFIED="1518487921084" TEXT="brauche 16, 22, 32"/>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1437693678626" HGAP="117" ID="ID_1536988357" MODIFIED="1522933364911" POSITION="left" TEXT="Doku" VSHIFT="-47">