NotificationDisplay: fill in some default implementation for the controller

This commit is contained in:
Fischlurch 2018-08-09 01:42:42 +02:00
parent 0c8151cb2f
commit 12244afc90
3 changed files with 36 additions and 11 deletions

View file

@ -37,35 +37,53 @@
#ifndef GUI_CTRL_NOTIFICATION_HUB_H
#define GUI_CTRL_NOTIFICATION_HUB_H
#include "gui/gtk-base.hpp"
#include "lib/nocopy.hpp"
#include "gui/widget/error-log-widget.hpp"
#include "gui/model/controller.hpp"
#include "lib/diff/tree-mutator.hpp"
#include <memory>
#include <list>
//#include <memory>
//#include <list>
namespace gui {
namespace workspace { class WorkspaceWindow; }
namespace ctrl {
using lib::diff::TreeMutator;
using std::list;
/**
* Service to receive and display error, warning and notification messages.
* These are sent over the UI-Bus through the NotificationService; after receiving
* such a message, this controller ensures to display the message and altert the
* such a message, this controller ensures to display the message and alert the
* user, while not blocking the overall UI.
*/
class NotificationHub
: util::NonCopyable
: public model::Controller
{
/** content population and manipulation via UI-Bus */
void
buildMutator (lib::diff::TreeMutator::Handle buffer) override
{
// using Attrib = std::pair<const string,string>;
// using lib::diff::collection;
buffer.create (
TreeMutator::build()
);
UNIMPLEMENTED ("create a sensible binding between AssetManager in the section and AssetController in the UI");
}
public:
public:
NotificationHub ();
NotificationHub (ID identity, ctrl::BusTerm& nexus)////////////////////////////////////TODO #1099 : define the ID hard-wired at an appropriate location, so it can be used from the NotificationService impl as well
: model::Controller{identity, nexus}
{ }
~NotificationHub() { };
private:

View file

@ -25,6 +25,8 @@
** Common Abstraction of all sub-controller, coordinated by the UI-Bus.
**
** @todo as of 1/2015 this is complete WIP-WIP-WIP
** @todo as of 8/2018 we should consider to distill a common default implementation usable for most controllers.
** especially, there might be a default (NOP) implementation of the diff mutator builder
**
** @see model::Tangible
** @see gui::UIBus

View file

@ -1490,6 +1490,9 @@
<arrowlink COLOR="#455086" DESTINATION="ID_396920290" ENDARROW="Default" ENDINCLINATION="-28;-42;" ID="Arrow_ID_729082861" STARTARROW="None" STARTINCLINATION="101;-7;"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1533771813324" ID="ID_930319427" MODIFIED="1533771830887" TEXT="wohin ist die ID selber definiert">
<icon BUILTIN="help"/>
</node>
</node>
<node CREATED="1504200793444" ID="ID_340215113" MODIFIED="1533608441263" TEXT="mi&#xdf;brauche InfoBox">
<arrowlink COLOR="#f5dd67" DESTINATION="ID_19179662" ENDARROW="Default" ENDINCLINATION="743;-1563;" ID="Arrow_ID_1195014928" STARTARROW="None" STARTINCLINATION="-452;605;"/>
@ -1620,7 +1623,7 @@
</html>
</richcontent>
</node>
<node CREATED="1533768930822" ID="ID_1792377980" MODIFIED="1533768947198">
<node CREATED="1533768930822" ID="ID_1792377980" MODIFIED="1533771786813">
<richcontent TYPE="NODE"><html>
<head>
@ -1632,9 +1635,11 @@
</body>
</html>
</richcontent>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1533769126436" ID="ID_1000961938" MODIFIED="1533769129591" TEXT="wohin?">
<node CREATED="1533769126436" ID="ID_1000961938" MODIFIED="1533771781272" TEXT="wohin?">
<icon BUILTIN="button_ok"/>
<node CREATED="1533769130987" ID="ID_220812854" MODIFIED="1533769163306" TEXT="ctrl">
<icon BUILTIN="forward"/>
</node>