Browse Source

Renamed XNAT classes.

- ctkXnatServer to ctkXnatDataModel
- ctkXnatConnection to ctkXnatSession
- ctkXnatConnectionFactory to ctkXnatSessionFactory
Sascha Zelzer 12 years ago
parent
commit
dffffc7f89
33 changed files with 447 additions and 415 deletions
  1. 18 18
      Applications/ctkXNATBrowser/ctkXNATBrowserMainWindow.cpp
  2. 4 4
      Applications/ctkXNATBrowser/ctkXNATBrowserMainWindow.h
  3. 17 17
      Applications/ctkXnatTreeBrowser/ctkXnatTreeBrowserMainWindow.cpp
  4. 4 4
      Applications/ctkXnatTreeBrowser/ctkXnatTreeBrowserMainWindow.h
  5. 6 6
      Libs/XNAT/Core/CMakeLists.txt
  6. 3 3
      Libs/XNAT/Core/Testing/CMakeLists.txt
  7. 54 53
      Libs/XNAT/Core/Testing/ctkXnatConnectionTest.cpp
  8. 10 10
      Libs/XNAT/Core/Testing/ctkXnatConnectionTest.h
  9. 3 3
      Libs/XNAT/Core/ctkXnatAPI.cpp
  10. 80 0
      Libs/XNAT/Core/ctkXnatDataModel.cpp
  11. 13 13
      Libs/XNAT/Core/ctkXnatServer.h
  12. 3 3
      Libs/XNAT/Core/ctkXnatExperiment.cpp
  13. 3 3
      Libs/XNAT/Core/ctkXnatFile.cpp
  14. 10 13
      Libs/XNAT/Core/ctkXnatObject.cpp
  15. 17 2
      Libs/XNAT/Core/ctkXnatObject.h
  16. 4 4
      Libs/XNAT/Core/ctkXnatProject.cpp
  17. 3 4
      Libs/XNAT/Core/ctkXnatProject.h
  18. 3 3
      Libs/XNAT/Core/ctkXnatReconstruction.cpp
  19. 3 3
      Libs/XNAT/Core/ctkXnatReconstructionFolder.cpp
  20. 4 4
      Libs/XNAT/Core/ctkXnatReconstructionResource.cpp
  21. 3 3
      Libs/XNAT/Core/ctkXnatScan.cpp
  22. 3 3
      Libs/XNAT/Core/ctkXnatScanFolder.cpp
  23. 4 4
      Libs/XNAT/Core/ctkXnatScanResource.cpp
  24. 0 69
      Libs/XNAT/Core/ctkXnatServer.cpp
  25. 102 103
      Libs/XNAT/Core/ctkXnatConnection.cpp
  26. 22 12
      Libs/XNAT/Core/ctkXnatConnection.h
  27. 15 15
      Libs/XNAT/Core/ctkXnatConnectionFactory.cpp
  28. 6 6
      Libs/XNAT/Core/ctkXnatConnectionFactory.h
  29. 2 2
      Libs/XNAT/Core/ctkXnatSubject.cpp
  30. 19 19
      Libs/XNAT/Widgets/ctkXnatLoginDialog.cpp
  31. 4 4
      Libs/XNAT/Widgets/ctkXnatLoginDialog.h
  32. 2 2
      Libs/XNAT/Widgets/ctkXnatTreeModel.cpp
  33. 3 3
      Libs/XNAT/Widgets/ctkXnatTreeModel.h

+ 18 - 18
Applications/ctkXNATBrowser/ctkXNATBrowserMainWindow.cpp

@@ -24,9 +24,9 @@
 
 #include "ctkXnatLoginDialog.h"
 #include "ctkXnatProjectListModel.h"
-#include "ctkXnatConnection.h"
-#include "ctkXnatConnectionFactory.h"
-#include "ctkXnatServer.h"
+#include "ctkXnatSession.h"
+#include "ctkXnatSessionFactory.h"
+#include "ctkXnatDataModel.h"
 #include "ctkXnatProject.h"
 
 #include <QDebug>
@@ -34,8 +34,8 @@
 ctkXNATBrowserMainWindow::ctkXNATBrowserMainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::ctkXNATBrowserMainWindow),
