mini-cards/app/src/main/java/com/codigoparallevar/minicards/PartsHolder.java

64 lines
2.4 KiB
Java
Raw Normal View History

package com.codigoparallevar.minicards;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import com.codigoparallevar.minicards.parts.buttons.RoundButton;
2018-01-24 22:55:58 +00:00
import com.codigoparallevar.minicards.parts.logic.Ticker;
import com.codigoparallevar.minicards.parts.samples.ColorBox;
import com.codigoparallevar.minicards.types.Part;
import com.codigoparallevar.minicards.types.Tuple2;
import java.util.List;
import java.util.Vector;
class PartsHolder {
private final Context context;
private final static List<Tuple2<String, PartInstantiator>> BuiltInParts =
new Vector<Tuple2<String, PartInstantiator>>(){{
add(new Tuple2<String, PartInstantiator>("Round button", RoundButton.getInstantiator()));
2018-01-24 22:55:58 +00:00
add(new Tuple2<String, PartInstantiator>("Ticker", Ticker.getInstantiator()));
add(new Tuple2<String, PartInstantiator>("Red/Green box", ColorBox.getInstantiator()));
}};
public PartsHolder(Context context) {
this.context = context;
}
public void openAddPartModal(final CanvasView canvasView) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Choose part type")
.setItems(getPartTypes(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if ((which >= 0) && (which < BuiltInParts.size())){
Log.d("Minicards partsHolder",
"Spawning " + BuiltInParts.get(which).item1);
PartInstantiator instantiator = BuiltInParts.get(which).item2;
PartsHolder.this.runInstantiator(instantiator, canvasView);
}
}
});
Dialog dialog = builder.create();
dialog.show();
}
private void runInstantiator(PartInstantiator instantiator, CanvasView canvasView) {
Part part = instantiator.build(canvasView);
canvasView.addPart(part);
}
private static String[] getPartTypes() {
String[] partTypes = new String[BuiltInParts.size()];
for (int i = 0; i < BuiltInParts.size(); i++){
partTypes[i] = BuiltInParts.get(i).item1;
}
return partTypes;
}
}