Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Eclipse > Eclipse Modeling
Eclipse Modeling Forum d'entraide sur les technologies Eclipse de développement basées sur un modèle (EMF, GMF, Acceleo, EEF, CDO ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/12/2012, 10h09   #1
deathness
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2008
Messages : 1 106
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2008
Messages : 1 106
Points : 2 464
Points : 2 464
Par défaut Modifier une figure avec un EditPart

Bonjour,

J'ai une application RCP et j'utilise des modèles GMF.

Je souhaiterais, à partir d'un EditPart, modifier la figure de celui-ci (la position de l'objet par exemple).
Je sais comment faire pour changer le modèle de l'EditPart, en passant avec un TransactionnalEditingDomain faire des requêtes de mise à jour.

Quelqu'un saurait-il m'indiquer la procédure à suivre pour changer des valeurs de la figure ? Je cherche sans doute mal, mais je ne trouve pas de tutoriel dessus.

Merci d'avance pour votre aide.
deathness est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 11h28   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 554
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 554
Points : 10 315
Points : 10 315
Bonjour,

J'utilise une vieille version mais peut être que ça peut t'aider.
Tu overrides la méthode refreshVisuals() de ton EditPart, tu fais :
Code Java :
1
2
3
4
super.refreshVisuals();
Figure maFigure = getFigure();
// Tu castes éventuellement ta figure vers autre chose
// Tu agis sur ta figure
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2013, 13h05   #3
Mickael_Istria
Membre émérite

 
Avatar de Mickael_Istria
 
Homme Mickael Istria
Développeur Expert Eclipse RCP
Inscription : juillet 2008
Messages : 494
Détails du profil
Informations personnelles :
Nom : Homme Mickael Istria
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Expert Eclipse RCP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2008
Messages : 494
Points : 937
Points : 937
Alors pour que tout cela soit bien transactionnel (et stocke dans ton fichier lors du Save), il ne faut pas utiliser directement les API GEF, qui ne sont pas persistees.

Le process generique pour interagir avec le diagramme, certes non trivial est:
1. Creer une "Request", dans ton cas, une "ChangeBoundsRequest"
2. Transformer ta Reqest en commande avec GraphicalEditPart.getCommand(). A priori, la commande sera ici une SetBoundsCommand(), mais au final, ca t'importe peu.
3. Donner ta commande a ton EditingDomain

Ce process peut sombler complique, mais une fois que tu l'as compris, tu fais tout de la meme maniere: Request -> Command -> Execute.
Il permet notamment de pouvoir associer plusieurs requests sur les operation d'UI telles qu'un drag'n'drop et de changer l'action (la commande) en fonction de l'EditPart ciblee, tout en fournissant un feedback adapte a l'utilisateur.
__________________
Inscrivez-vous pour la premiere EclipseCon France, le 5 et 6 juin!

Read my blog about Eclipse | Follow me on twitter
My employer, JBoss, by RedHat
Mickael_Istria est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 09h10.


 
 
 
 
Partenaires

Hébergement Web