/* * Copyright (c) 2014. The Trustees of Indiana University. * * This version of the code is licensed under the MPL 2.0 Open Source license with additional * healthcare disclaimer. If the user is an entity intending to commercialize any application * that uses this code in a for-profit venture, please contact the copyright holder. */ package com.muzima.view.observations; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ListView; import com.muzima.R; import com.muzima.adapters.ListAdapter; import com.muzima.adapters.observations.ObservationsAdapter; import com.muzima.controller.ConceptController; import com.muzima.controller.EncounterController; import com.muzima.controller.ObservationController; import com.muzima.view.MuzimaListFragment; public abstract class ObservationsListFragment extends MuzimaListFragment implements ListAdapter.BackgroundListQueryTaskListener{ private static final String TAG = "ObservationsListFragment"; protected ConceptController conceptController; protected ObservationController observationController; protected EncounterController encounterController; protected FrameLayout progressBarContainer; protected LinearLayout noDataView; protected View observationsLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { observationsLayout = setupMainView(inflater,container); list = (ListView) observationsLayout.findViewById(R.id.list); progressBarContainer = (FrameLayout) observationsLayout.findViewById(R.id.progressbarContainer); noDataView = (LinearLayout) observationsLayout.findViewById(R.id.no_data_layout); setupNoDataView(observationsLayout); // Todo no need to do this check after all list adapters are implemented if (listAdapter != null) { list.setAdapter(listAdapter); list.setOnItemClickListener(this); ((ObservationsAdapter)listAdapter).setBackgroundListQueryTaskListener(this); } list.setEmptyView(observationsLayout.findViewById(R.id.no_data_layout)); return observationsLayout; } protected View setupMainView(LayoutInflater inflater, ViewGroup container){ return inflater.inflate(R.layout.layout_list, container, false); } public abstract void onSearchTextChange(String query); @Override public void onQueryTaskStarted() { noDataMsg = getActivity().getString(R.string.info_observation_load); updateDataLoadStatus(observationsLayout, noDataMsg); } @Override public void onQueryTaskFinish() { if(listAdapter.isEmpty()){ noDataMsg = getActivity().getString(R.string.error_observation_unavailable); updateDataLoadStatus(observationsLayout, noDataMsg); } } }