• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

umbrello/umbrello

  • sources
  • kde-4.14
  • kdesdk
  • umbrello
  • umbrello
  • widgets
classifierwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2004-2014 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef CLASSIFIERWIDGET_H
12 #define CLASSIFIERWIDGET_H
13 
14 #include "basictypes.h"
15 #include "umlobject.h"
16 #include "umlwidget.h"
17 
18 class AssociationWidget;
19 class FloatingTextWidget;
20 class QPainter;
21 class UMLClassifier;
22 
32 class ClassifierWidget : public UMLWidget
33 {
34  Q_OBJECT
35  Q_ENUMS(VisualProperty)
36 public:
42  enum VisualProperty {
43  ShowStereotype = 0x1,
44  ShowOperations = 0x2,
45  ShowPublicOnly = 0x4,
46  ShowVisibility = 0x8,
47  ShowPackage = 0x10,
48  ShowAttributes = 0x20,
49  DrawAsCircle = 0x40,
50  ShowOperationSignature = 0x60,
51  ShowAttributeSignature = 0x80,
52  DrawAsPackage = 0x100,
53  };
54 
55  Q_DECLARE_FLAGS(VisualProperties, VisualProperty)
56 
57  ClassifierWidget(UMLScene * scene, UMLClassifier * o);
58  ClassifierWidget(UMLScene * scene, UMLPackage * o);
59  virtual ~ClassifierWidget();
60 
61  UMLClassifier *classifier() const;
62 
63  VisualProperties visualProperties() const;
64  void setVisualProperties(VisualProperties properties);
65 
66  bool visualProperty(VisualProperty property) const;
67  void setVisualProperty(VisualProperty property, bool enable = true);
68  void setVisualPropertyCmd(VisualProperty property, bool enable = true);
69  void toggleVisualProperty(VisualProperty property);
70 
71  int displayedAttributes() const;
72  int displayedOperations() const;
73 
74  Uml::SignatureType::Enum attributeSignature() const;
75  void setAttributeSignature(Uml::SignatureType::Enum sig);
76 
77  Uml::SignatureType::Enum operationSignature() const;
78  void setOperationSignature(Uml::SignatureType::Enum sig);
79 
80  void setShowAttSigs(bool _show);
81  void toggleShowAttSigs();
82 
83  bool getDrawAsCircle() const;
84  void setDrawAsCircle(bool drawAsCircle);
85  void toggleDrawAsCircle();
86 
87  void changeToClass();
88  void changeToInterface();
89  void changeToPackage();
90 
91  AssociationWidget *classAssociationWidget() const;
92  void setClassAssociationWidget(AssociationWidget *assocwidget);
93 // virtual void adjustAssociations(int x, int y);
94 
95  UMLWidget* onWidget(const QPointF& p);
96  UMLWidget* widgetWithID(Uml::ID::Type id);
97 
98  QSizeF calculateSize(bool withExtensions = true) const;
99 
100  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
101  virtual QPainterPath shape() const;
102 
103  virtual void saveToXMI(QDomDocument & qDoc, QDomElement & qElement);
104  virtual bool loadFromXMI(QDomElement & qElement);
105 
106 public Q_SLOTS:
107  virtual void slotMenuSelection(QAction* action);
108 
109 private Q_SLOTS:
110  void slotShowAttributes(bool state);
111  void slotShowOperations(bool state);
112 
113 private:
114  void updateSignatureTypes();
115  QSize calculateTemplatesBoxSize() const;
116 
117  QSizeF minimumSize() const;
118 
119  void drawAsCircle(QPainter *p, const QStyleOptionGraphicsItem *option);
120  QSize calculateAsCircleSize() const;
121 
122  void drawAsPackage(QPainter *painter, const QStyleOptionGraphicsItem *option);
123  QSize calculateAsPackageSize() const;
124 
125  int displayedMembers(UMLObject::ObjectType ot) const;
126  void drawMembers(QPainter *painter, UMLObject::ObjectType ot, Uml::SignatureType::Enum sigType,
127  int x, int y, int fontHeight);
128 
129  static const int MARGIN;
130  static const int CIRCLE_SIZE;
131  static const int SOCKET_INCREMENT;
132 
133  VisualProperties m_visualProperties;
134  Uml::SignatureType::Enum m_attributeSignature;
135  Uml::SignatureType::Enum m_operationSignature;
136  AssociationWidget *m_pAssocWidget;
137  FloatingTextWidget *m_pInterfaceName;
138 
139 };
140 
141 Q_DECLARE_OPERATORS_FOR_FLAGS(ClassifierWidget::VisualProperties)
142 
143 #endif
umlobject.h
UMLPackage
This class contains the non-graphical information required for a UML Package.
Definition: package.h:32
QGraphicsItem::x
qreal x() const
QGraphicsItem::y
qreal y() const
QWidget
ClassifierWidget::setDrawAsCircle
void setDrawAsCircle(bool drawAsCircle)
Sets whether to draw as circle.
Definition: classifierwidget.cpp:1040
UMLClassifier
This class defines the non-graphical information required for a UML Classifier (ie a class or interfa...
Definition: classifier.h:39
ClassifierWidget::toggleVisualProperty
void toggleVisualProperty(VisualProperty property)
A convenient method to toggle individual VisualProperty of this widget.
Definition: classifierwidget.cpp:291
ClassifierWidget::ShowStereotype
Definition: classifierwidget.h:43
ClassifierWidget::setShowAttSigs
void setShowAttSigs(bool _show)
Sets whether to show attribute signature Only applies when m_umlObject->getBaseType() is ot_Class...
Definition: classifierwidget.cpp:398
ClassifierWidget::classAssociationWidget
AssociationWidget * classAssociationWidget() const
Return the AssociationWidget when this classifier acts as an association class (else return NULL...
Definition: classifierwidget.cpp:649
ClassifierWidget::ShowVisibility
Definition: classifierwidget.h:46
ClassifierWidget::toggleShowAttSigs
void toggleShowAttSigs()
Toggles whether to show attribute signatures.
Definition: classifierwidget.cpp:420
ClassifierWidget::ShowOperationSignature
only in setter
Definition: classifierwidget.h:50
ClassifierWidget::getDrawAsCircle
bool getDrawAsCircle() const
Returns whether to draw as circle.
Definition: classifierwidget.cpp:1076
ClassifierWidget::toggleDrawAsCircle
void toggleDrawAsCircle()
Toggles whether to draw as circle.
Definition: classifierwidget.cpp:1085
ClassifierWidget::ShowPackage
Definition: classifierwidget.h:47
ClassifierWidget::onWidget
UMLWidget * onWidget(const QPointF &p)
Override method from UMLWidget in order to additionally check m_pInterfaceName.
Definition: classifierwidget.cpp:1011
ClassifierWidget::ShowAttributeSignature
only in setter
Definition: classifierwidget.h:51
QGraphicsItem::scene
QGraphicsScene * scene() const
ClassifierWidget::changeToInterface
void changeToInterface()
Changes this classifier from a class to an interface.
Definition: classifierwidget.cpp:1116
ClassifierWidget::displayedAttributes
int displayedAttributes() const
Return the number of displayed attributes.
Definition: classifierwidget.cpp:611
ClassifierWidget::setAttributeSignature
void setAttributeSignature(Uml::SignatureType::Enum sig)
Sets the type of signature to display for an attribute.
Definition: classifierwidget.cpp:363
ClassifierWidget::calculateSize
QSizeF calculateSize(bool withExtensions=true) const
Calculate content related size of widget.
Definition: classifierwidget.cpp:468
ClassifierWidget::ShowPublicOnly
Definition: classifierwidget.h:45
ClassifierWidget::slotMenuSelection
virtual void slotMenuSelection(QAction *action)
Will be called when a menu selection has been made from the popup menu.
Definition: classifierwidget.cpp:1262
UMLObject
This class is the non-graphical version of UMLWidget.
Definition: umlobject.h:41
QPointF
AssociationWidget
This class represents an association inside a diagram.
Definition: associationwidget.h:50
ClassifierWidget::paint
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Overrides standard method.
Definition: classifierwidget.cpp:658
ClassifierWidget::setOperationSignature
void setOperationSignature(Uml::SignatureType::Enum sig)
Set the type of signature to display for an Operation.
Definition: classifierwidget.cpp:384
ClassifierWidget::VisualProperty
VisualProperty
This enumeration lists the visual properties that can be easily set, reset and toggled and all these ...
Definition: classifierwidget.h:42
QObject::property
QVariant property(const char *name) const
ClassifierWidget::setVisualProperties
void setVisualProperties(VisualProperties properties)
Set an OR combination of properties stored in properties on this widget.
Definition: classifierwidget.cpp:155
ClassifierWidget::setVisualProperty
void setVisualProperty(VisualProperty property, bool enable=true)
A convenient method to set and reset individual VisualProperty.
Definition: classifierwidget.cpp:199
ClassifierWidget::loadFromXMI
virtual bool loadFromXMI(QDomElement &qElement)
Extends base method to adjust also the association of a class association.
Definition: classifierwidget.cpp:1172
umlwidget.h
QPainter
ClassifierWidget::displayedOperations
int displayedOperations() const
Return the number of displayed operations.
Definition: classifierwidget.cpp:621
ClassifierWidget::attributeSignature
Uml::SignatureType::Enum attributeSignature() const
Returns whether to show attribute signatures.
Definition: classifierwidget.cpp:352
ClassifierWidget::DrawAsCircle
Definition: classifierwidget.h:49
ClassifierWidget::ShowOperations
Definition: classifierwidget.h:44
QSize
Uml::ID::Type
std::string Type
Definition: basictypes.h:325
QDomDocument
ClassifierWidget::classifier
UMLClassifier * classifier() const
Return the UMLClassifier which this ClassifierWidget represents.
Definition: classifierwidget.cpp:138
ClassifierWidget::setClassAssociationWidget
void setClassAssociationWidget(AssociationWidget *assocwidget)
Set the AssociationWidget when this ClassWidget acts as an association class.
Definition: classifierwidget.cpp:632
ClassifierWidget::DrawAsPackage
Definition: classifierwidget.h:52
ClassifierWidget::setVisualPropertyCmd
void setVisualPropertyCmd(VisualProperty property, bool enable=true)
A convenient method to set and reset individual VisualProperty.
Definition: classifierwidget.cpp:215
QPainterPath
QSizeF
ClassifierWidget::shape
virtual QPainterPath shape() const
Definition: classifierwidget.cpp:795
FloatingTextWidget
Displays a line of text or an operation.
Definition: floatingtextwidget.h:36
ClassifierWidget::visualProperty
bool visualProperty(VisualProperty property) const
Definition: classifierwidget.cpp:173
QAction
ClassifierWidget::saveToXMI
virtual void saveToXMI(QDomDocument &qDoc, QDomElement &qElement)
Creates the "classwidget" or "interfacewidget" XML element.
Definition: classifierwidget.cpp:1231
ClassifierWidget::visualProperties
VisualProperties visualProperties() const
Definition: classifierwidget.cpp:146
QStyleOptionGraphicsItem
ClassifierWidget::changeToClass
void changeToClass()
Changes this classifier from an interface to a class.
Definition: classifierwidget.cpp:1098
Uml::ModelType::Enum
Enum
Definition: basictypes.h:38
QDomElement
ClassifierWidget
Common implementation for class widget and interface widget.
Definition: classifierwidget.h:32
basictypes.h
ClassifierWidget::operationSignature
Uml::SignatureType::Enum operationSignature() const
Definition: classifierwidget.cpp:374
ClassifierWidget::ShowAttributes
Definition: classifierwidget.h:48
ClassifierWidget::changeToPackage
void changeToPackage()
Changes this classifier from an "class-or-package" to a package.
Definition: classifierwidget.cpp:1132
ClassifierWidget::widgetWithID
UMLWidget * widgetWithID(Uml::ID::Type id)
Reimplement function from UMLWidget.
Definition: classifierwidget.cpp:1025
UMLScene
UMLScene instances represent diagrams.
Definition: umlscene.h:68
UMLWidget
This is the base class for nearly all graphical widgets.
Definition: umlwidget.h:38
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:40:25 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

umbrello/umbrello

Skip menu "umbrello/umbrello"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal