« Utilisateur:Alain Busser/Création d'un objet DrGeoII » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 104 :
=Création d'un outil=
 
Il va falloir créer un nouvel objet mais cette fois-ci dans la classe ''DrGeoII-Core-Builder'', dont les méthodes permettront de créer l'inverse d'un point. Cet objet s'appellera ''DrGInverseBuilder'', par souci de cohérence avec les noms déjà présents dans ''DrGeoII''.
 
''Oui et le builder, au hasard '''DrGInverseBuilder''', s'interfacera pour créer des inverses de toute sorte d'objet. Ensuite ajouter une entrée '''Inverse''' dans un menu de la fenêtre de drgeo ('''Ligne''' par exemple)''
 
==Classement==
 
Dans la catégorie ''constant'', on crée cette méthode:
 
<source lang="smalltalk">
mathItemClass
^DrGPointInverseItem
</source>
 
qui fait le lien avec l'objet précédent.
 
==Mise à jour==
 
Dans la catégorie ''update'', on crée une méthode ''reset'' pour la réinitialisation:
 
<source lang="smalltalk">
reset
super reset.
cercle:=mathItem:=nil
</source>
 
==Accessibilité==
 
Dans la catégorie ''accessing'', on crée une méthode d'accessibilité aux arguments, en l'ocurrence au cercle d'inversion:
 
<source lang="smalltalk">
arguments: aMathItem
^{aMathItem.cercle}
</source>
 
==Méthodes de test==
 
===Quand peut-on construire un inverse?===
 
Il faut que le cercle d'inversion existe (ou soit sélectionné) et que l'objet à inverser existe aussi:
 
<source lang="smalltalk">
readyToBuild
^cercle notNil and: [MathItem notNil]
</source>
 
===Qu'attend la construction?===
 
Il faut un cercle d'inversion et quelque chose à inverser; il faut également que le cercle d'inversion soit vraiment un cercle!:
 
<source lang="smalltalk">
isWanted: aMathItemCollection
^aMathItemCollection notEmpty
and: [aMathItemCollection first isCircleItem
and: [aMathItemCollection second isPointItem]]
</source>
 
==Assignations==
 
Dans la catégorie ''private'':
 
<source lang="smalltalk">
addItem: aMathItemCollection at: aPoint
super addItem: aMathItemCollection at: aPoint
(aMathItemCollection first isCircle and: [cercle isNil])
ifTrue: [cercle:=aMathItemCollection first]
ifFalse: [mathItem:=aMathItemCollection first]
</source>
 
=Tout ceci est-il bien utile?=