From 9f7ed66896eedfcbeed7cdff96f01fe844715c7d Mon Sep 17 00:00:00 2001
From: Raphael Grimm <raphael.grimm@kit.edu>
Date: Wed, 3 Jun 2020 16:44:24 +0200
Subject: [PATCH] Change CartesianWaypointControlGuiWidgetController to use
 RobotUnitComponentPlugi

---
 .../CartesianWaypointControlGui/CMakeLists.txt         |  6 +-----
 .../CartesianWaypointControlGuiWidgetController.cpp    | 10 ++++------
 .../CartesianWaypointControlGuiWidgetController.h      |  6 +++---
 3 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CMakeLists.txt b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CMakeLists.txt
index 38578c06d..1b2caffb7 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CMakeLists.txt
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CMakeLists.txt
@@ -17,12 +17,8 @@ set(GUI_MOC_HDRS ${HEADERS})
 set(GUI_UIS CartesianWaypointControlGuiWidget.ui)
 
 set(COMPONENT_LIBS
-    VirtualRobot
-
     SimpleConfigDialog
-
-    RobotAPIInterfaces
-    RobotAPICore
+    RobotAPIComponentPlugins
 )
 
 if(ArmarXGui_FOUND)
diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
index 5d2d12234..45f540062 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.cpp
@@ -59,21 +59,20 @@ namespace armarx
     {
         std::lock_guard g{_allMutex};
         _robotStateComponentName = settings->value("rsc", "Armar6StateComponent").toString().toStdString();
-        _robotUnitName = settings->value("ru", "Armar6Unit").toString().toStdString();
+        getRobotUnitComponentPlugin().setRobotUnitName(settings->value("ru", "Armar6Unit").toString().toStdString());
     }
 
     void CartesianWaypointControlGuiWidgetController::saveSettings(QSettings* settings)
     {
         std::lock_guard g{_allMutex};
         settings->setValue("rsc", QString::fromStdString(_robotStateComponentName));
-        settings->setValue("ru", QString::fromStdString(_robotUnitName));
+        settings->setValue("ru", QString::fromStdString(getRobotUnitComponentPlugin().getRobotUnitName()));
     }
 
     void CartesianWaypointControlGuiWidgetController::onInitComponent()
     {
         std::lock_guard g{_allMutex};
         usingProxy(_robotStateComponentName);
-        usingProxy(_robotUnitName);
     }
 
     void CartesianWaypointControlGuiWidgetController::onConnectComponent()
@@ -82,7 +81,6 @@ namespace armarx
         //proxies
         {
             _robotStateComponent = getProxy<RobotStateComponentInterfacePrx>(_robotStateComponentName);
-            _robotUnit = getProxy<RobotUnitInterfacePrx>(_robotUnitName);
         }
         //robot
         {
@@ -135,7 +133,7 @@ namespace armarx
         ARMARX_IMPORTANT << "Creating " << njointControllerClassName << " '"
                          << _controllerName << "'";
         _controller = NJointCartesianWaypointControllerInterfacePrx::checkedCast(
-                          _robotUnit->createNJointController(
+                          getRobotUnit()->createNJointController(
                               njointControllerClassName,
                               _controllerName,
                               cfg));
@@ -200,7 +198,7 @@ namespace armarx
     {
         std::lock_guard g{_allMutex};
         _robotStateComponentName = _dialog->getProxyName("rsc");
-        _robotUnitName = _dialog->getProxyName("ru");
+        getRobotUnitComponentPlugin().setRobotUnitName(_dialog->getProxyName("ru"));
     }
 
     void CartesianWaypointControlGuiWidgetController::triggerParsing()
diff --git a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
index ae6961634..338c46f93 100644
--- a/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
+++ b/source/RobotAPI/gui-plugins/CartesianWaypointControlGui/CartesianWaypointControlGuiWidgetController.h
@@ -34,6 +34,7 @@
 #include <RobotAPI/interface/core/RobotState.h>
 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
 #include <RobotAPI/interface/units/RobotUnit/NJointCartesianWaypointController.h>
+#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h>
 
 #include <RobotAPI/gui-plugins/CartesianWaypointControlGui/ui_CartesianWaypointControlGuiWidget.h>
 
@@ -59,7 +60,8 @@ namespace armarx
      */
     class ARMARXCOMPONENT_IMPORT_EXPORT
         CartesianWaypointControlGuiWidgetController:
-        public armarx::ArmarXComponentWidgetControllerTemplate < CartesianWaypointControlGuiWidgetController >
+        public armarx::ArmarXComponentWidgetControllerTemplate < CartesianWaypointControlGuiWidgetController >,
+        public virtual RobotUnitComponentPluginUser
     {
         Q_OBJECT
 
@@ -106,9 +108,7 @@ namespace armarx
 
     private:
         std::string                                     _robotStateComponentName;
-        std::string                                     _robotUnitName;
         RobotStateComponentInterfacePrx                 _robotStateComponent;
-        RobotUnitInterfacePrx                           _robotUnit;
         Ui::CartesianWaypointControlGuiWidget           _ui;
         QPointer<SimpleConfigDialog>                    _dialog;
         NJointCartesianWaypointControllerInterfacePrx   _controller;
-- 
GitLab