package br.com.while42.rpgcs.activity; import java.util.ArrayList; import java.util.List; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import br.com.while42.rpgcs.R; import br.com.while42.rpgcs.activity.support.Element; import br.com.while42.rpgcs.model.TypeCode; import br.com.while42.rpgcs.model.character.Abilities; import br.com.while42.rpgcs.model.character.Characteristics; import br.com.while42.rpgcs.model.character.BuilderCharacteristics; import br.com.while42.rpgcs.model.character.RpgCharacter; import br.com.while42.rpgcs.model.character.attributes.TypeEyeColor; import br.com.while42.rpgcs.model.character.attributes.TypeGender; import br.com.while42.rpgcs.model.character.attributes.TypeHairColor; import br.com.while42.rpgcs.model.character.attributes.TypeRpgAlignment; import br.com.while42.rpgcs.model.character.attributes.TypeRpgRace; import br.com.while42.rpgcs.model.character.attributes.TypeRpgReligion; import br.com.while42.rpgcs.model.character.attributes.TypeRpgSize; import br.com.while42.rpgcs.model.character.attributes.TypeSkinColor; import br.com.while42.rpgcs.model.character.attributes.TypeVision; import br.com.while42.rpgcs.model.classes.AbstractRpgClass; import br.com.while42.rpgcs.model.classes.CharacterClass; import br.com.while42.rpgcs.persist.DataManager; import br.com.while42.rpgcs.reflection.ClassByReflection; import com.actionbarsherlock.app.SherlockActivity; public class EditRpgCharacter_OLD extends SherlockActivity { private DataManager dataManager; private EditText etName; private Spinner sClasse; private Spinner sRace; private Spinner sAlignment; private Spinner sReligion; private Spinner sSize; private EditText etAge; private Spinner sGender; private EditText etHeight; private EditText etWeight; private Spinner sEye; private Spinner sHair; private Spinner sSkin; private EditText etStrength; private EditText etConstitution; private EditText etWisdom; private EditText etCharisma; private EditText etDexterity; private EditText etIntelligence; private Button bSave; private List<CharacterClass> listClasses; private void setOptionsSpinner(Spinner spinner, List<CharacterClass> listClasses) { List<Element> items = new ArrayList<Element>(); for (CharacterClass g : listClasses) { items.add(new Element(g, getString(g.getCodeName()))); } ArrayAdapter<Element> adapter = new ArrayAdapter<Element>(this, android.R.layout.simple_spinner_dropdown_item, items); spinner.setAdapter(adapter); } private void setOptionsSpinner(Spinner spinner, TypeCode[] types) { List<Element> items = new ArrayList<Element>(); for (TypeCode g : types) { items.add(new Element(g, getString(g.getCodeName()))); } ArrayAdapter<Element> adapter = new ArrayAdapter<Element>(this, android.R.layout.simple_spinner_dropdown_item, items); spinner.setAdapter(adapter); } @Override protected void onResume() { super.onResume(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_character); dataManager = new DataManager(getApplicationContext()); listClasses = ClassByReflection.getAll(this, AbstractRpgClass.class); etName = (EditText) findViewById(R.id_edit.edittext_name); sClasse = (Spinner) findViewById(R.id_edit.spinner_class); sRace = (Spinner) findViewById(R.id_edit.spinner_race); sAlignment = (Spinner) findViewById(R.id_edit.spinner_alignment); sReligion = (Spinner) findViewById(R.id_edit.spinner_religion); sSize = (Spinner) findViewById(R.id_edit.spinner_size); etAge = (EditText) findViewById(R.id_edit.edittext_age); sGender = (Spinner) findViewById(R.id_edit.spinner_gender); etHeight = (EditText) findViewById(R.id_edit.edittext_height); etWeight = (EditText) findViewById(R.id_edit.edittext_weight); sEye = (Spinner) findViewById(R.id_edit.spinner_eye); sHair = (Spinner) findViewById(R.id_edit.spinner_hair); sSkin = (Spinner) findViewById(R.id_edit.spinner_skin); etStrength = (EditText) findViewById(R.id_edit.edittext_strength); etConstitution = (EditText) findViewById(R.id_edit.edittext_constitution); etWisdom = (EditText) findViewById(R.id_edit.edittext_wisdom); etCharisma = (EditText) findViewById(R.id_edit.edittext_charisma); etDexterity = (EditText) findViewById(R.id_edit.edittext_dexterity); etIntelligence = (EditText) findViewById(R.id_edit.edittext_intelligence); bSave = (Button) findViewById(R.id_edit.button_save); //setOptionsSpinner(classe, codes); setOptionsSpinner(sClasse, listClasses); setOptionsSpinner(sRace, TypeRpgRace.values()); setOptionsSpinner(sAlignment, TypeRpgAlignment.values()); setOptionsSpinner(sReligion, TypeRpgReligion.values()); setOptionsSpinner(sSize, TypeRpgSize.values()); // TODO: age setOptionsSpinner(sGender, TypeGender.values()); // TODO: height // TODO: weight setOptionsSpinner(sEye, TypeEyeColor.values()); setOptionsSpinner(sHair, TypeHairColor.values()); setOptionsSpinner(sSkin, TypeSkinColor.values()); bSave.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Element e; // Name String name = etName.getText().toString(); // Class e = (Element) sClasse.getSelectedItem(); AbstractRpgClass clazz = (AbstractRpgClass) e.getType(); // Race e = (Element) sRace.getSelectedItem(); TypeRpgRace race = (TypeRpgRace) e.getType(); // Alignment e = (Element) sAlignment.getSelectedItem(); TypeRpgAlignment alignment = (TypeRpgAlignment) e.getType(); // Religion e = (Element) sReligion.getSelectedItem(); TypeRpgReligion religion = (TypeRpgReligion) e.getType(); // Size e = (Element) sSize.getSelectedItem(); TypeRpgSize size = (TypeRpgSize) e.getType(); // Age Integer age = Integer.getInteger(etAge.getText().toString(), 0); // Gender e = (Element) sGender.getSelectedItem(); TypeGender gender = (TypeGender) e.getType(); // Height Integer height = Integer.getInteger(etHeight.getText().toString(), 0); // Weight Integer weight = Integer.getInteger(etWeight.getText().toString(), 0); // Eye e = (Element) sEye.getSelectedItem(); TypeEyeColor eye = (TypeEyeColor) e.getType(); // Hair e = (Element) sHair.getSelectedItem(); TypeHairColor hair = (TypeHairColor) e.getType(); // Skin e = (Element) sSkin.getSelectedItem(); TypeSkinColor skin = (TypeSkinColor) e.getType(); // Vision // TODO: Falta implementar TypeVision vision = TypeVision.NORMAL; Abilities ab = new Abilities(); if (etStrength.getText().toString() != "") { ab.setStrength(Integer.parseInt(etStrength.getText().toString())); } if (etIntelligence.getText().toString() != "") { ab.setIntelligence(Integer.parseInt(etIntelligence.getText().toString())); } if (etConstitution.getText().toString() != "") { ab.setConstitution(Integer.parseInt(etConstitution.getText().toString())); } if (etDexterity.getText().toString() != "") { ab.setDexterity(Integer.parseInt(etDexterity.getText().toString())); } if (etWisdom.getText().toString() != "") { ab.setWisdom(Integer.parseInt(etWisdom.getText().toString())); } if (etCharisma.getText().toString() != "") { ab.setCharisma(Integer.parseInt(etCharisma.getText().toString())); } BuilderCharacteristics builder = new BuilderCharacteristics(); Characteristics characteristics = builder.setName(name) .setRace(race) .setAlignment(alignment) .setReligion(religion) .setSize(size) .setAge(age) .setGender(gender) .setHeight(height) .setWeight(weight) .setEye(eye) .setHair(hair) .setSkin(skin) .setVision(vision) .toCharacteristics(); RpgCharacter cs = new RpgCharacter(characteristics); cs.getRpgClasses().add(clazz); cs.setAbilities(ab); Log.d("RpgCharacter", cs.toString()); dataManager.saveRpgCharacter(cs); Intent play = new Intent(EditRpgCharacter_OLD.this, PlayRpgCharacter.class); Bundle b = new Bundle(); b.putSerializable(RpgCharacter.class.getName(), cs); play.putExtras(b); startActivity(play); } }); } }