Etape 3: Comment ajuster les œuvres
Sur le plan conceptuel Tweak est composé de deux parties : le panneau de Tweak (qui affiche les variables et permet aux utilisateurs d’interagir et de les changer) et une structure de classe qui permet à des types de variables communes (ou combiné/complexe) partager un ensemble de méthodes pour l’affichage manipulation et vérification de limites.
Le panneau Tweak s’étend une JFrame et permet une nouvelle fenêtre à créer où les variables sont affichées. Il y une poignée sur le code d’interaction que poignées clics traîne et le défilement (dans le cas où vous avez beaucoup de variables!).
Maintenant nous allons jeter un oeil à comment un type de Tweak (tels que TweakInt TweakFloat TweakBool et TweakPoint) fonctionne.
Tous les types de Tweak s’étendent et classe abstraite TweakParameter. Cela garantit que tous les types de Tweak sera en mesure de travailler avec le panneau de tordre. Un TweakParameter a une description un moyen d’incrémentation/décrémentation une variable délimite la vérification et une chaîne de valeur. Chaque type de Tweak prend un peu de code mais tout est assez simple.
Voici ce à quoi ressemble le TweakInt : class TweakInt extends TweakParameter{ ------------------------------
------------------------------
int origVal;
int val;
int maxVal;
int minVal;
int step;
public TweakInt(String desc int val int step int minVal int maxVal){
this.val = val;
this.origVal = val;
this.minVal = minVal;
this.maxVal = maxVal;
this.step = step;
this.desc = desc;
tweakParamList.add(this);
tweak_initParamManagerIfNeeded();
}
public TweakInt(String desc int val int step){
this(desc val step -Integer.MAX_VALUE Integer.MAX_VALUE);
}
public TweakInt(String desc int val){
this(desc val 1);
}
boolean supportsX(){
return true;
}
boolean supportsY(){
return false;
}
void incX(){
val += step;
}
void decX(){
val -= step;
}
void incY(){
}
void decY(){
}
int equalToOriginalValue(){
if(val < origVal){
return -1;
}
else{
if(val > origVal){
return +1;
}
else{
return 0;
}
}
}
String valString(){
return ""+val;
}
void keepInBounds(){
if(val > maxVal){
val = maxVal;
}
if(val < minVal){
val = minVal;
}
}
}
En utilisant cette même structure vous pouvez créer vos propres types de Tweak. Types de base (telles que Double longue Char etc.) peuvent être construites très similaire à la TweakInt mais il n’y a pas besoin de s’arrêter là. Des types plus complexes peuvent également être créées qui fonctionnent avec plusieurs variables et ont l’état interne ou communiquent avec d’autres variables de Tweak.
Si vous êtes intéressés à construire vos propres types de Tweak consultez le fichier Tweak.pde (parmi les autres types pourrait également contribuer à comme le TweakPoint qui contrôle deux variables X et Y en même temps).