-  m_ConnectionFactory(new ctkXnatConnectionFactory()),
-  m_Connection(0),
+  m_SessionFactory(new ctkXnatSessionFactory()),
+  m_Session(0),
   m_ProjectsModel(new ctkXnatProjectListModel()),
   m_SubjectsModel(new ctkXnatProjectListModel())
 {
@@ -50,11 +50,11 @@ ctkXNATBrowserMainWindow::ctkXNATBrowserMainWindow(QWidget *parent) :
 
 ctkXNATBrowserMainWindow::~ctkXNATBrowserMainWindow()
 {
-  if (m_Connection)
+  if (m_Session)
   {
-    delete m_Connection;
+    delete m_Session;
   }
-  delete m_ConnectionFactory;
+  delete m_SessionFactory;
   delete ui;
 
   delete m_SubjectsModel;
@@ -63,10 +63,10 @@ ctkXNATBrowserMainWindow::~ctkXNATBrowserMainWindow()
 
 void ctkXNATBrowserMainWindow::loginButtonPushed()
 {
-  if (m_Connection)
+  if (m_Session)
   {
-    delete m_Connection;
-    m_Connection = 0;
+    delete m_Session;
+    m_Session = 0;
     ui->loginButton->setText("Login");
     ui->loginLabel->setText("Disconnected");
 
@@ -75,19 +75,19 @@ void ctkXNATBrowserMainWindow::loginButtonPushed()
   }
   else
   {
-    ctkXnatLoginDialog loginDialog(m_ConnectionFactory);
+    ctkXnatLoginDialog loginDialog(m_SessionFactory);
     if (loginDialog.exec() == QDialog::Accepted)
     {
-      m_Connection = loginDialog.getConnection();
-      if (m_Connection)
+      m_Session = loginDialog.getSession();
+      if (m_Session)
       {
         ui->loginButton->setText("Logout");
-        ui->loginLabel->setText(QString("Connected: %1").arg(m_Connection->url()));
+        ui->loginLabel->setText(QString("Connected: %1").arg(m_Session->url()));
 
-        ctkXnatServer* server = m_Connection->server();
+        ctkXnatDataModel* dataModel = m_Session->dataModel();
         //xnatConnection->fetch(server);
-        server->fetch();
-        m_ProjectsModel->setRootObject(server);
+        dataModel->fetch();
+        m_ProjectsModel->setRootObject(dataModel);
         ui->projectsList->reset();
       }
     }

+ 4 - 4
Applications/ctkXNATBrowser/ctkXNATBrowserMainWindow.h

@@ -26,8 +26,8 @@
 
 class QModelIndex;
 
-class ctkXnatConnection;
-class ctkXnatConnectionFactory;
+class ctkXnatSession;
+class ctkXnatSessionFactory;
 class ctkXnatProjectListModel;
 class ctkXnatProject;
 
@@ -52,8 +52,8 @@ private Q_SLOTS:
 private:
   Ui::ctkXNATBrowserMainWindow *ui;
 
-  ctkXnatConnectionFactory* m_ConnectionFactory;
-  ctkXnatConnection* m_Connection;
+  ctkXnatSessionFactory* m_SessionFactory;
+  ctkXnatSession* m_Session;
   ctkXnatProjectListModel* m_ProjectsModel;
   ctkXnatProjectListModel* m_SubjectsModel;
 };

+ 17 - 17
Applications/ctkXnatTreeBrowser/ctkXnatTreeBrowserMainWindow.cpp

@@ -24,17 +24,17 @@
 
 #include "ctkXnatLoginDialog.h"
 #include "ctkXnatTreeModel.h"
-#include "ctkXnatConnection.h"
-#include "ctkXnatConnectionFactory.h"
-#include "ctkXnatServer.h"
+#include "ctkXnatSession.h"
+#include "ctkXnatSessionFactory.h"
+#include "ctkXnatDataModel.h"
 #include "ctkXnatProject.h"
 #include "ctkXnatFile.h"
 
 ctkXnatTreeBrowserMainWindow::ctkXnatTreeBrowserMainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::ctkXnatTreeBrowserMainWindow),
-  m_ConnectionFactory(new ctkXnatConnectionFactory()),
-  m_Connection(0),
+  m_SessionFactory(new ctkXnatSessionFactory()),
+  m_Session(0),
   m_TreeModel(new ctkXnatTreeModel())
 {
   ui->setupUi(this);
@@ -49,11 +49,11 @@ ctkXnatTreeBrowserMainWindow::ctkXnatTreeBrowserMainWindow(QWidget *parent) :
 
 ctkXnatTreeBrowserMainWindow::~ctkXnatTreeBrowserMainWindow()
 {
-  if (m_Connection)
+  if (m_Session)
   {
-    delete m_Connection;
+    delete m_Session;
   }
-  delete m_ConnectionFactory;
+  delete m_SessionFactory;
   delete ui;
 
   delete m_TreeModel;
@@ -61,10 +61,10 @@ ctkXnatTreeBrowserMainWindow::~ctkXnatTreeBrowserMainWindow()
 
 void ctkXnatTreeBrowserMainWindow::loginButtonPushed()
 {
-  if (m_Connection)
+  if (m_Session)
   {
-    delete m_Connection;
-    m_Connection = 0;
+    delete m_Session;
+    m_Session = 0;
     ui->loginButton->setText("Login");
     ui->loginLabel->setText("Disconnected");
     ui->downloadLabel->hide();
@@ -74,17 +74,17 @@ void ctkXnatTreeBrowserMainWindow::loginButtonPushed()
   }
   else
   {
-    ctkXnatLoginDialog loginDialog(m_ConnectionFactory);
+    ctkXnatLoginDialog loginDialog(m_SessionFactory);
     if (loginDialog.exec() == QDialog::Accepted)
     {
-      m_Connection = loginDialog.getConnection();
-      if (m_Connection)
+      m_Session = loginDialog.getSession();
+      if (m_Session)
       {
         ui->loginButton->setText("Logout");
-        ui->loginLabel->setText(QString("Connected: %1").arg(m_Connection->url()));
+        ui->loginLabel->setText(QString("Connected: %1").arg(m_Session->url()));
 
-        ctkXnatServer* server = m_Connection->server();
-        m_TreeModel->addServer(server);
+        ctkXnatDataModel* dataModel = m_Session->dataModel();
+        m_TreeModel->addDataModel(dataModel);
         ui->treeView->reset();
         ui->downloadLabel->show();
       }

+ 4 - 4
Applications/ctkXnatTreeBrowser/ctkXnatTreeBrowserMainWindow.h

@@ -26,8 +26,8 @@
 
 class QModelIndex;
 
-class ctkXnatConnection;
-class ctkXnatConnectionFactory;
+class ctkXnatSession;
+class ctkXnatSessionFactory;
 class ctkXnatTreeModel;
 
 namespace Ui {
@@ -51,8 +51,8 @@ private Q_SLOTS:
 private:
   Ui::ctkXnatTreeBrowserMainWindow* ui;
 
-  ctkXnatConnectionFactory* m_ConnectionFactory;
-  ctkXnatConnection* m_Connection;
+  ctkXnatSessionFactory* m_SessionFactory;
+  ctkXnatSession* m_Session;
   ctkXnatTreeModel* m_TreeModel;
 };
 

+ 6 - 6
Libs/XNAT/Core/CMakeLists.txt

@@ -8,21 +8,21 @@ set(KIT_export_directive "CTK_XNAT_CORE_EXPORT")
 
 set(KIT_SRCS
   ctkXnatAPI.cpp
-  ctkXnatConnection.cpp
-  ctkXnatConnectionFactory.cpp
+  ctkXnatDataModel.cpp
   ctkXnatException.cpp
   ctkXnatExperiment.cpp
   ctkXnatFile.cpp
   ctkXnatObject.cpp
   ctkXnatObjectPrivate.cpp
   ctkXnatProject.cpp
-  ctkXnatScan.cpp
-  ctkXnatScanFolder.cpp
-  ctkXnatScanResource.cpp
   ctkXnatReconstruction.cpp
   ctkXnatReconstructionFolder.cpp
   ctkXnatReconstructionResource.cpp
-  ctkXnatServer.cpp
+  ctkXnatScan.cpp
+  ctkXnatScanFolder.cpp
+  ctkXnatScanResource.cpp
+  ctkXnatSession.cpp
+  ctkXnatSessionFactory.cpp
   ctkXnatSettings.cpp
   ctkXnatSubject.cpp
 )

+ 3 - 3
Libs/XNAT/Core/Testing/CMakeLists.txt

@@ -1,7 +1,7 @@
 set(KIT ${PROJECT_NAME})
 
 set(KITTests_SRCS
-  ctkXnatConnectionTest.cpp
+  ctkXnatSessionTest.cpp
   )
 
 create_test_sourcelist(Tests ${KIT}CppTests.cpp
@@ -9,7 +9,7 @@ create_test_sourcelist(Tests ${KIT}CppTests.cpp
   )
 
 set(KITTests_MOC_SRCS
-  ctkXnatConnectionTest.h
+  ctkXnatSessionTest.h
   )
 
 QT4_WRAP_CPP(KITTests_MOC_CPP ${KITTests_MOC_SRCS})
@@ -21,4 +21,4 @@ macro(SIMPLE_TEST TESTNAME)
   add_test(NAME ${TESTNAME} COMMAND ${KIT}Tests ${TESTNAME})
 endmacro()
 
-SIMPLE_TEST(ctkXnatConnectionTest)
+SIMPLE_TEST(ctkXnatSessionTest)

+ 54 - 53
Libs/XNAT/Core/Testing/ctkXnatConnectionTest.cpp

@@ -18,7 +18,7 @@
 
 =========================================================================*/
 
-#include "ctkXnatConnectionTest.h"
+#include "ctkXnatSessionTest.h"
 
 #include <QCoreApplication>
 #include <QDebug>
@@ -31,17 +31,17 @@
 #include <QUrl>
 #include <QUuid>
 
-#include <ctkXnatConnection.h>
-#include <ctkXnatConnectionFactory.h>
+#include <ctkXnatDataModel.h>
+#include <ctkXnatSession.h>
+#include <ctkXnatSessionFactory.h>
 #include <ctkXnatProject.h>
-#include <ctkXnatServer.h>
 #include <ctkXnatSubject.h>
 
-class ctkXnatConnectionTestCasePrivate
+class ctkXnatSessionTestCasePrivate
 {
 public:
-  ctkXnatConnectionFactory* ConnectionFactory;
-  ctkXnatConnection* Connection;
+  ctkXnatSessionFactory* SessionFactory;
+  ctkXnatSession* Session;
 
   QString ServerUri;
   QString UserName;
@@ -53,74 +53,75 @@ public:
 };
 
 // --------------------------------------------------------------------------
-ctkXnatConnectionTestCase::ctkXnatConnectionTestCase()
-: d_ptr(new ctkXnatConnectionTestCasePrivate())
+ctkXnatSessionTestCase::ctkXnatSessionTestCase()
+: d_ptr(new ctkXnatSessionTestCasePrivate())
 {
 }
 
 // --------------------------------------------------------------------------
-ctkXnatConnectionTestCase::~ctkXnatConnectionTestCase()
+ctkXnatSessionTestCase::~ctkXnatSessionTestCase()
 {
 }
 
 // --------------------------------------------------------------------------
-void ctkXnatConnectionTestCase::initTestCase()
+void ctkXnatSessionTestCase::initTestCase()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
   d->ServerUri = "https://central.xnat.org";
   d->UserName = "ctk";
   d->Password = "ctk";
 
-  d->ConnectionFactory = new ctkXnatConnectionFactory();
-  d->Connection = d->ConnectionFactory->makeConnection(d->ServerUri, d->UserName, d->Password);
-  d->Connection->setProfileName("ctk");
+  d->SessionFactory = new ctkXnatSessionFactory();
+  d->Session = d->SessionFactory->makeConnection(d->ServerUri, d->UserName, d->Password);
+  d->Session->setProfileName("ctk");
 }
 
-void ctkXnatConnectionTestCase::cleanupTestCase()
+void ctkXnatSessionTestCase::cleanupTestCase()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  delete d->ConnectionFactory;
+  delete d->Session;
+  delete d->SessionFactory;
 }
 
-void ctkXnatConnectionTestCase::testProjectList()
+void ctkXnatSessionTestCase::testProjectList()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  ctkXnatServer* server = d->Connection->server();
-  server->fetch();
+  ctkXnatObject* dataModel = d->Session->dataModel();
+  dataModel->fetch();
 
-  QList<ctkXnatObject*> projects = server->children();
+  QList<ctkXnatObject*> projects = dataModel->children();
 
   QVERIFY(projects.size() > 0);
 }
 
-void ctkXnatConnectionTestCase::testResourceUri()
+void ctkXnatSessionTestCase::testResourceUri()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  ctkXnatServer* server = d->Connection->server();
-  QVERIFY(!server->resourceUri().isNull());
-  QVERIFY(server->resourceUri().isEmpty());
+  ctkXnatObject* dataModel = d->Session->dataModel();
+  QVERIFY(!dataModel->resourceUri().isNull());
+  QVERIFY(dataModel->resourceUri().isEmpty());
 }
 
-void ctkXnatConnectionTestCase::testParentChild()
+void ctkXnatSessionTestCase::testParentChild()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  ctkXnatServer* server = d->Connection->server();
+  ctkXnatDataModel* dataModel = d->Session->dataModel();
 
-  ctkXnatProject* project = new ctkXnatProject(server);
+  ctkXnatProject* project = new ctkXnatProject(dataModel);
 
-  QVERIFY(project->parent() == server);
+  QVERIFY(project->parent() == dataModel);
 
-  QVERIFY(server->children().contains(project));
+  QVERIFY(dataModel->children().contains(project));
 
-  server->add(project);
+  dataModel->add(project);
 
   int numberOfOccurrences = 0;
-  foreach (ctkXnatObject* serverProject, server->children())
+  foreach (ctkXnatObject* serverProject, dataModel->children())
   {
     if (serverProject == project || serverProject->id() == project->id())
     {
@@ -129,9 +130,9 @@ void ctkXnatConnectionTestCase::testParentChild()
   }
   QVERIFY(numberOfOccurrences == 1);
 
-  server->remove(project);
+  dataModel->remove(project);
   numberOfOccurrences = 0;
-  foreach (ctkXnatObject* serverProject, server->children())
+  foreach (ctkXnatObject* serverProject, dataModel->children())
   {
     if (serverProject == project || serverProject->id() == project->id())
     {
@@ -142,44 +143,44 @@ void ctkXnatConnectionTestCase::testParentChild()
   delete project;
 }
 
-void ctkXnatConnectionTestCase::testCreateProject()
+void ctkXnatSessionTestCase::testCreateProject()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  ctkXnatServer* server = d->Connection->server();
+  ctkXnatDataModel* dataModel = d->Session->dataModel();
 
   QString projectId = QString("CTK_") + QUuid::createUuid().toString().mid(1, 8);
   d->Project = projectId;
 
-  ctkXnatProject* project = new ctkXnatProject(server);
+  ctkXnatProject* project = new ctkXnatProject(dataModel);
   project->setId(projectId);
   project->setName(projectId);
   project->setDescription("CTK_test_project");
 
-  bool exists = d->Connection->exists(project);
+  bool exists = d->Session->exists(project);
   QVERIFY(!exists);
 
-  d->Connection->save(project);
+  d->Session->save(project);
 
-  exists = d->Connection->exists(project);
+  exists = d->Session->exists(project);
   QVERIFY(exists);
 
-  d->Connection->remove(project);
+  d->Session->remove(project);
 
-  exists = d->Connection->exists(project);
+  exists = d->Session->exists(project);
   QVERIFY(!exists);
 }
 
-void ctkXnatConnectionTestCase::testCreateSubject()
+void ctkXnatSessionTestCase::testCreateSubject()
 {
-  Q_D(ctkXnatConnectionTestCase);
+  Q_D(ctkXnatSessionTestCase);
 
-  ctkXnatServer* server = d->Connection->server();
+  ctkXnatDataModel* dataModel = d->Session->dataModel();
 
   QString projectId = QString("CTK_") + QUuid::createUuid().toString().mid(1, 8);
   d->Project = projectId;
 
-  ctkXnatProject* project = new ctkXnatProject(server);
+  ctkXnatProject* project = new ctkXnatProject(dataModel);
   project->setId(projectId);
   project->setName(projectId);
   project->setDescription("CTK_test_project");
@@ -210,9 +211,9 @@ void ctkXnatConnectionTestCase::testCreateSubject()
 }
 
 // --------------------------------------------------------------------------
-int ctkXnatConnectionTest(int argc, char* argv[])
+int ctkXnatSessionTest(int argc, char* argv[])
 {
   QCoreApplication app(argc, argv);
-  ctkXnatConnectionTestCase test;
+  ctkXnatSessionTestCase test;
   return QTest::qExec(&test, argc, argv);
 }

+ 10 - 10
Libs/XNAT/Core/Testing/ctkXnatConnectionTest.h

@@ -18,14 +18,14 @@
 
 =========================================================================*/
 
-#ifndef __ctkXnatConnectionTest_h
-#define __ctkXnatConnectionTest_h
+#ifndef __CTKXNATSESSIONTEST_H
+#define __CTKXNATSESSIONTEST_H
 
 #include <QObject>
 
-class ctkXnatConnectionTestCasePrivate;
+class ctkXnatSessionTestCasePrivate;
 
-class ctkXnatConnectionTestCase: public QObject
+class ctkXnatSessionTestCase: public QObject
 {
   Q_OBJECT
 
@@ -33,8 +33,8 @@ class ctkXnatConnectionTestCase: public QObject
 
 public:
 
-  explicit ctkXnatConnectionTestCase();
-  virtual ~ctkXnatConnectionTestCase();
+  explicit ctkXnatSessionTestCase();
+  virtual ~ctkXnatSessionTestCase();
 
 private slots:
 
@@ -53,13 +53,13 @@ private slots:
   void testCreateSubject();
 
 private:
-  QScopedPointer<ctkXnatConnectionTestCasePrivate> d_ptr;
+  QScopedPointer<ctkXnatSessionTestCasePrivate> d_ptr;
 
-  Q_DECLARE_PRIVATE(ctkXnatConnectionTestCase);
-  Q_DISABLE_COPY(ctkXnatConnectionTestCase);
+  Q_DECLARE_PRIVATE(ctkXnatSessionTestCase)
+  Q_DISABLE_COPY(ctkXnatSessionTestCase)
 };
 
 // --------------------------------------------------------------------------
-int ctkXnatConnectionTest(int argc, char* argv[]);
+int ctkXnatSessionTest(int argc, char* argv[]);
 
 #endif

+ 3 - 3
Libs/XNAT/Core/ctkXnatAPI.cpp

@@ -65,7 +65,7 @@ void ctkXnatAPI::parseResponse(qRestResult* restResult, const QByteArray& respon
     {
     // Some operations return an XML description of an object.
     // E.g. GET query for a specific subject.
-    restResult->setError(qRestAPI::ResponseParseError, QString("Bad data: ") + response);
+    restResult->setError(QString("Bad data: ") + response, qRestAPI::ResponseParseError);
     }
   else if (response.startsWith("<?xml "))
     {
@@ -89,7 +89,7 @@ void ctkXnatAPI::parseResponse(qRestResult* restResult, const QByteArray& respon
     }
   else
     {
-    restResult->setError(qRestAPI::ResponseParseError, QString("Bad data: ") + response);
+    restResult->setError(QString("Bad data: ") + response, qRestAPI::ResponseParseError);
     }
 
   restResult->setResult(result);
@@ -117,7 +117,7 @@ QList<QVariantMap> ctkXnatAPI::parseJsonResponse(qRestResult* restResult, const
     {
     if (!data.toString().isEmpty())
       {
-      restResult->setError(qRestAPI::ResponseParseError, QString("Bad data: ") + data.toString());
+      restResult->setError(QString("Bad data: ") + data.toString(), qRestAPI::ResponseParseError);
       }
     }
   if (data.isArray())

+ 80 - 0
Libs/XNAT/Core/ctkXnatDataModel.cpp

@@ -0,0 +1,80 @@
+/*=============================================================================
+
+  Plugin: org.commontk.xnat
+
+  Copyright (c) University College London,
+    Centre for Medical Image Computing
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+=============================================================================*/
+
+#include "ctkXnatDataModel.h"
+
+#include "ctkXnatObjectPrivate.h"
+#include "ctkXnatSession.h"
+#include "ctkXnatProject.h"
+
+#include <QDebug>
+
+class ctkXnatDataModelPrivate : public ctkXnatObjectPrivate
+{
+  explicit ctkXnatDataModelPrivate(ctkXnatSession* session);
+  virtual ~ctkXnatDataModelPrivate();
+
+private:
+  friend class ctkXnatDataModel;
+
+  ctkXnatSession* session;
+};
+
+ctkXnatDataModelPrivate::ctkXnatDataModelPrivate(ctkXnatSession* connection)
+: ctkXnatObjectPrivate()
+, session(connection)
+{
+}
+
+ctkXnatDataModelPrivate::~ctkXnatDataModelPrivate()
+{
+}
+
+ctkXnatDataModel::ctkXnatDataModel(ctkXnatSession* session)
+: ctkXnatObject(*new ctkXnatDataModelPrivate(session))
+{
+}
+
+QList<ctkXnatProject*> ctkXnatDataModel::projects() const
+{
+  QList<ctkXnatProject*> result;
+  foreach(ctkXnatObject* obj, this->children())
+  {
+    result.push_back(static_cast<ctkXnatProject*>(obj));
+  }
+  return result;
+}
+
+QString ctkXnatDataModel::resourceUri() const
+{
+  return "";
+}
+
+void ctkXnatDataModel::fetchImpl()
+{
+  this->session()->fetch(this);
+}
+
+ctkXnatSession* ctkXnatDataModel::session() const
+{
+  Q_D(const ctkXnatDataModel);
+  return d->session;
+}

+ 13 - 13
Libs/XNAT/Core/ctkXnatServer.h

@@ -19,36 +19,36 @@
 
 =============================================================================*/
 
-#ifndef ctkXnatServer_h
-#define ctkXnatServer_h
+#ifndef CTKXNATDATAMODEL_H
+#define CTKXNATDATAMODEL_H
 
 #include "ctkXNATCoreExport.h"
 
 #include "ctkXnatObject.h"
-#include "ctkXnatProject.h"
 
-class ctkXnatConnection;
-class ctkXnatServerPrivate;
+class ctkXnatDataModelPrivate;
+class ctkXnatProject;
+class ctkXnatSession;
 
-class CTK_XNAT_CORE_EXPORT ctkXnatServer : public ctkXnatObject
+class ctkXnatDataModel : public ctkXnatObject
 {
 
 public:
 
-  ctkXnatServer(ctkXnatConnection* connection);
+  ctkXnatDataModel(ctkXnatSession* connection);
 
-  virtual QString resourceUri() const;
+  QList<ctkXnatProject*> projects() const;
 
-protected:
-
-  virtual ctkXnatConnection* connection() const;
+  ctkXnatSession* session() const;
 
 private:
 
+  QString resourceUri() const;
+
   virtual void fetchImpl();
 
-  Q_DECLARE_PRIVATE(ctkXnatServer)
-  Q_DISABLE_COPY(ctkXnatServer)
+  Q_DECLARE_PRIVATE(ctkXnatDataModel)
+  Q_DISABLE_COPY(ctkXnatDataModel)
 };
 
 #endif

+ 3 - 3
Libs/XNAT/Core/ctkXnatExperiment.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatExperiment.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatSubject.h"
 
@@ -38,7 +38,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -64,5 +64,5 @@ void ctkXnatExperiment::reset()
 
 void ctkXnatExperiment::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 3 - 3
Libs/XNAT/Core/ctkXnatFile.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatFile.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 
 
@@ -38,7 +38,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -58,7 +58,7 @@ QString ctkXnatFile::resourceUri() const
 
 void ctkXnatFile::download(const QString& filename)
 {
-  this->connection()->download(this, filename);
+  this->session()->download(this, filename);
 }
 
 void ctkXnatFile::upload(const QString& /*filename*/)

+ 10 - 13
Libs/XNAT/Core/ctkXnatObject.cpp

@@ -22,8 +22,8 @@
 #include "ctkXnatObject.h"
 #include "ctkXnatObjectPrivate.h"
 
-#include "ctkXnatConnection.h"
-#include "ctkXnatServer.h"
+#include "ctkXnatSession.h"
+#include "ctkXnatDataModel.h"
 
 #include <QDebug>
 #include <QVariant>
@@ -192,18 +192,15 @@ void ctkXnatObject::fetch()
   }
 }
 
-ctkXnatConnection* ctkXnatObject::connection() const
+ctkXnatSession* ctkXnatObject::session() const
 {
   const ctkXnatObject* xnatObject = this;
-  const ctkXnatServer* server;
-  do
+  while (ctkXnatObject* parent = xnatObject->parent())
   {
-    xnatObject = xnatObject->parent();
-    server = dynamic_cast<const ctkXnatServer*>(xnatObject);
+    xnatObject = parent;
   }
-  while (xnatObject && !server);
-
-  return server ? xnatObject->connection() : 0;
+  const ctkXnatDataModel* dataModel = dynamic_cast<const ctkXnatDataModel*>(xnatObject);
+  return dataModel ? dataModel->session() : NULL;
 }
 
 void ctkXnatObject::download(const QString& /*zipFilename*/)
@@ -216,16 +213,16 @@ void ctkXnatObject::upload(const QString& /*zipFilename*/)
 
 bool ctkXnatObject::exists() const
 {
-  return this->connection()->exists(this);
+  return this->session()->exists(this);
 }
 
 void ctkXnatObject::save()
 {
-  this->connection()->save(this);
+  this->session()->save(this);
 }
 
 void ctkXnatObject::erase()
 {
-  this->connection()->remove(this);
+  this->session()->remove(this);
   this->parent()->remove(this);
 }

+ 17 - 2
Libs/XNAT/Core/ctkXnatObject.h

@@ -29,7 +29,7 @@
 #include <QString>
 #include <QMetaType>
 
-class ctkXnatConnection;
+class ctkXnatSession;
 class ctkXnatObjectPrivate;
 
 //----------------------------------------------------------------------------
@@ -117,6 +117,21 @@ public:
   virtual void download(const QString&);
   virtual void upload(const QString&);
 
+  //QObject* asyncObject() const;
+
+  // *********************
+  // Add signals for async API
+  //Q_SIGNAL downloadFinished(const QString&);
+
+  // *********************
+  // SLOTS for async error handling
+  //Q_SLOT serverError(XnatError errorType, const QString& message);
+
+  // *********************
+  // Add blocking methods
+  // throws ctkXnatTimeoutException
+  //bool waitForDownloadFinished(const QString&);
+
 protected:
 
   /// Constructs the ctkXnatObject.
@@ -127,7 +142,7 @@ protected:
 
   /// Gets the object that represents the connection to the XNAT server
   /// that stores the current object.
-  virtual ctkXnatConnection* connection() const;
+  ctkXnatSession* session() const;
 
   /// The private implementation part of the object.
   const QScopedPointer<ctkXnatObjectPrivate> d_ptr;

+ 4 - 4
Libs/XNAT/Core/ctkXnatProject.cpp

@@ -21,9 +21,9 @@
 
 #include "ctkXnatProject.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatDataModel.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
-#include "ctkXnatServer.h"
 
 class ctkXnatProjectPrivate : public ctkXnatObjectPrivate
 {
@@ -48,7 +48,7 @@ public:
 //  QString uri;
 };
 
-ctkXnatProject::ctkXnatProject(ctkXnatServer* parent, const QString& schemaType)
+ctkXnatProject::ctkXnatProject(ctkXnatDataModel* parent, const QString& schemaType)
 : ctkXnatObject(*new ctkXnatProjectPrivate(), parent, schemaType)
 {
 }
@@ -117,5 +117,5 @@ void ctkXnatProject::reset()
 
 void ctkXnatProject::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 3 - 4
Libs/XNAT/Core/ctkXnatProject.h

@@ -26,16 +26,15 @@
 
 #include "ctkXnatObject.h"
 
-class ctkXnatConnection;
+class ctkXnatDataModel;
 class ctkXnatProjectPrivate;
-class ctkXnatServer;
 
 class CTK_XNAT_CORE_EXPORT ctkXnatProject : public ctkXnatObject
 {
 
 public:
 
-  explicit ctkXnatProject(ctkXnatServer* parent = 0, const QString& schemaType = "xnat:projectData");
+  explicit ctkXnatProject(ctkXnatDataModel* parent = 0, const QString& schemaType = "xnat:projectData");
   virtual ~ctkXnatProject();
 
   virtual QString resourceUri() const;
@@ -50,7 +49,7 @@ public:
   void setPiLastName(const QString& piLastName);
 
   void reset();
-  
+
 private:
 
   friend class qRestResult;

+ 3 - 3
Libs/XNAT/Core/ctkXnatReconstruction.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatReconstruction.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatReconstructionFolder.h"
 
@@ -38,7 +38,7 @@ public:
   {
     uri.clear();
   }
-  
+
   QString uri;
 };
 
@@ -64,5 +64,5 @@ void ctkXnatReconstruction::reset()
 
 void ctkXnatReconstruction::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 3 - 3
Libs/XNAT/Core/ctkXnatReconstructionFolder.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatReconstructionFolder.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
 
@@ -39,7 +39,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -66,5 +66,5 @@ void ctkXnatReconstructionFolder::reset()
 
 void ctkXnatReconstructionFolder::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 4 - 4
Libs/XNAT/Core/ctkXnatReconstructionResource.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatReconstructionResource.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatReconstruction.h"
 
@@ -38,7 +38,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -64,10 +64,10 @@ void ctkXnatReconstructionResource::reset()
 
 void ctkXnatReconstructionResource::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }
 
 void ctkXnatReconstructionResource::download(const QString& filename)
 {
-  this->connection()->download(this, filename);
+  this->session()->download(this, filename);
 }

+ 3 - 3
Libs/XNAT/Core/ctkXnatScan.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatScan.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatScanFolder.h"
 #include "ctkXnatObjectPrivate.h"
 
@@ -38,7 +38,7 @@ public:
   {
     uri.clear();
   }
-  
+
   QString uri;
 };
 
@@ -64,5 +64,5 @@ void ctkXnatScan::reset()
 
 void ctkXnatScan::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 3 - 3
Libs/XNAT/Core/ctkXnatScanFolder.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatScanFolder.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatObjectPrivate.h"
 
@@ -39,7 +39,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -66,5 +66,5 @@ void ctkXnatScanFolder::reset()
 
 void ctkXnatScanFolder::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 4 - 4
Libs/XNAT/Core/ctkXnatScanResource.cpp

@@ -21,7 +21,7 @@
 
 #include "ctkXnatScanResource.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatScan.h"
 
@@ -38,7 +38,7 @@ public:
   {
 //    uri.clear();
   }
-  
+
 //  QString uri;
 };
 
@@ -64,10 +64,10 @@ void ctkXnatScanResource::reset()
 
 void ctkXnatScanResource::fetchImpl()
 {
-  this->connection()->fetch(this);
+  this->session()->fetch(this);
 }
 
 void ctkXnatScanResource::download(const QString& filename)
 {
-  this->connection()->download(this, filename);
+  this->session()->download(this, filename);
 }

+ 0 - 69
Libs/XNAT/Core/ctkXnatServer.cpp

@@ -1,69 +0,0 @@
-/*=============================================================================
-
-  Plugin: org.commontk.xnat
-
-  Copyright (c) University College London,
-    Centre for Medical Image Computing
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-=============================================================================*/
-
-#include "ctkXnatServer.h"
-
-#include "ctkXnatObjectPrivate.h"
-#include "ctkXnatConnection.h"
-
-#include <QDebug>
-
-class ctkXnatServerPrivate : public ctkXnatObjectPrivate
-{
-  explicit ctkXnatServerPrivate(ctkXnatConnection* connection);
-  virtual ~ctkXnatServerPrivate();
-
-private:
-  friend class ctkXnatServer;
-
-  ctkXnatConnection* connection;
-};
-
-ctkXnatServerPrivate::ctkXnatServerPrivate(ctkXnatConnection* connection)
-: ctkXnatObjectPrivate()
-, connection(connection)
-{
-}
-
-ctkXnatServerPrivate::~ctkXnatServerPrivate()
-{
-}
-
-ctkXnatServer::ctkXnatServer(ctkXnatConnection* connection)
-: ctkXnatObject(*new ctkXnatServerPrivate(connection))
-{
-}
-
-QString ctkXnatServer::resourceUri() const
-{
-  return "";
-}
-
-void ctkXnatServer::fetchImpl()
-{
-  this->connection()->fetch(this);
-}
-
-ctkXnatConnection* ctkXnatServer::connection() const
-{
-  Q_D(const ctkXnatServer);
-  return d->connection;
-}

+ 102 - 103
Libs/XNAT/Core/ctkXnatConnection.cpp

@@ -19,8 +19,9 @@
 
 =============================================================================*/
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 
+#include "ctkXnatDataModel.h"
 #include "ctkXnatException.h"
 #include "ctkXnatExperiment.h"
 #include "ctkXnatFile.h"
@@ -32,7 +33,6 @@
 #include "ctkXnatScan.h"
 #include "ctkXnatScanFolder.h"
 #include "ctkXnatScanResource.h"
-#include "ctkXnatServer.h"
 #include "ctkXnatSubject.h"
 
 #include <QDebug>
@@ -42,7 +42,7 @@
 #include <ctkXnatAPI_p.h>
 #include <qRestResult.h>
 
-class ctkXnatConnectionPrivate
+class ctkXnatSessionPrivate
 {
 public:
   QString profileName;
@@ -53,12 +53,12 @@ public:
   ctkXnatAPI* xnat;
   ctkXnatAPI::RawHeaders rawHeaders;
 
-  ctkXnatServer* server;
+  ctkXnatDataModel* dataModel;
 
   void throwXnatException(const QString& msg);
 };
 
-void ctkXnatConnectionPrivate::throwXnatException(const QString& msg)
+void ctkXnatSessionPrivate::throwXnatException(const QString& msg)
 {
   QString errorMsg = msg.trimmed();
   if (!errorMsg.isEmpty())
@@ -78,113 +78,113 @@ void ctkXnatConnectionPrivate::throwXnatException(const QString& msg)
   }
 }
 
-// ctkXnatConnection class
+// ctkXnatSession class
 
-ctkXnatConnection::ctkXnatConnection()
-: d_ptr(new ctkXnatConnectionPrivate())
+ctkXnatSession::ctkXnatSession()
+: d_ptr(new ctkXnatSessionPrivate())
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   d->xnat = new ctkXnatAPI();
 
   // TODO This is a workaround for connecting to sites with self-signed
-  // certificate. Should be replaced with something more clever.  
+  // certificate. Should be replaced with something more clever.
   d->xnat->setSuppressSslErrors(true);
   d->rawHeaders["User-Agent"] = "Qt";
   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 
-  d->server = new ctkXnatServer(this);
+  d->dataModel = new ctkXnatDataModel(this);
   createConnections();
 }
 
-ctkXnatConnection::~ctkXnatConnection()
+ctkXnatSession::~ctkXnatSession()
 {
-  Q_D(ctkXnatConnection);
-  delete d->server;
+  Q_D(ctkXnatSession);
+  delete d->dataModel;
   delete d->xnat;
 }
 
-void ctkXnatConnection::createConnections()
+void ctkXnatSession::createConnections()
 {
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 //  connect(d->xnat, SIGNAL(resultReceived(QUuid,QList<QVariantMap>)),
 //           this, SLOT(processResult(QUuid,QList<QVariantMap>)));
 //  connect(d->xnat, SIGNAL(progress(QUuid,double)),
 //           this, SLOT(progress(QUuid,double)));
 }
 
-void ctkXnatConnection::progress(QUuid /*queryId*/, double /*progress*/)
+void ctkXnatSession::progress(QUuid /*queryId*/, double /*progress*/)
 {
-//  qDebug() << "ctkXnatConnection::progress(QUuid queryId, double progress)";
+//  qDebug() << "ctkXnatSession::progress(QUuid queryId, double progress)";
 //  qDebug() << "query id:" << queryId;
 //  qDebug() << "progress:" << (progress * 100.0) << "%";
 }
 
-QString ctkXnatConnection::profileName() const
+QString ctkXnatSession::profileName() const
 {
-  Q_D(const ctkXnatConnection);
+  Q_D(const ctkXnatSession);
   return d->profileName;
 }
 
-void ctkXnatConnection::setProfileName(const QString& profileName)
+void ctkXnatSession::setProfileName(const QString& profileName)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   d->profileName = profileName;
-  d->server->setProperty("name", profileName);
+  d->dataModel->setProperty("name", profileName);
 }
 
