fix missing-override warnings on Scilab types
[scilab.git] / scilab / modules / scicos / src / cpp / view_scilab / LinkAdapter.hxx
index 1c89efa..6c1a425 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
+ *  Copyright (C) 2014-2016 - Scilab Enterprises - Clement DAVID
  *
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
 #define LINKADAPTER_HXX_
 
 #include <string>
+#include <vector>
 
 #include "adapters_utilities.hxx"
 #include "BaseAdapter.hxx"
 #include "model/Link.hxx"
+#include "model/Block.hxx"
 
 namespace org_scilab_modules_scicos
 {
 namespace view_scilab
 {
 
-class LinkAdapter : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
+class LinkAdapter final : public BaseAdapter<LinkAdapter, org_scilab_modules_scicos::model::Link>
 {
 public:
     LinkAdapter(const Controller& c, org_scilab_modules_scicos::model::Link* adaptee);
@@ -39,19 +41,18 @@ public:
         return L"Link";
     }
 
-    std::wstring getTypeStr();
-    std::wstring getShortTypeStr();
-
-    link_t getFrom() const;
-    void setFrom(const link_t& v);
-    void setFromInModel(const link_t& v, Controller& controller);
-    link_t getTo() const;
-    void setTo(const link_t& v);
-    void setToInModel(const link_t& v, Controller& controller);
-
-private:
-    link_t m_from;
-    link_t m_to;
+    std::wstring getTypeStr() const override;
+    std::wstring getShortTypeStr() const override;
+
+    // move (if possible) the partial informations to the model
+    static void relink(Controller& controller, model::Link* adaptee, const std::vector<ScicosID>& children);
+    static void reverse_relink(Controller& controller, model::Block* adaptee, int index, const std::vector<ScicosID>& children);
+    // manage partial information after a model clone
+    static void add_partial_links_information(Controller& controller, ScicosID original, ScicosID cloned);
+    // manage partial information before a model delete
+    static void store_partial_links_information(Controller& controller, model::BaseObject* added, int index, const std::vector<ScicosID>& children);
+    // remove all information related to the link
+    static void remove_partial_links_information(ScicosID uid);
 };
 
 } /* namespace view_scilab */