You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.7 KiB
115 lines
3.7 KiB
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* copyright (C) 2003-2007 *
|
|
* Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
|
|
***************************************************************************/
|
|
|
|
// own header
|
|
#include "umlroleproperties.h"
|
|
|
|
// qt/kde includes
|
|
#include <tqradiobutton.h>
|
|
#include <tqtextedit.h>
|
|
#include <tqlineedit.h>
|
|
#include <tdelocale.h>
|
|
#include <tdemessagebox.h>
|
|
#include <kdebug.h>
|
|
|
|
|
|
UMLRoleProperties::UMLRoleProperties ( TQWidget *parent, UMLRole *role)
|
|
: UMLRolePropertiesBase (parent)
|
|
{
|
|
|
|
m_pRole = role;
|
|
constructWidget();
|
|
|
|
}
|
|
|
|
UMLRoleProperties::~UMLRoleProperties() { }
|
|
|
|
void UMLRoleProperties::constructWidget() {
|
|
|
|
// Use Parent Role to set starting Properties
|
|
//
|
|
|
|
// Rolename
|
|
m_pRoleLE -> setText(m_pRole->getName());
|
|
|
|
// Multiplicity
|
|
m_pMultiLE -> setText(m_pRole->getMultiplicity());
|
|
|
|
// Visibility
|
|
Uml::Visibility scope = m_pRole->getVisibility();
|
|
if( scope == Uml::Visibility::Public )
|
|
m_pPublicRB -> setChecked( true );
|
|
else if( scope == Uml::Visibility::Private )
|
|
m_pPrivateRB -> setChecked( true );
|
|
else if( scope == Uml::Visibility::Protected )
|
|
m_pProtectedRB -> setChecked( true );
|
|
else if( scope == Uml::Visibility::Implementation )
|
|
m_pImplementationRB -> setChecked( true );
|
|
|
|
// Changeability
|
|
Uml::Changeability_Type changeability = m_pRole->getChangeability();
|
|
if( changeability == Uml::chg_Changeable )
|
|
m_pChangeableRB -> setChecked( true );
|
|
else if( changeability == Uml::chg_Frozen )
|
|
m_pFrozenRB -> setChecked( true );
|
|
else
|
|
m_pAddOnlyRB -> setChecked( true );
|
|
|
|
// Documentation
|
|
//
|
|
m_pDocTE-> setText(m_pRole-> getDoc());
|
|
//m_pDocTE->setWordWrap(TQMultiLineEdit::WidgetWidth);
|
|
}
|
|
|
|
void UMLRoleProperties::updateObject() {
|
|
|
|
if(m_pRole) {
|
|
|
|
// block signals to save work load..we only need to emit modified once,
|
|
// not each time we update an attribute of the association. I suppose
|
|
// we could check to see IF anything changed, but thats a lot more code,
|
|
// and not much gained. THis way is easier, if less 'beautiful'. -b.t.
|
|
|
|
m_pRole->blockSignals(true);
|
|
|
|
// set props
|
|
m_pRole->setName(m_pRoleLE->text());
|
|
m_pRole->setMultiplicity(m_pMultiLE->text());
|
|
|
|
if(m_pPrivateRB->isChecked())
|
|
m_pRole->setVisibility(Uml::Visibility::Private);
|
|
else if(m_pProtectedRB->isChecked())
|
|
m_pRole->setVisibility(Uml::Visibility::Protected);
|
|
else if(m_pPublicRB->isChecked())
|
|
m_pRole->setVisibility(Uml::Visibility::Public);
|
|
else if(m_pImplementationRB->isChecked())
|
|
m_pRole->setVisibility(Uml::Visibility::Implementation);
|
|
|
|
if(m_pFrozenRB->isChecked())
|
|
m_pRole->setChangeability(Uml::chg_Frozen);
|
|
else if(m_pAddOnlyRB->isChecked())
|
|
m_pRole->setChangeability(Uml::chg_AddOnly);
|
|
else
|
|
m_pRole->setChangeability(Uml::chg_Changeable);
|
|
|
|
m_pRole->setDoc(m_pDocTE->text());
|
|
|
|
m_pRole->blockSignals(false);
|
|
|
|
m_pRole->emitModified();
|
|
|
|
} //end if m_pRole
|
|
|
|
}
|
|
|
|
|
|
#include "umlroleproperties.moc"
|