package nerdydog.domoHomeProd;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import nerdydog.domoHomeProd.db.ConfDatabase;
import nerdydog.domoHomeProd.db.ToDoDBAdapter;
import nerdydog.domoHomeProd.object.Action;
import nerdydog.domoHomeProd.object.Actuator;
import android.app.Activity;
import android.app.Dialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
public class DragAndDrop extends ListActivity {
/** Called when the activity is first created. */
public static LinearLayout layout = null;
public static ScrollView scrollView = null;
public static DnDListView listView = null;
String TAG = "DragAndDrop";
Button buttonaction;
ToDoDBAdapter toDoDBAdapter;
Context c = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maindnd);
c = this;
toDoDBAdapter = new ToDoDBAdapter(this);
DnDAdapter adapter = new DnDAdapter(this);
adapter.setList(buildList());
listView = (DnDListView)getListView();
listView.setAdapter(adapter);
buttonaction = (Button)findViewById(R.id.buttosetaction);
buttonaction.setOnClickListener(clickedaction);
listView.addFooterView(buttonaction);
}
private List<Actuator> buildList() {
List<Actuator> items = ConfDatabase.aryActuatorsSelectedForActions;
return items;
}
View.OnClickListener clickedaction = new View.OnClickListener() {
public void onClick(View arg0) {
final int start = listView.getFirstVisiblePosition();
final int end = listView.getLastVisiblePosition();
Log.i(TAG, "start " + start + " end " + end);
final Dialog dialog = new Dialog(DragAndDrop.this);
dialog.setContentView(R.layout.popupactionname);
dialog.setTitle("Insert the action name");
dialog.setCancelable(true);
dialog.show();
final EditText actionName = (EditText)dialog.findViewById(R.id.edittextactionname);
//set up button
Button button = (Button) dialog.findViewById(R.id.buttonsaveactionname);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Actuator a_parent = null;
Log.i(TAG, "name: " + actionName.getText());
String actionNameString = actionName.getText().toString();
dialog.dismiss();
toDoDBAdapter.open();
if(actionNameString!=null && actionNameString.length()>0){
int root_id_master = -1;
for(int i = start; i <= end; i++){
View v_root = listView.getChildAt(i);
Actuator a_root = (Actuator) v_root.getTag();
Log.i(TAG, "start " + start);
Log.i(TAG, "a_root id " + a_root.getId());
if( i > start){
View v_parent = listView.getChildAt(i-1);
if( v_parent != null){
a_parent = (Actuator) v_parent.getTag();
}
}
Date dateNow = new Date();
Action action;
// TODO fix commented rows
if(a_parent != null){
action = new Action(-1, a_root.getId(), a_parent.getId(), dateNow, dateNow, dateNow, actionNameString, 1, root_id_master, 0, -1, "0000000");
toDoDBAdapter.insertAction(action);
}else{
action = new Action(-1, a_root.getId(), -1, dateNow, dateNow, dateNow, actionNameString, 1, -1, 0, -1, "0000000");
toDoDBAdapter.insertAction(action);
Action lastAction = toDoDBAdapter.getLastAction();
root_id_master = lastAction.getId();
Log.i(TAG, "a_root id create " + root_id_master);
}
}
toDoDBAdapter.close();
Intent iHome = new Intent(DragAndDrop.this, DomoHome.class);
startActivity(iHome);
}else{
Utility.showDialog(c, "Please, choose a name for this action.");
}
}
});
}
};
}