ParameterDialog::ParameterDialog(ParameterData * pa) : TabDialog(0, 0, true, Qt::WA_DeleteOnClose), param(pa) { pa->browser_node->edit_start(); if (pa->browser_node->is_writable()) { setOkButton(tr("OK")); setCancelButton(tr("Cancel")); } else { setOkButton(QString()); setCancelButton(tr("Close")); } visit = !hasOkButton(); setWindowTitle(tr("Parameter dialog")); GridBox * grid; HHBox * htab; QString s; // general tab grid = new GridBox(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); grid->addWidget(new QLabel(tr("name :"), grid)); grid->addWidget(edname = new LineEdit(pa->name(), grid)); edname->setReadOnly(visit); QFont font = edname->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); grid->addWidget(new QLabel(tr("stereotype : "), grid)); grid->addWidget(edstereotype = new QComboBox(grid)); edstereotype->setEditable(!visit); edstereotype->addItem(toUnicode(pa->stereotype)); if (! visit) { edstereotype->addItems(BrowserParameter::default_stereotypes()); edstereotype->addItems(ProfiledStereotypes::defaults(UmlParameter)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentIndex(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorizontalPolicy(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); SmallPushButton* sButton; connect(sButton = new SmallPushButton(tr("type :"), grid), SIGNAL(clicked()), this, SLOT(menu_type())); grid->addWidget(sButton); grid->addWidget(edtype = new QComboBox( grid)); edtype->setEditable(!visit); edtype->addItem(pa->get_type().get_full_type()); if (!visit) { BrowserClass::instances(nodes); nodes.full_names(list); edtype->addItems(GenerationSettings::basic_types()); offset = edtype->count(); edtype->addItems(list); edtype->setAutoCompletion(completion()); view = pa->browser_node->container(UmlClass); } edtype->setCurrentIndex(0); edtype->setSizePolicy(sp); grid->addWidget(new QLabel(tr("direction :"), grid)); grid->addWidget(htab = new HHBox(grid)); htab->addWidget(eddir = new QComboBox(htab)); UmlParamDirection dir = pa->get_dir(); eddir->addItem(stringify(dir)); if (! visit) { if (dir != UmlInOut) eddir->addItem(stringify(UmlInOut)); if (dir != UmlIn) eddir->addItem(stringify(UmlIn)); if (dir != UmlOut) eddir->addItem(stringify(UmlOut)); if (dir != UmlReturn) eddir->addItem(stringify(UmlReturn)); } htab->addWidget(new QLabel(tr(" multiplicity : "), htab)); htab->addWidget( edmultiplicity = new QComboBox(htab)); edmultiplicity->setEditable(!visit); edmultiplicity->setSizePolicy(sp); edmultiplicity->addItem(pa->get_multiplicity()); if (!visit) { edmultiplicity->addItem("1"); edmultiplicity->addItem("0..1"); edmultiplicity->addItem("*"); edmultiplicity->addItem("1..*"); } htab->addWidget(new QLabel(tr(" ordering : "), htab)); htab->addWidget(edordering = new QComboBox(htab)); UmlOrderingKind o = pa->get_ordering(); edordering->addItem(stringify(o)); if (!visit) { if (o != UmlUnordered) edordering->addItem(stringify(UmlUnordered)); if (o != UmlOrdered) edordering->addItem(stringify(UmlOrdered)); if (o != UmlLifo) edordering->addItem(stringify(UmlLifo)); if (o != UmlFifo) edordering->addItem(stringify(UmlFifo)); } htab->addWidget(new QLabel(tr(" effect : "), htab)); htab->addWidget(edeffect = new QComboBox(htab)); UmlParamEffect e = pa->get_effect(); edeffect->addItem(stringify(e)); if (!visit) { if (e != UmlNoEffect) edeffect->addItem(stringify(UmlNoEffect)); if (e != UmlCreate) edeffect->addItem(stringify(UmlCreate)); if (e != UmlRead) edeffect->addItem(stringify(UmlRead)); if (e != UmlUpdate) edeffect->addItem(stringify(UmlUpdate)); if (e != UmlDelete) edeffect->addItem(stringify(UmlDelete)); } grid->addWidget(new QLabel(tr("in state : "), grid)); grid->addWidget(edin_state = new LineEdit(pa->in_state, grid)); edin_state->setReadOnly(visit); grid->addWidget(new QLabel(tr("default value :"), grid)); grid->addWidget(htab = new HHBox(grid)); htab->addWidget(edinit = new LineEdit(pa->get_default_value(), htab)); if (visit) { edinit->setReadOnly(TRUE); } else { connect(sButton = new SmallPushButton(tr("Editor"), htab), SIGNAL(clicked()), this, SLOT(edit_init())); htab->addWidget(sButton); } grid->addWidget(new QLabel(grid)); grid->addWidget(htab = new HHBox(grid)); BButtonGroup * bg ; htab->addWidget( bg = new BButtonGroup(2, Qt::Horizontal, QString(), htab)); bg->addWidget(is_control_cb = new QCheckBox(tr("is_control"), bg)); if (pa->is_control) is_control_cb->setChecked(TRUE); is_control_cb->setDisabled(visit); bg->addWidget(unique_cb = new QCheckBox(tr("unique"), bg)); if (pa->unique) unique_cb->setChecked(TRUE); unique_cb->setDisabled(visit); htab->addWidget(bg = new BButtonGroup(3, Qt::Horizontal, QString(), htab)); bg->setExclusive(TRUE); bg->addWidget(standard_rb = new QRadioButton(tr("standard"), bg)); bg->addWidget(exception_rb = new QRadioButton(tr("exception"), bg)); bg->addWidget(stream_rb = new QRadioButton(tr("stream"), bg)); if (pa->exception) exception_rb->setChecked(TRUE); else if (pa->stream) stream_rb->setChecked(TRUE); else standard_rb->setChecked(TRUE); VVBox * vtab; grid->addWidget(vtab = new VVBox(grid)); vtab->addWidget(new QLabel(tr("description :"), vtab)); if (! visit) { connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); vtab->addWidget(sButton); } grid->addWidget(comment = new MultiLineEdit(grid)); comment->setReadOnly(visit); comment->setText(pa->browser_node->get_comment()); comment->setFont(font); addTab(grid, "Uml"); init_tab(ocltab, eduml_selection, pa->uml_selection, "Ocl", SLOT(edit_uml_selection()), TRUE); // C++ init_tab(cppTab, edcpp_selection, pa->cpp_selection, "C++", SLOT(edit_cpp_selection()), GenerationSettings::cpp_get_default_defs()); // Java init_tab(javatab, edjava_selection, pa->java_selection, "Java", SLOT(edit_java_selection()), GenerationSettings::java_get_default_defs()); // USER : list key - value grid = new GridBox(2, this); grid->setMargin(5); grid->setSpacing(5); grid->addWidget(kvtable = new KeyValuesTable(pa->browser_node, grid, visit)); addTab(grid, tr("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }
FlowDialog::FlowDialog(FlowData * d) : Q3TabDialog(0, 0, FALSE, Qt::WDestructiveClose), flow(d) { d->browser_node->edit_start(); if (d->browser_node->is_writable()) { setOkButton(TR("OK")); setCancelButton(TR("Cancel")); } else { setOkButton(QString()); setCancelButton(TR("Close")); } setCaption(TR("Flow dialog")); visit = !hasOkButton(); BrowserNode * bn = flow->browser_node; Q3Grid * grid; // // general tab // grid = new Q3Grid(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); new QLabel(TR("name : "), grid); edname = new LineEdit(bn->get_name(), grid); edname->setReadOnly(visit); new QLabel(TR("stereotype : "), grid); edstereotype = new Q3ComboBox(!visit, grid); edstereotype->insertItem(toUnicode(flow->get_stereotype())); if (!visit) { edstereotype->insertStringList(BrowserFlow::default_stereotypes()); edstereotype->insertStringList(ProfiledStereotypes::defaults(UmlFlow)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentItem(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorData(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); Q3VBox * vtab = new Q3VBox(grid); new QLabel(TR("description :"), vtab); if (! visit) connect(new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); comment = new MultiLineEdit(grid); comment->setReadOnly(visit); comment->setText(bn->get_comment()); addTab(grid, "Uml"); // UML / OCL init_tab(uml, flow->uml, "Ocl", SLOT(edit_uml_guard()), SLOT(edit_uml_selection()), SLOT(edit_uml_transformation()), TRUE); // CPP init_tab(cpp, flow->cpp, "C++", SLOT(edit_cpp_guard()), SLOT(edit_cpp_selection()), SLOT(edit_cpp_transformation()), GenerationSettings::cpp_get_default_defs()); // Java init_tab(java, flow->java, "Java", SLOT(edit_java_guard()), SLOT(edit_java_selection()), SLOT(edit_java_transformation()), GenerationSettings::java_get_default_defs()); // USER : list key - value grid = new Q3Grid(2, this); grid->setMargin(5); grid->setSpacing(5); kvtable = new KeyValuesTable(bn, grid, visit); addTab(grid, TR("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }
PinDialog::PinDialog(PinData * pi) : Q3TabDialog(0, 0, FALSE, Qt::WDestructiveClose), pin(pi) { pi->browser_node->edit_start(); if (pi->browser_node->is_writable()) { setOkButton(TR("OK")); setCancelButton(TR("Cancel")); } else { setOkButton(QString::null); setCancelButton(TR("Close")); } visit = !hasOkButton(); setCaption(TR("Pin dialog")); Q3Grid * grid; Q3HBox * htab; QString s; // general tab grid = new Q3Grid(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); new QLabel(TR("name :"), grid); edname = new LineEdit(pi->name(), grid); edname->setReadOnly(visit); QFont font = edname->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); new QLabel(TR("stereotype : "), grid); edstereotype = new Q3ComboBox(!visit, grid); edstereotype->insertItem(toUnicode(pi->stereotype)); if (! visit) { edstereotype->insertStringList(BrowserPin::default_stereotypes()); edstereotype->insertStringList(ProfiledStereotypes::defaults(UmlActivityPin)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentItem(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorData(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); connect(new SmallPushButton(TR("type :"), grid), SIGNAL(clicked()), this, SLOT(menu_type())); edtype = new Q3ComboBox(!visit, grid); edtype->insertItem(pi->get_type().get_full_type()); if (!visit) { BrowserClass::instances(nodes); nodes.full_names(list); edtype->insertStringList(GenerationSettings::basic_types()); offset = edtype->count(); edtype->insertStringList(list); edtype->setAutoCompletion(completion()); view = pi->browser_node->container(UmlClass); } edtype->setCurrentItem(0); edtype->setSizePolicy(sp); new QLabel(TR("direction :"), grid); htab = new Q3HBox(grid); eddir = new Q3ComboBox(FALSE, htab); UmlParamDirection dir = pi->get_dir(); eddir->insertItem(stringify(dir)); if (! visit) { // note : inout not allowed if (dir != UmlIn) eddir->insertItem(stringify(UmlIn)); if (dir != UmlOut) eddir->insertItem(stringify(UmlOut)); if (dir != UmlReturn) eddir->insertItem(stringify(UmlReturn)); } new QLabel(TR(" multiplicity : "), htab); edmultiplicity = new Q3ComboBox(!visit, htab); edmultiplicity->setSizePolicy(sp); edmultiplicity->insertItem(pi->get_multiplicity()); if (!visit) { edmultiplicity->insertItem("1"); edmultiplicity->insertItem("0..1"); edmultiplicity->insertItem("*"); edmultiplicity->insertItem("1..*"); } new QLabel(TR(" ordering : "), htab); edordering = new Q3ComboBox(FALSE, htab); UmlOrderingKind o = pi->get_ordering(); edordering->insertItem(stringify(o)); if (!visit) { if (o != UmlUnordered) edordering->insertItem(stringify(UmlUnordered)); if (o != UmlOrdered) edordering->insertItem(stringify(UmlOrdered)); if (o != UmlLifo) edordering->insertItem(stringify(UmlLifo)); if (o != UmlFifo) edordering->insertItem(stringify(UmlFifo)); } new QLabel(TR(" effect : "), htab); edeffect = new Q3ComboBox(FALSE, htab); UmlParamEffect e = pi->get_effect(); edeffect->insertItem(stringify(e)); if (!visit) { if (e != UmlNoEffect) edeffect->insertItem(stringify(UmlNoEffect)); if (e != UmlCreate) edeffect->insertItem(stringify(UmlCreate)); if (e != UmlRead) edeffect->insertItem(stringify(UmlRead)); if (e != UmlUpdate) edeffect->insertItem(stringify(UmlUpdate)); if (e != UmlDelete) edeffect->insertItem(stringify(UmlDelete)); } new QLabel(TR("in state : "), grid); edin_state = new LineEdit(pi->in_state, grid); edin_state->setReadOnly(visit); new QLabel(grid); htab = new Q3HBox(grid); Q3ButtonGroup * bg = new Q3ButtonGroup(2, Qt::Horizontal, QString::null, htab); is_control_cb = new QCheckBox(TR("is_control"), bg); if (pi->is_control) is_control_cb->setChecked(TRUE); is_control_cb->setDisabled(visit); unique_cb = new QCheckBox(TR("unique"), bg); if (pi->unique) unique_cb->setChecked(TRUE); unique_cb->setDisabled(visit); bg = new Q3ButtonGroup(3, Qt::Horizontal, QString::null, htab); bg->setExclusive(TRUE); standard_rb = new QRadioButton(TR("standard"), bg); exception_rb = new QRadioButton(TR("exception"), bg); stream_rb = new QRadioButton(TR("stream"), bg); if (pi->exception) exception_rb->setChecked(TRUE); else if (pi->stream) stream_rb->setChecked(TRUE); else standard_rb->setChecked(TRUE); Q3VBox * vtab = new Q3VBox(grid); new QLabel(TR("description :"), vtab); if (! visit) { connect(new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); } comment = new MultiLineEdit(grid); comment->setReadOnly(visit); comment->setText(pi->browser_node->get_comment()); comment->setFont(font); addTab(grid, "Uml"); init_tab(ocltab, eduml_selection, pin->uml_selection, "Ocl", SLOT(edit_uml_selection()), TRUE); // C++ init_tab(cpptab, edcpp_selection, pin->cpp_selection, "C++", SLOT(edit_cpp_selection()), GenerationSettings::cpp_get_default_defs()); // Java init_tab(javatab, edjava_selection, pin->java_selection, "Java", SLOT(edit_java_selection()), GenerationSettings::java_get_default_defs()); // USER : list key - value grid = new Q3Grid(2, this); grid->setMargin(5); grid->setSpacing(5); kvtable = new KeyValuesTable(pi->browser_node, grid, visit); addTab(grid, TR("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }
ActivityObjectDialog::ActivityObjectDialog(ActivityObjectData * d, const char * what, QStringList & st) : Q3TabDialog(0, 0, FALSE, Qt::WDestructiveClose), data(d) { d->browser_node->edit_start(); if (d->browser_node->is_writable()) { setOkButton(TR("OK")); setCancelButton(TR("Cancel")); } else { setOkButton(QString()); setCancelButton(TR("Close")); } visit = !hasOkButton(); setCaption(TR(QString(what) + " dialog")); Q3Grid * grid; Q3HBox * htab; QString s; // general tab grid = new Q3Grid(2, this); umltab = grid; grid->setMargin(5); grid->setSpacing(5); new QLabel(TR("name :"), grid); edname = new LineEdit(data->name(), grid); edname->setReadOnly(visit); QFont font = edname->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); new QLabel(TR("stereotype : "), grid); edstereotype = new Q3ComboBox(!visit, grid); edstereotype->insertItem(toUnicode(data->stereotype)); if (! visit) { edstereotype->insertStringList(st); edstereotype->insertStringList(ProfiledStereotypes::defaults(UmlActivityObject)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentItem(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorData(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); connect(new SmallPushButton(TR("type :"), grid), SIGNAL(clicked()), this, SLOT(menu_type())); edtype = new Q3ComboBox(!visit, grid); edtype->insertItem(data->get_type().get_full_type()); if (!visit) { BrowserClass::instances(nodes); nodes.full_names(list); edtype->insertStringList(GenerationSettings::basic_types()); offset = edtype->count(); edtype->insertStringList(list); edtype->setAutoCompletion(completion()); // search for the view containing the activity view = d->browser_node; do { view = (BrowserNode *) view->parent(); } while (view->get_type() != UmlActivity); view = (BrowserNode *) view->parent(); } edtype->setCurrentItem(0); edtype->setSizePolicy(sp); new QLabel(TR("multiplicity : "), grid); htab = new Q3HBox(grid); edmultiplicity = new Q3ComboBox(!visit, htab); edmultiplicity->setSizePolicy(sp); edmultiplicity->insertItem(data->get_multiplicity()); if (!visit) { edmultiplicity->insertItem("1"); edmultiplicity->insertItem("0..1"); edmultiplicity->insertItem("*"); edmultiplicity->insertItem("1..*"); } new QLabel(TR(" ordering : "), htab); edordering = new Q3ComboBox(FALSE, htab); UmlOrderingKind o = data->get_ordering(); edordering->insertItem(stringify(o)); if (!visit) { if (o != UmlUnordered) edordering->insertItem(stringify(UmlUnordered)); if (o != UmlOrdered) edordering->insertItem(stringify(UmlOrdered)); if (o != UmlLifo) edordering->insertItem(stringify(UmlLifo)); if (o != UmlFifo) edordering->insertItem(stringify(UmlFifo)); } new QLabel(TR("in state : "), grid); htab = new Q3HBox(grid); edin_state = new LineEdit(data->in_state, htab); edin_state->setReadOnly(visit); new QLabel(" ", htab); is_control_cb = new QCheckBox(TR("is control"), htab); if (data->is_control) is_control_cb->setChecked(TRUE); is_control_cb->setDisabled(visit); Q3VBox * vtab = new Q3VBox(grid); new QLabel(TR("description :"), vtab); if (! visit) { connect(new SmallPushButton(TR("Editor"), vtab), SIGNAL(clicked()), this, SLOT(edit_description())); } comment = new MultiLineEdit(grid); comment->setReadOnly(visit); comment->setText(data->browser_node->get_comment()); comment->setFont(font); addTab(grid, "Uml"); // UML / OCL init_tab(ocltab, eduml_selection, data->uml_selection, "Ocl", SLOT(edit_uml_selection()), TRUE); // C++ init_tab(cppTab, edcpp_selection, data->cpp_selection, "C++", SLOT(edit_cpp_selection()), GenerationSettings::cpp_get_default_defs()); // Java init_tab(javatab, edjava_selection, data->java_selection, "Java", SLOT(edit_java_selection()), GenerationSettings::java_get_default_defs()); // USER : list key - value grid = new Q3Grid(2, this); grid->setMargin(5); grid->setSpacing(5); kvtable = new KeyValuesTable(data->browser_node, grid, visit); addTab(grid, TR("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }