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>