package com.focasoftware.deboinventario;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
/**
* Dialogo personalizado que permite al usuario elegir entre realizar o no una acci�n
* proveyendole adem�s la posibilidad de elegir una opcion de un radio group
* @author GuillermoR
*
*/
public class DialogPersoComplexSiNoOpcs extends Dialog {
/**
* ACtivity que lo abrio, aparanetmente en desuso
*/
private Activity owner;
/**
* Indice de la opcion que se seleccion� mediante el radiobutton
*/
private int opcionSeleccionada=0;
/**
* Constructor para inicializar la UI y los handlers correspondientes
*
1� Construcci�n del t�tulo
*
2� Cargamos el layout y main layout
*
3� Construcci�n de la imagen
*
4� Mensaje
*
5� Setear los textos en las opciones a los radio
* button y agregarlos al radiogroup
*
6� Botones
*
* @param context
* @param titulo
* @param mensaje
* @param opc
* @param categoria_alerta
* @param listenerPositivo
* @param listenerNegativo
*/
public DialogPersoComplexSiNoOpcs (@NonNull Context context,
@NonNull String titulo, String mensaje, @NonNull ArrayList opc, int categoria_alerta,
View.OnClickListener listenerPositivo, @Nullable View.OnClickListener listenerNegativo) {
super(context);
final Activity owner = (Activity) context;
//1� Construcci�n del t�tulo:
if (titulo.length() > 0) {
super.setTitle(titulo);
}
//2� Cargamos el layout y main layout:
super.setContentView(R.layout.z_dialogpersocomplex_sino_opc);
//3� Construcci�n de la imagen:
ImageView imagen = (ImageView) super.findViewById(R.id.DIALOG_imagen);
switch (categoria_alerta) {
case DialogPerso.DEFAULT:
imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar));
break;
case DialogPerso.VALIDAR:
imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_validar));
break;
case DialogPerso.ALERTAR:
imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar));
break;
case DialogPerso.PROHIBIR:
imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_prohibir));
break;
default:
imagen.setImageDrawable(owner.getResources().getDrawable(R.drawable.dialog_alertar));
break;
}
//4� Mensaje:
TextView texto = (TextView) super.findViewById(R.id.DIALOG_texto);
texto.setText(mensaje);
//5� Setear los textos en las opciones a los radio button y agregarlos al radiogroup
RadioGroup grupo=(RadioGroup) super.findViewById(R.id.DIALOG_opciones);
for (int i=0;i< opc.size();i++){
RadioButton opcion=new RadioButton(context);
opcion.setText(opc.get(i));
opcion.setId(i);
opcion.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(@NonNull CompoundButton buttonView, boolean isChecked) {
if(isChecked){
opcionSeleccionada=buttonView.getId();
}
}
});
if(i==0){
opcion.setChecked(true);
}
grupo.addView(opcion);
}
// RadioButton opcion1=(RadioButton)super.findViewById(R.id.DIALOG_radio_opc1);
// RadioButton opcion2=(RadioButton)super.findViewById(R.id.DIALOG_radio_opc2);
// opcion1.setText(opc.get(0));
// opcion1.setText(opc.get(1));
//6� Botones:
Button boton_validar = (Button) super.findViewById(R.id.DIALOG_boton_validar);
Button boton_cancelar = (Button) super.findViewById(R.id.DIALOG_boton_cancelar);
if (listenerNegativo != null) {
boton_validar.setOnClickListener(listenerPositivo);
boton_cancelar.setOnClickListener(listenerNegativo);
} else {
boton_validar.setOnClickListener(listenerPositivo);
boton_validar.setText("OK");
boton_cancelar.setVisibility(View.GONE);
}
}
public int getOpcionSeleccionada() {
return opcionSeleccionada;
}
public void setOpcionSeleccionada(int opcionSeleccionada) {
this.opcionSeleccionada = opcionSeleccionada;
}
}