本文整理汇总了C++中UMLClassifier::findChildObject方法的典型用法代码示例。如果您正苦于以下问题:C++ UMLClassifier::findChildObject方法的具体用法?C++ UMLClassifier::findChildObject怎么用?C++ UMLClassifier::findChildObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UMLClassifier
的用法示例。
在下文中一共展示了UMLClassifier::findChildObject方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: apply
/**
* Checks if changes are valid and applies them if they are,
* else returns false
*/
bool UMLTemplateDialog::apply()
{
m_datatypeWidget->apply();
QString name = m_pNameLE->text();
if(name.length() == 0) {
KMessageBox::error(this, i18n("You have entered an invalid template name."),
i18n("Template Name Invalid"), 0);
m_pNameLE->setText(m_pTemplate->name());
return false;
}
UMLClassifier * pClass = dynamic_cast<UMLClassifier *>(m_pTemplate->parent());
if (pClass) {
UMLObject *o = pClass->findChildObject(name);
if (o && o != m_pTemplate) {
KMessageBox::error(this, i18n("The template parameter name you have chosen is already being used in this operation."),
i18n("Template Name Not Unique"), 0);
m_pNameLE->setText(m_pTemplate->name());
return false;
}
}
m_pTemplate->setName(name);
m_stereotypeWidget->apply();
m_docWidget->apply();
return true;
}
示例2: apply
/**
* Checks if changes are valid and applies them if they are,
* else returns false
*/
bool UMLEntityAttributeDialog::apply()
{
QString name = m_pNameLE->text();
if (name.isEmpty()) {
KMessageBox::error(this, i18n("You have entered an invalid entity attribute name."),
i18n("Entity Attribute Name Invalid"), 0);
m_pNameLE->setText(m_pEntityAttribute->name());
return false;
}
UMLClassifier * pConcept = m_pEntityAttribute->umlParent()->asUMLClassifier();
UMLObject *o = pConcept ? pConcept->findChildObject(name) : 0;
if (o && o != m_pEntityAttribute) {
KMessageBox::error(this, i18n("The entity attribute name you have chosen is already being used in this operation."),
i18n("Entity Attribute Name Not Unique"), 0);
m_pNameLE->setText(m_pEntityAttribute->name());
return false;
}
m_pEntityAttribute->setName(name);
m_pEntityAttribute->setInitialValue(m_pInitialLE->text());
m_stereotypeWidget->apply();
m_pEntityAttribute->setValues(m_pValuesLE->text());
m_pEntityAttribute->setAttributes(m_pAttributesCB->currentText());
m_pEntityAttribute->setAutoIncrement(m_pAutoIncrementCB->isChecked());
m_pEntityAttribute->setNull(m_pNullCB->isChecked());
/*
if (m_pPublicRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Primary);
} else if (m_pProtectedRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Unique);
} else
*/
if (m_pPrivateRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Index);
} else {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::None);
}
m_datatypeWidget->apply();
return true;
}
示例3: apply
/**
* Checks if changes are valid and applies them if they are,
* else returns false
*/
bool UMLTemplateDialog::apply()
{
QString typeName = m_pTypeCB->currentText();
UMLDoc *pDoc = UMLApp::app()->document();
UMLClassifierList namesList( pDoc->concepts() );
foreach (UMLClassifier* obj, namesList) {
if (typeName == obj->name()) {
m_pTemplate->setType(obj);
}
}
if (namesList.isEmpty()) { // not found.
// FIXME: This implementation is not good yet.
m_pTemplate->setTypeName( typeName );
}
QString name = m_pNameLE->text();
if( name.length() == 0 ) {
KMessageBox::error(this, i18n("You have entered an invalid template name."),
i18n("Template Name Invalid"), false);
m_pNameLE->setText( m_pTemplate->name() );
return false;
}
UMLClassifier * pClass = dynamic_cast<UMLClassifier *>( m_pTemplate->parent() );
if (pClass) {
UMLObject *o = pClass->findChildObject(name);
if (o && o != m_pTemplate) {
KMessageBox::error(this, i18n("The template parameter name you have chosen is already being used in this operation."),
i18n("Template Name Not Unique"), false);
m_pNameLE->setText( m_pTemplate->name() );
return false;
}
}
m_pTemplate->setName(name);
m_pTemplate->setStereotype( m_pStereoTypeLE->text() );
return true;
}
示例4: slotEditFinished
//.........这里部分代码省略.........
a = new UMLAttribute(op);
a->setID(UniqueID::gen());
}
UMLApp::app()->executeCommand(new Uml::CmdRenameUMLObject(a, nm_tp.m_name));
a->setType(nm_tp.m_type);
a->setParmKind(nm_tp.m_direction);
a->setInitialValue(nm_tp.m_initialValue);
if (i >= newParmListCount) {
op->addParm(a);
}
}
m_label = op->toString(Uml::SignatureType::SigNoVis);
} else {
KMessageBox::error(0,
Model_Utils::psText(st),
i18n("Rename canceled"));
}
setText(m_label);
break;
}
case lvt_Attribute:
case lvt_EntityAttribute: {
if (m_object == 0) {
cancelRenameWithMsg();
return;
}
UMLClassifier *parent = static_cast<UMLClassifier*>(m_object->parent());
Model_Utils::NameAndType nt;
Uml::Visibility::Enum vis;
Model_Utils::Parse_Status st;
st = Model_Utils::parseAttribute(newText, nt, parent, &vis);
if (st == Model_Utils::PS_OK) {
UMLObject *exists = parent->findChildObject(newText);
if (exists) {
cancelRenameWithMsg();
return;
}
UMLApp::app()->executeCommand(new Uml::CmdRenameUMLObject(m_object, nt.m_name));
UMLAttribute *pAtt = static_cast<UMLAttribute*>(m_object);
pAtt->setType(nt.m_type);
pAtt->setVisibility(vis);
pAtt->setParmKind(nt.m_direction);
pAtt->setInitialValue(nt.m_initialValue);
m_label = pAtt->toString(Uml::SignatureType::SigNoVis);
} else {
KMessageBox::error(0,
Model_Utils::psText(st),
i18n("Rename canceled"));
}
setText(m_label);
break;
}
case lvt_PrimaryKeyConstraint:
case lvt_UniqueConstraint:
case lvt_ForeignKeyConstraint:
case lvt_CheckConstraint: {
if (m_object == 0) {
cancelRenameWithMsg();
return;
}
UMLEntity *parent = static_cast<UMLEntity*>(m_object->parent());
QString name;
Model_Utils::Parse_Status st;
st = Model_Utils::parseConstraint(newText, name, parent);
示例5: kError
/** If clipboard has mime type application/x-uml-clip5,
Pastes the data from the clipboard into the current Doc */
bool UMLClipboard::pasteClip5(QMimeSource* data) {
UMLDoc *doc = UMLApp::app()->getDocument();
UMLListView *listView = UMLApp::app()->getListView();
UMLListViewItem* lvitem = dynamic_cast<UMLListViewItem *>( listView->currentItem() );
if (!lvitem ||
(lvitem->getType() != Uml::lvt_Class && lvitem->getType() != Uml::lvt_Interface)) {
return false;
}
UMLClassifier *parent = dynamic_cast<UMLClassifier *>(lvitem->getUMLObject());
if (parent == NULL) {
kError() << "UMLClipboard::pasteClip5: parent is not a UMLClassifier"
<< endl;
return false;
}
UMLObjectList objects;
objects.setAutoDelete(false);
IDChangeLog* idchanges = 0;
bool result = UMLDrag::decodeClip5(data, objects, parent);
if(!result) {
return false;
}
UMLObject *obj = 0;
doc->setModified(true);
idchanges = doc->getChangeLog();
// Assume success if at least one child object could be pasted
if (objects.count())
result = false;
for (UMLObjectListIt it(objects); (obj = it.current()) != NULL; ++it) {
obj->setID(doc->assignNewID(obj->getID()));
switch(obj->getBaseType()) {
case Uml::ot_Attribute :
{
UMLObject *exist = parent->findChildObject(obj->getName(), Uml::ot_Attribute);
if (exist) {
QString newName = parent->uniqChildName(Uml::ot_Attribute, obj->getName());
obj->setName(newName);
}
UMLAttribute *att = static_cast<UMLAttribute*>(obj);
if (parent->addAttribute(att, idchanges)) {
result = true;
} else {
kError() << "UMLClipboard::pasteClip5: " << parent->getName()
<< "->addAttribute(" << att->getName() << ") failed" << endl;
}
break;
}
case Uml::ot_Operation :
{
UMLOperation *op = static_cast<UMLOperation*>(obj);
UMLOperation *exist = parent->checkOperationSignature(op->getName(), op->getParmList());
if (exist) {
QString newName = parent->uniqChildName(Uml::ot_Operation, obj->getName());
op->setName(newName);
}
if (parent->addOperation(op, idchanges)) {
result = true;
} else {
kError() << "UMLClipboard::pasteClip5: " << parent->getName()
<< "->addOperation(" << op->getName() << ") failed" << endl;
}
break;
}
default :
kWarning() << "pasting unknown children type in clip type 5" << endl;
return false;
}
}
return result;
}
示例6: apply
/**
* Checks if changes are valid and applies them if they are,
* else returns false
*/
bool UMLEntityAttributeDialog::apply()
{
QString name = m_pNameLE->text();
if (name.isEmpty()) {
KMessageBox::error(this, i18n("You have entered an invalid entity attribute name."),
i18n("Entity Attribute Name Invalid"), 0);
m_pNameLE->setText(m_pEntityAttribute->name());
return false;
}
UMLClassifier * pConcept = dynamic_cast<UMLClassifier *>(m_pEntityAttribute->parent());
UMLObject *o = pConcept->findChildObject(name);
if (o && o != m_pEntityAttribute) {
KMessageBox::error(this, i18n("The entity attribute name you have chosen is already being used in this operation."),
i18n("Entity Attribute Name Not Unique"), 0);
m_pNameLE->setText(m_pEntityAttribute->name());
return false;
}
m_pEntityAttribute->setName(name);
m_pEntityAttribute->setInitialValue(m_pInitialLE->text());
m_stereotypeWidget->apply();
m_pEntityAttribute->setValues(m_pValuesLE->text());
m_pEntityAttribute->setAttributes(m_pAttributesCB->currentText());
m_pEntityAttribute->setAutoIncrement(m_pAutoIncrementCB->isChecked());
m_pEntityAttribute->setNull(m_pNullCB->isChecked());
/*
if (m_pPublicRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Primary);
} else if (m_pProtectedRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Unique);
} else
*/
if (m_pPrivateRB->isChecked()) {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::Index);
} else {
m_pEntityAttribute->setIndexType(UMLEntityAttribute::None);
}
QString typeName = m_pTypeCB->currentText();
UMLDoc *pDoc = UMLApp::app()->document();
UMLClassifierList dataTypes = pDoc->datatypes();
foreach (UMLClassifier* dat, dataTypes) {
if (typeName == dat->name()) {
m_pEntityAttribute->setType(dat);
return true;
}
}
UMLObject *obj = pDoc->findUMLObject(typeName);
UMLClassifier *classifier = dynamic_cast<UMLClassifier*>(obj);
if (classifier == NULL) {
// If it's obviously a pointer type (C++) then create a datatype.
// Else we don't know what it is so as a compromise create a class.
UMLObject::ObjectType ot =
(typeName.contains(QChar::fromLatin1('*')) ? UMLObject::ot_Datatype
: UMLObject::ot_Class);
obj = Object_Factory::createUMLObject(ot, typeName);
if (obj == NULL)
return false;
classifier = static_cast<UMLClassifier*>(obj);
}
m_pEntityAttribute->setType(classifier);
return true;
}