implemented workflow run history
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/50706d41 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/50706d41 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/50706d41 Branch: refs/heads/master Commit: 50706d4126c3d74765b4871098604b3588fa44d3 Parents: 10e5e42 Author: larrytech7 <[email protected]> Authored: Sun Jul 19 12:28:31 2015 +0100 Committer: larrytech7 <[email protected]> Committed: Sun Jul 19 12:28:31 2015 +0100 ---------------------------------------------------------------------- .../activities/WorkflowDetailActivity.java | 3 +- .../taverna/mobile/adapters/RunAdapter.java | 4 +- .../mobile/adapters/WorkflowAdapter.java | 3 +- .../mobile/fragments/WorkflowItemFragment.java | 7 --- .../WorkflowRunHistoryFragment.java | 32 +++++------- .../workflowdetails/WorkflowdetailFragment.java | 9 ++-- .../taverna/mobile/utils/DetailsLoader.java | 54 ++++++++++++-------- 7 files changed, 57 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java index b0ccb12..b292244 100644 --- a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java +++ b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java @@ -108,7 +108,8 @@ public class WorkflowDetailActivity extends ActionBarActivity { case 1: return WorkflowdetailFragment.newInstance(position + 1); case 2: - return WorkflowRunHistoryFragment.newInstance("workflow",WorkflowdetailFragment.WORKFLO_ID); + //System.out.println(""+getIntent().getStringExtra("wtitle")); + return WorkflowRunHistoryFragment.newInstance(getIntent().getStringExtra("wtitle")); case 3: return WorkflowLicenceFragment.newInstance("",""); case 4: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java index 74152df..fbc5c30 100644 --- a/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java @@ -130,8 +130,8 @@ public class RunAdapter extends RecyclerView.Adapter<RunAdapter.RunHolder> { */ @Override public int getItemCount() { - return 0; -/// return runList.size(); + //return 0; + return runList.size(); } public static class RunHolder extends RecyclerView.ViewHolder { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/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 4f57766..e89f6f0 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 @@ -127,7 +127,8 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo it.setClass(context, WorkflowDetailActivity.class); // it.putExtra("workflowid", workflow.get(i).getId()); it.putExtra("uri",uri); - WorkflowdetailFragment.WORKFLO_ID = workflow.get(i).getId(); + it.putExtra("wtitle", title); //pass this workflow's title to the detail activity so the corresponding run can be fetched + WorkflowdetailFragment.WORKFLO_ID = title;//workflow.get(i).getId(); viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() { @Override http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/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 a2e2a4d..e4ac78b 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 @@ -242,13 +242,6 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout super.onDetach(); } - public void setEmptyText(CharSequence emptyText) { - View emptyView = mListView.getChildAt(2); - - if (emptyView instanceof TextView) { - ((TextView) emptyView).setText(emptyText); - } - } //handle a request to query for given workflows private void performSearch(String search){ WorkflowAdapter ladapter = new WorkflowAdapter(getActivity()); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowRunHistoryFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowRunHistoryFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowRunHistoryFragment.java index e163c9f..d879105 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowRunHistoryFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowRunHistoryFragment.java @@ -50,32 +50,27 @@ import java.util.List; * create an instance of this fragment. */ public class WorkflowRunHistoryFragment extends Fragment implements LoaderManager.LoaderCallbacks<Workflow>{ - // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; private ProgressDialog progressDialog; private RecyclerView mRecyclerView; private RunAdapter runAdapter; - // TODO: Rename and change types of parameters - private String mParam1; - private static long workflowID; + private static String workflowID; //represents a run name that matches the given workflow /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * - * @param param1 Parameter 1. * @param param2 Parameter 2. * @return A new instance of fragment WorkflowRunHistoryFragment. */ - // TODO: Rename and change types and number of parameters - public static WorkflowRunHistoryFragment newInstance(String param1, long param2) { + public static WorkflowRunHistoryFragment newInstance(String param2) { WorkflowRunHistoryFragment fragment = new WorkflowRunHistoryFragment(); Bundle args = new Bundle(); - args.putString(ARG_PARAM1, param1); - args.putLong(ARG_PARAM2, param2); + workflowID = param2; + args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @@ -100,10 +95,7 @@ public class WorkflowRunHistoryFragment extends Fragment implements LoaderManage progressDialog.setCancelable(true); runAdapter = new RunAdapter(getActivity(),runsList ); - if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); - workflowID = getArguments().getLong(ARG_PARAM2); - } + // System.out.println("WorkflowTitle->Run->"+workflowID); } @Override @@ -114,7 +106,7 @@ public class WorkflowRunHistoryFragment extends Fragment implements LoaderManage mRecyclerView = (RecyclerView) rootView.findViewById(android.R.id.list); mRecyclerView.setHasFixedSize(true); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - // getActivity().getLoaderManager().initLoader(1,savedInstanceState,this); + getActivity().getLoaderManager().initLoader(0,savedInstanceState,this).forceLoad(); return rootView; } @@ -129,7 +121,7 @@ public class WorkflowRunHistoryFragment extends Fragment implements LoaderManage super.onResume(); mRecyclerView.setAdapter(runAdapter); mRecyclerView.setScrollingTouchSlop(RecyclerView.TOUCH_SLOP_PAGING); - + //getActivity().getLoaderManager().initLoader(1,null,this); } @Override @@ -139,17 +131,17 @@ public class WorkflowRunHistoryFragment extends Fragment implements LoaderManage @Override public Loader<Workflow> onCreateLoader(int i, Bundle bundle) { - progressDialog.show(); + //progressDialog.show(); return new DetailsLoader(getActivity(), DetailsLoader.LOAD_TYPE.TYPE_RUN_HISTORY, - ""+workflowID); + workflowID); } @Override public void onLoadFinished(Loader<Workflow> workflowLoader, Workflow workflow) { runAdapter.setRunList(workflow.getWorkflow_runs()); - mRecyclerView.swapAdapter(runAdapter, false); - progressDialog.dismiss(); + mRecyclerView.setAdapter(runAdapter); + // progressDialog.dismiss(); } @Override http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/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 bfcce62..d809c85 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 @@ -103,7 +103,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList public AlertDialog runDialog; public AlertDialog.Builder alertDialogBuilder; private static String download_url; - public static long WORKFLO_ID; + public static String WORKFLO_ID = ""; public static Context cont; private static boolean LOAD_STATE = false; private static boolean DROPUPLOAD = false; @@ -127,6 +127,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList fragment.setArguments(args); return fragment; } + public static WorkflowdetailFragment getInstance(){ return WorkflowdetailFragment.getInstance(); } @@ -140,12 +141,12 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList AppKeyPair appKeys = new AppKeyPair(BOX_APP_KEY, BOX_APP_SECRET); AndroidAuthSession session = new AndroidAuthSession(appKeys); mDBApi = new DropboxAPI<AndroidAuthSession>(session); - long workflowid = getActivity().getIntent().getLongExtra("workflowid", 0); + // long workflowid = getActivity().getIntent().getLongExtra("workflowid", 0); rootView = inflater.inflate(R.layout.fragment_workflow_detail, container, false); progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage(getActivity().getResources().getString(R.string.loading)); progressDialog.setCancelable(false); - WORKFLO_ID = workflowid; + // WORKFLO_ID = workflowid; zoomin = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomin); zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout); @@ -277,7 +278,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList final TextView desc = (TextView) rootView.findViewById(R.id.wdescription); final TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat); final ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image); - + WORKFLO_ID = wk.getWorkflow_title(); ((Activity)cont).runOnUiThread(new Runnable() { @Override public void run() { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/50706d41/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java index 9b36a7f..81fdb68 100644 --- a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java +++ b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java @@ -62,29 +62,51 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { private Workflow workflow; private Context context; - public DetailsLoader(Context context, LOAD_TYPE load_type, String detailsRUI) { + public DetailsLoader(Context context, LOAD_TYPE load_type, String dataParam) { super(context); this.context = context; this.lt = load_type; - this.uri = detailsRUI; + this.uri = dataParam; this.workflow = new Workflow(); } @Override public Workflow loadInBackground() { + HttpURLConnection connection = null; + InputStream dis = null; //start a network request to fetch user's workflow details try { Log.i("LOADER STARTED", "loading data"); //for password protected urls use the user's credentials Authenticator.setDefault(new TavernaPlayerAPI.Authenticator("taverna", "taverna")); + TavernaPlayerAPI tavernaPlayerAPI = new TavernaPlayerAPI(); URL workflowurl; switch (this.lt){ case TYPE_WORKFLOW_DETAIL: workflowurl = new URL(this.uri); + connection = (HttpURLConnection) workflowurl.openConnection(); + connection.setRequestProperty("Accept", "application/json"); + connection.setRequestMethod("GET"); + connection.connect(); //send request + + Log.i("RESPONSE CODE", "" + connection.getResponseCode()); + Log.i("RESPONSE Messsage", ""+connection.getResponseMessage()); + dis = connection.getInputStream(); break; case TYPE_RUN_HISTORY: workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL); + connection = (HttpURLConnection) workflowurl.openConnection(); + String userpass = tavernaPlayerAPI.getPlayerUserName(this.context) + ":" + tavernaPlayerAPI.getPlayerUserPassword(this.context); + String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT); + + connection.setRequestProperty ("Authorization", basicAuth); + connection.setRequestProperty("Accept", "application/json"); + connection.setRequestMethod("GET"); + connection.connect(); //send request + Log.i("RESPONSE CODE", "" + connection.getResponseCode()); + Log.i("RESPONSE Messsage. Run", ""+connection.getResponseMessage()); + dis = connection.getInputStream(); break; case TYPE_POLICY: workflowurl = new URL(new TavernaPlayerAPI(this.context).SERVER_BASE_URL); @@ -96,20 +118,6 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_WORKFLOW_URL); break; } - HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); - String userpass = "[email protected]" + ":" + "creationfox"; - String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT); - - // connection.setRequestProperty ("Authorization", basicAuth); - // connection.setRequestProperty("Accept", "application/json"); - connection.setRequestMethod("GET"); - // connection.setDoInput(true); - // connection.setDoOutput(true); - connection.connect(); //send request - Log.i("RESPONSE Code", "" + connection.getResponseCode()); - Log.i("RESPONSE Messsage", ""+connection.getResponseMessage()); - - InputStream dis = connection.getInputStream(); switch(this.lt) { case TYPE_WORKFLOW_DETAIL: { @@ -140,6 +148,7 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { //br.close(); return workflow; case TYPE_RUN_HISTORY:{ + System.out.println("Downloading run history"); BufferedReader br = new BufferedReader(new InputStreamReader(dis)); StringBuffer sb = new StringBuffer(); String jsonData = ""; @@ -148,7 +157,7 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { } workflow = new Workflow(this.context); JSONArray jsonArray = new JSONArray(sb.toString()); - Log.i("JSON ", jsonArray.toString(2)); + Log.i("RUN JSON ", jsonArray.toString(2)); for(int j=0; j< jsonArray.length();j++){ JSONObject jsonObject = jsonArray.getJSONObject(j); long id = jsonObject.getLong("id"); @@ -157,7 +166,13 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { String started = jsonObject.getString("start_time"); String ended = jsonObject.getString("finish_time"); String state = jsonObject.getString("state"); - if(workflow_id == Integer.parseInt(this.uri)) { + StringBuffer nm = new StringBuffer(), ur = new StringBuffer(); + for(String n: name.toLowerCase().split(" ")) + nm.append(n); + for (String p: this.uri.toLowerCase().split(" ")) + ur.append(p); + + if(nm.toString().equals(ur.toString())) { Runs mrun = new Runs(name,started,ended,state); mrun.setRun_id(id); mrun.setRun_workflow_id(workflow_id); @@ -165,7 +180,6 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { workflow.addWorkflowRun(mrun); } } - } return workflow; case TYPE_POLICY:{ @@ -216,7 +230,7 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { @Override protected void onStopLoading() { - Log.i("Loading State","loading stopped"); + Log.i("Loading detailComponent","loading stopped"); } @Override
