11 #ifndef ASSOCIATIONLINE_H
12 #define ASSOCIATIONLINE_H
16 #include <QGraphicsObject>
58 virtual void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget);
61 virtual QPainterPath
shape()
const;
63 void alignTo(
const QLineF& line);
115 QPointF
point(
int index)
const;
138 bool setEndPoints(
const QPointF &start,
const QPointF &end);
143 void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement);
145 QBrush
brush()
const;
150 virtual void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget);
152 QPainterPath
path()
const;
155 QPainterPath
shape()
const;
Definition: associationline.h:106
static const qreal Delta
default delta for fuzzy recognition of points closer to point
Definition: associationline.h:202
bool isAutoLayouted() const
Definition: associationline.cpp:272
bool m_autoLayoutSpline
Definition: associationline.h:197
bool loadFromXMI1(QDomElement &qElement)
Definition: associationline.cpp:328
void insertPoint(int index, const QPointF &point)
Definition: associationline.cpp:127
virtual ~AssociationLine()
Definition: associationline.cpp:63
void addPoint(const QPointF &point)
Definition: associationline.cpp:118
qreal c1dx
Definition: associationline.h:201
void reconstructSymbols()
Definition: associationline.cpp:524
AssociationWidget * m_associationWidget
association widget for which this line represents
Definition: associationline.h:186
void setStartSymbol(Symbol::SymbolType symbolType)
Definition: associationline.cpp:596
bool setEndPoints(const QPointF &start, const QPointF &end)
Definition: associationline.cpp:291
QGraphicsLineItem * m_collaborationLineItem
parallel arrow line drawn in case of collaboration message
Definition: associationline.h:193
void setLayout(Uml::LayoutType::Enum layout)
Definition: associationline.cpp:851
void setPen(const QPen &pen)
Definition: associationline.cpp:440
qreal c2dy
Definition: associationline.h:201
void createCollaborationLine()
Definition: associationline.cpp:662
int count() const
Definition: associationline.cpp:152
Symbol * m_subsetSymbol
subset symbol
Definition: associationline.h:192
void removeSubsetSymbol()
Definition: associationline.cpp:653
static const qreal SelfAssociationMinimumHeight
minimum height for self association's loop
Definition: associationline.h:204
void removePoint(int index)
Definition: associationline.cpp:138
void updatePenStyle()
Definition: associationline.cpp:466
bool isEndSegmentIndex(int index) const
Definition: associationline.cpp:263
QPen m_pen
pen used to draw an association line
Definition: associationline.h:196
void hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
Definition: associationline.cpp:1279
QPointF startPoint() const
Definition: associationline.cpp:105
static QPainterPath createOrthogonalPath(QVector< QPointF > points)
Definition: associationline.cpp:970
Symbol * m_startSymbol
symbol drawn at the end of "first" line segment
Definition: associationline.h:190
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Definition: associationline.cpp:1221
int closestPointIndex(const QPointF &point, qreal delta=Delta) const
Definition: associationline.cpp:202
Uml::LayoutType::Enum layout() const
Definition: associationline.cpp:842
QRectF boundingRect() const
Definition: associationline.cpp:796
qreal c1dy
Definition: associationline.h:201
qreal c2dx
Definition: associationline.h:201
void alignSymbols()
Definition: associationline.cpp:698
QPainterPath shape() const
Definition: associationline.cpp:808
void hoverEnterEvent(QGraphicsSceneHoverEvent *event)
Definition: associationline.cpp:1233
Symbol * m_endSymbol
symbol drawn at the end of "last" line segment
Definition: associationline.h:191
void setEndSymbol(Symbol::SymbolType symbolType)
Definition: associationline.cpp:620
QPointF point(int index) const
Definition: associationline.cpp:75
int m_activePointIndex
index of active point which can be dragged to modify association line
Definition: associationline.h:188
void cleanup()
Definition: associationline.cpp:160
void mouseMoveEvent(QGraphicsSceneMouseEvent *event)
Definition: associationline.cpp:1162
Uml::LayoutType::Enum m_layout
Definition: associationline.h:195
AssociationLine(AssociationWidget *association)
Definition: associationline.cpp:41
bool isEndPointIndex(int index) const
Definition: associationline.cpp:252
bool enableAutoLayout()
Definition: associationline.cpp:277
QBrush brush() const
Definition: associationline.cpp:414
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Definition: associationline.cpp:1014
void optimizeLinePoints()
Definition: associationline.cpp:176
void calculateInitialEndPoints()
Definition: associationline.cpp:483
static QString toString(Uml::LayoutType::Enum layout)
Definition: associationline.cpp:819
void createSubsetSymbol()
Definition: associationline.cpp:642
static QPainterPath createBezierCurve(QVector< QPointF > points)
Definition: associationline.cpp:934
void removeCollaborationLine()
Definition: associationline.cpp:684
void mousePressEvent(QGraphicsSceneMouseEvent *event)
Definition: associationline.cpp:1138
QPointF endPoint() const
Definition: associationline.cpp:113
void createSplinePoints()
Definition: associationline.cpp:867
int m_activeSegmentIndex
index of active segment
Definition: associationline.h:189
QPainterPath path() const
Definition: associationline.cpp:760
int closestSegmentIndex(const QPointF &point, qreal delta=Delta) const
Definition: associationline.cpp:228
static const qreal SelectedPointDiameter
radius of circles drawn to show "selection"
Definition: associationline.h:203
static Uml::LayoutType::Enum fromString(const QString &layout)
Definition: associationline.cpp:827
QPen pen() const
Definition: associationline.cpp:432
Symbol * m_collaborationLineHead
arrow head drawn at end of m_collaborationLineItem
Definition: associationline.h:194
QVector< QPointF > m_points
points representing the association line
Definition: associationline.h:187
void dumpPoints()
Definition: associationline.cpp:317
void saveToXMI1(QDomDocument &qDoc, QDomElement &qElement)
Definition: associationline.cpp:382
bool setPoint(int index, const QPointF &point)
Definition: associationline.cpp:87
void hoverMoveEvent(QGraphicsSceneHoverEvent *event)
Definition: associationline.cpp:1257
Definition: associationline.h:33
void setSymbolType(SymbolType symbolType)
Definition: associationline.cpp:1433
void setPen(const QPen &pen)
Definition: associationline.cpp:1521
QBrush m_brush
brush used to fill Symbol
Definition: associationline.h:74
virtual QRectF boundingRect() const
Definition: associationline.cpp:1462
QPen m_pen
pen used to draw Symbol
Definition: associationline.h:73
void setBrush(const QBrush &brush)
Definition: associationline.cpp:1539
virtual ~Symbol()
Definition: associationline.cpp:1418
SymbolEndPoints symbolEndPoints() const
Definition: associationline.cpp:1505
QPen pen() const
Definition: associationline.cpp:1513
SymbolType m_symbolType
current symbol being represented by this item
Definition: associationline.h:75
QBrush brush() const
Definition: associationline.cpp:1531
SymbolType
Definition: associationline.h:41
@ None
Definition: associationline.h:42
@ ClosedArrow
Definition: associationline.h:44
@ Count
Definition: associationline.h:49
@ Diamond
Definition: associationline.h:46
@ OpenArrow
Definition: associationline.h:43
@ CrowFeet
Definition: associationline.h:45
@ Subset
Definition: associationline.h:47
@ Circle
Definition: associationline.h:48
SymbolType symbolType() const
Definition: associationline.cpp:1425
void alignTo(const QLineF &line)
Definition: associationline.cpp:1488
static void setupSymbolTable()
Definition: associationline.cpp:1328
QPair< QPointF, QPointF > SymbolEndPoints
Definition: associationline.h:35
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Definition: associationline.cpp:1443
virtual QPainterPath shape() const
Definition: associationline.cpp:1472
static SymbolProperty symbolTable[Symbol::Count]
a table which stores all symbol properties
Definition: associationline.h:85
Symbol(SymbolType symbolType, QGraphicsItem *parent=0)
Definition: associationline.cpp:1407
Enum
Definition: basictypes.h:144
A structure to hold a table of values for all symbols.
Definition: associationline.h:78
QRectF boundRect
Definition: associationline.h:79
QLineF axisLine
Definition: associationline.h:81
SymbolEndPoints endPoints
Definition: associationline.h:82
QPainterPath shape
Definition: associationline.h:80