diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/ElementArrayAdapter.java b/app/src/main/java/info/nerull7/mysqlbrowser/ElementArrayAdapter.java index 2579937..95bcd35 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/ElementArrayAdapter.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/ElementArrayAdapter.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.EditText; import android.widget.TextView; import java.util.List; @@ -14,14 +15,21 @@ import java.util.List; */ public class ElementArrayAdapter extends ArrayAdapter<String> { private Context context; + private List<String> fields; private List<String> values; private int layout; - public ElementArrayAdapter(Context context, int resource, List<String> objects) { - super(context, resource, objects); + public ElementArrayAdapter(Context context, int resource, List<String> fields) { + super(context, resource, fields); this.context = context; - values = objects; + this.fields = fields; layout = resource; + values = null; + } + + public ElementArrayAdapter(Context context, int resource, List<String> fields, List<String> values) { + this(context, resource, fields); + this.values = values; } @Override @@ -30,7 +38,11 @@ public class ElementArrayAdapter extends ArrayAdapter<String> { View rowView = layoutInflater.inflate(layout, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.textFieldName); - textView.setText(values.get(position)); + textView.setText(fields.get(position)); + if(values != null){ + EditText textFieldName = (EditText) rowView.findViewById(R.id.editFieldValue); + textFieldName.setText(values.get(position)); + } return rowView; } diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java index ed62562..886ae34 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/ElementFragment.java @@ -23,6 +23,9 @@ import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector; * Created by nerull7 on 2014-08-06. */ public class ElementFragment extends Fragment implements AsyncDatabaseConnector.ListReturnListener { + public static final String EDIT_ELEMENT = "edit_element"; + public static final String EDIT_LIST = "edit_element_list"; + private String databaseName; private String tableName; private ListAdapter listAdapter; @@ -30,6 +33,8 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector. private ProgressBar progressBar; private ListView listView; + private List<String> values; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //Inflate the layout for this fragment @@ -48,6 +53,10 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector. private void initArguments() { databaseName = getArguments().getString(Static.DATABASE_NAME_ARG); tableName = getArguments().getString(Static.TABLE_NAME_ARG); + if(getArguments().getBoolean(EDIT_ELEMENT)) + values = getArguments().getStringArrayList(EDIT_LIST); + else + values = null; } @Override @@ -58,7 +67,7 @@ public class ElementFragment extends Fragment implements AsyncDatabaseConnector. @Override public void onListReturn(List<String> fields) { - listAdapter = new ElementArrayAdapter(getActivity(), R.layout.list_item_element_simple, fields); + listAdapter = new ElementArrayAdapter(getActivity(), R.layout.list_item_element_simple, fields, values); listView.setAdapter(listAdapter); // databasesListView.setAdapter(listAdapter); // databasesListView.setOnItemClickListener(this); diff --git a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java index ad186ab..d746a5b 100644 --- a/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java +++ b/app/src/main/java/info/nerull7/mysqlbrowser/EntriesFragment.java @@ -1,10 +1,17 @@ package info.nerull7.mysqlbrowser; +import android.annotation.SuppressLint; +import android.annotation.TargetApi; import android.app.Fragment; import android.content.Intent; +import android.graphics.Canvas; +import android.graphics.ColorFilter; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; +import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -12,6 +19,7 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.HorizontalScrollView; import android.widget.ProgressBar; @@ -21,6 +29,9 @@ import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; +import org.w3c.dom.Text; + +import java.util.ArrayList; import java.util.List; import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector; @@ -28,7 +39,7 @@ import info.nerull7.mysqlbrowser.db.AsyncDatabaseConnector; /** * Created by nerull7 on 15.07.14. */ -public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.MatrixReturnListener, AsyncDatabaseConnector.ListReturnListener, AsyncDatabaseConnector.IntegerReturnListener { +public class EntriesFragment extends Fragment implements AsyncDatabaseConnector.MatrixReturnListener, AsyncDatabaseConnector.ListReturnListener, AsyncDatabaseConnector.IntegerReturnListener, View.OnClickListener { private static final int HEADER_PADDING_TOP = 15; private static final int HEADER_PADDING_BOTTOM = 15; private static final int HEADER_PADDING_LEFT = 15; @@ -51,6 +62,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector. private int entriesLimit; private int page; private int pageCount; + private int rowCount; private ProgressBar progressBar; private CustomScrollView fakeScrollView; private View dummyView; @@ -96,8 +108,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector. fakeScrollView.setOnTouchEventListener(new CustomScrollView.OnTouchEventListener() { @Override public boolean onTouchEvent(MotionEvent ev) { - entriesScrollView.onTouchEvent(ev); - horizontalScrollView.onTouchEvent(ev); + entriesScrollView.dispatchTouchEvent(ev); return true; } }); @@ -197,8 +208,11 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector. textView.setLayoutParams(layoutParams); textView.setPadding(ENTRIES_PADDING_LEFT, ENTRIES_PADDING_TOP, ENTRIES_PADDING_RIGHT, ENTRIES_PADDING_BOTTOM); textView.setBackgroundResource(background); + textView.setId(j); newRow.addView(textView); } + newRow.setClickable(true); + newRow.setOnClickListener(this); entriesTable.addView(newRow); syncWidths(); @@ -222,6 +236,7 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector. // First we need header headerRow = new TableRow(getActivity()); headerRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); + rowCount = fieldList.size(); for(int i =0;i<fieldList.size();i++){ TextView textView = new TextView(getActivity()); textView.setText(fieldList.get(i)); @@ -290,5 +305,20 @@ public class EntriesFragment extends Fragment implements AsyncDatabaseConnector. fakeScrollView.setLayoutParams(fakeScrollLayout); } + @Override + public void onClick(View view) { + ArrayList<String> values = new ArrayList<String>(); + for(int i=0;i<rowCount;i++){ + TextView element = (TextView)view.findViewById(i); + values.add(element.getText().toString()); +// element.setBackgroundResource(android.R.color.holo_blue_bright); + } + Intent intent = new Intent(getActivity(), ElementActivity.class); + intent.putExtra(Static.DATABASE_NAME_ARG,databaseName); + intent.putExtra(Static.TABLE_NAME_ARG,tableName); + intent.putExtra(ElementFragment.EDIT_ELEMENT, true); + intent.putStringArrayListExtra(ElementFragment.EDIT_LIST, values); + startActivity(intent); + } } diff --git a/app/src/main/res/layout/fragment_entries.xml b/app/src/main/res/layout/fragment_entries.xml index b573ad0..3ed823a 100644 --- a/app/src/main/res/layout/fragment_entries.xml +++ b/app/src/main/res/layout/fragment_entries.xml @@ -5,8 +5,8 @@ tools:context="info.nerull7.mysqlbrowser.EntriesFragment"> <HorizontalScrollView - android:layout_width="wrap_content" - android:layout_height="wrap_content" + android:layout_width="fill_parent" + android:layout_height="fill_parent" android:id="@+id/horizontalScrollView" > <RelativeLayout @@ -48,7 +48,6 @@ <info.nerull7.mysqlbrowser.CustomScrollView android:layout_width="wrap_content" android:layout_height="fill_parent" - android:layout_below="@+id/loginProgressBar" android:layout_alignParentRight="true" android:foregroundGravity="right" android:id="@+id/fakeScroll"