umbrello  2.32.1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
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-2021 *
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 
33 {
34  Q_OBJECT
35  Q_ENUMS(VisualProperty)
36 public:
43  ShowStereotype = 0x1, // DEPRECATED - see umlwidgets/widgetbase.cpp
44  // WidgetBase::slotMenuSelection(QAction*)
45  // case ListPopupMenu::mt_{Show,Hide}_Stereotypes_Selection
49  ShowPackage = 0x10,
51  DrawAsCircle = 0x40,
54  DrawAsPackage = 0x100,
56  };
57 
58  Q_DECLARE_FLAGS(VisualProperties, VisualProperty)
59 
60  ClassifierWidget(UMLScene * scene, UMLClassifier * umlc);
61  ClassifierWidget(UMLScene * scene, UMLInstance * umli);
62  ClassifierWidget(UMLScene * scene, UMLPackage * o);
63  virtual ~ClassifierWidget();
64 
65  UMLClassifier *classifier() const;
66 
68 
69  VisualProperties visualProperties() const;
70  void setVisualProperties(VisualProperties properties);
71 
72  bool visualProperty(VisualProperty property) const;
73  void setVisualProperty(VisualProperty property, bool enable = true);
74  void setVisualPropertyCmd(VisualProperty property, bool enable = true);
75  void toggleVisualProperty(VisualProperty property);
76 
77  int displayedAttributes() const;
78  int displayedOperations() const;
79 
82 
85 
86  void setShowAttSigs(bool _show);
87  void toggleShowAttSigs();
88 
89  bool getDrawAsCircle() const;
90  void setDrawAsCircle(bool drawAsCircle);
91  void toggleDrawAsCircle();
92 
93  void changeToClass();
94  void changeToInterface();
95  void changeToPackage();
96 
99 
100  UMLWidget* onWidget(const QPointF& p);
102 
103  virtual void setDocumentation(const QString& doc);
104 
105  QSizeF calculateSize(bool withExtensions = true) const;
106 
107  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
108  virtual QPainterPath shape() const;
109 
110  virtual void saveToXMI1(QXmlStreamWriter& writer);
111  virtual bool loadFromXMI1(QDomElement & qElement);
112 
113  virtual bool showPropertiesDialog();
114  void setUMLObject(UMLObject *obj);
115 
116 public Q_SLOTS:
117  virtual void slotMenuSelection(QAction* action);
118 
119 private Q_SLOTS:
120  void slotShowAttributes(bool state);
121  void slotShowOperations(bool state);
122 
123 protected:
124  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
125 
126 private:
127  void updateSignatureTypes();
128  QSize calculateTemplatesBoxSize() const;
129 
130  QSizeF minimumSize() const;
131 
132  void drawAsCircle(QPainter *p, const QStyleOptionGraphicsItem *option);
133  QSize calculateAsCircleSize() const;
134 
135  void drawAsPackage(QPainter *painter, const QStyleOptionGraphicsItem *option);
136  QSize calculateAsPackageSize() const;
137 
139  void drawMembers(QPainter *painter, UMLObject::ObjectType ot, Uml::SignatureType::Enum sigType,
140  int x, int y, int textWidth, int fontHeight);
141 
142  static const int CIRCLE_SIZE;
143  static const int SOCKET_INCREMENT;
144 
145  VisualProperties m_visualProperties;
149  QPointer<FloatingTextWidget> m_pInterfaceName;
150 
151 };
152 
153 Q_DECLARE_OPERATORS_FOR_FLAGS(ClassifierWidget::VisualProperties)
154 
155 #endif
This class represents an association inside a diagram. Bugs and comments to umbrello-devel@kde....
Definition: associationwidget.h:52
Common implementation for class widget and interface widget.
Definition: classifierwidget.h:33
int displayedAttributes() const
Definition: classifierwidget.cpp:717
void slotShowOperations(bool state)
Definition: classifierwidget.cpp:1579
void setVisualPropertyCmd(VisualProperty property, bool enable=true)
Definition: classifierwidget.cpp:271
AssociationWidget * m_pAssocWidget
related AssociationWidget in case this classifier acts as an association class
Definition: classifierwidget.h:148
virtual bool showPropertiesDialog()
Definition: classifierwidget.cpp:1595
UMLWidget * widgetWithID(Uml::ID::Type id)
Definition: classifierwidget.cpp:1219
void setDrawAsCircle(bool drawAsCircle)
Definition: classifierwidget.cpp:1240
Uml::SignatureType::Enum attributeSignature() const
Definition: classifierwidget.cpp:403
void changeToPackage()
Definition: classifierwidget.cpp:1333
static const int SOCKET_INCREMENT
augmentation of circle for socket (required interface)
Definition: classifierwidget.h:143
Uml::SignatureType::Enum m_operationSignature
Loaded/saved item.
Definition: classifierwidget.h:147
VisualProperty
Definition: classifierwidget.h:42
@ ShowPackage
Definition: classifierwidget.h:49
@ ShowDocumentation
Definition: classifierwidget.h:55
@ ShowPublicOnly
Definition: classifierwidget.h:47
@ ShowOperations
Definition: classifierwidget.h:46
@ ShowOperationSignature
only in setter
Definition: classifierwidget.h:52
@ ShowStereotype
Definition: classifierwidget.h:43
@ DrawAsCircle
Definition: classifierwidget.h:51
@ ShowAttributeSignature
only in setter
Definition: classifierwidget.h:53
@ DrawAsPackage
Definition: classifierwidget.h:54
@ ShowAttributes
Definition: classifierwidget.h:50
@ ShowVisibility
Definition: classifierwidget.h:48
void setUMLObject(UMLObject *obj)
Definition: classifierwidget.cpp:1610
void setOperationSignature(Uml::SignatureType::Enum sig)
Definition: classifierwidget.cpp:435
QSizeF calculateSize(bool withExtensions=true) const
Definition: classifierwidget.cpp:521
AssociationWidget * classAssociationWidget() const
Definition: classifierwidget.cpp:751
bool visualProperty(VisualProperty property) const
Definition: classifierwidget.cpp:225
UMLWidget * onWidget(const QPointF &p)
Definition: classifierwidget.cpp:1205
void toggleVisualProperty(VisualProperty property)
Definition: classifierwidget.cpp:342
VisualProperties visualProperties() const
Definition: classifierwidget.cpp:198
Uml::SignatureType::Enum operationSignature() const
Definition: classifierwidget.cpp:425
void setVisualProperties(VisualProperties properties)
Definition: classifierwidget.cpp:207
void setShowStereotype(Uml::ShowStereoType::Enum flag)
Definition: classifierwidget.cpp:186
void drawMembers(QPainter *painter, UMLObject::ObjectType ot, Uml::SignatureType::Enum sigType, int x, int y, int textWidth, int fontHeight)
Definition: classifierwidget.cpp:1141
bool getDrawAsCircle() const
Definition: classifierwidget.cpp:1277
VisualProperties m_visualProperties
Definition: classifierwidget.h:145
QSize calculateAsCircleSize() const
Definition: classifierwidget.cpp:1057
void drawAsCircle(QPainter *p, const QStyleOptionGraphicsItem *option)
Definition: classifierwidget.cpp:974
QPointer< FloatingTextWidget > m_pInterfaceName
Separate widget for name in case of interface drawn as circle.
Definition: classifierwidget.h:149
QSize calculateTemplatesBoxSize() const
Definition: classifierwidget.cpp:685
void setAttributeSignature(Uml::SignatureType::Enum sig)
Definition: classifierwidget.cpp:414
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: classifierwidget.cpp:761
void changeToInterface()
Definition: classifierwidget.cpp:1317
void setClassAssociationWidget(AssociationWidget *assocwidget)
Definition: classifierwidget.cpp:738
virtual ~ClassifierWidget()
Definition: classifierwidget.cpp:164
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
Definition: classifierwidget.cpp:1584
QSize calculateAsPackageSize() const
Definition: classifierwidget.cpp:1104
virtual void setDocumentation(const QString &doc)
Definition: classifierwidget.cpp:1228
ClassifierWidget(UMLScene *scene, UMLClassifier *umlc)
Definition: classifierwidget.cpp:49
virtual void saveToXMI1(QXmlStreamWriter &writer)
Definition: classifierwidget.cpp:1420
UMLClassifier * classifier() const
Definition: classifierwidget.cpp:178
void drawAsPackage(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: classifierwidget.cpp:1064
static const int CIRCLE_SIZE
size of circle when interface is rendered as such
Definition: classifierwidget.h:142
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: classifierwidget.cpp:1348
QSizeF minimumSize() const
Definition: classifierwidget.cpp:512
void toggleDrawAsCircle()
Definition: classifierwidget.cpp:1286
int displayedMembers(UMLObject::ObjectType ot) const
Definition: classifierwidget.cpp:493
void toggleShowAttSigs()
Definition: classifierwidget.cpp:471
virtual void slotMenuSelection(QAction *action)
Definition: classifierwidget.cpp:1467
virtual QPainterPath shape() const
Definition: classifierwidget.cpp:951
void setShowAttSigs(bool _show)
Definition: classifierwidget.cpp:449
Uml::SignatureType::Enum m_attributeSignature
Loaded/saved item.
Definition: classifierwidget.h:146
void setVisualProperty(VisualProperty property, bool enable=true)
Definition: classifierwidget.cpp:255
int displayedOperations() const
Definition: classifierwidget.cpp:727
void changeToClass()
Definition: classifierwidget.cpp:1299
void updateSignatureTypes()
Definition: classifierwidget.cpp:364
void slotShowAttributes(bool state)
Definition: classifierwidget.cpp:1571
Displays a line of text or an operation.
Definition: floatingtextwidget.h:37
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Non-graphical Information for an Instance.
Definition: instance.h:48
The base class for UML objects.
Definition: umlobject.h:75
ObjectType
Definition: umlobject.h:81
Non-graphical information for a Package.
Definition: package.h:33
Definition: umlscene.h:70
The base class for graphical UML objects.
Definition: umlwidget.h:41
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
std::string Type
Definition: basictypes.h:385
Enum
Definition: basictypes.h:162
Enum
Definition: basictypes.h:174