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.
tdesdk/umbrello/umbrello/classifierlistitem.h

128 lines
4.2 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-2006 *
* Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
***************************************************************************/
#ifndef CLASSIFIERLISTITEM_H
#define CLASSIFIERLISTITEM_H
#include "umlobject.h"
// forward declaration
class UMLClassifier;
/**
* Classifiers (classes, interfaces) have lists of operations,
* attributes, templates and others. This is a base class for
* the items in this list. This abstraction should remove
* duplication of dialogs and allow for stereotypes in lists.
*
* @short A base class for classifier list items (e.g. attributes)
* @author Jonathan Riddell
* Bugs and comments to uml-devel@lists.sf.net or http://bugs.trinitydesktop.org
*/
class UMLClassifierListItem : public UMLObject {
TQ_OBJECT
public:
/**
* Constructor. Empty.
*
* @param parent The parent to this operation.
* At first sight it would appear that the type of the
* parent should be UMLClassifier. However, the class
* UMLAttribute is also used for the parameters of
* operations, and in this case the UMLOperation is the
* parent.
* @param name The name of the operation.
* @param id The id of the operation.
*/
UMLClassifierListItem(const UMLObject *parent,
const TQString& name,
Uml::IDType id = Uml::id_None);
/**
* Constructor. Empty.
*
* @param parent The parent to this operation.
* At first sight it would appear that the type of the
* parent should be UMLClassifier. However, the class
* UMLAttribute is also used for the parameters of
* operations, and in this case the UMLOperation is the
* parent.
*/
UMLClassifierListItem(const UMLObject *parent);
/**
* Destructor. Empty.
*/
virtual ~UMLClassifierListItem();
/**
* Returns the type of the UMLClassifierListItem.
*
* @return The type of the UMLClassifierListItem.
*/
UMLClassifier * getType() const;
/**
* Returns the type name of the UMLClassifierListItem.
*
* @return The type name of the UMLClassifierListItem.
*/
virtual TQString getTypeName() const;
/**
* Sets the type name of the UMLClassifierListItem.
* DEPRECATED - use setType() instead.
*
* @param type The type name of the UMLClassifierListItem.
*/
void setTypeName( const TQString &type );
/**
* Sets the type of the UMLAttribute.
*
* @param type Pointer to the UMLObject of the type.
*/
virtual void setType(UMLObject *type);
/**
* Returns a string representation of the list item.
*
* @param sig What type of operation string to show.
* @return The string representation of the operation.
*/
virtual TQString toString(Uml::Signature_Type sig = Uml::st_NoSig);
/**
* Display the properties configuration dialog for the list item.
*
* @param parent The parent widget.
* @return True for success of this operation.
*/
virtual bool showPropertiesDialog(TQWidget* parent) = 0;
/**
* Copy the internal presentation of this object into the new
* object.
*/
virtual void copyInto(UMLClassifierListItem *rhs) const;
/**
* The abstract method UMLObject::clone() must be implemented
* by the classes inheriting from UMLClassifierListItem.
*/
virtual UMLObject* clone() const = 0;
};
#endif