-QString ctkXnatConnection::url() const
+QString ctkXnatSession::url() const
 {
-  Q_D(const ctkXnatConnection);
+  Q_D(const ctkXnatSession);
   return d->url;
 }
 
-void ctkXnatConnection::setUrl(const QString& url)
+void ctkXnatSession::setUrl(const QString& url)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   d->url = url;
   d->xnat->setServerUrl(d->url);
-  d->server->setProperty("ID", url);
+  d->dataModel->setProperty("ID", url);
 }
 
-QString ctkXnatConnection::userName() const
+QString ctkXnatSession::userName() const
 {
-  Q_D(const ctkXnatConnection);
+  Q_D(const ctkXnatSession);
   return d->userName;
 }
 
-void ctkXnatConnection::setUserName(const QString& userName)
+void ctkXnatSession::setUserName(const QString& userName)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   d->userName = userName;
   d->rawHeaders["Authorization"] = "Basic " +
       QByteArray(QString("%1:%2").arg(d->userName).arg(d->password).toAscii()).toBase64();
   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 }
 
-QString ctkXnatConnection::password() const
+QString ctkXnatSession::password() const
 {
-  Q_D(const ctkXnatConnection);
+  Q_D(const ctkXnatSession);
   return d->password;
 }
 
-void ctkXnatConnection::setPassword(const QString& password)
+void ctkXnatSession::setPassword(const QString& password)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   d->password = password;
   d->rawHeaders["Authorization"] = "Basic " +
       QByteArray(QString("%1:%2").arg(d->userName).arg(d->password).toAscii()).toBase64();
   d->xnat->setDefaultRawHeaders(d->rawHeaders);
 }
 
