You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by ia...@apache.org on 2015/07/13 14:54:25 UTC

[07/34] incubator-taverna-mobile git commit: parsing workflow favorites

parsing workflow favorites


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/d8239c73
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/d8239c73
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/d8239c73

Branch: refs/heads/master
Commit: d8239c73d4eef066c9b1ad14046e75fdc52f8f91
Parents: 40c0096
Author: larrytech7 <la...@gmail.com>
Authored: Fri Jul 3 13:57:39 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Fri Jul 3 13:57:39 2015 +0100

----------------------------------------------------------------------
 .../adapters/FavoriteWorkflowAdapter.java       | 22 ++++----
 .../mobile/adapters/WorkflowAdapter.java        |  8 ++-
 .../mobile/fragments/FavoriteFragment.java      | 15 +++---
 .../mobile/fragments/WorkflowItemFragment.java  |  8 ++-
 .../workflowdetails/WorkflowdetailFragment.java | 31 +++++------
 .../apache/taverna/mobile/utils/DB_Utility.java |  5 +-
 .../xmlparsers/MyExperimentXmlParserRules.java  | 13 +----
 .../main/res/layout/favorite_item_layout.xml    | 54 ++++----------------
 8 files changed, 58 insertions(+), 98 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
index 517248a..92355c6 100644
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
@@ -34,6 +34,7 @@ import android.widget.TextView;
 
 import org.apache.taverna.mobile.R;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -42,9 +43,9 @@ import java.util.List;
 public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkflowAdapter.FViewHolder> {
 
     private Context context;
-    private List<String[]> dataSet;
+    private List<ArrayList<Object>> dataSet;
 
-    public FavoriteWorkflowAdapter(Context c, List<String[]> data) {
+    public FavoriteWorkflowAdapter(Context c, List<ArrayList<Object>> data) {
         context = c;
         dataSet = data;
     }
@@ -58,10 +59,13 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl
 
     @Override
     public void onBindViewHolder(FViewHolder fViewHolder, int i) {
-        String[] mdata = dataSet.get(i);
-        fViewHolder.author.setText(mdata[0]);
-        fViewHolder.title.setText(mdata[1]);
-        //fViewHolder.dateMarked.setText(mdata[2]);
+        //get data 0,1,3 from set;
+        ArrayList<Object> data = dataSet.get(i);
+
+        //String[] mdata = dataSet.get(i);
+        fViewHolder.author.setText((CharSequence) data.get(6));
+        fViewHolder.title.setText((CharSequence) data.get(2));
+        fViewHolder.dateMarked.setText((CharSequence) data.get(4));
         //fViewHolder.dateAdd.setText(mdata[3]);
         //fViewHolder.dateModified.setText(mdata[4]);
     }
@@ -74,15 +78,15 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl
     public class FViewHolder extends RecyclerView.ViewHolder {
 
         public final ImageView favorite_thumb;
-        public final TextView author, title, dateMarked, dateAdd, dateModified;
+        public final TextView author, title, dateMarked;// dateAdd, dateModified;
         public FViewHolder(View itemView) {
             super(itemView);
             favorite_thumb = (ImageView) itemView.findViewById(R.id.author_profile_image);
             author = (TextView) itemView.findViewById(R.id.author);
             title = (TextView) itemView.findViewById(R.id.favorite_title);
             dateMarked = (TextView) itemView.findViewById(R.id.date_set);
-            dateAdd = (TextView) itemView.findViewById(R.id.date_created);
-            dateModified = (TextView) itemView.findViewById(R.id.date_modified);
+           // dateAdd = (TextView) itemView.findViewById(R.id.dte_created);
+          //  dateModified = (TextView) itemView.findViewById(R.id.date_modified);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java
index c8dae51..d938230 100644
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java
@@ -48,6 +48,7 @@ import com.thebuzzmedia.sjxp.rule.IRule;
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.activities.DashboardMainActivity;
 import org.apache.taverna.mobile.activities.WorkflowDetailActivity;
+import org.apache.taverna.mobile.fragments.FavoriteFragment;
 import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowdetailFragment;
 import org.apache.taverna.mobile.tavernamobile.User;
 import org.apache.taverna.mobile.tavernamobile.Workflow;
@@ -115,11 +116,11 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         String description  = workflow.get(i).getWorkflow_description();
         String uri = workflow.get(i).getWorkflow_details_url();
         final String desc_full = description;
-        ArrayList<Object> mfav = new ArrayList<Object>();
+        final ArrayList<Object> mfav = new ArrayList<Object>();
 
         //save current workflow as favorite
             mfav.add(wid); mfav.add(author);mfav.add(title);mfav.add(desc_full); mfav.add(SimpleDateFormat.getDateTimeInstance().format(new Date()).toString());
-
+            mfav.add(uri);
 //        if(description.length() > 80) description = description.substring(0, 79);
         viewHolder.author_name.setText(author);
         viewHolder.wk_title.setText(title);
@@ -143,10 +144,13 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo
         viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
+                mfav.add(viewHolder.author_name.getText());
                 boolean saved =  favDB.save();
                 if(saved) {
                     Toast.makeText(context, "Workflow marked as favorite", Toast.LENGTH_SHORT).show();
                     viewHolder.btn_mark_workflow.setCompoundDrawables(context.getResources().getDrawable(android.R.drawable.btn_star_big_on),null,null,null);
+                    //refresh fragment since data has changed
+                    FavoriteFragment.newInstance(0);
                 }else
                     Toast.makeText(context,"Error!, please try again",Toast.LENGTH_SHORT).show();
             }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
index 77d8831..1066d60 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
@@ -81,15 +81,14 @@ public class FavoriteFragment extends Fragment implements RecyclerView.OnCreateC
         super.onCreate(savedInstanceState);
         myWorkflowDb = new Workflow_DB(getActivity(), WorkflowAdapter.WORKFLOW_FAVORITE_KEY);
 //TODO Add support for loading all the favorites and adding to the required list
-      //  try {
-         //   List<ArrayList<Object>> mydata = myWorkflowDb.get();
+        try {
+            List<ArrayList<Object>> mfavorites = myWorkflowDb.get();
          //   ArrayList<Object> m = mydata.get(0);
-            List<String[]> sampledata = new ArrayList<String[]>();
-            sampledata.add(new String[]{"test fav","test data", "test"});//new String[]{(String) m.get(1), (String) m.get(2)});
-            favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), sampledata);
-   //     } catch (JSONException e) {
-   //         e.printStackTrace();
-       // }
+        //retrieval order: workflowid, workflowauthor, workflowtitle, workflowmarkeddate
+            favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), mfavorites);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java
index bd0742d..cde2ab2 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java
@@ -314,8 +314,12 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
             @Override
             public void run() {
                 synchronized (this) {
-                    ((TextView)rootView.findViewById(R.id.workflow_author)).setText(author.getName());
-                    new LoadAuthorAvatar((ImageView) rootView.findViewById(R.id.author_profile_image)).execute(author.getAvatar_url());
+                    try {
+                        ((TextView) rootView.findViewById(R.id.workflow_author)).setText(author.getName());
+                        new LoadAuthorAvatar((ImageView) rootView.findViewById(R.id.author_profile_image)).execute(author.getAvatar_url());
+                    }catch(NullPointerException np){
+
+                    }
                 }
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
index c052870..4ef1b0c 100644
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java
@@ -31,24 +31,16 @@ import android.app.LoaderManager;
 import android.app.ProgressDialog;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
 import android.content.Loader;
-import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.media.Image;
-import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
-import android.os.Environment;
 import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
 import android.support.v4.app.Fragment;
 import android.util.Base64;
 import android.util.Log;
-import android.view.DragEvent;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.Animation;
@@ -71,18 +63,15 @@ import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
-import org.w3c.dom.Text;
 
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.prefs.PreferenceChangeEvent;
 
 /**
  * Created by Larry Akah on 6/9/15.
@@ -511,14 +500,15 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
             try {
                 //prepare connection requests
                 URL workflowurl = new URL(params[0]); //the resource xml file representing the workflow to be uploaded to the player
-                URL posturl = new URL(new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json");
+                String playerurl = new TavernaPlayerAPI(this.context).PLAYER_BASE_URL+"workflows.json";
+                URL posturl = new URL(playerurl);
                 HttpURLConnection connection = (HttpURLConnection) posturl.openConnection();
                 HttpURLConnection wconn = (HttpURLConnection) workflowurl.openConnection();
                     wconn.setRequestMethod("GET");
                     wconn.setDoOutput(true);
                     wconn.setRequestProperty("Accept", "application/xml");
                     //wconn.setConnectTimeout(60000);
-                wconn.connect();
+                    wconn.connect();
 
                 String user = "icep603@gmail.com" + ":" + "creationfox";
                 String basicAuth = "Basic " + Base64.encodeToString(user.getBytes(), Base64.DEFAULT);
@@ -532,27 +522,30 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
                 //prepare post json data
                 JSONObject postJson = new JSONObject();
                 JSONObject datajson = new JSONObject();
+                String data = "{\"document\":\"data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"\"}";
                 datajson.put("document", "data:application/octet-stream;base64,"+Base64.encodeToString(sb.toString().getBytes(), Base64.DEFAULT)+"");
-                postJson.put("workflow",datajson.toString());
+                String post = "{\"workflow:\""+data+"}";
+  //              postJson.put("workflow",datajson.toString());
                 //clear sb so that we can use it again to fetch results from this post request
                 sb.delete(0,sb.length()-1);
-                System.out.println(postJson.toString(2));
+                System.out.println("BODY=>"+post);
+//                System.out.println(postJson.toString(2));
                 connection.setRequestProperty("Authorization", basicAuth);
-           //     connection.setRequestProperty("Accept", "application/json");
+        //        connection.setRequestProperty("Accept", "application/json");
                 connection.setRequestProperty("Content-Type", "application/json");
                 connection.setRequestMethod("POST");
                 connection.connect(); //send request
 
                 DataOutputStream dos = new DataOutputStream(connection.getOutputStream());
-                dos.writeBytes(postJson.toString());//write post data which is a formatted json data representing body of workflow
+                dos.writeBytes(post);//write post data which is a formatted json data representing body of workflow
                 //dos.writeUTF("");
                 dos.flush();
                 dos.close();
-
+/*
                 InputStream dis = connection.getInputStream();
                 BufferedReader br = new BufferedReader(new InputStreamReader(dis));
                 while ((str = br.readLine())!= null)
-                    sb.append(str);
+                    sb.append(str);*/
                 System.out.println("Post Response Code: "+connection.getResponseCode());
                 System.out.println("Post response message: "+connection.getResponseMessage());
             }catch (IOException e){

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java b/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
index 86b3666..4ae919c 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/DB_Utility.java
@@ -23,12 +23,11 @@ package org.apache.taverna.mobile.utils;
  * specific language governing permissions and limitations
  * under the License.
  */
-import java.util.ArrayList;
-import java.util.Arrays;
-
 import org.json.JSONArray;
 import org.json.JSONException;
 
+import java.util.ArrayList;
+
 /**
  * This class contains all utility functions used by our database for basic functionality not directly related to the core
  * functionality of it but that aids a core functionality to carryout its function efficiently.

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
index 9be18b3..b9a0429 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
@@ -54,7 +54,6 @@ public class MyExperimentXmlParserRules {
 
         public WorkflowDetailRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
             super(type, locationPath, attributeNames);
-            System.out.println("Parser rules created. Ready to parse");
         }
 
         @Override
@@ -160,9 +159,6 @@ public class MyExperimentXmlParserRules {
                     muser.setId(value);
                     break;
             }
-            if( (userObject instanceof User)){
-                System.out.println("USER Details => "+muser.getDetails_uri());
-            }
         }
 
         @Override
@@ -282,14 +278,13 @@ public class MyExperimentXmlParserRules {
         @Override
         public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
             super.handleParsedAttribute(parser, index, value, userObject);
-            System.out.println("Tag attribute value"+value);
         }
 
         @Override
         public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
             mWorkflow.setWorkflow_tags(new ArrayList<String>(){});
             ((Workflow)userObject).setWorkflow_tags(new ArrayList<String>(){});
-            System.out.println(text);
+
         }
     }
 
@@ -318,19 +313,15 @@ public class MyExperimentXmlParserRules {
 
             switch(index){
                 case 0:
-                    System.out.println("Workflow Resource: "+value); url = value;
                     desc = "To view workflow on the web, click "+value;
                     break;
                 case 1:
-                    System.out.println("Workflow uri: "+value);
                     uri = value;
                     break;
                 case 2:
-                    System.out.println("Workflow id: "+value);
                     id = Integer.parseInt(value);
                     break;
                 case 3:
-                    System.out.println("Workflow version: "+value);
                     version = value;
                     break;
             }
@@ -345,11 +336,9 @@ public class MyExperimentXmlParserRules {
             this.workflow.setWorkflow_author("");
             wlist.add(this.workflow);
             WorkflowLoader.loadedWorkflows.add(this.workflow);
-            System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
             ((List<Workflow>)workflowListObject).add(this.workflow);
             this.workflow = null;
         }
-
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d8239c73/app/src/main/res/layout/favorite_item_layout.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/favorite_item_layout.xml b/app/src/main/res/layout/favorite_item_layout.xml
index 25e809a..b3c57ab 100644
--- a/app/src/main/res/layout/favorite_item_layout.xml
+++ b/app/src/main/res/layout/favorite_item_layout.xml
@@ -39,20 +39,14 @@ limitations under the License.
             android:textAppearance="?android:attr/textAppearanceLarge"
             android:id="@+id/author"
             android:hint="@string/workflow_authorhint"
-            android:textSize="25sp" />
+            android:textSize="25sp"
+            android:elevation="5dp" />
 
             <LinearLayout
                 android:id="@+id/linearlayout_workflow_info"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:orientation="horizontal">
-                <ImageView
-                    android:id="@+id/author_profile_image"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:elevation="5dp"
-                    android:background="@drawable/round_shape"
-                    android:contentDescription="@string/workflow_component" />
 
                 <LinearLayout
                     android:orientation="vertical"
@@ -64,7 +58,8 @@ limitations under the License.
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:text="@string/wktitle"
-                        android:id="@+id/textView9" />
+                        android:id="@+id/textView9"
+                        android:layout_marginTop="5dp" />
 
                     <TextView
                         android:layout_width="match_parent"
@@ -93,44 +88,17 @@ limitations under the License.
                         android:layout_gravity="center_horizontal"
                         android:gravity="center_horizontal" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/created"
-                        android:id="@+id/textView11"
-                        android:layout_gravity="center_horizontal" />
-
-                    <TextView
+                    <Button
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:hint="Date workflow was Created"
-                        android:id="@+id/date_created"
-                        android:typeface="serif"
-                        android:textColor="@color/material_deep_teal_200"
-                        android:textSize="15dp"
+                        android:text="@string/workflow_read"
+                        android:id="@+id/buttonOpenFavorite"
                         android:layout_gravity="center_horizontal"
-                        android:gravity="center_horizontal" />
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="@string/modified"
-                        android:id="@+id/textView12"
-                        android:layout_gravity="center_horizontal" />
+                        android:layout_margin="10dp"
+                        android:background="#33b5e5"
+                        android:elevation="5dp" />
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:textAppearance="?android:attr/textAppearanceLarge"
-                        android:hint="Date workflow was lastly Modified"
-                        android:id="@+id/date_modified"
-                        android:typeface="serif"
-                        android:textColor="@color/material_deep_teal_200"
-                        android:textSize="15dp"
-                        android:layout_gravity="center_horizontal"
-                        android:gravity="center_horizontal" />
-                    </LinearLayout>
+                </LinearLayout>
 
             </LinearLayout>