|
From: <had...@us...> - 2008-08-05 07:51:16
|
Revision: 3709
http://fudaa.svn.sourceforge.net/fudaa/?rev=3709&view=rev
Author: hadouxad
Date: 2008-08-05 07:51:22 +0000 (Tue, 05 Aug 2008)
Log Message:
-----------
AFFECT?\195?\137 - # 40: L?\195?\169gende pour les courbe 1d
http://mantis.genesis-groupe.com//view.php?id=40
- creation du package visual librarie
- creation de EbliWidget
- creation de LineWidget : dessin de la ligne et icone
- creation de TitleWidget : label du titre
Les libell?\195?\169s et couleurs icones se mettent a jour a la modification de la conf de la courbe
Modified Paths:
--------------
branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java
Added Paths:
-----------
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java
branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java
Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java (rev 0)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -0,0 +1,35 @@
+package org.fudaa.ebli.visuallibrary;
+
+import org.netbeans.api.visual.action.ActionFactory;
+import org.netbeans.api.visual.laf.LookFeel;
+import org.netbeans.api.visual.model.ObjectState;
+import org.netbeans.api.visual.widget.Scene;
+import org.netbeans.api.visual.widget.Widget;
+
+
+/**
+ * Widget version EBLI
+ * @author genesis
+ *
+ */
+class EbliWidget extends Widget {
+
+ /**
+ * @param scene
+ */
+ public EbliWidget(Scene scene) {
+ super(scene);
+ getActions().addAction( ActionFactory.createResizeAction());
+ getActions().addAction(ActionFactory.createMoveAction());
+ getActions().addAction(scene.createWidgetHoverAction());//a voir pour que le parent soit
+ //aussi en hover : a voir apr\xE8s.
+ setBorder(getScene().getLookFeel().getMiniBorder(ObjectState.createNormal()));
+ }
+
+ @Override
+ public void notifyStateChanged(ObjectState previousState, ObjectState newState) {
+ LookFeel lookFeel = getScene().getLookFeel();
+ setBorder(lookFeel.getMiniBorder(newState));
+ }
+
+}
\ No newline at end of file
Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java (rev 0)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -0,0 +1,52 @@
+package org.fudaa.ebli.visuallibrary;
+
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+
+import org.fudaa.ebli.courbe.EGCourbe;
+import org.fudaa.ebli.trace.TraceIcon;
+import org.fudaa.ebli.trace.TraceIconModel;
+import org.fudaa.ebli.trace.TraceLigne;
+import org.netbeans.api.visual.widget.Scene;
+
+
+/**
+ * Legende
+ * Widget qui contient le trac\xE9 de la ligne de la l\xE9gende courbe
+ * @author genesis
+ *
+ */
+public class LineWidget extends EbliWidget {
+
+ EGCourbe cb_;
+
+ /**
+ * @param _scene
+ */
+ public LineWidget(Scene _scene, EGCourbe _cb) {
+ super(_scene);
+ cb_ = _cb;
+ setMinimumSize(new Dimension(30, 10));
+ setPreferredSize(new Dimension(40, 10));
+ }
+
+ /**
+ *
+ */
+ @Override
+ protected void paintWidget() {
+ Graphics2D g = getGraphics();
+ Rectangle rec = getClientArea();
+ g.translate(rec.x, rec.y);
+ //la ligne
+ TraceLigne l = new TraceLigne(cb_.getLigneModel());
+ l.dessineTrait(g, 0, rec.height / 2, rec.width, rec.height / 2);
+ //l'icone
+ TraceIconModel icm = new TraceIconModel(cb_.getIconModel());
+ icm.setTaille(Math.min(rec.width / 2, rec.height));//a voir
+ TraceIcon ic = new TraceIcon(icm);
+ ic.paintIconCentre(g, rec.width / 2, rec.height / 2);
+ g.translate(-rec.x, -rec.y);
+ }
+}
Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/LineWidget.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java (rev 0)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -0,0 +1,57 @@
+package org.fudaa.ebli.visuallibrary;
+
+import org.fudaa.ebli.courbe.EGCourbe;
+import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment;
+import org.netbeans.api.visual.widget.LabelWidget;
+import org.netbeans.api.visual.widget.Scene;
+import org.netbeans.modules.visual.layout.FlowLayout;
+
+
+/**
+ * Legende
+ * Widget qui contient le titre de la ligne de la l\xE9gende courbe
+ * @author genesis
+ *
+ */
+public class TitleWidget extends EbliWidget {
+
+ EGCourbe cb_;
+
+ LabelWidget intern;
+
+ /**
+ * @param _scene
+ */
+ public TitleWidget(Scene _scene, EGCourbe _cb) {
+ super(_scene);
+ setLayout(new FlowLayout(true, SerialAlignment.LEFT_TOP, 0));
+ intern = new LabelWidget(_scene);
+ intern.setForeground(_cb.getAspectContour());
+ addChild(intern);
+ setCourbe(_cb);
+ }
+
+ public void majLabel(){
+ intern.setForeground(cb_.getAspectContour());
+ intern.setLabel(cb_.getTitle());
+ }
+
+
+ /**
+ * @return the cb_
+ */
+ public EGCourbe getCourbe() {
+ return cb_;
+ }
+
+ /**
+ * @param _cb the cb_ to set
+ */
+ public void setCourbe(EGCourbe _cb) {
+ this.cb_ = _cb;
+ if (cb_ != null) {
+ intern.setLabel(cb_.getTitle());
+ }
+ }
+
+}
\ No newline at end of file
Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/TitleWidget.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java (rev 0)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -0,0 +1,108 @@
+package org.fudaa.ebli.visuallibrary;
+
+
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import org.fudaa.ctulu.iterator.LogarithmicNumberIterator;
+import org.fudaa.ebli.courbe.EGAxe;
+import org.fudaa.ebli.courbe.EGAxeHorizontal;
+import org.fudaa.ebli.courbe.EGAxeVertical;
+import org.fudaa.ebli.courbe.EGCourbe;
+import org.fudaa.ebli.courbe.EGCourbeChild;
+import org.fudaa.ebli.courbe.EGCourbeModelDefault;
+import org.fudaa.ebli.courbe.EGGraphe;
+import org.fudaa.ebli.courbe.EGGrapheModelListener;
+import org.fudaa.ebli.courbe.EGGrapheTreeModel;
+import org.fudaa.ebli.courbe.EGGroup;
+import org.fudaa.ebli.courbe.EGObject;
+import org.fudaa.ebli.trace.TraceIcon;
+import org.fudaa.ebli.trace.TraceIconModel;
+import org.fudaa.ebli.trace.TraceLigne;
+import org.fudaa.ebli.trace.TraceLigneModel;
+import org.netbeans.api.visual.action.ActionFactory;
+import org.netbeans.api.visual.graph.GraphScene;
+import org.netbeans.api.visual.laf.LookFeel;
+import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment;
+import org.netbeans.api.visual.model.ObjectState;
+import org.netbeans.api.visual.widget.LabelWidget;
+import org.netbeans.api.visual.widget.LayerWidget;
+import org.netbeans.api.visual.widget.Scene;
+import org.netbeans.api.visual.widget.Widget;
+import org.netbeans.modules.visual.layout.FlowLayout;
+
+/**
+ * @author denf01a adrien hadous
+ * @creation 5 ao\xFBt 2008
+ * @version
+ *
+ */
+public class WidgetLegendeManager {
+
+
+
+ //exemple a ameliorer
+ public static EbliWidget createLegende(EGGraphe g, Scene scene) {
+ EGCourbe[] cs = g.getModel().getCourbes();
+ EbliWidget res = new EbliWidget(scene);
+ res.setLayout(new FlowLayout(true, SerialAlignment.LEFT_TOP, 10));// a modifier pour setter le gap
+ for (int i = 0; i < cs.length; i++) {
+ final EbliWidget line = new EbliWidget(scene);
+ line.setLayout(new FlowLayout(false, SerialAlignment.CENTER, 5));
+
+ //creation de la widget titre
+ final TitleWidget tw=new TitleWidget(scene, cs[i]);
+
+ //creation de la widget ligne
+ LineWidget lw=new LineWidget(scene, cs[i]);
+
+ line.addChild(lw);
+ line.addChild(tw);
+ res.addChild(line);
+
+ //-- ajouter le listener EGGraphe pour ecouter et \xE9ettre a jour els l\xE9gendes --//
+ g.getModel().addModelListener(new EGGrapheModelListener() {
+
+ public void structureChanged() {
+ line.repaint();
+ tw.majLabel();
+
+ }
+
+ public void courbeContentChanged(EGObject _c, boolean restore) {
+ line.repaint();
+ tw.majLabel();
+
+ }
+
+ public void courbeAspectChanged(EGObject _c, boolean _visibil) {
+ line.repaint();
+ tw.majLabel();
+
+ }
+
+ public void axeContentChanged(EGAxe _c) {
+ line.repaint();
+ tw.majLabel();
+ }
+
+ public void axeAspectChanged(EGAxe _c) {
+ line.repaint();
+ tw.majLabel();
+ }
+ });
+
+ }
+ return res;
+ }
+
+
+
+}
Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManager.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Copied: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java (from rev 3708, branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/courbe/WidgetLegendeManager.java)
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java (rev 0)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -0,0 +1,184 @@
+package org.fudaa.ebli.visuallibrary;
+
+
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.Toolkit;
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.fudaa.ctulu.CtuluResource;
+import org.fudaa.ctulu.image.CtuluImageProducer;
+import org.fudaa.ctulu.image.CtuluLibImage;
+import org.fudaa.ebli.courbe.EGAxe;
+import org.fudaa.ebli.courbe.EGCourbe;
+import org.fudaa.ebli.courbe.EGGraphe;
+import org.fudaa.ebli.courbe.EGGrapheModelListener;
+import org.fudaa.ebli.courbe.EGObject;
+import org.netbeans.api.visual.action.ActionFactory;
+import org.netbeans.api.visual.action.SelectProvider;
+import org.netbeans.api.visual.action.TextFieldInplaceEditor;
+import org.netbeans.api.visual.graph.GraphScene;
+import org.netbeans.api.visual.laf.LookFeel;
+import org.netbeans.api.visual.model.ObjectState;
+import org.netbeans.api.visual.widget.ImageWidget;
+import org.netbeans.api.visual.widget.LabelWidget;
+import org.netbeans.api.visual.widget.LayerWidget;
+import org.netbeans.api.visual.widget.Widget;
+
+import sun.awt.image.ToolkitImage;
+
+
+
+/**
+ * Classe qui g\xE9n\xE8re les l\xE9gendes de chacun des graphes
+ *
+ *
+ * @author Adrien Hadoux
+ *
+ */
+
+public class WidgetLegendeManagerOLD {
+
+
+ static List<ImageWidget> listeWidgets=null;
+
+ //gap vertical entre chaque widget legendes
+ final static int Vgap=10;
+ //gap horizontal entre chaque widget legendes
+ final static int Hgap=10;
+
+ final static int widthDefault=100;
+ final static int heightDefault=30;
+
+
+ public static void createWidgetLegendeGraphe(GraphScene scene,LayerWidget visu,EGGraphe graphe, Rectangle areaGraphe) {
+
+
+ listeWidgets=new ArrayList<ImageWidget>();
+
+ //-- cr\xE9ation, affichage et ajout du listener du graphe pour chacune des widgets suivantes --//
+
+ for(int i=0; i<graphe.getModel().getCourbes().length;i++){
+
+ final EGCourbe courbe=graphe.getModel().getCourbes()[i];
+ final int cpt=i;
+
+
+
+ //--creation d un nouveau widget image --//
+ final ImageWidget legendeWidget=new ImageWidget (scene){
+ public void notifyStateChanged(ObjectState previousState,
+ ObjectState newState) {
+ LookFeel lookFeel = getScene().getLookFeel();
+ // setBorder(lookFeel.getBorder(newState));
+ // setForeground(lookFeel.getForeground(newState));
+
+ setBorder(lookFeel.getBorder(newState));
+ // setBorder(newState.isSelected() ?
+ // (DEFAULT_SELECTED_BORDER) :
+ // (newState.isHovered() ? RESIZE_BORDER
+ // : DEFAULT_BORDER));
+ //repaint();
+
+ }
+
+ //-- redessinne la l\xE9gende
+ protected void paintWidget() {
+
+ // recuperation du rectangle contour
+ Rectangle rec = getClientArea();
+ Graphics2D g=getGraphics();
+
+ g.translate(rec.x, rec.y);
+
+
+ //dimension du cadre de la l\xE9gende //
+ int widthCadre=rec.width;
+ int heightCadre=rec.height;
+
+ //cas initial: dessin vide
+ if(widthCadre==0)
+ widthCadre=widthDefault;
+ if(heightCadre==0)
+ heightCadre=heightDefault;
+
+ g.setColor(Color.GRAY);
+ g.drawRect(rec.x, rec.y,widthCadre - 1, heightCadre - 1);
+
+ //-- dessin du titre et des lignes --//
+ g.setFont(new Font("Serif",Font.PLAIN,rec.height/2));
+ g.setColor(courbe.getAspectContour());
+ g.drawString(courbe.getTitle(),rec.x + Hgap/2 , (int)(rec.y + rec.height/2));
+ //FIXME Comment je peux obtenir les icones et les lignes et les dimensionner?
+ }
+
+ };
+legendeWidget.setPreferredSize(new Dimension(widthDefault,heightDefault));
+
+ //-- ajouter le listener EGGraphe pour ecouter et \xE9ettre a jour els l\xE9gendes --//
+ graphe.getModel().addModelListener(new EGGrapheModelListener() {
+
+ public void structureChanged() {
+ legendeWidget.repaint();
+
+ }
+
+ public void courbeContentChanged(EGObject _c, boolean restore) {
+ legendeWidget.repaint();
+
+ }
+
+ public void courbeAspectChanged(EGObject _c, boolean _visibil) {
+ legendeWidget.repaint();
+ // TODO Auto-generated method stub
+
+ }
+
+ public void axeContentChanged(EGAxe _c) {
+ legendeWidget.repaint();
+
+ }
+
+ public void axeAspectChanged(EGAxe _c) {
+ legendeWidget.repaint();
+
+ }
+ });
+
+ //-- ajouter les actions liees au widget --//
+ legendeWidget.getActions().addAction( ActionFactory.createResizeAction());
+ legendeWidget.getActions().addAction(ActionFactory.createMoveAction());
+ legendeWidget.getActions().addAction(scene.createWidgetHoverAction());
+
+
+ //-- ajout de la widget dans la liste --//
+ listeWidgets.add(legendeWidget);
+
+ //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --//
+ //FIXME am\xE9eliorer en discuter avec Fred
+ legendeWidget.setPreferredLocation (new Point ((widthDefault+Hgap)*cpt, Vgap));
+
+ scene.addChild(legendeWidget);
+
+ }//fin for
+
+ //-- positionner le widget dans la scene par rapport au graphe et a ses autres widgets --//
+ //TODO am\xE9eliorer en discuter avec Fred
+ //visu.addChildren(listeWidgets);
+
+ }
+
+
+}
+
+
Property changes on: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/WidgetLegendeManagerOLD.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java
===================================================================
--- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-05 06:21:31 UTC (rev 3708)
+++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-05 07:51:22 UTC (rev 3709)
@@ -41,9 +41,10 @@
import org.fudaa.ebli.courbe.EGGrapheTreeModel;
import org.fudaa.ebli.courbe.EGGroup;
import org.fudaa.ebli.courbe.EGObject;
-import org.fudaa.ebli.courbe.WidgetLegendeManager;
import org.fudaa.ebli.trace.TraceLigne;
import org.fudaa.ebli.trace.TraceLigneModel;
+import org.fudaa.ebli.visuallibrary.WidgetLegendeManager;
+import org.fudaa.ebli.visuallibrary.WidgetLegendeManagerOLD;
import org.netbeans.api.visual.action.ActionFactory;
import org.netbeans.api.visual.graph.GraphScene;
import org.netbeans.api.visual.laf.LookFeel;
@@ -324,8 +325,9 @@
};
- WidgetLegendeManager.createWidgetLegendeGraphe(this, visu, courbe, graphe.getClientArea());
+ //WidgetLegendeManagerOLD.createWidgetLegendeGraphe(this, visu, courbe, graphe.getClientArea());
+ visu.addChild (WidgetLegendeManager.createLegende(courbe, this));
//ajout des resize et drag
imageWidget.getActions().addAction( ActionFactory.createResizeAction());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|