UI-top-level: establish top-level model and control structure
This commit is contained in:
parent
f1f7b06d90
commit
cddc5afe41
6 changed files with 279 additions and 16 deletions
|
|
@ -87,8 +87,8 @@ namespace ctrl {
|
|||
UiBus& uiBus_;
|
||||
UiManager& uiManager_;
|
||||
|
||||
InteractionDirector director_;
|
||||
WindowList windowList_;
|
||||
InteractionDirector director_;
|
||||
|
||||
|
||||
public:
|
||||
|
|
@ -98,8 +98,8 @@ namespace ctrl {
|
|||
GlobalCtx (UiBus& bus, UiManager& manager)
|
||||
: uiBus_{bus}
|
||||
, uiManager_{manager}
|
||||
, director_{*this}
|
||||
, windowList_{*this}
|
||||
, director_{*this}
|
||||
{ }
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
//#include <boost/noncopyable.hpp>
|
||||
//#include <cairomm/cairomm.h>
|
||||
//#include <string>
|
||||
#include <vector>
|
||||
#include <memory>
|
||||
|
||||
|
||||
|
|
@ -68,13 +69,23 @@ namespace gui {
|
|||
|
||||
namespace ctrl {
|
||||
class GlobalCtx;
|
||||
class UiState;
|
||||
}
|
||||
namespace setting {
|
||||
class AssetController;
|
||||
}
|
||||
namespace timleine {
|
||||
class TimelineController;
|
||||
}
|
||||
namespace interact {
|
||||
|
||||
//using std::string;
|
||||
using std::unique_ptr;
|
||||
|
||||
//class Actions;
|
||||
//class WindowList;
|
||||
class SpotLocator;
|
||||
class Navigator;
|
||||
class FocusTracker;
|
||||
|
||||
|
||||
|
||||
|
|
@ -85,10 +96,21 @@ namespace interact {
|
|||
class InteractionDirector
|
||||
: public model::Controller
|
||||
{
|
||||
|
||||
ctrl::GlobalCtx& globalCtx_;
|
||||
|
||||
////TODO: what is the model equivalent represented here???
|
||||
// == global Services ==
|
||||
unique_ptr<SpotLocator> spotLocator_;
|
||||
unique_ptr<Navigator> navigator_;
|
||||
unique_ptr<FocusTracker> tracker_;
|
||||
|
||||
// == Model globals ==
|
||||
using Timelines = std::vector<unique_ptr<timeline::TimelineController>>;
|
||||
using Assets = unique_ptr<setting::AssetController>;
|
||||
using State = unique_ptr<ctrl::UiState>;
|
||||
|
||||
State uiState_;
|
||||
Assets assets_;
|
||||
Timelines timelines_;
|
||||
|
||||
/** set up a binding to allow some top-level UI state
|
||||
* to be treated as part of the session model
|
||||
|
|
|
|||
62
src/gui/setting/asset-controller.cpp
Normal file
62
src/gui/setting/asset-controller.cpp
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
AssetController - asset management UI top level
|
||||
|
||||
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 asset-controller.cpp
|
||||
** Implementation of the asset management UI top level.
|
||||
**
|
||||
** @todo WIP 2/2017 early draft / foundations of "interaction control"
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
//#include "gui/gtk-lumiera.hpp"
|
||||
#include "gui/setting/asset-controller.hpp"
|
||||
//#include "gui/ctrl/global-ctx.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//using util::cStr;
|
||||
//using util::isnil;
|
||||
|
||||
|
||||
namespace gui {
|
||||
namespace setting {
|
||||
|
||||
|
||||
|
||||
// dtors via smart-ptr invoked from here...
|
||||
AssetController::~AssetController()
|
||||
{ }
|
||||
|
||||
|
||||
/**
|
||||
* Define a new coherent location within _"interface space"_ for future interaction.
|
||||
*/
|
||||
AssetController::AssetController()
|
||||
{ }
|
||||
|
||||
|
||||
/** */
|
||||
|
||||
|
||||
|
||||
}}// namespace gui::setting
|
||||
91
src/gui/setting/asset-controller.hpp
Normal file
91
src/gui/setting/asset-controller.hpp
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
ASSET-CONTROLLER.hpp - asset management UI top level
|
||||
|
||||
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 asset-controller.hpp
|
||||
** User interface for asset management.
|
||||
** Aside of the media objects to be edited, the session holds a section dedicated
|
||||
** to the bookkeeping aspects, where all of the assets relevant to the project are
|
||||
** listed, catalogued and tracked. There is a corresponding section in the UI to
|
||||
** offer this bookkeeping view -- which includes the tremendously important hierarchy
|
||||
** of media and clip bins, where all of the material is organised and prepared for
|
||||
** editing. Another topic subsumed under _asset management,_ yet presented separately
|
||||
** is anything related to settings and project setup.
|
||||
**
|
||||
** As with any part of the UI, there is some correspondence to session model components
|
||||
** and a connection via UI-Bus and diff framework. We get one top-level UI element, the
|
||||
** AssetController, to correspond to the asset::AssetManager in the session. The
|
||||
** basically fixed structure of asset categories and subsections is reflected in
|
||||
** likewise fixed access operations in this controller, allowing to enter a
|
||||
** dedicated UI for each of the asset subsections...
|
||||
**
|
||||
** @todo WIP 2/2017 early draft / a new UI backbone
|
||||
**
|
||||
** @see proc::mobject::Session
|
||||
** @see proc::asset::Asset
|
||||
** @see timeline-controller.hpp
|
||||
** @see interaction-director.hpp
|
||||
** @see ui-bus.hpp
|
||||
*/
|
||||
|
||||
|
||||
#ifndef GUI_SETTING_ASSET_CONTROLLER_H
|
||||
#define GUI_SETTING_ASSET_CONTROLLER_H
|
||||
|
||||
#include "gui/gtk-base.hpp"
|
||||
|
||||
#include <boost/noncopyable.hpp>
|
||||
//#include <string>
|
||||
//#include <memory>
|
||||
|
||||
|
||||
namespace gui {
|
||||
namespace setting {
|
||||
|
||||
// using std::unique_ptr;
|
||||
// using std::string;
|
||||
|
||||
// class GlobalCtx;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Top level controller for the asset managment section in the UI.
|
||||
*
|
||||
* @todo initial draft as of 2/2017 -- actual implementation has to be filled in
|
||||
*/
|
||||
class AssetController
|
||||
: boost::noncopyable
|
||||
{
|
||||
|
||||
public:
|
||||
AssetController();
|
||||
~AssetController();
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
}}// namespace gui::setting
|
||||
#endif /*GUI_SETTING_ASSET_CONTROLLER_H*/
|
||||
|
|
@ -2717,7 +2717,7 @@ More specifically, the integration is based on ''messaging''. To start with, the
|
|||
----
|
||||
In a preliminary attempt to establish an integration between the GUI and the lower layers, in 1/2009 we created an PlayerDummy, which "pulls" dummy frames from the (not yet existing) engine and displays them within an XV viewer widget. This highlighted the problems we're about to encounter and made us think about the more radically decoupled approach we followed thereafter...</pre>
|
||||
</div>
|
||||
<div title="GuiModel" creator="Ichthyostega" modifier="Ichthyostega" created="201410170142" modified="201511202206" tags="GuiIntegration design draft" changecount="11">
|
||||
<div title="GuiModel" creator="Ichthyostega" modifier="Ichthyostega" created="201410170142" modified="201702190021" tags="GuiIntegration design draft" changecount="13">
|
||||
<pre>Building a layered architecture is a challenge, since the lower layer //really// needs to be self-contained, while prepared for usage by the higher layer.
|
||||
A major fraction of all desktop applications is written in a way where operational logic is built around the invocation from UI events -- what should be a shell turns into a backbone. One possible way to escape from this common anti pattern is to introduce a mediating entity, to translate between two partially incompatible demands and concerns: Sure, the "tangible stuff" is what matters, but you can not build any significant piece of technology if all you want is to "serve" the user.
|
||||
|
||||
|
|
@ -2727,6 +2727,9 @@ The GUI model is largely comprised of immutable ID elements, which can be treate
|
|||
&rarr; [[Building blocks of the GUI model|GuiModelElements]]
|
||||
&rarr; [[GUI update mechanics|GuiModelUpdate]]
|
||||
|
||||
!{{red{WARNING 2/2017}}} more questionable than ever
|
||||
The whole Idea to have a "UI model" appears more questionable than ever. It leads to tight coupling with the session and a lot of thread synchronisation headaches, without any clear benefit -- beyond just being the obvious no-brainer solution. During the last months, step by step, several presentation related structures emerged, which //indeed are structured to parallel the outline of the session.// But those structures are widgets and controllers, and it might well be that we do not need a model, beyond the data already present within the widget implementation. Rather it seems we'll get a nested structure of //presenters,// which are linked to the session with the help of the UI-Bus and the [[diff framework|TreeDiffModel]].
|
||||
|
||||
!synchronisation guarantees
|
||||
We acknowledge that the gui model is typically used from within the GUI event dispatch thread. This is //not// the thread where any session state is mutated. Thus it is the responsibility of this proxying model within the GUI to ensure that the retrieved structure is a coherent snapshot of the session state. Especially the {{{gui::model::SessionFacade}}} ensures that there was a read barrier between the state retrieval and any preceding mutation command. Actually, this is implemented down in Proc-Layer, with the help of the ProcDispatcher.
|
||||
|
||||
|
|
@ -9191,7 +9194,7 @@ The UI-Bus has a star shaped topology, with a central "bus master" hub
|
|||
:direct a MutationMessage towards the designated UI-Element, causing the latter to build a TreeMutator to receive the embedded [[diff-sequence|TreeDiffModel]]
|
||||
</pre>
|
||||
</div>
|
||||
<div title="UI-Element" creator="Ichthyostega" modifier="Ichthyostega" created="201511210307" modified="201610011935" tags="GuiPattern design draft decision" changecount="50">
|
||||
<div title="UI-Element" creator="Ichthyostega" modifier="Ichthyostega" created="201511210307" modified="201702190012" tags="GuiPattern design draft decision" changecount="51">
|
||||
<pre>While our UI widgets are implemented the standard way as proposed by [[GTKmm|http://www.gtkmm.org/en/documentation.html]], some key elements -- which are especially relevant for the anatomy and mechanics of the interface at a whole -- are made to conform to a common interface and behaviour protocol. {{red{WIP 11/15 work out gradually what this protocol is all about}}}. #975
|
||||
As a starting point, we know
|
||||
* there is a backbone structure known as the UI-Bus
|
||||
|
|
@ -9262,7 +9265,7 @@ A command's {{{InvocationTrail}}} is in fact just some tag object, wrapping the
|
|||
It is clear by now (9/2016) how shape and content changes are to be represented as diff message. Moreover, we have an implementation framework to build the concrete TreeMutator, which allows to target diff messages towards a (otherwise undisclosed) opaque implementation data structure.
|
||||
!!!questions
|
||||
* how to integrate "diff calls" into UI-Bus and {{{Tangible}}}
|
||||
* how to ensure, diff processing happens within the event thread
|
||||
* how to ensure that diff processing happens within the event thread
|
||||
* what is the exact relation to the GuiModel -- this remained nebulous up to now
|
||||
|
||||
!!!Diff messages
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@
|
|||
<node CREATED="1481320666196" ID="ID_1580591981" MODIFIED="1481320675247" TEXT="plus zugehörige Diagnostik"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1477784793993" ID="ID_1868522177" MODIFIED="1477784810257" TEXT="Umbau">
|
||||
<node CREATED="1477784793993" ID="ID_1868522177" MODIFIED="1487464677579" TEXT="Umbau">
|
||||
<linktarget COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" SOURCE="ID_707273464" STARTARROW="None" STARTINCLINATION="1925;196;"/>
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1477784813895" ID="ID_1343270939" MODIFIED="1483920891840" TEXT="Model durch UI-Bus ersetzen">
|
||||
<linktarget COLOR="#f9b709" DESTINATION="ID_1343270939" ENDARROW="Default" ENDINCLINATION="-30;-35;" ID="Arrow_ID_1867016690" SOURCE="ID_635303062" STARTARROW="None" STARTINCLINATION="-34;-43;"/>
|
||||
|
|
@ -1744,7 +1745,7 @@
|
|||
<icon BUILTIN="messagebox_warning"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1485126457025" ID="ID_1698853761" MODIFIED="1485902874186" TEXT="workspace::UiManger">
|
||||
<node CREATED="1485126457025" ID="ID_1698853761" MODIFIED="1487461187548" TEXT="ctrl::UiManger">
|
||||
<linktarget COLOR="#667b93" DESTINATION="ID_1698853761" ENDARROW="Default" ENDINCLINATION="19;-86;" ID="Arrow_ID_1952755524" SOURCE="ID_40172420" STARTARROW="None" STARTINCLINATION="-290;0;"/>
|
||||
<linktarget COLOR="#75d3f9" DESTINATION="ID_1698853761" ENDARROW="Default" ENDINCLINATION="52;178;" ID="Arrow_ID_1969801735" SOURCE="ID_1440190469" STARTARROW="None" STARTINCLINATION="-140;-47;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -2091,7 +2092,7 @@
|
|||
<node CREATED="1485454263876" ID="ID_543704434" MODIFIED="1485454270615" TEXT="globale Keybindings"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486763185746" HGAP="33" ID="ID_362749694" MODIFIED="1487269879539" TEXT="workspace::InteractionDirector" VSHIFT="21">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1486763185746" HGAP="33" ID="ID_362749694" MODIFIED="1487461196858" TEXT="InteractionDirector" VSHIFT="21">
|
||||
<linktarget COLOR="#683c5b" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-394;0;" ID="Arrow_ID_1979576517" SOURCE="ID_113005643" STARTARROW="None" STARTINCLINATION="-24;-159;"/>
|
||||
<linktarget COLOR="#1b3863" DESTINATION="ID_362749694" ENDARROW="Default" ENDINCLINATION="-518;1012;" ID="Arrow_ID_959577029" SOURCE="ID_735655054" STARTARROW="Default" STARTINCLINATION="-376;-568;"/>
|
||||
<icon BUILTIN="pencil"/>
|
||||
|
|
@ -2110,7 +2111,6 @@
|
|||
<node CREATED="1486763385591" ID="ID_6651258" MODIFIED="1486763391202" TEXT="Zugang zum Asset-Management"/>
|
||||
<node CREATED="1486763391862" ID="ID_1568245541" MODIFIED="1486763397977" TEXT="Zugang zur Konfiguration"/>
|
||||
<node CREATED="1486763408780" ID="ID_520762274" MODIFIED="1486763417950" TEXT="Zugang zum persistenten Interface-State"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1486768073223" HGAP="38" ID="ID_1457876217" MODIFIED="1486768136745" TEXT="konkret" VSHIFT="16">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
<node CREATED="1486768080502" ID="ID_1759740464" MODIFIED="1487039233982" TEXT="Binde-Kontext für globale Aktionen"/>
|
||||
|
|
@ -2131,8 +2131,7 @@
|
|||
müssen wir sofort jetzt implementieren
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208182655" ID="ID_1220225827" MODIFIED="1487214021907">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
|
|
@ -2144,8 +2143,7 @@
|
|||
brauche ein <i>aktuelles</i> Modell-Element
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487208211131" ID="ID_31351462" MODIFIED="1487214024007" TEXT="...und ein Konzept, wie man das gewinnen kann">
|
||||
|
|
@ -2200,6 +2198,31 @@
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487461242609" ID="ID_164538059" MODIFIED="1487461245308" TEXT="Struktur">
|
||||
<node CREATED="1487461304560" ID="ID_349728972" MODIFIED="1487461306203" TEXT="betreibt">
|
||||
<node CREATED="1487270206369" ID="ID_1888334597" MODIFIED="1487461321289" TEXT="SpotLocator"/>
|
||||
<node CREATED="1487273437019" ID="ID_1653934212" MODIFIED="1487461312002" TEXT="Navigator"/>
|
||||
<node CREATED="1487275297855" ID="ID_898365328" MODIFIED="1487461316314" TEXT="FocusTracker"/>
|
||||
</node>
|
||||
<node CREATED="1487461353681" ID="ID_1117222917" MODIFIED="1487461360836" TEXT="Modell">
|
||||
<node CREATED="1487461361688" ID="ID_1787396394" MODIFIED="1487461364131" TEXT="Attrib">
|
||||
<node CREATED="1487461413145" ID="ID_816848691" MODIFIED="1487461471666" TEXT="ctrl::UiState">
|
||||
<linktarget COLOR="#a9b4c1" DESTINATION="ID_816848691" ENDARROW="Default" ENDINCLINATION="111;0;" ID="Arrow_ID_792016162" SOURCE="ID_1032977850" STARTARROW="None" STARTINCLINATION="111;0;"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487461436006" ID="ID_1721976078" MODIFIED="1487461438785" TEXT="Kooperation">
|
||||
<node CREATED="1487461440509" ID="ID_1663368282" MODIFIED="1487461443809" TEXT="CoreService">
|
||||
<node CREATED="1487461456739" ID="ID_1032977850" MODIFIED="1487461471666" TEXT="delegiert UiState">
|
||||
<arrowlink DESTINATION="ID_816848691" ENDARROW="Default" ENDINCLINATION="111;0;" ID="Arrow_ID_792016162" STARTARROW="None" STARTINCLINATION="111;0;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487461476736" ID="ID_912393863" MODIFIED="1487461478564" TEXT="Actions">
|
||||
<node CREATED="1487461484935" ID="ID_951148221" MODIFIED="1487461491098" TEXT="Kontext für globale Aktionen"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1485126466520" FOLDED="true" ID="ID_717310004" MODIFIED="1486763253254" TEXT="WindowManager" VSHIFT="34">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1485457325724" ID="ID_1954589768" MODIFIED="1485457325724" TEXT="nur für die Hauptfenster zuständig"/>
|
||||
|
|
@ -2653,6 +2676,60 @@
|
|||
<node CREATED="1479688633483" ID="ID_1301490505" MODIFIED="1479688646781" TEXT="Elemente in diesem halten einen display-context"/>
|
||||
<node CREATED="1479688653913" ID="ID_1435784278" MODIFIED="1479688666394" TEXT="dieser wiederum muß für jede Erweiterung konsultiert werden"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487465759930" HGAP="19" ID="ID_923619509" MODIFIED="1487465825454" VSHIFT="26">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<font color="#d71313">Problem</font>: Slave-Timeline
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1487465830224" ID="ID_614775878" MODIFIED="1487465844043" TEXT="mehrere Ansichten für die gleiche Timeline"/>
|
||||
<node CREATED="1487465882513" ID="ID_347013155" MODIFIED="1487465894541" TEXT="Gründe">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1487465847518" ID="ID_1430621359" MODIFIED="1487465854273" TEXT="bewußt verschiedene Ausschnitte"/>
|
||||
<node CREATED="1487465854653" ID="ID_921534930" MODIFIED="1487465863752" TEXT="unbeabsichtigt in verschiedenen Fenstern"/>
|
||||
<node CREATED="1487465866499" ID="ID_354960009" MODIFIED="1487465881613" TEXT="Fokussierte Ansicht einer nested sequence"/>
|
||||
</node>
|
||||
<node CREATED="1487465918884" ID="ID_1775013701" MODIFIED="1487466142303" TEXT="Lösungs-Ansätze">
|
||||
<icon BUILTIN="hourglass"/>
|
||||
<node CREATED="1487465924572" ID="ID_542870958" MODIFIED="1487466038633" TEXT="auf Widget-Ebene doppeln">
|
||||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1487465932554" ID="ID_450673459" MODIFIED="1487465947028" TEXT="greift in die direkte Diff-Mechanik ein"/>
|
||||
<node CREATED="1487465947504" ID="ID_284663745" MODIFIED="1487465959139" TEXT="Timeline-Komponenten sind selber beliebig komplex"/>
|
||||
<node CREATED="1487465960198" ID="ID_1257024935" MODIFIED="1487465974352" TEXT="Annahme war immer, daß Presenter nahe am Widget arbeitet"/>
|
||||
</node>
|
||||
<node CREATED="1487465985315" ID="ID_1891341453" MODIFIED="1487465995742" TEXT="Timeline-Controller-Slaves">
|
||||
<node CREATED="1487465996906" ID="ID_1882876532" MODIFIED="1487465998917" TEXT="machbar"/>
|
||||
<node CREATED="1487465999417" ID="ID_1034026426" MODIFIED="1487466005172" TEXT="typische Clustering-Probleme"/>
|
||||
<node CREATED="1487466005952" ID="ID_465457871" MODIFIED="1487466016123" TEXT="Scheitern in-Memory unwahrscheinlich"/>
|
||||
<node CREATED="1487466021990" ID="ID_212586057" MODIFIED="1487466033369" TEXT="Controller muß aktiv mitwirken"/>
|
||||
</node>
|
||||
<node CREATED="1487466040524" ID="ID_646231524" MODIFIED="1487466053766" TEXT="Timeline-Slave in der Session">
|
||||
<node CREATED="1487466064520" ID="ID_1607482571" MODIFIED="1487466076466" TEXT="macht Doppelung explizit"/>
|
||||
<node CREATED="1487466078743" ID="ID_1134944510" MODIFIED="1487466086321" TEXT="Problem mit den Element-IDs"/>
|
||||
<node CREATED="1487466090917" ID="ID_1611961848" MODIFIED="1487466099832" TEXT="UI -> Session ist unproblematisch"/>
|
||||
<node CREATED="1487466100372" ID="ID_1630288830" MODIFIED="1487466111086" TEXT="Session/Builder muß aufdoppeln">
|
||||
<node CREATED="1487466111930" ID="ID_966355925" MODIFIED="1487466114781" TEXT="Diff-Nachrichten"/>
|
||||
<node CREATED="1487466115154" ID="ID_260455064" MODIFIED="1487466120037" TEXT="Fehler-Markierungen"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1487466966478" ID="ID_479759046" MODIFIED="1487466983900" TEXT="#1083 solution for Timeline slave">
|
||||
<icon BUILTIN="bell"/>
|
||||
<node CREATED="1487466997138" ID="ID_1028434909" MODIFIED="1487467003130" TEXT="auf später vertagt">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
</node>
|
||||
<node CREATED="1487466986523" ID="ID_39632539" MODIFIED="1487466995787" TEXT="zunächst unterbinden">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1479774700668" HGAP="47" ID="ID_1407821684" MODIFIED="1480725485721" TEXT="Mutation" VSHIFT="13">
|
||||
<node CREATED="1479774705839" ID="ID_301222108" MODIFIED="1479774729887" TEXT="Problem">
|
||||
|
|
@ -3774,6 +3851,14 @@
|
|||
<node CREATED="1477523573184" ID="ID_1063091132" MODIFIED="1477523576100" TEXT="pack_end()"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1487464476801" ID="ID_1621360845" MODIFIED="1487464479476" TEXT="Umbau">
|
||||
<node CREATED="1487464480872" ID="ID_830603607" MODIFIED="1487464488651" TEXT="bestehende Strukturen stillegen"/>
|
||||
<node CREATED="1487464489143" ID="ID_1990719718" MODIFIED="1487464495018" TEXT="noch erhalten als Bezugspunkt"/>
|
||||
<node CREATED="1487464495494" ID="ID_1238357229" MODIFIED="1487464504929" TEXT="daneben neue Controller-Backbone hochziehen"/>
|
||||
<node CREATED="1487464505469" ID="ID_707273464" MODIFIED="1487464677579" TEXT="Umbau in neuen top-level">
|
||||
<arrowlink COLOR="#bc4930" DESTINATION="ID_1868522177" ENDARROW="Default" ENDINCLINATION="221;282;" ID="Arrow_ID_600425644" STARTARROW="None" STARTINCLINATION="1925;196;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1477522287316" ID="ID_1942021610" MODIFIED="1477522290919" TEXT="TimelinePanel"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
|||
Loading…
Reference in a new issue