27 #include "../../../../dataaccess/Enums.h" 
   28 #include "../../datasource/explorer/DataSetCategoryGroupItem.h" 
   35 #include <QMessageBox> 
   39   : QAbstractItemModel(parent),
 
   42     m_forceCatalogCache(false)
 
   44   if(datasource.get() != 0)
 
   76   if(role == Qt::CheckStateRole && !m_checkable)
 
   86     return item->
data(index.column(), role);
 
   88   catch(
const std::exception& e)
 
   90     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
   91                          tr(
"TerraLib Qt Components"),
 
   96     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
   97                          tr(
"TerraLib Qt Components"),
 
   98                          tr(
"Unknown error in dataset explorer model!"));
 
  106   if(!parent.isValid())
 
  118   catch(
const std::exception& e)
 
  120     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  121                          tr(
"TerraLib Qt Components"),
 
  126     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  127                          tr(
"TerraLib Qt Components"),
 
  128                          tr(
"Unknown error in dataset explorer model!"));
 
  135     return QAbstractItemModel::flags(index);
 
  140     return QAbstractItemModel::flags(index);
 
  144     return QAbstractItemModel::flags(index) | item->
flags();
 
  146   catch(
const std::exception& e)
 
  148     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  149                          tr(
"TerraLib Qt Components"),
 
  154     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  155                          tr(
"TerraLib Qt Components"),
 
  156                          tr(
"Unknown error in dataset explorer model!"));
 
  159   return QAbstractItemModel::flags(index);
 
  166     if(!parent.isValid())
 
  176   catch(
const std::exception& e)
 
  178     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  179                          tr(
"TerraLib Qt Components"),
 
  184     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  185                          tr(
"TerraLib Qt Components"),
 
  186                          tr(
"Unknown error in dataset explorer model!"));
 
  195     return QModelIndex();
 
  197   if(!parent.isValid()) 
 
  200       return QModelIndex();
 
  204     return createIndex(row, column, item);
 
  209   if(parentItem == 0 || parentItem->children().empty())  
 
  210     return QModelIndex();
 
  215     return QModelIndex();
 
  217   return createIndex(row, column, item);
 
  223     return QModelIndex();
 
  227   if(item == 0 || item->parent() == 0)
 
  228     return QModelIndex();
 
  233     return QModelIndex();
 
  237   if(grandParentItem == 0)
 
  240     return createIndex(0, index.column(), parentItem);
 
  245     const QObjectList& items = grandParentItem->children();
 
  249     for(QObjectList::const_iterator it = items.begin(); it != items.end(); ++it, ++i)
 
  251       if((*it) == parentItem)
 
  252         return createIndex(i, index.column(), parentItem);
 
  256   return QModelIndex();
 
  261   if(!parent.isValid()) 
 
  269   return item->children().count();
 
  277   if(role == Qt::CheckStateRole && !m_checkable)
 
  287     bool retval = item->
setData(value, role);
 
  289     emit dataChanged(index, index);
 
  293   catch(
const std::exception& e)
 
  295     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  296                          tr(
"TerraLib Qt Components"),
 
  301     QMessageBox::warning(static_cast<QWidget*>(QObject::parent()),
 
  302                          tr(
"TerraLib Qt Components"),
 
  303                          tr(
"Unknown error in dataset explorer model!"));
 
  311   m_checkable = checkable;
 
boost::shared_ptr< DataSourceInfo > DataSourceInfoPtr