void QuickEdit::AssignItemsForOperation(QSharedPointer<TreeItemInterface> root, BrowserNode* node) { QList<QSharedPointer<TreeItemInterface>> items; auto interfaceItem = CreateInterfaceNode(root, operationController, node); BrowserOperation* operationNode = static_cast<BrowserOperation*>(node); // first we make a dummy node for return type QSharedPointer<BrowserNode> returnType(new BrowserOperationReturnType(dummyView, operationNode)); QList<QSharedPointer<BrowserNode>> operationNodes; operationNodes << returnType; // next we make dummy nodes for all attributes int paramCount = ((OperationData*)operationNode->get_data())->nparams; for (int i = 0; i < paramCount; ++i) { QSharedPointer<BrowserNode> param(new BrowserOperationAttribute(dummyView, operationNode, ((OperationData*)operationNode->get_data())->params[i])); operationNodes << param; items << CreateInterfaceNode(interfaceItem, operationAttributeController, param.data()); } interfaceItem->AddChildren(items); root->AddChildren(QList<QSharedPointer<TreeItemInterface>>() << interfaceItem); localNodeHolder.append(operationNodes); }
void QuickEdit::AssignItemsForClass(QSharedPointer<TreeItemInterface> root, BrowserNode* classNode) { auto interfaceItem = CreateInterfaceNode(root, classController, classNode); auto children = classNode->children(validTypes); std::reverse(children.begin(), children.end()); for (const auto& child : children) { if (!child) continue; UmlCode nodeType = child->get_type(); itemCreators[nodeType](interfaceItem, child); } root->AddChildren(QList<QSharedPointer<TreeItemInterface>>() << interfaceItem); }
void QuickEdit::AssignItemsForExtraNode(QSharedPointer<TreeItemInterface> root, BrowserNode * extraNode) { QSharedPointer<TreeItemInterface > interfaceItem = CreateInterfaceNode(root, extraNodeController, extraNode); root->AddChildren(QList<QSharedPointer<TreeItemInterface> >() << interfaceItem); }
void QuickEdit::AssignItemsForRelation(QSharedPointer<TreeItemInterface> root, BrowserNode * classNode) { QSharedPointer<TreeItemInterface > interfaceItem = CreateInterfaceNode(root, relationController, classNode); root->AddChildren(QList<QSharedPointer<TreeItemInterface> >() << interfaceItem); }
void QuickEdit::AssignItemsForAttribute(QSharedPointer<TreeItemInterface> root, BrowserNode* classNode) { auto interfaceItem = CreateInterfaceNode(root, attributeController, classNode); root->AddChildren(QList<QSharedPointer<TreeItemInterface>>() << interfaceItem); }