コード例 #1
0
ファイル: ScriptEvaluator.cpp プロジェクト: cetium/corbasim
void ScriptEvaluatorWidget::initialize(
    InterfaceDescriptor_ptr factory)
{
    // Dummy object
    Objref_ptr object(new Objref("this", factory));

    // Each operation evaluator in a tab
    QVBoxLayout * ly = new QVBoxLayout();
    QTabWidget * tabs = new QTabWidget();

    const unsigned int count = factory->operation_count();

    for (unsigned int i = 0; i < count; i++) 
    {
        const core::operation_reflective_base * op = 
            factory->get_reflective_by_index(i);
        const char * name = op->get_name();

        OperationEvaluatorWidget * ev = 
            new OperationEvaluatorWidget(object);
        ev->initialize(op);

        tabs->addTab(ev, name);
    }

    ly->addWidget(tabs);
    setLayout(ly);
}
コード例 #2
0
void ParametersFromFilesTool::initialize(
        Objref_ptr objref,
        OperationDescriptor_ptr reflective)
{
    const InterfaceDescriptor_ptr iface = objref->interface();

    int i = 0;
    while (i < iface->operation_count() &&
            iface->get_reflective_by_index(i) != reflective)
        i++;

    m_model.initialize(i, reflective);
    m_objref = objref;
    m_operation = reflective;
}
コード例 #3
0
ファイル: AbstractInputTool.cpp プロジェクト: cetium/corbasim
void AbstractInputTool::deleteAbstractInputItem(const QString& id, 
        InterfaceDescriptor_ptr reflective,
        const QList< int >& path)
{
    OperationDescriptor_ptr op =
        reflective->get_reflective_by_index(path.front());

    const key_t key(id, op->get_tag());
    QList< AbstractInputItem * >& list = m_map[key];

    for (int i = 0; i < list.size(); i++) 
    {
        AbstractInputItem * item = list[i];
        if (item->getPath() == path)
        {
            list.removeAt(i);
            m_inverse_map.erase(item);

            // Notify to the processor
            item->reset();

            m_group->deleteItem(
                    qobject_cast< qt::SortableGroupItem * >
                        (item->parent()));

            delete item;
            break;
        }
    }
}
コード例 #4
0
void SimpleClient::initialize(Objref_ptr objref)
{
    m_objref = objref;

    // Signals
    connect(this, SIGNAL(sendRequest(Request_ptr)),
            m_objref.get(), SLOT(sendRequest(Request_ptr)));

    m_log_model.registerInstance(m_objref);

    connect(m_objref.get(),
            SIGNAL(requestSent(ObjectId, const Request_ptr&, const Event_ptr&)),
            &m_log_model,
            SLOT(outputRequest(ObjectId, Request_ptr, Event_ptr)));

    m_filteredLog->registerInstance(m_objref);

    if (m_seqTool)
        m_seqTool->registerInstance(m_objref);

    QGridLayout * grid = NULL;
    InterfaceDescriptor_ptr factory = m_objref->interface();
    const unsigned int count = factory->operation_count();

    // Inicializa los dialogos a nulo
    m_dialogs.resize(count, NULL);

    for (unsigned int i = 0; i < count; i++)
    {
        const unsigned int idx = i % _max_btns_per_page;

        OperationDescriptor_ptr op =
            factory->get_reflective_by_index(i);

        const char * name = op->get_name();

        if (!idx)
        {
            QWidget * w = new QWidget;
            grid = new QGridLayout;
            w->setLayout(grid);

            // TODO Page + number or from... to...
            QString page("From ");
            page += name;
            m_tab->addTab(w, page);
        }

        // Button
        QPushButton * btn = new QPushButton(name);
        grid->addWidget(btn, idx / _max_btns_per_row,
            idx % _max_btns_per_row);

        m_buttons.addButton(btn, i);

        // Menu Operations
        QAction * act = m_operations_menu->addAction(name);
        m_actions.addAction(act);
        act->setData(i);
    }

    // Validator for reference updates
    m_ref->setObjref(m_objref);
}