-ctkXnatServer* ctkXnatConnection::server() const
+ctkXnatDataModel* ctkXnatSession::dataModel() const
 {
-  Q_D(const ctkXnatConnection);
-  return d->server;
+  Q_D(const ctkXnatSession);
+  return d->dataModel;
 }
 
-void ctkXnatConnection::fetch(ctkXnatServer* server)
+void ctkXnatSession::fetch(ctkXnatDataModel* dataModel)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString projectsUri("/data/archive/projects");
 
@@ -192,19 +192,19 @@ void ctkXnatConnection::fetch(ctkXnatServer* server)
   qRestResult* restResult = d->xnat->takeResult(queryId);
   QList<ctkXnatProject*> projects = restResult->results<ctkXnatProject>();
 
-  qDebug() << "ctkXnatConnection::fetch(ctkXnatServer* server): project number:" << projects.size();
+  qDebug() << "ctkXnatSession::fetch(ctkXnatDataModel* server): project number:" << projects.size();
 
   foreach (ctkXnatProject* project, projects)
   {
-    server->add(project);
+    dataModel->add(project);
   }
 
   delete restResult;
 }
 
-void ctkXnatConnection::fetch(ctkXnatProject* project)
+void ctkXnatSession::fetch(ctkXnatProject* project)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString subjectsUri = project->resourceUri() + "/subjects";
   QUuid queryId = d->xnat->get(subjectsUri);
