-class Image extends Forme {
+class Image extends Forme implements Compactable {
final int IMAGE_MAX_SIZE = 100;
- Point pOri;
Forme[] formeCollection;
int formeNumber;
Image() {
- pOri = new Point();
+ super();
formeCollection = new Forme[IMAGE_MAX_SIZE];
formeNumber = 0;
}
Image(Point p) {
- pOri = p;
+ super(p);
formeCollection = new Forme[IMAGE_MAX_SIZE];
formeNumber = 0;
}
return rtVal;
}
+ public boolean supprimer(int index) {
+ boolean rtVal = false;
+ if (!isEmpty()) {
+ for (int j = index; (j < formeNumber - 1 && index < formeNumber); j++) {
+ formeCollection[j] = formeCollection[j + 1];
+ }
+ rtVal = true;
+ formeNumber--;
+ }
+ return rtVal;
+ }
+
+ public void afficher() {
+ String className = this.getClass().getSimpleName();
+ System.out.println("---- " + className + " ----");
+ for (int i = 0; i < formeNumber; i++) {
+ formeCollection[i].afficher();
+ }
+ }
+
+ public void compacter(int nElements) {
+ int minIndex = formeNumber - nElements - 1;
+ for (int i = formeNumber - 1; (i > minIndex && !isEmpty()); i--) {
+ supprimer(i);
+ }
+ }
+
}