umbrello  2.31.3
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
messagewidget.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) 2002-2020 *
8  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
9  ***************************************************************************/
10 
11 #ifndef MESSAGEWIDGET_H
12 #define MESSAGEWIDGET_H
13 
14 #include "umlwidget.h"
15 #include "linkwidget.h"
16 
17 // forward declarations
18 class FloatingTextWidget;
19 class ObjectWidget;
20 class QResizeEvent;
21 class UMLOperation;
22 
40 class MessageWidget : public UMLWidget, public LinkWidget
41 {
42  Q_OBJECT
43 public:
47  MessageWidget(UMLScene * scene, Uml::SequenceMessage::Enum sequenceMessageType,
49  MessageWidget(UMLScene * scene, ObjectWidget* a, int xclick, int yclick,
50  Uml::SequenceMessage::Enum sequenceMessageType,
52  virtual ~MessageWidget();
53 
54  virtual void setY(qreal y);
55 
56  //---------- LinkWidget Interface methods implemementation from now on.
57 
58  virtual void lwSetFont (QFont font);
59  virtual UMLClassifier *operationOwner();
60 
61  virtual UMLOperation *operation();
62  virtual void setOperation(UMLOperation *op);
63 
64  virtual QString customOpText();
65  virtual void setCustomOpText(const QString &opText);
66 
67  virtual void setMessageText(FloatingTextWidget *ft);
68  virtual void setText(FloatingTextWidget *ft, const QString &newText);
69 
70  virtual QString lwOperationText();
71  virtual UMLClassifier *lwClassifier();
72  virtual void setOperationText(const QString &op);
73 
74  virtual void constrainTextPos(qreal &textX, qreal &textY, qreal textWidth, qreal textHeight,
76 
77  //---------- End LinkWidget Interface methods implemementation.
78 
81  return m_sequenceMessageType;
82  }
83 
84  bool hasObjectWidget(ObjectWidget * w);
85 
88 
89  bool isSelf() const;
90 
97  return m_pFText;
98  }
99 
106  m_pFText = f;
107  }
108 
109  void calculateWidget();
110 
111  virtual bool activate(IDChangeLog * Log = 0);
112  void resolveObjectWidget(IDChangeLog* log);
113 
114  void calculateDimensions();
121 
122  virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
123 
124  void setTextPosition();
125 
126  void cleanup();
127 
128  void setSelected(bool _select);
129 
130  int getMinY();
131  int getMaxY();
132 
133  virtual QSizeF minimumSize() const;
134 
135  UMLWidget* onWidget(const QPointF& p);
136 
137  virtual void resizeWidget(qreal newW, qreal newH);
138 
139  virtual void saveToXMI1(QDomDocument & qDoc, QDomElement & qElement);
140  virtual bool loadFromXMI1(QDomElement & qElement);
141 
142  void setxclicked(int xclick);
143  void setyclicked(int yclick);
144 
148  int getxclicked() const {
149  return m_xclicked;
150  }
151 
152  virtual bool showPropertiesDialog();
153 
154 protected:
155  virtual void moveWidgetBy(qreal diffX, qreal diffY);
156  virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY);
157 
158  virtual QCursor resizeCursor() const;
159 
160  void setLinkAndTextPos();
161 
162  int constrainX(int textX, int textWidth, Uml::TextRole::Enum tr);
163 
164  static void paintArrow(QPainter *p, int x, int y, int w,
165  Qt::ArrowType direction, bool useDottedLine = false);
166  static void paintSolidArrowhead(QPainter *p, int x, int y, Qt::ArrowType direction);
167 
168  void updateResizability();
169 
170  void paintSynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option);
171  void paintAsynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option);
172  void paintCreation(QPainter *painter, const QStyleOptionGraphicsItem *option);
173  void paintDestroy(QPainter *painter, const QStyleOptionGraphicsItem *option);
174  void paintLost(QPainter *painter, const QStyleOptionGraphicsItem *option);
175  void paintFound(QPainter *painter, const QStyleOptionGraphicsItem *option);
176 
177  // Data loaded/saved
178  QString m_CustomOp;
183 
184 private:
185  void resizeEvent(QResizeEvent *re);
186 
187  qreal constrainPositionY(qreal diffY);
188 
189  void init();
190 
191  QPointer<ObjectWidget> m_pOw[2];
193 
196 
203 
204 public slots:
206  void slotMenuSelection(QAction* action);
207 
208 signals:
213  void sigMessageMoved();
214 };
215 
216 #endif
Displays an instance of a Concept.
Definition: objectwidget.h:32
virtual QSizeF minimumSize() const
Definition: messagewidget.cpp:1289
int getMaxY()
Definition: messagewidget.cpp:1273
void calculateDimensionsFound()
Definition: messagewidget.cpp:1185
virtual void setOperationText(const QString &op)
Definition: messagewidget.cpp:924
void calculateDimensionsSynchronous()
Definition: messagewidget.cpp:1051
Uml::ID::Type m_textId
Definition: messagewidget.h:202
Information for a non-graphical Concept/Class.
Definition: classifier.h:39
virtual void setY(qreal y)
Definition: messagewidget.cpp:157
virtual void setOperation(UMLOperation *op)
Definition: messagewidget.cpp:965
virtual QString lwOperationText()
Definition: messagewidget.cpp:999
virtual UMLOperation * operation()
Definition: messagewidget.cpp:956
virtual QFont font() const
Definition: widgetbase.cpp:543
static void paintSolidArrowhead(QPainter *p, int x, int y, Qt::ArrowType direction)
Definition: messagewidget.cpp:328
void updateResizability()
Definition: messagewidget.cpp:180
Interface to FloatingTextWidget for AssociationWidget and MessageWidget.
Definition: linkwidget.h:35
bool hasObjectWidget(ObjectWidget *w)
Definition: messagewidget.cpp:763
Uml::ID::Type m_widgetAId
Definition: messagewidget.h:202
virtual UMLClassifier * operationOwner()
Definition: messagewidget.cpp:943
ObjectWidget * objectWidget(Uml::RoleType::Enum role)
Definition: messagewidget.cpp:1326
virtual void lwSetFont(QFont font)
Definition: messagewidget.cpp:933
Uml::ID::Type m_widgetBId
Definition: messagewidget.h:202
void paintLost(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:533
Definition: idchangelog.h:26
QString a
Definition: petalnode.cpp:18
QPointer< ObjectWidget > m_pOw[2]
Definition: messagewidget.h:191
FloatingTextWidget * m_pFText
Definition: messagewidget.h:192
void paintFound(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:571
void paintAsynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:443
virtual bool showPropertiesDialog()
Definition: messagewidget.cpp:1350
int m_xclicked
Definition: messagewidget.h:194
int x
Definition: cxx11-lambda-functions-and-expressions.h:4
void resolveObjectWidget(IDChangeLog *log)
Definition: messagewidget.cpp:885
int getMinY()
Definition: messagewidget.cpp:1251
void setLinkAndTextPos()
Definition: messagewidget.cpp:712
virtual void setCustomOpText(const QString &opText)
Definition: messagewidget.cpp:989
QString m_CustomOp
Definition: messagewidget.h:178
int constrainX(int textX, int textWidth, Uml::TextRole::Enum tr)
Definition: messagewidget.cpp:662
void setyclicked(int yclick)
Definition: messagewidget.cpp:1342
Enum
Definition: basictypes.h:238
void calculateDimensionsAsynchronous()
Definition: messagewidget.cpp:1085
virtual void constrainMovementForAllWidgets(qreal &diffX, qreal &diffY)
Definition: messagewidget.cpp:288
Displays a message.
Definition: messagewidget.h:40
virtual void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: messagewidget.cpp:1372
Uml::SequenceMessage::Enum m_sequenceMessageType
Definition: messagewidget.h:182
void setSelected(bool _select)
Definition: messagewidget.cpp:1233
qreal constrainPositionY(qreal diffY)
Definition: messagewidget.cpp:241
void calculateWidget()
Definition: messagewidget.cpp:727
Uml::SequenceMessage::Enum sequenceMessageType() const
Definition: messagewidget.h:80
virtual QString customOpText()
Definition: messagewidget.cpp:980
void sigMessageMoved()
Definition: moc_messagewidget.cpp:159
int getxclicked() const
Definition: messagewidget.h:148
virtual void setText(FloatingTextWidget *ft, const QString &newText)
Definition: messagewidget.cpp:912
virtual bool activate(IDChangeLog *Log=0)
Definition: messagewidget.cpp:802
void calculateDimensionsDestroy()
Definition: messagewidget.cpp:1152
std::string Type
Definition: basictypes.h:351
Enum
Definition: basictypes.h:178
virtual void constrainTextPos(qreal &textX, qreal &textY, qreal textWidth, qreal textHeight, Uml::TextRole::Enum tr)
Definition: messagewidget.cpp:694
void slotWidgetMoved(Uml::ID::Type id)
Definition: messagewidget.cpp:734
MessageWidget(UMLScene *scene, ObjectWidget *a, ObjectWidget *b, int y, Uml::SequenceMessage::Enum sequenceMessageType, Uml::ID::Type id=Uml::ID::None)
Definition: messagewidget.cpp:56
void setFloatingTextWidget(FloatingTextWidget *f)
Definition: messagewidget.h:105
void paintDestroy(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:524
virtual bool loadFromXMI1(QDomElement &qElement)
Definition: messagewidget.cpp:1404
Definition: operation.h:24
virtual QCursor resizeCursor() const
Definition: messagewidget.cpp:195
void cleanup()
Definition: messagewidget.cpp:1210
void slotMenuSelection(QAction *action)
Definition: messagewidget.cpp:784
bool b
Definition: cxx11-null-pointer-constant.h:6
Displays a line of text or an operation.
Definition: floatingtextwidget.h:36
void calculateDimensionsLost()
Definition: messagewidget.cpp:1160
void setObjectWidget(ObjectWidget *ow, Uml::RoleType::Enum role)
Definition: messagewidget.cpp:1315
void setxclicked(int xclick)
Definition: messagewidget.cpp:1334
virtual UMLClassifier * lwClassifier()
Definition: messagewidget.cpp:1013
Enum
Definition: basictypes.h:219
void calculateDimensions()
Definition: messagewidget.cpp:1026
virtual ~MessageWidget()
Definition: messagewidget.cpp:145
QString newText(UMLObject::ObjectType type)
Definition: model_utils.cpp:613
void resizeEvent(QResizeEvent *re)
Definition: messagewidget.cpp:720
FloatingTextWidget * floatingTextWidget()
Definition: messagewidget.h:96
void calculateDimensionsCreation()
Definition: messagewidget.cpp:1121
void paintSynchronous(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:375
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Definition: messagewidget.cpp:298
void paintCreation(QPainter *painter, const QStyleOptionGraphicsItem *option)
Definition: messagewidget.cpp:493
const Type None
special value for uninitialized ID
Definition: basictypes.h:353
static void paintArrow(QPainter *p, int x, int y, int w, Qt::ArrowType direction, bool useDottedLine=false)
Definition: messagewidget.cpp:346
void init()
Definition: messagewidget.cpp:132
UMLWidget * onWidget(const QPointF &p)
Definition: messagewidget.cpp:617
virtual void moveWidgetBy(qreal diffX, qreal diffY)
Definition: messagewidget.cpp:272
bool isSelf() const
Definition: messagewidget.cpp:778
Definition: umlscene.h:68
virtual void resizeWidget(qreal newW, qreal newH)
Definition: messagewidget.cpp:208
void setTextPosition()
Definition: messagewidget.cpp:642
virtual void setMessageText(FloatingTextWidget *ft)
Definition: messagewidget.cpp:896
int m_yclicked
Definition: messagewidget.h:195
The base class for graphical UML objects.
Definition: umlwidget.h:40