@@ -225,9 +225,9 @@ void ctkXnatConnection::fetch(ctkXnatProject* project)
   delete restResult;
 }
 
-void ctkXnatConnection::fetch(ctkXnatSubject* subject)
+void ctkXnatSession::fetch(ctkXnatSubject* subject)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString experimentsUri = subject->resourceUri() + "/experiments";
   QUuid queryId = d->xnat->get(experimentsUri);
@@ -249,22 +249,22 @@ void ctkXnatConnection::fetch(ctkXnatSubject* subject)
   delete restResult;
 }
 
-void ctkXnatConnection::fetch(ctkXnatExperiment* experiment)
+void ctkXnatSession::fetch(ctkXnatExperiment* experiment)
 {
-  Q_D(ctkXnatConnection);
-  
+  Q_D(ctkXnatSession);
+
   QString scansUri = experiment->resourceUri() + "/scans";
   QUuid scansQueryId = d->xnat->get(scansUri);
   qRestResult* restResult = d->xnat->takeResult(scansQueryId);
-  
+
   QList<ctkXnatScan*> scans = restResult->results<ctkXnatScan>();
-  
+
   if (scans.size() > 0)
   {
     ctkXnatScanFolder* scanFolder = new ctkXnatScanFolder();
     experiment->add(scanFolder);
   }
-  
+
   delete restResult;
 
   QString reconstructionsUri = experiment->resourceUri() + "/reconstructions";
@@ -282,35 +282,35 @@ void ctkXnatConnection::fetch(ctkXnatExperiment* experiment)
   delete restResult;
 }
 
