示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
void QuickEdit::AssignItemsForExtraNode(QSharedPointer<TreeItemInterface> root, BrowserNode * extraNode)
{
    QSharedPointer<TreeItemInterface > interfaceItem = CreateInterfaceNode(root, extraNodeController, extraNode);
    root->AddChildren(QList<QSharedPointer<TreeItemInterface> >() << interfaceItem);

}
示例#4
0
void QuickEdit::AssignItemsForRelation(QSharedPointer<TreeItemInterface> root,  BrowserNode * classNode)
{
    QSharedPointer<TreeItemInterface > interfaceItem = CreateInterfaceNode(root, relationController, classNode);
    root->AddChildren(QList<QSharedPointer<TreeItemInterface> >() << interfaceItem);
}
示例#5
0
void QuickEdit::AssignItemsForAttribute(QSharedPointer<TreeItemInterface> root, BrowserNode* classNode)
{
    auto interfaceItem = CreateInterfaceNode(root, attributeController, classNode);
    root->AddChildren(QList<QSharedPointer<TreeItemInterface>>() << interfaceItem);
}