BrowserNode * BrowserComponent::duplicate(BrowserNode * p, QString name) { BrowserComponent * result = new BrowserComponent(this, p); result->set_name((name.isEmpty()) ? get_name() : name); result->update_stereotype(); return result; }
void ComponentDialog::init_uml_tab() { bool visit = !hasOkButton(); BrowserComponent * bn = (BrowserComponent *) data->get_browser_node(); VVBox * vbox; GridBox * 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(bn->get_name(), grid)); edname->setReadOnly(visit); grid->addWidget(new QLabel(tr("stereotype : "), grid)); grid->addWidget(edstereotype = new QComboBox(grid)); edstereotype->setEditable(true); edstereotype->addItem(toUnicode(data->get_stereotype())); if (! visit) { edstereotype->addItems(BrowserComponent::default_stereotypes()); edstereotype->addItems(ProfiledStereotypes::defaults(UmlComponent)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentIndex(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorizontalPolicy(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); grid->addWidget(vbox = new VVBox(grid)); vbox->addWidget(new QLabel(tr("description :"), vbox)); if (! visit) { SmallPushButton* sButton; connect(sButton = new SmallPushButton(tr("Editor"), vbox), SIGNAL(clicked()), this, SLOT(edit_description())); vbox->addWidget(sButton); } grid->addWidget(comment = new MultiLineEdit(grid)); comment->setReadOnly(visit); comment->setText(bn->get_comment()); QFont font = comment->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); comment->setFont(font); addTab(grid, "Uml"); }
ComponentDialog::ComponentDialog(SimpleData * nd) : TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), data(nd) { nd->get_browser_node()->edit_start(); if (nd->get_browser_node()->is_writable()) { setOkButton(tr("OK")); setCancelButton(tr("Cancel")); } else { setOkButton(QString()); setCancelButton(tr("Close")); } setWindowTitle(tr("component dialog")); BrowserComponent * bn = (BrowserComponent *) nd->get_browser_node(); init_uml_tab(); rqs = bn->get_required_classes(); init_l_tab(rq_page, rq_stereotypefilter, &ComponentDialog::rq_stereotypeFilterActivated, SLOT(rq_stereotypeFilterActivated(const QString &)), SLOT(require_cls()), SLOT(unrequire_cls()), lb_rq_available, lb_rq, rqs, tr("Required classes")); prs = bn->get_provided_classes(); init_l_tab(pr_page, pr_stereotypefilter, &ComponentDialog::pr_stereotypeFilterActivated, SLOT(pr_stereotypeFilterActivated(const QString &)), SLOT(provide_cls()), SLOT(unprovide_cls()), lb_pr_available, lb_pr, prs, tr("Provided classes")); rzs = bn->get_realizing_classes(); init_l_tab(rz_page, rz_stereotypefilter, &ComponentDialog::rz_stereotypeFilterActivated, SLOT(rz_stereotypeFilterActivated(const QString &)), SLOT(realize_cls()), SLOT(unrealize_cls()), lb_rz_available, lb_rz, rzs, tr("Realizing classes")); // USER : list key - value GridBox * grid = new GridBox(2, this); grid->setMargin(5); grid->setSpacing(5); grid->addWidget(kvtable = new KeyValuesTable((BrowserComponent *) data->get_browser_node(), grid, !hasOkButton())); addTab(grid, tr("Properties")); // connect(this, SIGNAL(currentChanged(QWidget *)), this, SLOT(change_tabs(QWidget *))); open_dialog(this); }
void ComponentDialog::init_uml_tab() { bool visit = !hasOkButton(); BrowserComponent * bn = (BrowserComponent *) data->get_browser_node(); Q3VBox * vbox; Q3Grid * 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(TRUE, grid); edstereotype->insertItem(toUnicode(data->get_stereotype())); if (! visit) { edstereotype->insertStringList(BrowserComponent::default_stereotypes()); edstereotype->insertStringList(ProfiledStereotypes::defaults(UmlComponent)); edstereotype->setAutoCompletion(completion()); } edstereotype->setCurrentItem(0); QSizePolicy sp = edstereotype->sizePolicy(); sp.setHorData(QSizePolicy::Expanding); edstereotype->setSizePolicy(sp); vbox = new Q3VBox(grid); new QLabel(TR("description :"), vbox); if (! visit) connect(new SmallPushButton(TR("Editor"), vbox), SIGNAL(clicked()), this, SLOT(edit_description())); comment = new MultiLineEdit(grid); comment->setReadOnly(visit); comment->setText(bn->get_comment()); QFont font = comment->font(); if (! hasCodec()) font.setFamily("Courier"); font.setFixedPitch(TRUE); comment->setFont(font); addTab(grid, "Uml"); }