-void ctkXnatConnection::fetch(ctkXnatScanFolder* scanFolder)
+void ctkXnatSession::fetch(ctkXnatScanFolder* scanFolder)
 {
-  Q_D(ctkXnatConnection);
-  
+  Q_D(ctkXnatSession);
+
   QString scansUri = scanFolder->resourceUri();
   QUuid queryId = d->xnat->get(scansUri);
   qRestResult* restResult = d->xnat->takeResult(queryId);
 
   QList<ctkXnatScan*> scans = restResult->results<ctkXnatScan>();
-  
+
   foreach (ctkXnatScan* scan, scans)
   {
     scanFolder->add(scan);
   }
-  
+
   delete restResult;
-  
+
 }
 
-void ctkXnatConnection::fetch(ctkXnatScan* scan)
+void ctkXnatSession::fetch(ctkXnatScan* scan)
 {
-  Q_D(ctkXnatConnection);
-  
+  Q_D(ctkXnatSession);
+
   QString scanResourcesUri = scan->resourceUri() + "/resources";
   QUuid queryId = d->xnat->get(scanResourcesUri);
   qRestResult* restResult = d->xnat->takeResult(queryId);
-  
+
   QList<ctkXnatScanResource*> scanResources = restResult->results<ctkXnatScanResource>();
-  
+
   foreach (ctkXnatScanResource* scanResource, scanResources)
   {
     QString label = scanResource->property("label");
@@ -322,14 +322,14 @@ void ctkXnatConnection::fetch(ctkXnatScan* scan)
   }
 }
 
-void ctkXnatConnection::fetch(ctkXnatScanResource* scanResource)
+void ctkXnatSession::fetch(ctkXnatScanResource* scanResource)
 {
-  Q_D(ctkXnatConnection);
-  
+  Q_D(ctkXnatSession);
+
   QString scanResourceFilesUri = scanResource->resourceUri() + "/files";
   QUuid queryId = d->xnat->get(scanResourceFilesUri);
   qRestResult* restResult = d->xnat->takeResult(queryId);
-  
+
   QList<ctkXnatFile*> files = restResult->results<ctkXnatFile>();
 
   foreach (ctkXnatFile* file, files)
@@ -343,9 +343,9 @@ void ctkXnatConnection::fetch(ctkXnatScanResource* scanResource)
   }
 }
 
-void ctkXnatConnection::fetch(ctkXnatReconstructionFolder* reconstructionFolder)
+void ctkXnatSession::fetch(ctkXnatReconstructionFolder* reconstructionFolder)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString reconstructionsUri = reconstructionFolder->resourceUri();
   QUuid queryId = d->xnat->get(reconstructionsUri);
@@ -362,9 +362,9 @@ void ctkXnatConnection::fetch(ctkXnatReconstructionFolder* reconstructionFolder)
 
 }
 
-void ctkXnatConnection::fetch(ctkXnatReconstruction* reconstruction)
+void ctkXnatSession::fetch(ctkXnatReconstruction* reconstruction)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString reconstructionResourcesUri = reconstruction->resourceUri() + "/resources";
   QUuid queryId = d->xnat->get(reconstructionResourcesUri);
@@ -384,9 +384,9 @@ void ctkXnatConnection::fetch(ctkXnatReconstruction* reconstruction)
   }
 }
 
-void ctkXnatConnection::fetch(ctkXnatReconstructionResource* reconstructionResource)
+void ctkXnatSession::fetch(ctkXnatReconstructionResource* reconstructionResource)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString reconstructionResourceFilesUri = reconstructionResource->resourceUri() + "/files";
   QUuid queryId = d->xnat->get(reconstructionResourceFilesUri);
@@ -406,9 +406,9 @@ void ctkXnatConnection::fetch(ctkXnatReconstructionResource* reconstructionResou
   }
 }
 
-bool ctkXnatConnection::exists(const ctkXnatObject* object)
+bool ctkXnatSession::exists(const ctkXnatObject* object)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString query = object->resourceUri();
   bool success = d->xnat->sync(d->xnat->get(query));
@@ -416,12 +416,11 @@ bool ctkXnatConnection::exists(const ctkXnatObject* object)
   return success;
 }
 
-void ctkXnatConnection::save(ctkXnatObject* object)
+void ctkXnatSession::save(ctkXnatObject* object)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString query = object->resourceUri();
-
   query.append(QString("?%1=%2").arg("xsi:type", object->schemaType()));
   const QMap<QString, QString>& properties = object->properties();
   QMapIterator<QString, QString> itProperties(properties);
@@ -431,7 +430,7 @@ void ctkXnatConnection::save(ctkXnatObject* object)
     query.append(QString("&%1=%2").arg(itProperties.key(), itProperties.value()));
   }
 
-  qDebug() << "ctkXnatConnection::create() query:" << query;
+  qDebug() << "ctkXnatSession::save() query:" << query;
   QUuid queryId = d->xnat->put(query);
   qRestResult* result = d->xnat->takeResult(queryId);
 
@@ -451,9 +450,9 @@ void ctkXnatConnection::save(ctkXnatObject* object)
   }
 }
 
-void ctkXnatConnection::remove(ctkXnatObject* object)
+void ctkXnatSession::remove(ctkXnatObject* object)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString query = object->resourceUri();
   bool success = d->xnat->sync(d->xnat->del(query));
@@ -464,13 +463,13 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
   }
 }
 
-//void ctkXnatConnection::create(ctkXnatSubject* subject)
+//void ctkXnatSession::create(ctkXnatSubject* subject)
 //{
 //  const QString& subjectName = subject->getName();
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2").arg(projectName, subjectName);
 //  bool success = d->xnat->sync(d->xnat->put(query));
@@ -481,7 +480,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  }
 //}
 
-//void ctkXnatConnection::downloadScanFiles(ctkXnatExperiment* experiment, const QString& fileName)
+//void ctkXnatSession::downloadScanFiles(ctkXnatExperiment* experiment, const QString& fileName)
 //{
 //  const QString& experimentName = experiment->getName();
 //  ctkXnatObject* subject = experiment->getParent();
@@ -489,7 +488,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/ALL/files").arg(projectName, subjectName, experimentName);
 //  qRestAPI::Parameters parameters;
@@ -498,7 +497,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-//void ctkXnatConnection::downloadReconstructionFiles(ctkXnatExperiment* experiment, const QString& fileName)
+//void ctkXnatSession::downloadReconstructionFiles(ctkXnatExperiment* experiment, const QString& fileName)
 //{
 //  const QString& experimentName = experiment->getName();
 //  ctkXnatObject* subject = experiment->getParent();
@@ -506,7 +505,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/ALL/files").arg(projectName, subjectName, experimentName);
 //  qRestAPI::Parameters parameters;
@@ -515,7 +514,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-//void ctkXnatConnection::downloadReconstruction(ctkXnatReconstruction* reconstruction, const QString& fileName)
+//void ctkXnatSession::downloadReconstruction(ctkXnatReconstruction* reconstruction, const QString& fileName)
 //{
 //  const QString& reconstructionName = reconstruction->getName();
 //  ctkXnatObject* experiment = reconstruction->getParent();
@@ -525,7 +524,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/files").arg(projectName, subjectName, experimentName, reconstructionName);
 //  qRestAPI::Parameters parameters;
@@ -534,7 +533,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-//void ctkXnatConnection::downloadReconstructionResourceFiles(ctkXnatReconstructionResource* reconstructionResource, const QString& fileName)
+//void ctkXnatSession::downloadReconstructionResourceFiles(ctkXnatReconstructionResource* reconstructionResource, const QString& fileName)
 //{
 //  const QString& reconstructionResourceName = reconstructionResource->getName();
 //  ctkXnatObject* reconstruction = reconstructionResource->getParent();
@@ -546,7 +545,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/ALL/resources/%5/files").arg(projectName, subjectName, experimentName, reconstructionName, reconstructionResourceName);
 //  qRestAPI::Parameters parameters;
