package org.intermine.app.activity; /* * Copyright (C) 2015 InterMine * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. See the LICENSE file for more * information or http://www.gnu.org/copyleft/lesser.html. * */ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import org.intermine.app.R; import org.intermine.app.core.Gene; import org.intermine.app.core.List; import org.intermine.app.fragment.GenesListFragment; import org.intermine.app.listener.OnGeneSelectedListener; import org.intermine.app.util.Strs; import org.intermine.app.util.Uris; import java.util.HashMap; import java.util.Map; /** * @author Daria Komkova <Daria_Komkova @ hotmail.com> */ public class GenesListActivity extends BaseActivity implements OnGeneSelectedListener { public static final String LIST_KEY = "list_key"; public static final String MINE_NAME_KEY = "mine_name_key"; private static final String BAG_NAME_PARAM = "bagName"; private List mList; private String mMineName; // -------------------------------------------------------------------------------------------- // Static Methods // -------------------------------------------------------------------------------------------- public static void start(Context context, org.intermine.app.core.List list, String mineName) { Intent intent = new Intent(context, GenesListActivity.class); intent.putExtra(LIST_KEY, list); intent.putExtra(MINE_NAME_KEY, mineName); context.startActivity(intent); } // -------------------------------------------------------------------------------------------- // Fragment Lifecycle // -------------------------------------------------------------------------------------------- @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.genes_list_activity); Toolbar toolbar = (Toolbar) findViewById(R.id.default_toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mList = getIntent().getParcelableExtra(LIST_KEY); mMineName = getIntent().getStringExtra(MINE_NAME_KEY); if (null != mList) { setTitle(mList.getTitle()); GenesListFragment fragment = GenesListFragment.newInstance(mList, mMineName); getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commit(); } } // -------------------------------------------------------------------------------------------- // Callbacks // -------------------------------------------------------------------------------------------- @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.open_in_browser_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.open_in_browser: String url = mStorage.getMineWebAppUrl(mMineName); String title = "List Analysis"; if (!Strs.isNullOrEmpty(mList.getName())) { title = mList.getName(); } if (mList.isAuthorized()) { url += "/login.do"; } else { url = generateListAnalysisPath(url, mList, mMineName); } WebActivity.start(this, title, url); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onGeneSelected(Gene gene) { } // -------------------------------------------------------------------------------------------- // Helper Methods // -------------------------------------------------------------------------------------------- private String generateListAnalysisPath(String baseUrl, List list, String mineName) { Map<String, String> params = new HashMap<>(); params.put(BAG_NAME_PARAM, mList.getName()); return Uris.expandQuery(baseUrl + getString(R.string.list_analysis_path), params); } }