From: <had...@us...> - 2008-08-12 07:45:41
|
Revision: 3772 http://fudaa.svn.sourceforge.net/fudaa/?rev=3772&view=rev Author: hadouxad Date: 2008-08-12 07:45:50 +0000 (Tue, 12 Aug 2008) Log Message: ----------- Creation des vrais alignements relatifs Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java 2008-08-11 22:46:51 UTC (rev 3771) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionAlign.java 2008-08-12 07:45:50 UTC (rev 3772) @@ -47,8 +47,30 @@ @Override protected List<Point> getNewPositionFor(List<Widget> _widgetToMove) { - // TODO A terminer pour aligner en haut les widget - return null; + // on recupere le premier + // minx est le x min dans le repere de la scene + // on est oblige de passer par la car on la location ne suffit pas pour + // determiner + // la position d'un widget: ily a aussi les bounds + int maxY = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).y+_widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).height; + for (Widget widget : _widgetToMove) { + maxY = Math.max(maxY, widget.convertLocalToScene(widget.getBounds()).y+ widget.convertLocalToScene(widget.getBounds()).height); + } + List<Point> newPoints = new ArrayList<Point>(_widgetToMove.size()); + for (Widget widget : _widgetToMove) { + Point p = widget.getPreferredLocation(); + // celui la ne change pas + int oldX = p.x; + p.y = maxY; + widget.getParentWidget().convertSceneToLocal(p); + //maintenant le p.x contient la position de bounds dans le repere qu'il faut. + //la location + bounds.x vaut la postion final du dessin donc + //la location final vaut=le point du dessin - bounds.x + p.y = p.y - widget.getBounds().height- widget.getBounds().y; + p.x = oldX; + newPoints.add(p); + } + return newPoints; } } @@ -63,7 +85,34 @@ @Override protected List<Point> getNewPositionFor(List<Widget> _widgetToMove) { // TODO A terminer pour centrer horizontalement les widgets - return null; + + //on recupere les coordonnees les plus a gauche + int minx = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).y; + for (Widget widget : _widgetToMove) { + minx = Math.min(minx, widget.convertLocalToScene(widget.getBounds()).y); + } + //on recupere les coordonnees les plus a droite + int maxx = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).y+_widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).height; + for (Widget widget : _widgetToMove) { + maxx = Math.max(maxx, widget.convertLocalToScene(widget.getBounds()).y+ widget.convertLocalToScene(widget.getBounds()).height); + } + List<Point> newPoints = new ArrayList<Point>(_widgetToMove.size()); + for (Widget widget : _widgetToMove) { + Point p = widget.getPreferredLocation(); + // toutes les coordonnees changent, elles s alignent entre elles au centre, cf le super logiciel powerpoint + int oldY = p.x; + + // p.x se trouve a la moyenne des 2 + p.y = (maxx+minx)/2; + widget.getParentWidget().convertSceneToLocal(p); + //maintenant le p.x contient la position du centre des widgets dans le repere qu'il faut. + // + //la location final vaut=le point du milieu du dessin - sa taille/2 - sa bordure + p.y = p.y - widget.getBounds().height/2- widget.getBounds().y; + p.x = oldY; + newPoints.add(p); + } + return newPoints; } } @@ -114,8 +163,35 @@ @Override protected List<Point> getNewPositionFor(List<Widget> _widgetToMove) { - // TODO A terminer pour centrer horizontalement les widgets - return null; + // TODO A terminer pour centrer horizontalement les widgets + + //on recupere les coordonnees les plus a gauche + int minx = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).x; + for (Widget widget : _widgetToMove) { + minx = Math.min(minx, widget.convertLocalToScene(widget.getBounds()).x); + } + //on recupere les coordonnees les plus a droite + int maxx = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).x+_widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).width; + for (Widget widget : _widgetToMove) { + maxx = Math.max(maxx, widget.convertLocalToScene(widget.getBounds()).x+ widget.convertLocalToScene(widget.getBounds()).width); + } + List<Point> newPoints = new ArrayList<Point>(_widgetToMove.size()); + for (Widget widget : _widgetToMove) { + Point p = widget.getPreferredLocation(); + // toutes les coordonnees changent, elles s alignent entre elles au centre, cf le super logiciel powerpoint + int oldY = p.y; + + // p.x se trouve a la moyenne des 2 + p.x = (maxx+minx)/2; + widget.getParentWidget().convertSceneToLocal(p); + //maintenant le p.x contient la position du centre des widgets dans le repere qu'il faut. + // + //la location final vaut=le point du milieu du dessin - sa taille/2 - sa bordure + p.x = p.x - widget.getBounds().width/2- widget.getBounds().x; + p.y = oldY; + newPoints.add(p); + } + return newPoints; } } @@ -130,8 +206,30 @@ @Override protected List<Point> getNewPositionFor(List<Widget> _widgetToMove) { - // TODO A terminer pour aligner a droite les widget - return null; + // on recupere le premier + // minx est le x min dans le repere de la scene + // on est oblige de passer par la car on la location ne suffit pas pour + // determiner + // la position d'un widget: ily a aussi les bounds + int maxx = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).x+_widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).width; + for (Widget widget : _widgetToMove) { + maxx = Math.max(maxx, widget.convertLocalToScene(widget.getBounds()).x+ widget.convertLocalToScene(widget.getBounds()).width); + } + List<Point> newPoints = new ArrayList<Point>(_widgetToMove.size()); + for (Widget widget : _widgetToMove) { + Point p = widget.getPreferredLocation(); + // celui la ne change pas + int oldY = p.y; + p.x = maxx; + widget.getParentWidget().convertSceneToLocal(p); + //maintenant le p.x contient la position de bounds dans le repere qu'il faut. + //la location + bounds.x vaut la postion final du dessin donc + //la location final vaut=le point du dessin - bounds.x + p.x = p.x - widget.getBounds().width- widget.getBounds().x; + p.y = oldY; + newPoints.add(p); + } + return newPoints; } } @@ -144,8 +242,30 @@ @Override protected List<Point> getNewPositionFor(List<Widget> _widgetToMove) { - // TODO A terminer pour aligner en haut les widget - return null; + // on recupere le premier + // miny est le y min dans le repere de la scene + // on est oblige de passer par la car on la location ne suffit pas pour + // determiner + // la position d'un widget: il y a aussi les bounds + int miny = _widgetToMove.get(0).convertLocalToScene(_widgetToMove.get(0).getBounds()).y; + for (Widget widget : _widgetToMove) { + miny = Math.min(miny, widget.convertLocalToScene(widget.getBounds()).y); + } + List<Point> newPoints = new ArrayList<Point>(_widgetToMove.size()); + for (Widget widget : _widgetToMove) { + Point p = widget.getPreferredLocation(); + // celui la ne change pas + int oldX = p.x; + p.y = miny; + widget.getParentWidget().convertSceneToLocal(p); + //maintenant le p.y contient la position de bounds dans le repere qu'il faut. + //la location + bounds.x vaut la postion final du dessin donc + //la location final vaut=le point du dessin - bounds.x + p.y = p.y - widget.getBounds().y; + p.x = oldX; + newPoints.add(p); + } + return newPoints; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |