2018-01-20 23:14:46 +00:00
|
|
|
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;
|
2018-01-20 23:14:46 +00:00
|
|
|
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()));
|
2018-01-20 23:14:46 +00:00
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|