|
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;
};
|