package gui.simpleUI;
import java.util.ArrayList;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.ScrollView;
public class ModifierGroup extends AbstractModifier {
public interface SaveListener {
public void onSaveSuccessfull();
public void onSaveFailed(ModifierInterface modifierThatRejectedSave);
}
private ArrayList<ModifierInterface> myList = new ArrayList<ModifierInterface>();
private SaveListener mySaveListener;
public ModifierGroup() {
}
public ModifierGroup(Theme myTheme) {
setTheme(myTheme);
}
public void addModifier(ModifierInterface groupElement) {
if (getTheme() != null && groupElement instanceof AbstractModifier) {
if (((AbstractModifier) groupElement).getTheme() == null) {
((AbstractModifier) groupElement).setTheme(getTheme());
}
}
myList.add(groupElement);
}
public ArrayList<ModifierInterface> getMyList() {
return myList;
}
@Override
public View getView(Context context) {
LinearLayout linLayout = new LinearLayout(context);
linLayout.setOrientation(LinearLayout.VERTICAL);
for (int i = 0; i < myList.size(); i++) {
linLayout.addView(myList.get(i).getView(context));
}
ScrollView sv = new ScrollView(context);
sv.addView(linLayout);
sv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
if (getTheme() != null) {
getTheme().applyOuter1(sv);
}
return sv;
}
@Override
public boolean save() {
boolean result = true;
for (int i = 0; i < myList.size(); i++) {
boolean saveSuccessfull = myList.get(i).save();
result &= saveSuccessfull;
if (!saveSuccessfull && mySaveListener != null)
mySaveListener.onSaveFailed(myList.get(i));
}
if (result && mySaveListener != null)
mySaveListener.onSaveSuccessfull();
return result;
}
public void setSaveListener(SaveListener saveListener) {
mySaveListener = saveListener;
}
}