|  | @@ -1,106 +0,0 @@
 | 
	
		
			
				|  |  | -/*=============================================================================
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  Library: CTK
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  Copyright (c) German Cancer Research Center,
 | 
	
		
			
				|  |  | -    Division of Medical and Biological Informatics
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  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 "ctkXNATBrowserMainWindow.h"
 | 
	
		
			
				|  |  | -#include "ui_ctkXNATBrowserMainWindow.h"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#include "ctkXnatLoginDialog.h"
 | 
	
		
			
				|  |  | -#include "ctkXnatListModel.h"
 | 
	
		
			
				|  |  | -#include "ctkXnatSession.h"
 | 
	
		
			
				|  |  | -#include "ctkXnatDataModel.h"
 | 
	
		
			
				|  |  | -#include "ctkXnatProject.h"
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -#include <QDebug>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -ctkXNATBrowserMainWindow::ctkXNATBrowserMainWindow(QWidget *parent) :
 | 
	
		
			
				|  |  | -  QMainWindow(parent),
 | 
	
		
			
				|  |  | -  ui(new Ui::ctkXNATBrowserMainWindow),
 | 
	
		
			
				|  |  | -  m_Session(0),
 | 
	
		
			
				|  |  | -  m_ProjectsModel(new ctkXnatListModel()),
 | 
	
		
			
				|  |  | -  m_SubjectsModel(new ctkXnatListModel())
 | 
	
		
			
				|  |  | -{
 | 
	
		
			
				|  |  | -  ui->setupUi(this);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  ui->projectsList->setModel(m_ProjectsModel);
 | 
	
		
			
				|  |  | -  ui->subjectsList->setModel(m_SubjectsModel);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  this->connect(ui->projectsList, SIGNAL(clicked(QModelIndex)), SLOT(projectSelected(QModelIndex)));
 | 
	
		
			
				|  |  | -  this->connect(ui->loginButton, SIGNAL(clicked()), SLOT(loginButtonPushed()));
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -ctkXNATBrowserMainWindow::~ctkXNATBrowserMainWindow()
 | 
	
		
			
				|  |  | -{
 | 
	
		
			
				|  |  | -  if (m_Session)
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    delete m_Session;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  delete ui;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  delete m_SubjectsModel;
 | 
	
		
			
				|  |  | -  delete m_ProjectsModel;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -void ctkXNATBrowserMainWindow::loginButtonPushed()
 | 
	
		
			
				|  |  | -{
 | 
	
		
			
				|  |  | -  if (m_Session)
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    delete m_Session;
 | 
	
		
			
				|  |  | -    m_Session = 0;
 | 
	
		
			
				|  |  | -    ui->loginButton->setText("Login");
 | 
	
		
			
				|  |  | -    ui->loginLabel->setText("Disconnected");
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    m_ProjectsModel->setRootObject(0);
 | 
	
		
			
				|  |  | -    ui->projectsList->reset();
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -  else
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    ctkXnatLoginDialog loginDialog(m_SessionFactory);
 | 
	
		
			
				|  |  | -    if (loginDialog.exec() == QDialog::Accepted)
 | 
	
		
			
				|  |  | -    {
 | 
	
		
			
				|  |  | -      m_Session = loginDialog.getSession();
 | 
	
		
			
				|  |  | -      if (m_Session)
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        ui->loginButton->setText("Logout");
 | 
	
		
			
				|  |  | -        ui->loginLabel->setText(QString("Connected: %1").arg(m_Session->url().toString()));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        ctkXnatDataModel* dataModel = m_Session->dataModel();
 | 
	
		
			
				|  |  | -        //xnatConnection->fetch(server);
 | 
	
		
			
				|  |  | -        dataModel->fetch();
 | 
	
		
			
				|  |  | -        m_ProjectsModel->setRootObject(dataModel);
 | 
	
		
			
				|  |  | -        ui->projectsList->reset();
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -void ctkXNATBrowserMainWindow::projectSelected(const QModelIndex& index)
 | 
	
		
			
				|  |  | -{
 | 
	
		
			
				|  |  | -  qDebug() << "Project selected";
 | 
	
		
			
				|  |  | -  QVariant variant = m_ProjectsModel->data(index, Qt::UserRole);
 | 
	
		
			
				|  |  | -  if (variant.isValid())
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    ctkXnatObject* project = variant.value<ctkXnatObject*>();
 | 
	
		
			
				|  |  | -    qDebug() << "selected project id:" << project->id();
 | 
	
		
			
				|  |  | -    project->fetch();
 | 
	
		
			
				|  |  | -    m_SubjectsModel->setRootObject(project);
 | 
	
		
			
				|  |  | -    ui->subjectsList->reset();
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 |