umbrello  2.31.90
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
refactoringassistant.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) 2003 Luis De la Parra <lparrab@gmx.net> *
8  * copyright (C) 2004-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef REFACTORING_ASSISTANT_H
13 #define REFACTORING_ASSISTANT_H
14 
15 #include "icon_utils.h"
16 
17 #include <QDropEvent>
18 #include <QTreeWidget>
19 
20 class QPoint;
21 class QMenu;
22 class UMLObject;
23 class UMLClassifier;
25 class UMLDoc;
26 
27 class RefactoringAssistant : public QTreeWidget
28 {
29  Q_OBJECT
30 public:
31 
32  explicit RefactoringAssistant(UMLDoc *doc, UMLClassifier *obj = 0, QWidget *parent = 0, const QString &name = QString());
33  virtual ~RefactoringAssistant();
34 
35  void refactor(UMLClassifier *obj);
36 
37 signals:
38 
39 // void moved();
40 
41 public slots:
42 
43  void addBaseClassifier();
44  void addDerivedClassifier();
46  void createOperation();
47  void createAttribute();
48  void editProperties();
49  void deleteItem();
50 
51  void objectModified();
52 
53  void operationAdded(UMLClassifierListItem *listItem);
55 
56  void attributeAdded(UMLClassifierListItem *listItem);
58 
59  void itemExecuted(QTreeWidgetItem *item, int column);
60 
61 protected:
62 
63  UMLObject* findUMLObject(const QTreeWidgetItem*);
64 
65  QTreeWidgetItem* findListViewItem(const UMLObject *obj);
66 
67  void editProperties(UMLObject *obj);
68 
69  void deleteItem(QTreeWidgetItem *item, UMLObject *obj);
70 
71  void addClassifier(UMLClassifier *classifier, QTreeWidgetItem *parent = 0, bool addSuper = true, bool addSub = true, bool recurse = false);
72 
73  virtual void dragMoveEvent(QDragMoveEvent *event);
74  virtual void dropEvent(QDropEvent *event);
75 
76  void setVisibilityIcon(QTreeWidgetItem *item, const UMLObject *obj);
77 
80  QMenu * m_menu;
81  QMap<QTreeWidgetItem*, UMLObject*> m_umlObjectMap;
82  QSet<UMLClassifier *> m_alreadySeen;
83 
84 private slots:
85 
86  void showContextMenu(const QPoint&);
87 
88 private:
89 
90  QAction* createAction(const QString& text, const char * method, const Icon_Utils::IconType icon = Icon_Utils::N_ICONTYPES);
91 
92 };
93 
94 #endif
Definition: refactoringassistant.h:28
void operationAdded(UMLClassifierListItem *listItem)
Definition: refactoringassistant.cpp:216
void attributeRemoved(UMLClassifierListItem *listItem)
Definition: refactoringassistant.cpp:293
void addClassifier(UMLClassifier *classifier, QTreeWidgetItem *parent=0, bool addSuper=true, bool addSub=true, bool recurse=false)
Definition: refactoringassistant.cpp:641
QMenu * m_menu
Definition: refactoringassistant.h:80
void showContextMenu(const QPoint &)
Definition: refactoringassistant.cpp:435
UMLClassifier * m_umlObject
Definition: refactoringassistant.h:78
void addInterfaceImplementation()
Definition: refactoringassistant.cpp:573
QAction * createAction(const QString &text, const char *method, const Icon_Utils::IconType icon=Icon_Utils::N_ICONTYPES)
Definition: refactoringassistant.cpp:420
void addDerivedClassifier()
Definition: refactoringassistant.cpp:528
UMLObject * findUMLObject(const QTreeWidgetItem *)
Definition: refactoringassistant.cpp:102
QTreeWidgetItem * findListViewItem(const UMLObject *obj)
Definition: refactoringassistant.cpp:120
void setVisibilityIcon(QTreeWidgetItem *item, const UMLObject *obj)
Definition: refactoringassistant.cpp:152
virtual ~RefactoringAssistant()
Definition: refactoringassistant.cpp:68
void refactor(UMLClassifier *obj)
Definition: refactoringassistant.cpp:78
virtual void dragMoveEvent(QDragMoveEvent *event)
Definition: refactoringassistant.cpp:736
void operationRemoved(UMLClassifierListItem *listItem)
Definition: refactoringassistant.cpp:246
void createAttribute()
Definition: refactoringassistant.cpp:614
void deleteItem()
Definition: refactoringassistant.cpp:360
QMap< QTreeWidgetItem *, UMLObject * > m_umlObjectMap
Definition: refactoringassistant.h:81
void itemExecuted(QTreeWidgetItem *item, int column)
Definition: refactoringassistant.cpp:138
void createOperation()
Definition: refactoringassistant.cpp:592
UMLDoc * m_doc
Definition: refactoringassistant.h:79
void attributeAdded(UMLClassifierListItem *listItem)
Definition: refactoringassistant.cpp:262
void addBaseClassifier()
Definition: refactoringassistant.cpp:483
void objectModified()
Definition: refactoringassistant.cpp:196
QSet< UMLClassifier * > m_alreadySeen
recursive guard
Definition: refactoringassistant.h:82
RefactoringAssistant(UMLDoc *doc, UMLClassifier *obj=0, QWidget *parent=0, const QString &name=QString())
Definition: refactoringassistant.cpp:41
void editProperties()
Definition: refactoringassistant.cpp:311
virtual void dropEvent(QDropEvent *event)
Definition: refactoringassistant.cpp:771
A base class for classifier list items (e.g. attributes)
Definition: classifierlistitem.h:30
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Definition: umldoc.h:75
The base class for UML objects.
Definition: umlobject.h:75
IconType
Definition: icon_utils.h:47
@ N_ICONTYPES
Definition: icon_utils.h:241