@@ -555,7 +554,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-//void ctkXnatConnection::download(ctkXnatReconstructionResourceFile* reconstructionResourceFile, const QString& fileName)
+//void ctkXnatSession::download(ctkXnatReconstructionResourceFile* reconstructionResourceFile, const QString& fileName)
 //{
 //  const QString& reconstructionResourceFileName = reconstructionResourceFile->getName();
 //  ctkXnatObject* reconstructionResource = reconstructionResourceFile->getParent();
@@ -569,7 +568,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/reconstructions/%4/resources/%5/files/%6").arg(projectName, subjectName, experimentName, reconstructionName, reconstructionResourceName, reconstructionResourceFileName);
 //  qRestAPI::Parameters parameters;
@@ -578,7 +577,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-//void ctkXnatConnection::download(ctkXnatScan* scan, const QString& fileName)
+//void ctkXnatSession::download(ctkXnatScan* scan, const QString& fileName)
 //{
 //  const QString& scanName = scan->getName();
 //  ctkXnatObject* experiment = scan->getParent()->getParent();
@@ -588,7 +587,7 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  ctkXnatObject* project = subject->getParent();
 //  const QString& projectName = project->getName();
 
-//  Q_D(ctkXnatConnection);
+//  Q_D(ctkXnatSession);
 
 //  QString query = QString("/REST/projects/%1/subjects/%2/experiments/%3/scans/%4/files").arg(projectName, subjectName, experimentName, scanName);
 //  qRestAPI::Parameters parameters;
@@ -597,18 +596,18 @@ void ctkXnatConnection::remove(ctkXnatObject* object)
 //  d->xnat->sync(queryId);
 //}
 
-void ctkXnatConnection::download(ctkXnatFile* file, const QString& fileName)
+void ctkXnatSession::download(ctkXnatFile* file, const QString& fileName)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
   QString query = file->resourceUri();
 
   QUuid queryId = d->xnat->download(fileName, query);
   d->xnat->sync(queryId);
 }
 
-void ctkXnatConnection::download(ctkXnatScanResource* scanResource, const QString& fileName)
+void ctkXnatSession::download(ctkXnatScanResource* scanResource, const QString& fileName)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString query = scanResource->resourceUri() + "/files";
   qRestAPI::Parameters parameters;
@@ -617,9 +616,9 @@ void ctkXnatConnection::download(ctkXnatScanResource* scanResource, const QStrin
   d->xnat->sync(queryId);
 }
 
-void ctkXnatConnection::download(ctkXnatReconstructionResource* reconstructionResource, const QString& fileName)
+void ctkXnatSession::download(ctkXnatReconstructionResource* reconstructionResource, const QString& fileName)
 {
-  Q_D(ctkXnatConnection);
+  Q_D(ctkXnatSession);
 
   QString query = reconstructionResource->resourceUri() + "/files";
   qRestAPI::Parameters parameters;
@@ -628,7 +627,7 @@ void ctkXnatConnection::download(ctkXnatReconstructionResource* reconstructionRe
   d->xnat->sync(queryId);
 }
 
-void ctkXnatConnection::processResult(QUuid queryId, QList<QVariantMap> parameters)
+void ctkXnatSession::processResult(QUuid queryId, QList<QVariantMap> parameters)
 {
   Q_UNUSED(queryId)
   Q_UNUSED(parameters)

+ 22 - 12
Libs/XNAT/Core/ctkXnatConnection.h

@@ -19,8 +19,8 @@
 
 =============================================================================*/
 
-#ifndef ctkXnatConnection_h
-#define ctkXnatConnection_h
+#ifndef CTKXNATSESSION_H
+#define CTKXNATSESSION_H
 
 #include "ctkXNATCoreExport.h"
 
@@ -31,8 +31,9 @@
 #include <QVariantMap>
 #include <QUuid>
 
-class ctkXnatConnectionPrivate;
+class ctkXnatSessionPrivate;
 
+class ctkXnatDataModel;
 class ctkXnatExperiment;
 class ctkXnatFile;
 class ctkXnatObject;
@@ -44,19 +45,26 @@ class ctkXnatRoot;
 class ctkXnatScan;
 class ctkXnatScanFolder;
 class ctkXnatScanResource;
-class ctkXnatServer;
 class ctkXnatSubject;
 
-class CTK_XNAT_CORE_EXPORT ctkXnatConnection
+class CTK_XNAT_CORE_EXPORT ctkXnatSession
 {
 
 public:
 
-  ctkXnatConnection();
-  ~ctkXnatConnection();
+  //********
+  // Add ctkXnatLoginProfile argument
+  ctkXnatSession();
+  ~ctkXnatSession();
 
+  // **********
+  // Remove ?
+  // For Qt singal/slots; should go into the constructor or private impl.
   void createConnections();
 
+  // **********
+  // Remove / replase
+
   QString profileName() const;
   void setProfileName(const QString& profileName);
 
@@ -69,9 +77,11 @@ public:
   QString password() const;
   void setPassword(const QString& password);
 
-  ctkXnatServer* server() const;
+  ctkXnatDataModel* dataModel() const;
 
-  void fetch(ctkXnatServer* server);
+  // **********
+  // Should these methods still be moved to the subclasses?
+  void fetch(ctkXnatDataModel* server);
   void fetch(ctkXnatProject* project);
   void fetch(ctkXnatSubject* subject);
   void fetch(ctkXnatExperiment* experiment);
@@ -108,11 +118,11 @@ public slots:
   void progress(QUuid queryId, double progress);
 
 protected:
-  QScopedPointer<ctkXnatConnectionPrivate> d_ptr;
+  QScopedPointer<ctkXnatSessionPrivate> d_ptr;
 
 private:
-  Q_DECLARE_PRIVATE(ctkXnatConnection)
-  Q_DISABLE_COPY(ctkXnatConnection)
+  Q_DECLARE_PRIVATE(ctkXnatSession)
+  Q_DISABLE_COPY(ctkXnatSession)
 };
 
 #endif

+ 15 - 15
Libs/XNAT/Core/ctkXnatConnectionFactory.cpp

@@ -19,45 +19,45 @@
 
 =============================================================================*/
 
-#include "ctkXnatConnectionFactory.h"
+#include "ctkXnatSessionFactory.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObject.h"
-#include "ctkXnatServer.h"
+#include "ctkXnatDataModel.h"
 
 #include <QDebug>
 
-// ctkXnatConnectionFactory class
+// ctkXnatSessionFactory class
 
-ctkXnatConnection* ctkXnatConnectionFactory::makeConnection(const QString& url, const QString& user, const QString& password)
+ctkXnatSession* ctkXnatSessionFactory::makeConnection(const QString& url, const QString& user, const QString& password)
 {
   // create XNAT connection
-  ctkXnatConnection* connection = new ctkXnatConnection;
+  ctkXnatSession* session = new ctkXnatSession;
 
   // test XNAT connection
   try
   {
-    testConnection(connection);
+    testConnection(session);
   }
   catch (...)
   {
-    delete connection;
+    delete session;
     throw;
   }
 
-  connection->setUrl(url);
-  qDebug() << "ctkXnatConnectionFactory::makeConnection(const QString& url, const QString& user, const QString& password) url:" << url;
-  connection->setUserName(user);
-  connection->setPassword(password);
+  session->setUrl(url);
+  qDebug() << "ctkXnatSessionFactory::makeConnection(const QString& url, const QString& user, const QString& password) url:" << url;
+  session->setUserName(user);
+  session->setPassword(password);
 
   // return XNAT connection
-  return connection;
+  return session;
 }
 
-void ctkXnatConnectionFactory::testConnection(ctkXnatConnection* connection)
+void ctkXnatSessionFactory::testConnection(ctkXnatSession* session)
 {
   // test connection by retrieving project names from XNAT
-  ctkXnatServer* server = connection->server();
+  session->dataModel();
 
   // TODO E.g. get version
 }

+ 6 - 6
Libs/XNAT/Core/ctkXnatConnectionFactory.h

@@ -19,24 +19,24 @@
 
 =============================================================================*/
 
-#ifndef ctkXnatConnectionFactory_h
-#define ctkXnatConnectionFactory_h
+#ifndef CTKXNATSESSIONFACTORY_H
+#define CTKXNATSESSIONFACTORY_H
 
 #include "ctkXNATCoreExport.h"
 
 #include <QString>
 
-class ctkXnatConnection;
+class ctkXnatSession;
 
-class CTK_XNAT_CORE_EXPORT ctkXnatConnectionFactory
+class CTK_XNAT_CORE_EXPORT ctkXnatSessionFactory
 {
 public:
 
-  ctkXnatConnection* makeConnection(const QString& url, const QString& user, const QString& password);
+  ctkXnatSession* makeConnection(const QString& url, const QString& user, const QString& password);
 
 private:
 
-  void testConnection(ctkXnatConnection* conn);
+  void testConnection(ctkXnatSession* conn);
 };
 
 #endif

+ 2 - 2
Libs/XNAT/Core/ctkXnatSubject.cpp

@@ -23,7 +23,7 @@
 
 #include "ctkXnatProject.h"
 
-#include "ctkXnatConnection.h"
+#include "ctkXnatSession.h"
 #include "ctkXnatObjectPrivate.h"
 #include "ctkXnatProject.h"
 
@@ -97,5 +97,5 @@ void ctkXnatSubject::reset()
 
 void ctkXnatSubject::fetchImpl()
 {
-  connection()->fetch(this);
+  this->session()->fetch(this);
 }

+ 19 - 19
Libs/XNAT/Widgets/ctkXnatLoginDialog.cpp

@@ -27,8 +27,8 @@
 #include <QStringListModel>
 #include <QTimer>
 
-#include <ctkXnatConnection.h>
-#include <ctkXnatConnectionFactory.h>
+#include <ctkXnatSession.h>
+#include <ctkXnatSessionFactory.h>
 #include <ctkException.h>
 #include "ctkXnatLoginProfile.h"
 #include "ctkXnatSettings.h"
@@ -36,15 +36,15 @@
 class ctkXnatLoginDialogPrivate
 {
 public:
-  ctkXnatLoginDialogPrivate(ctkXnatConnectionFactory* f)
+  ctkXnatLoginDialogPrivate(ctkXnatSessionFactory* f)
   : Factory(f)
   {
   }
 
   ctkXnatSettings* Settings;
 
-  ctkXnatConnectionFactory* Factory;
-  ctkXnatConnection* Connection;
+  ctkXnatSessionFactory* Factory;
+  ctkXnatSession* Session;
 
   QMap<QString, ctkXnatLoginProfile*> Profiles;
 
@@ -54,7 +54,7 @@ public:
   bool Dirty;
 };
 
-ctkXnatLoginDialog::ctkXnatLoginDialog(ctkXnatConnectionFactory* f, QWidget* parent, Qt::WindowFlags flags)
+ctkXnatLoginDialog::ctkXnatLoginDialog(ctkXnatSessionFactory* f, QWidget* parent, Qt::WindowFlags flags)
 : QDialog(parent, flags)
 , ui(0)
 , d_ptr(new ctkXnatLoginDialogPrivate(f))
@@ -63,7 +63,7 @@ ctkXnatLoginDialog::ctkXnatLoginDialog(ctkXnatConnectionFactory* f, QWidget* par
 
   // initialize data members
   d->Settings = 0;
-  d->Connection = 0;
+  d->Session = 0;
   d->Dirty = false;
 
   if (!ui)
@@ -132,7 +132,7 @@ void ctkXnatLoginDialog::setSettings(ctkXnatSettings* settings)
   d->ProfileNames = d->Profiles.keys();
   d->ProfileNames.sort();
   d->Model.setStringList(d->ProfileNames);
-  
+
   ctkXnatLoginProfile* defaultProfile = d->Settings->getDefaultLoginProfile();
 
   if (defaultProfile)
@@ -147,10 +147,10 @@ void ctkXnatLoginDialog::setSettings(ctkXnatSettings* settings)
     }
 }
 
-ctkXnatConnection* ctkXnatLoginDialog::getConnection()
+ctkXnatSession* ctkXnatLoginDialog::getSession()
 {
   Q_D(ctkXnatLoginDialog);
-  return d->Connection;
+  return d->Session;
 }
 
 void ctkXnatLoginDialog::accept()
@@ -189,9 +189,9 @@ void ctkXnatLoginDialog::accept()
   // create XNAT connection
   try
     {
-    d->Connection = d->Factory->makeConnection(url.toAscii().constData(), userName.toAscii().constData(),
+    d->Session = d->Factory->makeConnection(url.toAscii().constData(), userName.toAscii().constData(),
                                         password.toAscii().constData());
-    d->Connection->setProfileName(ui->edtProfileName->text());
+    d->Session->setProfileName(ui->edtProfileName->text());
     }
   catch (const ctkException& e)
     {
@@ -265,7 +265,7 @@ bool ctkXnatLoginDialog::askToSaveProfile(const QString& profileName)
 void ctkXnatLoginDialog::saveProfile(const QString& profileName)
 {
   Q_D(ctkXnatLoginDialog);
-  
+
   ctkXnatLoginProfile* profile = d->Profiles[profileName];
   bool oldProfileWasDefault = profile && profile->isDefault();
   if (!profile)
@@ -273,7 +273,7 @@ void ctkXnatLoginDialog::saveProfile(const QString& profileName)
     profile = new ctkXnatLoginProfile();
     d->Profiles[profileName] = profile;
     int profileNumber = d->ProfileNames.size();
-    
+
     // Insertion into the profile name list and the listView (ascending order)
     int idx = 0;
     while (idx < profileNumber && QString::localeAwareCompare(profileName, d->ProfileNames[idx]) > 0)
@@ -284,9 +284,9 @@ void ctkXnatLoginDialog::saveProfile(const QString& profileName)
     d->Model.insertRow(idx);
     d->Model.setData(d->Model.index(idx), profileName);
     }
-  
+
   this->storeProfile(*profile);
-  
+
   // If the profile is to be default then remove the default flag from the other profiles.
   // This code assumes that the newly created profiles are not default.
   if (profile->isDefault() && !oldProfileWasDefault)
@@ -304,7 +304,7 @@ void ctkXnatLoginDialog::saveProfile(const QString& profileName)
         }
       }
     }
