From: Darius S. <dst...@us...> - 2001-07-24 11:34:53
|
Update of /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views In directory usw-pr-cvs1:/tmp/cvs-serv15670/common/views Modified Files: AbstractView.cpp AbstractView.h CircleView.h Line.h LineView.cpp LineView.h PolygonView.h RectangleView.cpp RectangleView.h Selectable.h SelectableView.cpp SelectableView.h SelectionHandle.cpp View.h ViewFactory.cpp ViewFactory.h Log Message: Added more core implementation. Editor now supports simple line Index: AbstractView.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/AbstractView.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** AbstractView.cpp 2001/07/22 23:21:38 1.2 --- AbstractView.cpp 2001/07/24 11:34:49 1.3 *************** *** 13,16 **** --- 13,18 ---- #include <qevent.h> + void AbstractView::move(const QPoint& delta){ + } void AbstractView::mouseRMBPress(QMouseEvent * e){ } *************** *** 50,53 **** --- 52,57 ---- AbstractView::AbstractView(Viewer* viewer, View * parent){ this->parent = parent; + this->viewer = viewer; + lnkLayouter = 0; } void AbstractView::setCenter(const QPoint& p){ *************** *** 70,74 **** bool AbstractView::intersects(const QPoint &p){ } ! QRect & AbstractView::bounds() { return boundingRect; } --- 74,78 ---- bool AbstractView::intersects(const QPoint &p){ } ! QRect AbstractView::bounds() { return boundingRect; } Index: AbstractView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/AbstractView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** AbstractView.h 2001/07/22 23:21:38 1.2 --- AbstractView.h 2001/07/24 11:34:49 1.3 *************** *** 40,44 **** virtual ~AbstractView(); ! virtual QRect & bounds(); virtual bool intersects(const QPoint & p); --- 40,44 ---- virtual ~AbstractView(); ! virtual QRect bounds(); virtual bool intersects(const QPoint & p); *************** *** 119,122 **** --- 119,123 ---- virtual void mousePress(QMouseEvent * e); + virtual void move(const QPoint& delta); }; #endif //ABSTRACTVIEW_H Index: CircleView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/CircleView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** CircleView.h 2001/07/22 23:21:38 1.2 --- CircleView.h 2001/07/24 11:34:49 1.3 *************** *** 26,30 **** virtual ~CircleView(); ! CircleView(Viewer * viewer = 0, View * parent = 0): SelectableView(viewer, parent) {} }; #endif //CIRCLEVIEW_H --- 26,30 ---- virtual ~CircleView(); ! CircleView(Viewer * viewer = 0, View * parent = 0); }; #endif //CIRCLEVIEW_H Index: Line.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/Line.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -r1.1.1.1 -r1.2 *** Line.h 2001/06/20 19:21:29 1.1.1.1 --- Line.h 2001/07/24 11:34:49 1.2 *************** *** 20,31 **** #define LINE_H /** @interface */ class Line { public: ! virtual void setStartPoint(QPoint& p) = 0; virtual QPoint& getStartPoint() = 0; ! virtual void setEndPoint(QPoint& p) = 0; virtual QPoint& getEndPoint() = 0; }; --- 20,33 ---- #define LINE_H + class QPoint; + /** @interface */ class Line { public: ! virtual void setStartPoint(const QPoint& p) = 0; virtual QPoint& getStartPoint() = 0; ! virtual void setEndPoint(const QPoint& p) = 0; virtual QPoint& getEndPoint() = 0; }; Index: LineView.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/LineView.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** LineView.cpp 2001/07/22 23:21:38 1.2 --- LineView.cpp 2001/07/24 11:34:49 1.3 *************** *** 22,23 **** --- 22,24 ---- LineView::LineView(Viewer * viewer, View * parent) : SelectableView(viewer, parent) { } + Index: LineView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/LineView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** LineView.h 2001/07/22 23:21:38 1.2 --- LineView.h 2001/07/24 11:34:49 1.3 *************** *** 23,38 **** #include "Line.h" class LineView : public SelectableView , public Line{ public: ! LineView(Viewer * viewer = 0, View * parent = 0); virtual ~LineView(); virtual QPoint& getStartPoint() {} ! virtual void setStartPoint(QPoint& p) {} virtual QPoint& getEndPoint() {} ! virtual void setEndPoint(QPoint& p) {} }; #endif //LINEVIEW_H --- 23,40 ---- #include "Line.h" + class ViewManipulator; + class LineView : public SelectableView , public Line{ public: ! LineView(Viewer * viewer, View * parent = 0); virtual ~LineView(); virtual QPoint& getStartPoint() {} ! virtual void setStartPoint(const QPoint& p) {} virtual QPoint& getEndPoint() {} ! virtual void setEndPoint(const QPoint& p) {} }; #endif //LINEVIEW_H Index: PolygonView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/PolygonView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** PolygonView.h 2001/07/22 23:21:38 1.2 --- PolygonView.h 2001/07/24 11:34:49 1.3 *************** *** 26,30 **** virtual ~PolygonView(); ! PolygonView(Viewer * viewer = 0, View * parent = 0): SelectableView(viewer, parent) {} }; #endif //POLYGONVIEW_H --- 26,30 ---- virtual ~PolygonView(); ! PolygonView(Viewer * viewer = 0, View * parent = 0); }; #endif //POLYGONVIEW_H Index: RectangleView.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/RectangleView.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** RectangleView.cpp 2001/07/22 23:21:38 1.2 --- RectangleView.cpp 2001/07/24 11:34:49 1.3 *************** *** 14,17 **** --- 14,20 ---- #include <qpainter.h> + void RectangleView::move(const QPoint& delta){ + rectangle.moveCenter(rectangle.center() + delta); + } QPoint RectangleView::getCenter(){ return rectangle.center(); *************** *** 22,26 **** ViewManipulator* RectangleView::createManipulator() { // qDebug("RectangleView::createManipulator() executed"); ! RectangleViewResizer *manipulator = new RectangleViewResizer(this); return manipulator; } --- 25,29 ---- ViewManipulator* RectangleView::createManipulator() { // qDebug("RectangleView::createManipulator() executed"); ! manipulator = new RectangleViewResizer(this); return manipulator; } *************** *** 36,40 **** paintAttributes.setBackgroundColor(Qt::green); } ! QRect& RectangleView::bounds() { return getRectangle(); } --- 39,43 ---- paintAttributes.setBackgroundColor(Qt::green); } ! QRect RectangleView::bounds() { return getRectangle(); } Index: RectangleView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/RectangleView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** RectangleView.h 2001/07/22 23:21:38 1.2 --- RectangleView.h 2001/07/24 11:34:49 1.3 *************** *** 25,29 **** public: ! RectangleView(Viewer * viewer = 0, View * parent = 0); virtual ~RectangleView(); --- 25,29 ---- public: ! RectangleView(Viewer * viewer, View * parent); virtual ~RectangleView(); *************** *** 42,46 **** virtual void setRectangle(const QRect& rectangle); ! virtual QRect& bounds(); /** --- 42,46 ---- virtual void setRectangle(const QRect& rectangle); ! virtual QRect bounds(); /** *************** *** 60,63 **** --- 60,65 ---- virtual QPoint getCenter(); + + virtual void move(const QPoint& delta); protected: Index: Selectable.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/Selectable.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** Selectable.h 2001/07/22 23:21:38 1.2 --- Selectable.h 2001/07/24 11:34:49 1.3 *************** *** 35,41 **** virtual bool isSelected() = 0; ! virtual void select() = 0; ! virtual void unselect() = 0; }; #endif //SELECTABLE_H --- 35,41 ---- virtual bool isSelected() = 0; ! virtual void select(bool repaint ) = 0; ! virtual void unselect(bool repaint ) = 0; }; #endif //SELECTABLE_H Index: SelectableView.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/SelectableView.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** SelectableView.cpp 2001/07/22 23:21:38 1.2 --- SelectableView.cpp 2001/07/24 11:34:49 1.3 *************** *** 20,27 **** if(isSelected() == false) { select(); ! Viewer *v = getViewer(); Editor *ed = v->getEditor(); ! selector = (ViewSelector*) ed->addManipulator(this); } --- 20,27 ---- if(isSelected() == false) { select(); ! /* Viewer *v = getViewer(); Editor *ed = v->getEditor(); ! selector = (ViewSelector*) ed->addManipulator(this);*/ } *************** *** 39,46 **** if(isSelected() == false) { select(); ! Viewer *v = getViewer(); Editor *ed = v->getEditor(); selector = (ViewSelector*) ed->addManipulator(this); } --- 39,47 ---- if(isSelected() == false) { select(); ! /* Viewer *v = getViewer(); Editor *ed = v->getEditor(); selector = (ViewSelector*) ed->addManipulator(this); + */ } *************** *** 63,81 **** return menu; } ! void SelectableView::select(){ if(selected == false) { selected = true; } } ! void SelectableView::unselect(){ if(selected == true) { selected = false; ! if(selector) ! delete selector; } } SelectableView::~SelectableView(){} SelectableView::SelectableView(Viewer* viewer, View * parent) : AbstractView(viewer, parent) { ! selector = 0; selected = false; } --- 64,113 ---- return menu; } ! void SelectableView::select(bool repaint){ if(selected == false) { selected = true; + Viewer *v = getViewer(); + Editor *ed = v->getEditor(); + + manipulator = (ViewSelector*) ed->addManipulator(this); + + if(repaint) { + QRect damagedArea = bounds(); + if(manipulator) + damagedArea = damagedArea.unite(manipulator->bounds()); + + v->refresh(damagedArea); + } } } ! void SelectableView::unselect(bool repaint){ if(selected == true) { selected = false; ! Viewer *v = getViewer(); ! Editor *ed = v->getEditor(); ! ! ViewSelector *m = (ViewSelector*)getManipulator(); ! QRect damagedArea = bounds(); ! ! if(repaint) { ! if(m) ! damagedArea = damagedArea.unite(m->bounds()); ! } ! ! // Remove manipulator from editor's manipulation layer ! ed->removeManipulator(m); ! ! // BUG: Manipulator's destructor won't be called ! if(m) ! delete m; ! ! if(repaint) ! v->refresh(damagedArea); ! } } SelectableView::~SelectableView(){} SelectableView::SelectableView(Viewer* viewer, View * parent) : AbstractView(viewer, parent) { ! manipulator = 0; selected = false; } Index: SelectableView.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/SelectableView.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** SelectableView.h 2001/07/22 23:21:38 1.2 --- SelectableView.h 2001/07/24 11:34:49 1.3 *************** *** 53,61 **** /** Factory method. Implement this your subclasses to create the desired object. */ virtual ViewManipulator* createManipulator() { ! qDebug("SelectableView::createManipulator() executed"); ! return 0; } virtual bool isSelected() { --- 53,70 ---- /** Factory method. Implement this your subclasses to create the desired object. + * You need to set the object's manipulator instance variable to the created manipulator object ! */ virtual ViewManipulator* createManipulator() { ! manipulator = 0; ! return (ViewManipulator*)manipulator; } + + ViewManipulator *getManipulator() { + return (ViewManipulator*)manipulator; + } + + void setManipulator(ViewManipulator *m) { + manipulator = (ViewSelector*)m; + } virtual bool isSelected() { *************** *** 67,73 **** } ! virtual void unselect(); ! virtual void select(); virtual QPopupMenu* createPopupMenu(); --- 76,82 ---- } ! virtual void unselect(bool repaint = true); ! virtual void select(bool repaint = true); virtual QPopupMenu* createPopupMenu(); *************** *** 77,83 **** virtual void mouseRMBPress(QMouseEvent * e); private: bool selected; - ViewSelector *selector; }; #endif //SELECTABLEVIEW_H --- 86,94 ---- virtual void mouseRMBPress(QMouseEvent * e); + protected: + ViewSelector *manipulator; + private: bool selected; }; #endif //SELECTABLEVIEW_H Index: SelectionHandle.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/SelectionHandle.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** SelectionHandle.cpp 2001/07/22 23:21:38 1.2 --- SelectionHandle.cpp 2001/07/24 11:34:49 1.3 *************** *** 44,47 **** --- 44,48 ---- } void SelectionHandle::mouseLMBPress(QMouseEvent * e) { + qDebug("Handle clicked"); getOwner()->handlePressEvent(this,e); } Index: View.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/View.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** View.h 2001/07/22 23:21:38 1.2 --- View.h 2001/07/24 11:34:49 1.3 *************** *** 39,43 **** * Returns the bounding rectangle */ ! virtual QRect& bounds() = 0; /** --- 39,43 ---- * Returns the bounding rectangle */ ! virtual QRect bounds() = 0; /** *************** *** 66,69 **** --- 66,74 ---- virtual void setViewer(Viewer* v) = 0; + + /** + * Moves the object by a delta + */ + virtual void move(const QPoint& delta) = 0; }; #endif //VIEW_H Index: ViewFactory.cpp =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/ViewFactory.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** ViewFactory.cpp 2001/07/22 23:21:38 1.2 --- ViewFactory.cpp 2001/07/24 11:34:49 1.3 *************** *** 19,39 **** #include "ViewFactory.h" #include "TextView.h" - class TextView; TextView* ViewFactory::createText(){ qDebug("ViewFactory::createText() not implemented!"); } TextView* ViewFactory::create(TextModel * m){ ! TextView *view = new TextView(); return view; } ! ViewFactory * ViewFactory::instance= 0; ! ViewFactory * ViewFactory::getInstance(){ ! if (instance == 0) { ! instance = new ViewFactory(); ! } ! return instance; ! } ! ViewFactory::ViewFactory(){} --- 19,47 ---- #include "ViewFactory.h" #include "TextView.h" + #include "SimpleLineView.h" + #include "ige/common/documents/Document.h" + void ViewFactory::setDocument(Document* document){ + this->document = document; + } + Document* ViewFactory::getDocument(){ + return document; + } + SimpleLineView* ViewFactory::createSimpleLine(){ + SimpleLineView *v = new SimpleLineView(getDocument()->getViewer()); + getDocument()->addView(v); + return v; + } TextView* ViewFactory::createText(){ qDebug("ViewFactory::createText() not implemented!"); } TextView* ViewFactory::create(TextModel * m){ ! TextView *view = new TextView(getDocument()->getViewer()); ! getDocument()->addView(view); return view; } ! ViewFactory::ViewFactory(Document* doc){ ! document = doc; ! } Index: ViewFactory.h =================================================================== RCS file: /cvsroot/kuml/kuml/kuml_gui/src/ige/common/views/ViewFactory.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -r1.1.1.1 -r1.2 *** ViewFactory.h 2001/06/20 19:21:28 1.1.1.1 --- ViewFactory.h 2001/07/24 11:34:49 1.2 *************** *** 19,22 **** --- 19,24 ---- #ifndef VIEWFACTORY_H #define VIEWFACTORY_H + class Document; + class SimpleLineView; class TextModel; class TextView; *************** *** 25,33 **** - protected: - ViewFactory(); public: /** --- 27,34 ---- public: + ViewFactory(Document* doc); /** *************** *** 36,53 **** TextView* create(TextModel * m); - static ViewFactory * getInstance(); - TextView* createText(); ! private: ! /** ! * @link ! * @shapeType PatternLink ! * @pattern Singleton ! * @supplierRole Singleton factory ! */ ! /*# ViewFactory _viewFactory; */ ! static ViewFactory * instance; }; --- 37,50 ---- TextView* create(TextModel * m); TextView* createText(); ! SimpleLineView* createSimpleLine(); ! Document* getDocument(); ! ! void setDocument(Document* document); ! ! private: ! Document* document; }; |