summaryrefslogtreecommitdiffstats
path: root/src/libs/gui
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-10-07 19:00:30 +0000
committerDavid Robillard <d@drobilla.net>2007-10-07 19:00:30 +0000
commit2cb36f0265a391388b6edf988d919911b79aca4d (patch)
tree7b796835325e84e152365104b4c23bf4109f2293 /src/libs/gui
parent299f075679fc7ea6a67001c2cc0442511e167cbc (diff)
downloadingen-2cb36f0265a391388b6edf988d919911b79aca4d.tar.gz
ingen-2cb36f0265a391388b6edf988d919911b79aca4d.tar.bz2
ingen-2cb36f0265a391388b6edf988d919911b79aca4d.zip
Begin using shared virtual Node interface client side.
git-svn-id: http://svn.drobilla.net/lad/ingen@836 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui')
-rw-r--r--src/libs/gui/LoadPatchWindow.cpp2
-rw-r--r--src/libs/gui/LoadPatchWindow.hpp7
-rw-r--r--src/libs/gui/LoadPluginWindow.cpp4
-rw-r--r--src/libs/gui/LoadPluginWindow.hpp8
-rw-r--r--src/libs/gui/LoadRemotePatchWindow.cpp2
-rw-r--r--src/libs/gui/LoadRemotePatchWindow.hpp7
-rw-r--r--src/libs/gui/LoadSubpatchWindow.cpp2
-rw-r--r--src/libs/gui/LoadSubpatchWindow.hpp7
-rw-r--r--src/libs/gui/NewSubpatchWindow.cpp4
-rw-r--r--src/libs/gui/NewSubpatchWindow.hpp9
-rw-r--r--src/libs/gui/NodeModule.cpp2
-rw-r--r--src/libs/gui/PatchCanvas.cpp14
-rw-r--r--src/libs/gui/PatchCanvas.hpp7
-rw-r--r--src/libs/gui/PatchPortModule.cpp2
-rw-r--r--src/libs/gui/ThreadedLoader.cpp12
-rw-r--r--src/libs/gui/ThreadedLoader.hpp12
-rw-r--r--src/libs/gui/WindowFactory.cpp11
-rw-r--r--src/libs/gui/WindowFactory.hpp12
18 files changed, 65 insertions, 59 deletions
diff --git a/src/libs/gui/LoadPatchWindow.cpp b/src/libs/gui/LoadPatchWindow.cpp
index 593f2b6d..672ff940 100644
--- a/src/libs/gui/LoadPatchWindow.cpp
+++ b/src/libs/gui/LoadPatchWindow.cpp
@@ -68,7 +68,7 @@ LoadPatchWindow::LoadPatchWindow(BaseObjectType* cobject, const Glib::RefPtr<Gno
void
-LoadPatchWindow::present(SharedPtr<PatchModel> patch, MetadataMap data)
+LoadPatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
set_patch(patch);
_initial_data = data;
diff --git a/src/libs/gui/LoadPatchWindow.hpp b/src/libs/gui/LoadPatchWindow.hpp
index 3524ce16..9a4cf210 100644
--- a/src/libs/gui/LoadPatchWindow.hpp
+++ b/src/libs/gui/LoadPatchWindow.hpp
@@ -21,10 +21,11 @@
#include <libglademm/xml.h>
#include <gtkmm.h>
#include <raul/SharedPtr.hpp>
+#include "interface/GraphObject.hpp"
#include "client/PluginModel.hpp"
#include "client/PatchModel.hpp"
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
+using namespace Ingen::Shared;
namespace Ingen {
namespace GUI {
@@ -50,7 +51,7 @@ public:
void set_replace() { _replace = true; }
void set_merge() { _replace = false; }
- void present(SharedPtr<PatchModel> patch, MetadataMap data);
+ void present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data);
protected:
void on_show();
@@ -61,7 +62,7 @@ private:
void ok_clicked();
void cancel_clicked();
- MetadataMap _initial_data;
+ GraphObject::MetadataMap _initial_data;
SharedPtr<PatchModel> _patch;
bool _replace;
diff --git a/src/libs/gui/LoadPluginWindow.cpp b/src/libs/gui/LoadPluginWindow.cpp
index a8a0d188..9aaed171 100644
--- a/src/libs/gui/LoadPluginWindow.cpp
+++ b/src/libs/gui/LoadPluginWindow.cpp
@@ -109,7 +109,7 @@ LoadPluginWindow::LoadPluginWindow(BaseObjectType* cobject, const Glib::RefPtr<G
void
-LoadPluginWindow::present(SharedPtr<PatchModel> patch, MetadataMap data)
+LoadPluginWindow::present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
set_patch(patch);
_initial_data = data;
@@ -343,7 +343,7 @@ LoadPluginWindow::add_clicked()
} else {
Path path = _patch->path().base() + Path::nameify(name);
App::instance().engine()->create_node(path, plugin->uri(), polyphonic);
- for (MetadataMap::const_iterator i = _initial_data.begin(); i != _initial_data.end(); ++i)
+ for (GraphObject::MetadataMap::const_iterator i = _initial_data.begin(); i != _initial_data.end(); ++i)
App::instance().engine()->set_metadata(path, i->first, i->second);
++_plugin_name_offset;
_node_name_entry->set_text(generate_module_name(_plugin_name_offset));
diff --git a/src/libs/gui/LoadPluginWindow.hpp b/src/libs/gui/LoadPluginWindow.hpp
index f1ba6383..c0b668ba 100644
--- a/src/libs/gui/LoadPluginWindow.hpp
+++ b/src/libs/gui/LoadPluginWindow.hpp
@@ -15,7 +15,6 @@
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-
#ifndef LOADPLUGINWINDOW_H
#define LOADPLUGINWINDOW_H
@@ -24,11 +23,12 @@
#include <gtkmm.h>
#include <raul/SharedPtr.hpp>
#include <raul/Table.hpp>
+#include "interface/GraphObject.hpp"
#include "client/PatchModel.hpp"
#include "client/PluginModel.hpp"
using Ingen::Client::PluginModel;
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
+using namespace Ingen::Shared;
namespace Ingen {
namespace GUI {
@@ -96,7 +96,7 @@ public:
void add_plugin(SharedPtr<PluginModel> plugin);
bool has_shown() const { return _has_shown; }
- void present(SharedPtr<PatchModel> patch, MetadataMap data);
+ void present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data);
protected:
void on_show();
@@ -117,7 +117,7 @@ private:
void plugin_selection_changed();
string generate_module_name(int offset = 0);
- MetadataMap _initial_data;
+ GraphObject::MetadataMap _initial_data;
SharedPtr<PatchModel> _patch;
diff --git a/src/libs/gui/LoadRemotePatchWindow.cpp b/src/libs/gui/LoadRemotePatchWindow.cpp
index c2d40c5e..20c1533c 100644
--- a/src/libs/gui/LoadRemotePatchWindow.cpp
+++ b/src/libs/gui/LoadRemotePatchWindow.cpp
@@ -59,7 +59,7 @@ LoadRemotePatchWindow::LoadRemotePatchWindow(BaseObjectType* cobject, const Glib
void
-LoadRemotePatchWindow::present(SharedPtr<PatchModel> patch, MetadataMap data)
+LoadRemotePatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
_liststore->clear();
diff --git a/src/libs/gui/LoadRemotePatchWindow.hpp b/src/libs/gui/LoadRemotePatchWindow.hpp
index 2afef975..59b037d2 100644
--- a/src/libs/gui/LoadRemotePatchWindow.hpp
+++ b/src/libs/gui/LoadRemotePatchWindow.hpp
@@ -21,10 +21,11 @@
#include <libglademm/xml.h>
#include <gtkmm.h>
#include <raul/SharedPtr.hpp>
+#include "interface/GraphObject.hpp"
#include "client/PatchModel.hpp"
#include "client/PluginModel.hpp"
+using namespace Ingen::Shared;
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
namespace Ingen {
namespace GUI {
@@ -62,7 +63,7 @@ public:
void set_replace() { _replace = true; }
void set_merge() { _replace = false; }
- void present(SharedPtr<PatchModel> patch, MetadataMap data);
+ void present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data);
private:
void patch_activated(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* col);
@@ -71,7 +72,7 @@ private:
void open_clicked();
void cancel_clicked();
- MetadataMap _initial_data;
+ GraphObject::MetadataMap _initial_data;
SharedPtr<PatchModel> _patch;
bool _replace;
diff --git a/src/libs/gui/LoadSubpatchWindow.cpp b/src/libs/gui/LoadSubpatchWindow.cpp
index 42058578..e230720a 100644
--- a/src/libs/gui/LoadSubpatchWindow.cpp
+++ b/src/libs/gui/LoadSubpatchWindow.cpp
@@ -71,7 +71,7 @@ LoadSubpatchWindow::LoadSubpatchWindow(BaseObjectType* cobject, const Glib::RefP
void
-LoadSubpatchWindow::present(SharedPtr<PatchModel> patch, MetadataMap data)
+LoadSubpatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
set_patch(patch);
_initial_data = data;
diff --git a/src/libs/gui/LoadSubpatchWindow.hpp b/src/libs/gui/LoadSubpatchWindow.hpp
index 01047a3e..89600895 100644
--- a/src/libs/gui/LoadSubpatchWindow.hpp
+++ b/src/libs/gui/LoadSubpatchWindow.hpp
@@ -23,8 +23,9 @@
#include <raul/SharedPtr.hpp>
#include "client/PatchModel.hpp"
#include "client/PluginModel.hpp"
+#include "interface/GraphObject.hpp"
+using namespace Ingen::Shared;
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
namespace Ingen {
namespace GUI {
@@ -43,7 +44,7 @@ public:
void set_patch(SharedPtr<PatchModel> patch);
- void present(SharedPtr<PatchModel> patch, MetadataMap data);
+ void present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data);
protected:
void on_show();
@@ -57,7 +58,7 @@ private:
void ok_clicked();
void cancel_clicked();
- MetadataMap _initial_data;
+ GraphObject::MetadataMap _initial_data;
SharedPtr<PatchModel> _patch;
diff --git a/src/libs/gui/NewSubpatchWindow.cpp b/src/libs/gui/NewSubpatchWindow.cpp
index 103e9a54..d327d257 100644
--- a/src/libs/gui/NewSubpatchWindow.cpp
+++ b/src/libs/gui/NewSubpatchWindow.cpp
@@ -43,7 +43,7 @@ NewSubpatchWindow::NewSubpatchWindow(BaseObjectType* cobject, const Glib::RefPtr
}
void
-NewSubpatchWindow::present(SharedPtr<PatchModel> patch, MetadataMap data)
+NewSubpatchWindow::present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
set_patch(patch);
_initial_data = data;
@@ -91,7 +91,7 @@ NewSubpatchWindow::ok_clicked()
const uint32_t poly = _poly_spinbutton->get_value_as_int();
App::instance().engine()->create_patch(path, poly);
- for (MetadataMap::const_iterator i = _initial_data.begin(); i != _initial_data.end(); ++i)
+ for (GraphObject::MetadataMap::const_iterator i = _initial_data.begin(); i != _initial_data.end(); ++i)
App::instance().engine()->set_metadata(path, i->first, i->second);
App::instance().engine()->enable_patch(path);
diff --git a/src/libs/gui/NewSubpatchWindow.hpp b/src/libs/gui/NewSubpatchWindow.hpp
index d6ce65d7..d8fbde88 100644
--- a/src/libs/gui/NewSubpatchWindow.hpp
+++ b/src/libs/gui/NewSubpatchWindow.hpp
@@ -21,10 +21,11 @@
#include <libglademm/xml.h>
#include <gtkmm.h>
#include <raul/SharedPtr.hpp>
+#include "interface/GraphObject.hpp"
#include "client/PatchModel.hpp"
#include "client/PluginModel.hpp"
+using namespace Ingen::Shared;
using Ingen::Client::PatchModel;
-using Ingen::Client::MetadataMap;
namespace Ingen {
namespace GUI {
@@ -43,15 +44,15 @@ public:
void set_patch(SharedPtr<PatchModel> patch);
- void present(SharedPtr<PatchModel> patch, MetadataMap data);
+ void present(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data);
private:
void name_changed();
void ok_clicked();
void cancel_clicked();
- MetadataMap _initial_data;
- SharedPtr<PatchModel> _patch;
+ GraphObject::MetadataMap _initial_data;
+ SharedPtr<PatchModel> _patch;
Gtk::Entry* _name_entry;
Gtk::Label* _message_label;
diff --git a/src/libs/gui/NodeModule.cpp b/src/libs/gui/NodeModule.cpp
index b4b005d6..d7cf0154 100644
--- a/src/libs/gui/NodeModule.cpp
+++ b/src/libs/gui/NodeModule.cpp
@@ -92,7 +92,7 @@ NodeModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> n
else
ret = boost::shared_ptr<NodeModule>(new NodeModule(canvas, node));
- for (MetadataMap::const_iterator m = node->metadata().begin(); m != node->metadata().end(); ++m)
+ for (GraphObject::MetadataMap::const_iterator m = node->metadata().begin(); m != node->metadata().end(); ++m)
ret->set_metadata(m->first, m->second);
for (PortModelList::const_iterator p = node->ports().begin(); p != node->ports().end(); ++p) {
diff --git a/src/libs/gui/PatchCanvas.cpp b/src/libs/gui/PatchCanvas.cpp
index ee3c326e..236ed0d3 100644
--- a/src/libs/gui/PatchCanvas.cpp
+++ b/src/libs/gui/PatchCanvas.cpp
@@ -506,7 +506,7 @@ PatchCanvas::menu_add_control(ControlType type)
{
// FIXME: bundleify
- MetadataMap data = get_initial_data();
+ GraphObject::MetadataMap data = get_initial_data();
float x = data["ingenuity:canvas-x"].get_float();
float y = data["ingenuity:canvas-y"].get_float();
@@ -522,8 +522,8 @@ PatchCanvas::menu_add_port(const string& name, const string& type, bool is_outpu
// FIXME: bundleify
const Path& path = _patch->path().base() + generate_port_name(name);
App::instance().engine()->create_port(path, type, is_output);
- MetadataMap data = get_initial_data();
- for (MetadataMap::const_iterator i = data.begin(); i != data.end(); ++i)
+ GraphObject::MetadataMap data = get_initial_data();
+ for (GraphObject::MetadataMap::const_iterator i = data.begin(); i != data.end(); ++i)
App::instance().engine()->set_metadata(path, i->first, i->second);
}
@@ -534,8 +534,8 @@ PatchCanvas::load_plugin(SharedPtr<PluginModel> plugin)
const Path& path = _patch->path().base() + plugin->default_node_name(_patch);
// FIXME: polyphony?
App::instance().engine()->create_node(path, plugin->uri(), false);
- MetadataMap data = get_initial_data();
- for (MetadataMap::const_iterator i = data.begin(); i != data.end(); ++i)
+ GraphObject::MetadataMap data = get_initial_data();
+ for (GraphObject::MetadataMap::const_iterator i = data.begin(); i != data.end(); ++i)
App::instance().engine()->set_metadata(path, i->first, i->second);
}
@@ -553,10 +553,10 @@ PatchCanvas::get_new_module_location(double& x, double& y)
}
-MetadataMap
+GraphObject::MetadataMap
PatchCanvas::get_initial_data()
{
- MetadataMap result;
+ GraphObject::MetadataMap result;
result["ingenuity:canvas-x"] = Atom((float)_last_click_x);
result["ingenuity:canvas-y"] = Atom((float)_last_click_y);
diff --git a/src/libs/gui/PatchCanvas.hpp b/src/libs/gui/PatchCanvas.hpp
index 3878bd69..95b7fc70 100644
--- a/src/libs/gui/PatchCanvas.hpp
+++ b/src/libs/gui/PatchCanvas.hpp
@@ -29,17 +29,18 @@
#include <raul/Path.hpp>
#include "client/ConnectionModel.hpp"
#include "client/PatchModel.hpp"
+#include "interface/GraphObject.hpp"
#include "NodeModule.hpp"
-using std::string;
using namespace FlowCanvas;
+using namespace Ingen::Shared;
+using std::string;
using FlowCanvas::Port;
using Ingen::Client::ConnectionModel;
using Ingen::Client::PatchModel;
using Ingen::Client::NodeModel;
using Ingen::Client::PortModel;
-using Ingen::Client::MetadataMap;
namespace Ingen {
namespace GUI {
@@ -99,7 +100,7 @@ private:
SLV2PluginClass plugin_class, SLV2PluginClasses classes);
#endif
- MetadataMap get_initial_data();
+ GraphObject::MetadataMap get_initial_data();
bool canvas_event(GdkEvent* event);
diff --git a/src/libs/gui/PatchPortModule.cpp b/src/libs/gui/PatchPortModule.cpp
index f686079d..2c5581f8 100644
--- a/src/libs/gui/PatchPortModule.cpp
+++ b/src/libs/gui/PatchPortModule.cpp
@@ -76,7 +76,7 @@ PatchPortModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<PortMod
ret->set_menu(ret->_patch_port->menu());
- for (MetadataMap::const_iterator m = port->metadata().begin(); m != port->metadata().end(); ++m)
+ for (GraphObject::MetadataMap::const_iterator m = port->metadata().begin(); m != port->metadata().end(); ++m)
ret->metadata_update(m->first, m->second);
ret->resize();
diff --git a/src/libs/gui/ThreadedLoader.cpp b/src/libs/gui/ThreadedLoader.cpp
index 568806a8..a1c28acf 100644
--- a/src/libs/gui/ThreadedLoader.cpp
+++ b/src/libs/gui/ThreadedLoader.cpp
@@ -72,12 +72,12 @@ ThreadedLoader::_whipped()
}
void
-ThreadedLoader::load_patch(bool merge,
- const string& data_base_uri,
- const Path& data_path,
- MetadataMap engine_data,
- optional<Path> engine_parent,
- optional<const string&> engine_name)
+ThreadedLoader::load_patch(bool merge,
+ const string& data_base_uri,
+ const Path& data_path,
+ GraphObject::MetadataMap engine_data,
+ optional<Path> engine_parent,
+ optional<const string&> engine_name)
{
_mutex.lock();
diff --git a/src/libs/gui/ThreadedLoader.hpp b/src/libs/gui/ThreadedLoader.hpp
index 68045598..08b24faa 100644
--- a/src/libs/gui/ThreadedLoader.hpp
+++ b/src/libs/gui/ThreadedLoader.hpp
@@ -61,12 +61,12 @@ public:
// FIXME: there's a pattern here....
// (same core interface as Loader/Serializer)
- void load_patch(bool merge,
- const string& data_base_uri,
- const Path& data_path,
- MetadataMap engine_data,
- optional<Path> engine_parent,
- optional<const string&> engine_name = optional<const string&>());
+ void load_patch(bool merge,
+ const string& data_base_uri,
+ const Path& data_path,
+ GraphObject::MetadataMap engine_data,
+ optional<Path> engine_parent,
+ optional<const string&> engine_name = optional<const string&>());
void save_patch(SharedPtr<PatchModel> model, const string& filename);
diff --git a/src/libs/gui/WindowFactory.cpp b/src/libs/gui/WindowFactory.cpp
index caa02390..6e7e2c8b 100644
--- a/src/libs/gui/WindowFactory.cpp
+++ b/src/libs/gui/WindowFactory.cpp
@@ -253,7 +253,7 @@ WindowFactory::remove_control_window(NodeControlWindow* win, GdkEventAny* ignore
void
-WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, MetadataMap data)
+WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -265,7 +265,7 @@ WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, MetadataMap data
void
-WindowFactory::present_load_patch(SharedPtr<PatchModel> patch, MetadataMap data)
+WindowFactory::present_load_patch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -279,7 +279,7 @@ WindowFactory::present_load_patch(SharedPtr<PatchModel> patch, MetadataMap data)
void
-WindowFactory::present_load_remote_patch(SharedPtr<PatchModel> patch, MetadataMap data)
+WindowFactory::present_load_remote_patch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -305,9 +305,8 @@ WindowFactory::present_upload_patch(SharedPtr<PatchModel> patch)
#endif
}
-
void
-WindowFactory::present_new_subpatch(SharedPtr<PatchModel> patch, MetadataMap data)
+WindowFactory::present_new_subpatch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
@@ -319,7 +318,7 @@ WindowFactory::present_new_subpatch(SharedPtr<PatchModel> patch, MetadataMap dat
void
-WindowFactory::present_load_subpatch(SharedPtr<PatchModel> patch, MetadataMap data)
+WindowFactory::present_load_subpatch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data)
{
PatchWindowMap::iterator w = _patch_windows.find(patch->path());
diff --git a/src/libs/gui/WindowFactory.hpp b/src/libs/gui/WindowFactory.hpp
index 91fb27ab..d9418496 100644
--- a/src/libs/gui/WindowFactory.hpp
+++ b/src/libs/gui/WindowFactory.hpp
@@ -21,10 +21,12 @@
#include <map>
#include <gtkmm.h>
#include <raul/SharedPtr.hpp>
+#include "interface/GraphObject.hpp"
#include "client/PatchModel.hpp"
#include "PatchView.hpp"
using Ingen::Client::PatchModel;
+using namespace Ingen::Shared;
namespace Ingen {
namespace GUI {
@@ -62,12 +64,12 @@ public:
void present_controls(SharedPtr<NodeModel> node);
- void present_load_plugin(SharedPtr<PatchModel> patch, MetadataMap data = MetadataMap());
- void present_load_patch(SharedPtr<PatchModel> patch, MetadataMap data = MetadataMap());
- void present_load_remote_patch(SharedPtr<PatchModel> patch, MetadataMap data = MetadataMap());
+ void present_load_plugin(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data=GraphObject::MetadataMap());
+ void present_load_patch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data=GraphObject::MetadataMap());
+ void present_load_remote_patch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data=GraphObject::MetadataMap());
void present_upload_patch(SharedPtr<PatchModel> patch);
- void present_new_subpatch(SharedPtr<PatchModel> patch, MetadataMap data = MetadataMap());
- void present_load_subpatch(SharedPtr<PatchModel> patch, MetadataMap data = MetadataMap());
+ void present_new_subpatch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data=GraphObject::MetadataMap());
+ void present_load_subpatch(SharedPtr<PatchModel> patch, GraphObject::MetadataMap data=GraphObject::MetadataMap());
void present_rename(SharedPtr<ObjectModel> object);
void present_properties(SharedPtr<ObjectModel> object);