/****************************************************************************************
* Copyright (c) 2014 Michael Goldbach <michael@wildplot.com> *
* *
* This program is free software; you can redistribute it and/or modify it under *
* the terms of the GNU General Public License as published by the Free Software *
* Foundation; either version 3 of the License, or (at your option) any later *
* version. *
* *
* This program is distributed in the hope that it will be useful, but WITHOUT ANY *
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A *
* PARTICULAR PURPOSE. See the GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License along with *
* this program. If not, see <http://www.gnu.org/licenses/>. *
****************************************************************************************/
package com.wildplot.android.rendering;
import com.wildplot.android.rendering.graphics.wrapper.GraphicsWrap;
import com.wildplot.android.rendering.interfaces.Drawable;
import java.util.Vector;
public class DrawableContainer implements Drawable {
Vector<Drawable> drawableVector = new Vector<>();
private boolean isOnFrame = false;
private boolean isOnAbort = false;
private boolean isCritical = false;
private Drawable currentDrawable = null;
public DrawableContainer(boolean isOnFrame, boolean isCritical){
this.isOnFrame = isOnFrame;
this.isCritical = isCritical;
}
public void addDrawable(Drawable drawable){
drawableVector.add(drawable);
}
@Override
public void paint(GraphicsWrap g) {
isOnAbort = false;
currentDrawable = null;
for(Drawable drawable: drawableVector){
currentDrawable = drawable;
if(isOnAbort)
return;
drawable.paint(g);
}
}
@Override
public boolean isOnFrame() {
return isOnFrame;
}
@Override
public void abortAndReset() {
isOnAbort = true;
if(currentDrawable != null)
currentDrawable.abortAndReset();
}
@Override
public boolean isClusterable() {
return false;
}
@Override
public boolean isCritical() {
return isCritical;
}
public int getSize(){
return drawableVector.size();
}
}