/*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * copyright (C) 2003-2007 * * Umbrello UML Modeller Authors * ***************************************************************************/ #ifndef CLASSIFIERLISTPAGE_H #define CLASSIFIERLISTPAGE_H //qt includes #include #include #include #include //kde includes #include //app includes #include "../listpopupmenu.h" #include "../umlclassifierlistitemlist.h" class UMLObject; class UMLClassifier; class UMLDoc; /** * A dialog page to display classifier list properties. This is not normally setup * by you. It is used by the @ref ClassPropDlg and new class wizard. * * @short A dialog page to display classifier properties. * @author Paul Hensgen, Jonathan Riddell * Bugs and comments to uml-devel@lists.sf.net or http://bugs.trinitydesktop.org */ class ClassifierListPage : public TQWidget { Q_OBJECT public: /** * Sets up the ClassifierListPage * * @param parent The parent to the ClassAttPage. * @param classifier The Concept to display the properties of. * @param doc The UMLDoc document * @param type The type of listItem this handles */ ClassifierListPage(TQWidget* parent, UMLClassifier* classifier, UMLDoc* doc, Uml::Object_Type type); /** * Standard deconstructor. */ ~ClassifierListPage(); /** * Will move information from the dialog into the object. * Call when the ok or apply button is pressed. */ void updateObject(); private: /** * Set the state of the widgets on the page with the given value. * * @param state The state to set the widgets as. */ void enableWidgets(bool state); /** * Saves the documentation for the currently selected item */ void saveCurrentItemDocumentation(); /** * Get classifiers */ UMLClassifierListItemList getItemList(); /** * Attempts to add classifier to the appropriate list * * @param classifier Pointer to the classifier to add. * @param position Index at which to insert into the list. * @return true if the classifier could be added * */ bool addClassifier(UMLClassifierListItem* classifier, int position = -1); /** * Take a classifier's subordinate item. * Ownership of the classifier list item is transferred to the caller. * @param listitem UMLClassifierListItem to take. * @param seekPeerBefore True if a peer index should be sought which * is smaller than the current listitem's index. * @param peerIndex Return value: Index in the UMLClassifier's * item list at which a peer item, i.e. another * UMLClassifierListItem of the same type as * listItem, is found. If no such item exists * then return -1. * @return True for success. */ bool takeItem(UMLClassifierListItem* listitem, bool seekPeerBefore, int &peerIndex); /** * Utility for debugging, prints the current item list. * Only effective if VERBOSE_DEBUGGING is defined. */ void printItemList(TQString prologue); UMLClassifier* m_pClassifier; TQGroupBox* m_pDocGB; TQGroupBox* m_pItemListGB; TQListBox* m_pItemListLB; TQTextEdit* m_pDocTE; Uml::Object_Type m_itemType; KArrowButton* m_pTopArrowB; KArrowButton* m_pUpArrowB; KArrowButton* m_pDownArrowB; KArrowButton* m_pBottomArrowB; TQPushButton* m_pDeleteListItemButton; TQPushButton* m_pPropertiesButton; UMLClassifierListItem* m_pOldListItem; UMLDoc* m_pDoc; ListPopupMenu* m_pMenu; bool m_bSigWaiting; public slots: /** * called when list view is clicked on * calls enableWidgets() */ void slotClicked(TQListBoxItem* item); /** * Called when an item is selected in a right click menu */ void slotPopupMenuSel(int id); void slotListItemCreated(UMLObject* object); void slotListItemModified(); void slotRightButtonClicked(TQListBoxItem* item, const TQPoint& p); void slotRightButtonPressed(TQListBoxItem* item, const TQPoint& p); /** * shows properties dialog for the attribute clicked on */ void slotDoubleClick(TQListBoxItem* item); /** * moves selected attribute to the top of the list */ void slotTopClicked(); /** * moves selected attribute up in list */ void slotUpClicked(); /** * moved selected attribute down in list */ void slotDownClicked(); /** * moved selected attribute to the bottom of the list */ void slotBottomClicked(); /** * shows dialog for new attribute */ void slotNewListItem(); /** * removes currently seleted attribute */ void slotDelete(); /** * shows properties dialog for currently selected attribute */ void slotProperties(); }; #endif