-  
+
   if (d->Settings)
     {
     d->Settings->setLoginProfile(profileName, profile);
@@ -319,7 +319,7 @@ void ctkXnatLoginDialog::on_btnSave_clicked()
   QString editedProfileName = ui->edtProfileName->text();
 
   bool selectSavedProfile = true;
-  
+
   QModelIndex currentIndex = ui->lstProfiles->currentIndex();
   if (currentIndex.isValid())
     {
@@ -387,7 +387,7 @@ void ctkXnatLoginDialog::on_btnDelete_clicked()
     ui->btnDelete->setEnabled(false);
     ui->edtProfileName->setFocus();
     }
-  
+
   if (d->Settings)
     {
     d->Settings->removeLoginProfile(profileName);

+ 4 - 4
Libs/XNAT/Widgets/ctkXnatLoginDialog.h

@@ -30,8 +30,8 @@
 
 #include "ctkXnatLoginProfile.h"
 
-class ctkXnatConnection;
-class ctkXnatConnectionFactory;
+class ctkXnatSession;
+class ctkXnatSessionFactory;
 class ctkXnatLoginDialogPrivate;
 class ctkXnatSettings;
 
@@ -40,13 +40,13 @@ class CTK_XNAT_WIDGETS_EXPORT ctkXnatLoginDialog : public QDialog
   Q_OBJECT
 
 public:
-  explicit ctkXnatLoginDialog(ctkXnatConnectionFactory* f, QWidget* parent = 0, Qt::WindowFlags flags = 0);
+  explicit ctkXnatLoginDialog(ctkXnatSessionFactory* f, QWidget* parent = 0, Qt::WindowFlags flags = 0);
   virtual ~ctkXnatLoginDialog();
 
   ctkXnatSettings* settings() const;
   void setSettings(ctkXnatSettings* settings);
 
-  ctkXnatConnection* getConnection();
+  ctkXnatSession* getSession();
 
   virtual void accept();
 

+ 2 - 2
Libs/XNAT/Widgets/ctkXnatTreeModel.cpp

@@ -191,9 +191,9 @@ ctkXnatObject* ctkXnatTreeModel::xnatObject(const QModelIndex& index) const
   return this->itemAt(index)->xnatObject();
 }
 
-void ctkXnatTreeModel::addServer(ctkXnatServer* server)
+void ctkXnatTreeModel::addDataModel(ctkXnatDataModel* dataModel)
 {
-  m_RootItem->appendChild(new ctkXnatTreeItem(server, m_RootItem));
+  m_RootItem->appendChild(new ctkXnatTreeItem(dataModel, m_RootItem));
 }
 
 ctkXnatTreeItem* ctkXnatTreeModel::itemAt(const QModelIndex& index) const

+ 3 - 3
Libs/XNAT/Widgets/ctkXnatTreeModel.h

@@ -27,7 +27,7 @@
 #include <QAbstractItemModel>
 
 #include "ctkXnatTreeItem.h"
-#include "ctkXnatServer.h"
+#include "ctkXnatDataModel.h"
 
 
 class CTK_XNAT_WIDGETS_EXPORT ctkXnatTreeModel : public QAbstractItemModel
@@ -49,13 +49,13 @@ public:
 
   ctkXnatObject* xnatObject(const QModelIndex& index) const;
 
-  void addServer(ctkXnatServer* server);
+  void addDataModel(ctkXnatDataModel* dataModel);
 
   bool removeAllRows(const QModelIndex& parent);
 
   void uploadFile(const QModelIndex& index, const QString& zipFilename);
   void downloadFile (const QModelIndex& index, const QString& zipFilename);
-  
+
 private:
 
   ctkXnatTreeItem* itemAt(const QModelIndex& index) const;