/*
 * @author Javier Martin Manzano
 */

package ub.incendishab;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;

public class Builder extends AppCompatActivity {

    private Activity thisActivity;
    private int plantas,viviendas;
    private String direccion;
    private int ascensores, escaleras,sotanos;
    private int formato;
    private boolean entresuelo,bajos,atico;
    private boolean load;


    private View.OnClickListener returnListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            thisActivity.finish();
        }
    };

    private View.OnClickListener gotoBuildingListener = new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            direccion = ((EditText) findViewById(R.id.addressInput)).getText().toString();
            if (!direccion.isEmpty()) {
                plantas = Integer.parseInt(((EditText) findViewById(R.id.floorsNum)).getText().toString());
                viviendas = Integer.parseInt(((EditText) findViewById(R.id.flatsNum)).getText().toString());
                escaleras = ((Spinner) findViewById(R.id.stairsSpinner)).getSelectedItemPosition() + 1;
                ascensores = Integer.parseInt(((Spinner) findViewById(R.id.liftSpinner)).getSelectedItem().toString());
                if (((RadioButton) findViewById(R.id.radioButtonA)).isChecked()) {
                    formato = 1;
                } else {
                    formato = 2;
                }
                entresuelo = ((CheckBox) findViewById(R.id.mezzanineCheckBox)).isChecked();
                bajos = ((CheckBox) findViewById(R.id.groundCheckBox)).isChecked();
                atico = ((CheckBox) findViewById(R.id.atticCheckBox)).isChecked();
                sotanos = Integer.parseInt(((Spinner) findViewById(R.id.basementSpinner)).getSelectedItem().toString());

                Intent intent = new Intent(thisActivity, Building.class);
                intent.putExtra("plantas", plantas);
                intent.putExtra("viviendas", viviendas);
                intent.putExtra("direccion", direccion);
                intent.putExtra("escaleras", escaleras);
                intent.putExtra("ascensores", ascensores);
                intent.putExtra("formato", formato);
                intent.putExtra("entresuelo", entresuelo);
                intent.putExtra("bajos", bajos);
                intent.putExtra("atico", atico);
                intent.putExtra("sotanos", sotanos);
                intent.putExtra("loadPeople", load);

                startActivity(intent);
                finish();
            } else {
                Toast.makeText(thisActivity, "La dirección no puede estar vacía", Toast.LENGTH_SHORT).show();
            }

        }
    };



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        thisActivity = this;

        setContentView(R.layout.activity_builder);
        Button button = findViewById(R.id.createButton);
        button.setOnClickListener(gotoBuildingListener);
        Button button2 = findViewById(R.id.returnButton);
        button2.setOnClickListener(returnListener);

        EditText plantas = findViewById(R.id.floorsNum);
        EditText viviendas = findViewById(R.id.flatsNum);


        if (getIntent().hasExtra("plantas")){
            Bundle b = getIntent().getExtras();
            this.plantas = b.getInt("plantas");
            this.viviendas = b.getInt("viviendas");
            this.direccion = b.getString("direccion");
            this.escaleras = b.getInt("escaleras");
            this.ascensores = b.getInt("ascensores");
            this.entresuelo = b.getBoolean("entresuelo");
            this.bajos = b.getBoolean("bajos");
            this.atico = b.getBoolean("atico");
            this.sotanos = b.getInt("sotanos");
            this.formato = b.getInt("formato");
            plantas.setText(String.valueOf(this.plantas));
            viviendas.setText(String.valueOf(this.viviendas));
            ((EditText)findViewById(R.id.addressInput)).setText(direccion);
            ((Spinner) findViewById(R.id.stairsSpinner)).setSelection(escaleras-1);
            if (ascensores==0){
                ((Spinner) findViewById(R.id.liftSpinner)).setSelection(2);
            } else {
                ((Spinner) findViewById(R.id.liftSpinner)).setSelection(ascensores-1);
            }
            ((CheckBox)findViewById(R.id.mezzanineCheckBox)).setChecked(entresuelo);
            ((CheckBox)findViewById(R.id.groundCheckBox)).setChecked(bajos);
            ((CheckBox)findViewById(R.id.atticCheckBox)).setChecked(atico);
            if (formato == 1){
                ((RadioButton)findViewById(R.id.radioButtonA)).setChecked(true);
            } else {
                ((RadioButton)findViewById(R.id.radioButtonB)).setChecked(true);
            }
            load = true;
        }
    }
}
