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

umbrello/umbrello

umldoc.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   This program is free software; you can redistribute it and/or modify  *
00003  *   it under the terms of the GNU General Public License as published by  *
00004  *   the Free Software Foundation; either version 2 of the License, or     *
00005  *   (at your option) any later version.                                   *
00006  *                                                                         *
00007  *   copyright (C) 2002-2009                                               *
00008  *   Umbrello UML Modeller Authors <uml-devel@uml.sf.net>                  *
00009  ***************************************************************************/
00010 
00011 #ifndef UMLDOC_H
00012 #define UMLDOC_H
00013 
00014 // app includes
00015 #include "listpopupmenu.h"
00016 #include "umlnamespace.h"
00017 #include "optionstate.h"
00018 #include "umlobjectlist.h"
00019 #include "umlassociationlist.h"
00020 #include "umlclassifierlist.h"
00021 #include "umlentitylist.h"
00022 #include "umlviewlist.h"
00023 #include "umlstereotypelist.h"
00024 #include "umlpackagelist.h"
00025 
00026 // kde includes
00027 #include <kurl.h>
00028 
00029 // system includes
00030 #include <typeinfo>
00031 
00032 #define ENC_UNKNOWN 0
00033 #define ENC_UNICODE 1
00034 #define ENC_OLD_ENC 2
00035 
00036 // forward declarations
00037 class QDomNode;
00038 class QDomElement;
00039 class QPrinter;
00040 
00041 class IDChangeLog;
00042 class UMLPackage;
00043 class UMLFolder;
00044 class DiagramPrintPage;
00045 
00062 class UMLDoc : public QObject
00063 {
00064     Q_OBJECT
00065 public:
00066 
00067     UMLDoc();
00068     ~UMLDoc();
00069 
00070     void init();
00071 
00072     void addView(UMLView *view);
00073     void removeView(UMLView *view , bool enforceOneView = true );
00074     void setMainViewID(Uml::IDType viewID);
00075     void changeCurrentView(Uml::IDType id);
00076     void activateAllViews();
00077     void removeAllViews();
00078 
00079     void setModified(bool modified = true);
00080     bool isModified();
00081     bool saveModified();
00082 
00083     bool newDocument();
00084     void closeDocument();
00085     bool openDocument(const KUrl& url, const char *format=0);
00086     bool saveDocument(const KUrl& url, const char *format=0);
00087 
00088     const KUrl& url() const;
00089     void setUrl(const KUrl& url);
00090 
00091     void setupSignals();
00092 
00093     bool isUnique(const QString &name);
00094     bool isUnique(const QString &name, UMLPackage *package);
00095 
00096     UMLStereotype* findOrCreateStereotype(const QString &name);
00097 
00098     UMLAssociation* createUMLAssociation(UMLObject *a, UMLObject *b, Uml::Association_Type type);
00099 
00100     void addAssociation(UMLAssociation *assoc);
00101     void removeAssociation(UMLAssociation *assoc, bool doSetModified = true);
00102     UMLAssociation * findAssociation(Uml::Association_Type assocType,
00103                                      const UMLObject *roleAObj,
00104                                      const UMLObject *roleBObj,
00105                                      bool *swap = NULL);
00106 
00107     UMLView* createDiagram(UMLFolder *folder, Uml::Diagram_Type type, bool askForName = true);
00108     void removeDiagram(Uml::IDType id);
00109     void renameDiagram(Uml::IDType id);
00110 
00111     void removeUMLObject(UMLObject* umlobject);
00112 
00113     void renameUMLObject(UMLObject *o);
00114     void renameChildUMLObject(UMLObject *o);
00115 
00116     UMLObject* findObjectById(Uml::IDType id);
00117 
00118     UMLObject* findUMLObject(const QString &name,
00119                              Uml::Object_Type type = Uml::ot_UMLObject,
00120                              UMLObject *currentObj = NULL);
00121 
00122     //:TODO: UMLObject* findObjectByAuxId(const QString &idStr);
00123 
00124     UMLClassifier * findUMLClassifier (const QString &name);
00125 
00126     UMLStereotype * findStereotype(const QString &name);
00127 
00128     UMLView * findView(Uml::IDType id);
00129     UMLView * findView(Uml::Diagram_Type type, const QString &name,
00130                        bool searchAllScopes = false);
00131 
00132     void setName(const QString& name);
00133     QString getName() const;
00134 
00135     Uml::IDType getModelID() const;
00136 
00137     virtual void saveToXMI(QIODevice& file);
00138 
00139     short getEncoding(QIODevice & file);
00140 
00141     virtual bool loadFromXMI(QIODevice& file, short encode = ENC_UNKNOWN);
00142 
00143     bool validateXMIHeader(QDomNode& headerNode);
00144 
00145     bool loadUMLObjectsFromXMI(QDomElement & element);
00146     void loadExtensionsFromXMI(QDomNode & node);
00147     bool loadDiagramsFromXMI(QDomNode & node);
00148 
00149     void signalDiagramRenamed(UMLView * view);
00150     void signalUMLObjectCreated(UMLObject * o);
00151 
00152     UMLFolder * getDatatypeFolder() const;
00153 
00154     UMLClassifierList getConcepts(bool includeNested = true);
00155     UMLClassifierList getClasses(bool includeNested = true);
00156     UMLClassifierList getClassesAndInterfaces(bool includeNested = true);
00157     UMLEntityList getEntities(bool includeNested = true);
00158     UMLClassifierList getInterfaces(bool includeNested = true);
00159     UMLClassifierList getDatatypes();
00160     UMLAssociationList getAssociations();
00161     UMLPackageList getPackages(bool includeNested = true);
00162 
00163     void print(QPrinter * pPrinter, DiagramPrintPage * selectPage);
00164 
00165     UMLViewList getViewIterator();
00166 
00167     bool assignNewIDs(UMLObject* obj);
00168 
00169     bool addUMLObject(UMLObject * object);
00170     bool addUMLView(UMLView * pView );
00171 
00172     UMLFolder *getRootFolder(Uml::Model_Type mt);
00173 
00174     Uml::Model_Type rootFolderType(UMLObject *obj);
00175 
00176     UMLFolder *currentRoot();
00177     void setCurrentRoot(Uml::Model_Type rootType);
00178 
00179     virtual IDChangeLog* getChangeLog();
00180 
00181     void beginPaste();
00182     void endPaste();
00183 
00184     Uml::IDType assignNewID(Uml::IDType oldID);
00185 
00186     void setDocumentation(const QString &doc);
00187     QString getDocumentation() const;
00188 
00189     void settingsChanged(Settings::OptionState optionState);
00190 
00191     int getFileVersion() const;
00192 
00193     QString uniqViewName(const Uml::Diagram_Type type);
00194 
00195     bool loading() const;
00196     void setLoading(bool state = true);
00197 
00198     bool closing() const;
00199 
00200     void addDefaultDatatypes();
00201     void createDatatype(const QString &name);
00202 
00203     UMLStereotype * findStereotypeById(Uml::IDType id);
00204     void addStereotype(UMLStereotype *s);
00205     void removeStereotype(UMLStereotype *s);
00206     void addDefaultStereotypes();
00207     const UMLStereotypeList& getStereotypes();
00208 
00209     void writeToStatusBar(const QString &text);
00210 
00211     void resolveTypes();
00212 
00213     ListPopupMenu::Menu_Type getPopupMenuSelection(QAction* action);
00214 
00215 private:
00216     void initSaveTimer();
00217 
00221     UMLFolder *m_root[Uml::N_MODELTYPES];
00222 
00227     UMLFolder *m_datatypeRoot;
00228 
00236     UMLStereotypeList m_stereoList;
00237 
00238     QString m_Name; 
00239     Uml::IDType m_modelID; 
00240     int m_count;   
00241     bool m_modified;
00242     KUrl m_doc_url;
00243 
00247     IDChangeLog* m_pChangeLog;
00248 
00252     bool m_bLoading;
00253 
00257     QString m_Doc;
00258 
00262     QTimer * m_pAutoSaveTimer;
00263 
00267     int m_version;
00268 
00272     Uml::IDType m_nViewID;
00273 
00277     bool m_bTypesAreResolved;
00278 
00283     ListPopupMenu* m_pTabPopupMenu;
00284 
00290     UMLFolder * m_pCurrentRoot;
00291 
00295     bool m_bClosing;
00296 
00297 public slots:
00298     void slotRemoveUMLObject(UMLObject*o);
00299     void slotAutoSave();
00300     void slotDiagramPopupMenu(QWidget* umlview, const QPoint& point);
00301 
00302 signals:
00303     void sigDiagramCreated(Uml::IDType id);
00304     void sigDiagramRemoved(Uml::IDType id);
00305     void sigDiagramRenamed(Uml::IDType t);
00306     void sigDiagramChanged(Uml::Diagram_Type);
00307 
00308     void sigObjectCreated(UMLObject *);
00309     void sigObjectRemoved(UMLObject *);
00310 
00314     void sigResetStatusbarProgress();
00315 
00321     void sigSetStatusbarProgressSteps(int totalSteps);
00322 
00328     void sigSetStatusbarProgress(int stepPosition);
00329 
00333     void sigWriteToStatusBar(const QString &text);
00334 
00339     void sigCurrentViewChanged();
00340 
00341 };
00342 
00343 #endif // UMLDOC_H

umbrello/umbrello

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

kdesdk

Skip menu "kdesdk"
  • kapptemplate
  • kate
  •     kate
  • kbugbuster
  • kcachegrind
  • kompare
  • lokalize
  • umbrello
  •   umbrello
Generated for kdesdk by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal