package com.openfarmanager.android.dialogs;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import com.openfarmanager.android.App;
import com.openfarmanager.android.R;
import com.openfarmanager.android.fragments.MainPanel;
/**
* author: Vlad Namashko
*/
public abstract class BaseFileDialog extends Dialog {
protected View mDialogView;
protected TextView mError;
protected Handler mHandler;
protected MainPanel mInactivePanel;
protected EditText mDestination;
public BaseFileDialog(Context context, Handler handler, MainPanel inactivePanel) {
super(context, R.style.Action_Dialog);
mHandler = handler;
mInactivePanel = inactivePanel;
}
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
mDialogView = View.inflate(App.sInstance.getApplicationContext(), getContentView(), null);
setContentView(mDialogView);
mDestination = (EditText) mDialogView.findViewById(R.id.destination);
mError = (TextView) mDialogView.findViewById(R.id.error);
mDialogView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
mDialogView.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clearError();
if (!validate()) {
return;
}
execute();
dismiss();
}
});
}
protected void clearError() {
updateErrorState("", View.GONE);
}
protected void setErrorMessage(final String errorMessage) {
updateErrorState(errorMessage, View.VISIBLE);
}
protected void updateErrorState(final String errorMessage, final int visibility) {
mError.setVisibility(visibility);
mError.setText(errorMessage);
}
protected void updateLabels(String title, String destLabel, String destDefaultValue) {
((TextView) mDialogView.findViewById(R.id.current_action)).setText(title);
((TextView) mDialogView.findViewById(R.id.destination_label)).setText(destLabel);
((EditText) mDialogView.findViewById(R.id.destination)).setText(destDefaultValue);
}
/**
* getstring using Application instance instead of Activity, which throw exception.
*
* @param resId Resource id for the string
*/
protected final String getSafeString(int resId) {
return App.sInstance.getString(resId);
}
/**
* getstring using Application instance instead of Activity, which throw exception.
*
* @param resId Resource id for the string
*/
protected final String getSafeString(int resId, Object... formatArgs) {
return App.sInstance.getString(resId, formatArgs);
}
public abstract int getContentView();
protected abstract boolean validate();
protected abstract void execute();
}