package br.com.while42.rpgcs.activity.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; 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.activity.support.ViewTools; import br.com.while42.rpgcs.model.character.BuilderCharacteristics; import br.com.while42.rpgcs.model.character.Characteristics; 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; public class EditCharacteristics extends Fragment { private Characteristics characteristics; private EditText nameEditText; private Spinner raceSpinner; private Spinner alignmentSpinner; private Spinner genderSpinner; private Spinner religionSpinner; private Spinner visionSpinner; private EditText ageEditText; private EditText heightEditText; private EditText weightEditText; private Spinner hairSpinner; private Spinner skinSpinner; public EditCharacteristics() { } public EditCharacteristics(Characteristics characteristics) { this.characteristics = characteristics; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View layout = inflater.inflate(R.layout.fragment_edit_characteristics, container, false); nameEditText = (EditText) layout.findViewById(R.id_frag_edit_characteristics.edittext_name); raceSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_race); alignmentSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_alignment); genderSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_gender); religionSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_religion); visionSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_vision); ageEditText = (EditText) layout.findViewById(R.id_frag_edit_characteristics.edittext_age); heightEditText = (EditText) layout.findViewById(R.id_frag_edit_characteristics.edittext_height); weightEditText = (EditText) layout.findViewById(R.id_frag_edit_characteristics.edittext_weight); hairSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_hair); skinSpinner = (Spinner) layout.findViewById(R.id_frag_edit_characteristics.spinner_skin); ViewTools tool = new ViewTools(getActivity()); tool.setOptionsSpinner(raceSpinner, TypeRpgRace.values()); tool.setOptionsSpinner(alignmentSpinner, TypeRpgAlignment.values()); tool.setOptionsSpinner(genderSpinner, TypeGender.values()); tool.setOptionsSpinner(religionSpinner, TypeRpgReligion.values()); tool.setOptionsSpinner(visionSpinner, TypeVision.values()); tool.setOptionsSpinner(hairSpinner, TypeHairColor.values()); tool.setOptionsSpinner(skinSpinner, TypeSkinColor.values()); loadCharacteristics(); return layout; } private void loadCharacteristics() { if (characteristics == null) return; nameEditText.setText(characteristics.getName()); ViewTools tool = new ViewTools(getActivity()); tool.setSelectionOptionsSpinner(raceSpinner, characteristics.getRace()); tool.setSelectionOptionsSpinner(alignmentSpinner, characteristics.getAlignment()); tool.setSelectionOptionsSpinner(genderSpinner, characteristics.getGender()); tool.setSelectionOptionsSpinner(religionSpinner, characteristics.getReligion()); tool.setSelectionOptionsSpinner(visionSpinner, characteristics.getVision()); ageEditText.setText(characteristics.getAge().toString()); heightEditText.setText(characteristics.getHeight().toString()); weightEditText.setText(characteristics.getWeight().toString()); tool.setSelectionOptionsSpinner(hairSpinner, characteristics.getHair()); tool.setSelectionOptionsSpinner(skinSpinner, characteristics.getSkin()); } public Characteristics saveCharacteristics() { Element item; // Name String name = nameEditText.getText().toString(); // Race item = (Element) raceSpinner.getSelectedItem(); TypeRpgRace race = (TypeRpgRace) item.getType(); // Alignment item = (Element) alignmentSpinner.getSelectedItem(); TypeRpgAlignment alignment = (TypeRpgAlignment) item.getType(); // Gender item = (Element) genderSpinner.getSelectedItem(); TypeGender gender = (TypeGender) item.getType(); // Religion item = (Element) religionSpinner.getSelectedItem(); TypeRpgReligion religion = (TypeRpgReligion) item.getType(); // Vision item = (Element) visionSpinner.getSelectedItem(); TypeVision vision = (TypeVision) item.getType(); // Age Integer age = Integer.getInteger(ageEditText.getText().toString(), 0); // Height Integer height = Integer.getInteger(heightEditText.getText().toString(), 0); // Weight Integer weight = Integer.getInteger(weightEditText.getText().toString(), 0); // Hair item = (Element) hairSpinner.getSelectedItem(); TypeHairColor hair = (TypeHairColor) item.getType(); // Skin item = (Element) skinSpinner.getSelectedItem(); TypeSkinColor skin = (TypeSkinColor) item.getType(); // TODO: Falta definir como tratar size e eye TypeRpgSize size = TypeRpgSize.MEDIUM; TypeEyeColor eye = TypeEyeColor.BROWN; 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(); return characteristics; } }