GraphStream Users

Archives de la liste Aide


RE : Questions concernant les différentes versions


Chronologique Discussions 
  • From: Tièche Simon <Simon.Tieche AT edu.hefr.ch>
  • To: "graphstream-users AT litislab.fr" <graphstream-users AT litislab.fr>
  • Subject: RE : Questions concernant les différentes versions
  • Date: Thu, 28 Apr 2011 18:20:46 +0200
  • Accept-language: fr-FR, fr-CH
  • Acceptlanguage: fr-FR, fr-CH

Merci pour l'exemple. J'ai essayé avec le nouveau Viewer, mais j'ai une
erreur, autant dans l'exemple que dans mon code où j'ai ajouté
System.setProperty( "gs.ui.renderer",
"org.graphstream.ui.j2dviewer.J2DGraphRenderer" );

L'erreur obtenue est celle-ci, à l'exécution de la ligne 47 : View view =
viewer.addDefaultView(false);

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError:
org.graphstream.ui.geom.Point3.set(DDD)V
at
org.graphstream.ui.util.GraphMetrics.setDefaults(GraphMetrics.scala:88)
at org.graphstream.ui.util.GraphMetrics.<init>(GraphMetrics.scala:82)
at org.graphstream.ui.j2dviewer.Camera.<init>(Camera.scala:98)

Sauriez-vous ce qui cause cela. Merci et bonne soirée.
_________________________________________

Simon Tièche - 3e année Télécommunications
Ecole d'Ingénieurs et d'Architectes de Fribourg


________________________________________
De : Antoine Dutot
[antoine.dutot AT gmail.com]
Date d'envoi : jeudi, 28. avril 2011 17:33
À :
graphstream-users AT litislab.fr
Objet : Re: Questions concernant les différentes versions

Bonjour,

Le 28 avril 2011 15:31, Tièche Simon
<Simon.Tieche AT edu.hefr.ch>
a écrit :
> J’aimerais donc savoir ce qu’il en est. Est-il possible de réaliser avec la
> mouture 1.0-beta tout ce qui est possible avec la 0.4.2 au niveau des
> styles, et de quelle manière modifier la vue ?

Oui, il y a un grand manque de documentation sur ce sujet, nous allons
essayer de changer cela prochainement, ainsi qu'une version 1.0
finale.

Dans la nouvelle version de GraphStream, il y a deux afficheurs, un
basique (mais léger) qui ne gère que très peu du CSS et un plus avancé
mais encore en développement.
Cet autre afficheur supporte à peu près les fonctionnalités de
l'ancien, ainsi que d'autres. Bien qu'en développement, il est
(j'espère) utilisable. Vous pouvez le télécharger ici en attendant :

http://litis.univ-lehavre.fr/~dutot/gs-ui.jar

Ensuite pour l'activer à la place de l'afficheur de base, il suffit d'ajouter
:

System.setProperty("gs.ui.renderer",
"org.graphstream.ui.j2dviewer.J2DGraphRenderer");

Dans le main() par exemple.

Le peu de documentation disponible est ici :
http://graphstream-project.org/doc/Advanced-Concepts/The-Style-Sheet-Reference_development/
(les fonctionnalités non encore implantées ont un "todo" ajouté en face).

> Et aussi, existe-t-il des exemples de code avec déplacement de la vue/zoom,
> si possible intégré à une application avec GUI.

En voici un en attaché. Le principe consiste à créer un objet "Viewer"
ce dernier contient un ensemble de vues sur le graphe, mais
usuellement il n'y en a qu'une. On crée la vue avec le viewer en
demandant à ce qu'elle ne soit pas intégrée à une JFrame
automatiquement avec View.addView(false). La vue hérite de JPanel,
donc on peut l'insérer dans une GUI java.

Pour ce qui est du zoom, il y a une méthode
View.setViewPercent(double) qui permet de dire quelle portion du
graphe on veut voir, ainsi qu'une méthode View.setViewCenter(double,
double, double) qui permet de déplacer la vue. Interactivement dans la
vue on peut zoomer avec page-up/page-down, se déplacer avec les
touches fléchées et repositionner la vue avec shift-r.

Le viewer est créé avec l'option
"Viewer.ThreadingModel.GRAPH_IN_SWING_THREAD" qui lui indique que le
code qui contrôle la vue tourne dans le thread Swing. C'est très
probablement le cas si vous créez une interface graphique. Sans cela,
le viewer considère qu'il peut être appelé d'un autre thread et met en
places des moyens de communications inter-thread qu'on peut vouloir
éviter (en général le code de traitement du graphe est dans le thread
principal et le viewer tourne de son côté dans le thread swing).
Cependant, dans le code en exemple, la partie avec le invokeLater est
optionnelle.

Cette partie de l'API n'est pas encore très aboutie. Les remarques,
problèmes et bugs sont les bienvenus :-)



Archives gérées par MHonArc 2.6.16.

Top of page