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)); }
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)); }
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(); }
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); } }
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(); }
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); } }