[Nextobjects-devel] nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics Ass
Status: Alpha
Brought to you by:
eflorent
From: <efl...@us...> - 2003-06-13 17:23:12
|
Update of /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics In directory sc8-pr-cvs1:/tmp/cvs-serv21894/src/org/devaki/nextobjects/workspace/models/graphics Modified Files: AssociationLinkView.java BaseModelView.java ConstraintView.java InheritanceLinkView.java ModelTitleView.java PhysicalView.java Log Message: Made very big models a little bit faster. Index: AssociationLinkView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/AssociationLinkView.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AssociationLinkView.java 4 Jun 2003 19:29:42 -0000 1.5 --- AssociationLinkView.java 13 Jun 2003 17:23:08 -0000 1.6 *************** *** 101,105 **** public void paint(Graphics g) { ! Point p0=((ConceptualView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); Point p1=selectionPoints[0].getPoint(); --- 101,106 ---- public void paint(Graphics g) { ! //Point p0=((ConceptualView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); ! Point p0=myObject.getMyModel().getModelView().jScrollPane.getViewport().getViewPosition(); Point p1=selectionPoints[0].getPoint(); Index: BaseModelView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/BaseModelView.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** BaseModelView.java 8 Jun 2003 09:28:26 -0000 1.2 --- BaseModelView.java 13 Jun 2003 17:23:08 -0000 1.3 *************** *** 145,149 **** } ! public Image makeImage(int x, int y) { Graphics2D big; --- 145,149 ---- } ! public Image makeImage(Rectangle pRect) { Graphics2D big; *************** *** 152,169 **** ObjectView[] tmp = getVisibleObjectView(); ! ! Rectangle rect; ! calculateRectangle(); ! rect = getRectangle(); bi = (BufferedImage) drawingArea.createImage( ! rect.width, ! rect.height); big = bi.createGraphics(); big.setColor(CstGraphics.MODEL_BACKGROUND_COLOR); ! big.fillRect(0, 0, rect.width, rect.height); for (int k = 0; k < tmp.length; k++) --- 152,167 ---- ObjectView[] tmp = getVisibleObjectView(); ! //TODO try getVisibleObjectView(pRect); ! //ObjectView[] tmp = getVisibleObjectView(pRect); bi = (BufferedImage) drawingArea.createImage( ! pRect.width, ! pRect.height); big = bi.createGraphics(); big.setColor(CstGraphics.MODEL_BACKGROUND_COLOR); ! big.fillRect(0, 0, pRect.width, pRect.height); for (int k = 0; k < tmp.length; k++) *************** *** 188,193 **** big.drawImage( bi2, ! l.x - getRectangle().x, ! l.y - getRectangle().y, this); } --- 186,191 ---- big.drawImage( bi2, ! l.x - pRect.x, ! l.y - pRect.y, this); } *************** *** 195,212 **** } ! /* ! bi2 = ! (BufferedImage) drawingArea.createImage( ! modelTitleView.getSize().width, ! modelTitleView.getSize().height); ! bi2g = bi2.createGraphics(); ! modelTitleView.paint(bi2g); ! ! big.drawImage( ! bi2, ! modelTitleView.getLocation().x - getRectangle().x, ! modelTitleView.getLocation().y - getRectangle().y, ! this); ! */ return bi; } --- 193,197 ---- } ! return bi; } *************** *** 220,233 **** BufferedImage bi2; Graphics2D bi2g; if (fullRefresh) { bi = ! (BufferedImage) makeImage(getRectangle().height, ! getRectangle().width); fullRefresh = false; } ! g2.drawImage(bi, getRectangle().x, getRectangle().y, this); // loop/paint selected objects objects toviewPort panel. --- 205,219 ---- BufferedImage bi2; Graphics2D bi2g; + Rectangle rect=jScrollPane.getViewport().getViewRect(); + if (fullRefresh) { bi = ! (BufferedImage) makeImage(rect); fullRefresh = false; } ! g2.drawImage(bi, rect.x, rect.y, this); // loop/paint selected objects objects toviewPort panel. *************** *** 266,271 **** Graphics tmpClip = g2.create( ! getRectangle().x, ! getRectangle().y, getViewSize().width, getViewSize().height); --- 252,257 ---- Graphics tmpClip = g2.create( ! rect.x, ! rect.y, getViewSize().width, getViewSize().height); *************** *** 327,331 **** rectangle = calculateRectangle(); } ! if (rectangle.x == 999990) { --- 313,317 ---- rectangle = calculateRectangle(); } ! if (rectangle.x == 999990) { Index: ConstraintView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/ConstraintView.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** ConstraintView.java 4 Jun 2003 19:29:42 -0000 1.9 --- ConstraintView.java 13 Jun 2003 17:23:08 -0000 1.10 *************** *** 75,79 **** public void paint(Graphics g) { ! Point p0=((PhysicalView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); --- 75,80 ---- public void paint(Graphics g) { ! //Point p0=((PhysicalView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); ! Point p0=myObject.getMyModel().getModelView().jScrollPane.getViewport().getViewPosition(); Index: InheritanceLinkView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/InheritanceLinkView.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** InheritanceLinkView.java 4 Jun 2003 19:29:42 -0000 1.8 --- InheritanceLinkView.java 13 Jun 2003 17:23:08 -0000 1.9 *************** *** 68,72 **** { ! Point p0=((BaseModelView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); Point p1 = selectionPoints[0].getPoint(); --- 68,73 ---- { ! //Point p0=((BaseModelView)myObject.getMyModel().getPanel()).getRectangle().getLocation(); ! Point p0=myObject.getMyModel().getModelView().jScrollPane.getViewport().getViewPosition(); Point p1 = selectionPoints[0].getPoint(); Index: ModelTitleView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/ModelTitleView.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ModelTitleView.java 9 Jun 2003 19:06:07 -0000 1.2 --- ModelTitleView.java 13 Jun 2003 17:23:08 -0000 1.3 *************** *** 40,44 **** /** * Constructor ! * @param pLabel a dummy label who give a context */ public ModelTitleView(ModelTitle pObject) --- 40,44 ---- /** * Constructor ! * @param pObject the model title */ public ModelTitleView(ModelTitle pObject) Index: PhysicalView.java =================================================================== RCS file: /cvsroot/nextobjects/nextobjects/nextobjects/src/org/devaki/nextobjects/workspace/models/graphics/PhysicalView.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** PhysicalView.java 8 Jun 2003 09:28:27 -0000 1.22 --- PhysicalView.java 13 Jun 2003 17:23:08 -0000 1.23 *************** *** 21,28 **** import java.io.Serializable; - import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.Dimension; - import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Color; --- 21,26 ---- *************** *** 30,41 **** import java.awt.Polygon; import java.awt.Rectangle; - import java.awt.image.BufferedImage; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; - import javax.swing.JPanel; - import javax.swing.JScrollPane; import javax.swing.event.MouseInputAdapter; - import javax.swing.event.ChangeListener; - import javax.swing.event.ChangeEvent; import org.devaki.nextobjects.constants.CstGraphics; import org.devaki.nextobjects.ui.menus.ModelPopupMenu; --- 28,34 ---- *************** *** 75,225 **** super(theDatabase); this.setVisible(true); - - /** Components **/ - // Main Panel - this.setLayout(new BorderLayout()); - // Construct the drawing area - drawingArea = new JPanel() - { - /** - * Draw all components - * @param g the graphics - */ - public void paint(Graphics g) - { - update(g); - } - - public BufferedImage makeImage(int x,int y) - { - // collect our objects. - Graphics2D big; - BufferedImage bi2; - Graphics2D bi2g; - - ObjectView[] tmp = getVisibleObjectView(); - - Rectangle rect; - calculateRectangle(); - rect = getRectangle(); - - - bi=(BufferedImage) drawingArea.createImage(rect.width,rect.height); - - big = bi.createGraphics(); - - big.setColor(CstGraphics.MODEL_BACKGROUND_COLOR); - big.fillRect(0, 0, rect.width, rect.height); - - for (int k = 0; k < tmp.length; k++) - { - // Clears the rectangle that was previously drawn. - Dimension d = tmp[k].getSize(); - Point l = tmp[k].getLocation(); - - if (tmp[k] instanceof LineView) - { - tmp[k].paint(big); - } else - { // classview ?! - if (d.height > 0 && d.width > 0) - { - bi2 =(BufferedImage)drawingArea.createImage(d.width,d.height); - bi2g = bi2.createGraphics(); - tmp[k].paint(bi2g); - big.drawImage( - bi2, - l.x - getRectangle().x, - l.y - getRectangle().y, - this); - } - } - } - return bi; - } - - public void update(Graphics g) - { - Graphics2D g2 = (Graphics2D) g; - // blank fill, clean ... - super.paintComponent(g2); - //Rectangle area; - BufferedImage bi2; - Graphics2D bi2g; - - if (fullRefresh) - { - bi = (BufferedImage) makeImage(getRectangle().height,getRectangle().width); - fullRefresh = false; - } - - g2.drawImage(bi,getRectangle().x, getRectangle().y,this); - - // loop/paint selected objects objects toviewPort panel. - for (int j = 0; j < ModelMan.getCurrentObjects().size(); j++) - { - ObjectView tmpObjectView = - ((BaseObject) ModelMan - .getCurrentObjects() - .elementAt(j)) - .getObjectView(); - Dimension d2 = tmpObjectView.getSize(); - Point p2 = tmpObjectView.getLocation(); - - if (tmpObjectView instanceof ClassView) - { - g2.setColor(CstGraphics.MODEL_BACKGROUND_COLOR); - Rectangle r = - ((ClassView) tmpObjectView).getOldrectangle(); - g2.fillRect(r.x, r.y, r.width, r.height); - bi2 = - (BufferedImage) drawingArea.createImage( - d2.width, - d2.height); - bi2g = bi2.createGraphics(); - tmpObjectView.paint(bi2g); - - ((BaseObject) ModelMan - .getCurrentObjects() - .elementAt(j)) - .getObjectView() - .paint( - bi2g); - g2.drawImage(bi2, p2.x, p2.y, this); - } else - { - Graphics tmpClip =g2.create(getRectangle().x, - getRectangle().y, - getViewSize().width, - getViewSize().height); - } - ((BaseObject) ModelMan.getCurrentObjects().elementAt(j)).getObjectView().renderSelected(g); - } - } - }; - // Define the color of the background - this.drawingArea.setBackground(CstGraphics.MODEL_BACKGROUND_COLOR); - this.drawingArea.setPreferredSize(CstGraphics.MODEL_DIMENSION); - // Mouse Listeners this.drawingArea.addMouseListener(new MyMouseListener()); this.drawingArea.addMouseMotionListener(new MyMouseMotionListener()); ! ! // Assembling components ! this.jScrollPane = new JScrollPane(this.drawingArea); ! this.add(jScrollPane, BorderLayout.CENTER); ! ! // Initialize scrolling position ! jScrollPane.getViewport().setViewPosition( ! CstGraphics.MODEL_INITIAL_POSITION); ! ! //will update the buffered image in case viewport have changed. ! this.jScrollPane.getViewport().addChangeListener(new ChangeListener() ! { ! public void stateChanged(ChangeEvent e) ! { ! fullRefresh = true; ! } ! }); } --- 68,75 ---- super(theDatabase); this.setVisible(true); // Mouse Listeners this.drawingArea.addMouseListener(new MyMouseListener()); this.drawingArea.addMouseMotionListener(new MyMouseMotionListener()); ! } *************** *** 903,907 **** * @return the objects views */ ! public ObjectView[] getVisibleObjectView() { ObjectView[] b = new ObjectView[((PhysicalModel)myModel).getInheritanceLinks().size() --- 753,758 ---- * @return the objects views */ ! public ObjectView[] getVisibleObjectView() ! { ObjectView[] b = new ObjectView[((PhysicalModel)myModel).getInheritanceLinks().size() |