Beispiel #1
0
void NumeratorWidget::setModel(TreeXmlHashModel *model)
{
    AbstractEditorWidget::setModel(model);

    dataMapper()->addMapping(numeratorNameLineEdit,
                             model->columnDisplayedAttr(DBNUMERATORXML::NUMERATOR,
                                                        DBNUMERATORXML::NAME));
    dataMapper()->addMapping(numeratorAliasLineEdit,
                             model->columnDisplayedAttr(DBNUMERATORXML::NUMERATOR,
                                                        DBNUMERATORXML::ALIAS));
}
Beispiel #2
0
void RoleWidget::setModel(TreeXmlHashModel *model)
{
    AbstractEditorWidget::setModel(model);

    dataMapper()->addMapping(lineEditRoleName,
                             model->columnDisplayedAttr(DBROLEXML::ROLE,
                                                        DBROLEXML::NAME));

    dataMapper()->addMapping(lineEditRoleAlias,
                             model->columnDisplayedAttr(DBROLEXML::ROLE,
                                                        DBROLEXML::ALIAS));

    dataMapper()->addMapping(lineEditRoleDesc,
                             model->columnDisplayedAttr(DBROLEXML::ROLE,
                                                        DBROLEXML::DESCRIPTION));
}
Beispiel #3
0
void NumeratorWidget::submit()
{
    QModelIndex existIndex = model()->indexHashAttr(DBNUMERATORXML::NUMERATOR,
                                                    DBNUMERATORXML::NAME,
                                                    numeratorNameLineEdit->text());
    QModelIndex srcIndex = model()->index(dataMapper()->currentIndex(),0,
                                          dataMapper()->rootIndex());

    if (existIndex.isValid()){
        if (existIndex.sibling(existIndex.row(),0)!=srcIndex){
            QMessageBox::warning(this,tr("Предупреждение"),
                                 tr("Нумератор с таким именем уже существует"));
            return;
        }
    }

    AbstractEditorWidget::submit();
}
Beispiel #4
0
 void Merge::execute(DataProvider& provider)
 {
     if (m_list == 0)
     {
         Id2DataPair dataMapper(INPUT_NUM_ITEMS);
         provider.receiveInputData(dataMapper);
         ReadAccess access(dataMapper.data());
         
         try
         {
             m_numItems = toInt(access.get());
         }
         catch (BadCast&)
         {
             throw InputError(INPUT_NUM_ITEMS, *this, "Number of items must be an integer.");
         }
         
         m_list = new List();
     }
     
     if (m_list->content().size() < m_numItems)
     {
         RecycleAccess recycler;
         {
             Id2DataPair dataMapper(INPUT_DATA);
             provider.receiveInputData(dataMapper);
             recycler.add(dataMapper.data());
         }
         
         Data* data = recycler.get();
         m_list->content().push_back(data);
     }
     
     if (m_list->content().size() == m_numItems)
     {
         DataContainer out(m_list);
         m_list = 0;
         m_numItems = 0;
         Id2DataPair dataMapper(OUTPUT, out);
         
         provider.sendOutputData(dataMapper);
     }
 }
Beispiel #5
0
void RoleWidget::submit()
{
    QModelIndex existIndex = model()->indexHashAttr(
                DBREFGROUPXML::REFGROUP,
                DBREFGROUPXML::NAME,
                lineEditRoleName->text());
    QModelIndex srcIndex = model()->index(dataMapper()->currentIndex(),0,
                                          dataMapper()->rootIndex());

    if (existIndex.isValid()){
        if (existIndex.sibling(existIndex.row(),0)!=srcIndex){
            QMessageBox::warning(this,tr("Предупреждение"),
                                 tr("Роль с таким именем уже существует"));
            return;
        }
    }

    AbstractEditorWidget::submit();
}
Beispiel #6
0
 void Split::execute(DataProvider& provider)
 {
     if (m_storedItems.size() == 0)
     {
         RecycleAccess recycle;
         {
             Id2DataPair input(INPUT);
             provider.receiveInputData(input);
             recycle.add(input.data());
         }
         Data* data = recycle.get();
         List* list = data_cast<List>(data);
         
         if (list == 0)
             throw InputError(INPUT, *this, "Input data must be a 'List' object.");
         
         for (std::vector<Data*>::iterator iter = list->content().begin();
              iter != list->content().end(); ++iter)
         {
             m_storedItems.push_back(DataContainer(*iter));
         }
         
         uint64_t size = list->content().size();
         list->content().clear();
         delete list;
         
         DataContainer outNumItems(new UInt64(size));
         Id2DataPair dataMapper(OUTPUT_NUM_ITEMS, outNumItems);
         
         provider.sendOutputData(dataMapper);
     }
     
     if (m_storedItems.size() != 0)
     {
         DataContainer outData = m_storedItems.front();
         Id2DataPair dataMapper(OUTPUT_DATA, outData);
         m_storedItems.pop_front();
         
         provider.sendOutputData(dataMapper);
     }
 }