org.spinsuite.view.T_DynamicTabDetail.java Source code

Java tutorial

Introduction

Here is the source code for org.spinsuite.view.T_DynamicTabDetail.java

Source

/*************************************************************************************
 * Product: SFAndroid (Sales Force Mobile)                                           *
 * This program is free software; you can redistribute it and/or modify it           *
 * under the terms version 2 of the GNU General Public License as published          *
 * by the Free Software Foundation. This program is distributed in the hope          *
 * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied        *
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                  *
 * See the GNU General Public License for more details.                              *
 * You should have received a copy of the GNU General Public License along           *
 * with this program; if not, write to the Free Software Foundation, Inc.,           *
 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.                            *
 * For the text or an alternative of this public license, you may reach us           *
 * Copyright (C) 2012-2014 E.R.P. Consultores y Asociados, S.A. All Rights Reserved. *
 * Contributor(s): Yamel Senih www.erpconsultoresyasociados.com                      *
 *************************************************************************************/
package org.spinsuite.view;

import org.spinsuite.base.R;
import org.spinsuite.interfaces.I_DynamicTab;
import org.spinsuite.interfaces.I_FragmentSelectListener;
import org.spinsuite.util.TabParameter;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * @author <a href="mailto:yamelsenih@gmail.com">Yamel Senih</a>
 *
 */
public class T_DynamicTabDetail extends Fragment implements I_DynamicTab, I_FragmentSelectListener {

    /**   Parameters         */
    private TabParameter tabParam = null;
    /**   Index Fragment      */
    public static final String INDEX_FRAGMENT = "Index";
    /**   Detail Fragment      */
    public static final String DETAIL_FRAGMENT = "Detail";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.t_dynamic_tab_detail, container, false);
        return v;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //   Not Change
        setRetainInstance(true);

        Bundle bundle = getArguments();
        if (bundle != null)
            tabParam = (TabParameter) bundle.getParcelable("TabParam");

        if (tabParam == null)
            tabParam = new TabParameter();

        FV_IndexRecordLine firstFragment = new FV_IndexRecordLine();
        //   Set Parameters
        firstFragment.setArguments(bundle);
        //   
        if (getActivity().findViewById(R.id.ll_List) != null) {
            getChildFragmentManager().beginTransaction().add(R.id.ll_List, firstFragment, INDEX_FRAGMENT).commit();
        } else if (getActivity().findViewById(R.id.ll_ListLand) != null) {
            getChildFragmentManager().beginTransaction()
                    .add(R.id.ll_index_record_line, firstFragment, INDEX_FRAGMENT).commit();
        }

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

    @Override
    public void handleMenu() {
        //   
    }

    @Override
    public TabParameter getTabParameter() {
        return tabParam;
    }

    @Override
    public void onItemSelected(int record_ID) {
        //   
        T_DynamicTab dynamicTab = (T_DynamicTab) getChildFragmentManager().findFragmentByTag(DETAIL_FRAGMENT);
        //   
        if (dynamicTab != null) {
            //   Set Parameters
            if (dynamicTab.getTabParameter() == null)
                dynamicTab.setTabParameter(tabParam);
            //   
            dynamicTab.onItemSelected(record_ID);
        } else {
            T_DynamicTab detailFragment = new T_DynamicTab();
            detailFragment.setFromTab(this);
            Bundle args = new Bundle();
            args.putParcelable("TabParam", tabParam);
            detailFragment.setArguments(args);
            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
            //   
            if (getActivity().findViewById(R.id.ll_ListLand) != null)
                transaction.add(R.id.ll_dynamic_tab, detailFragment, DETAIL_FRAGMENT);
            else
                transaction.replace(R.id.ll_List, detailFragment, DETAIL_FRAGMENT);
            transaction.addToBackStack(null);
            //   
            transaction.commit();
        }
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {
            //   
            if (getActivity().findViewById(R.id.ll_ListLand) != null)
                return false;
            FragmentManager fm = getChildFragmentManager();
            if (fm.getBackStackEntryCount() > 0) {
                //   Get Back
                fm.popBackStack();
                return true;
            }
        }
        //   
        return false;
    }

    @Override
    public boolean refreshFromChange(boolean reQuery) {
        I_DynamicTab indexRecordLine = (I_DynamicTab) getChildFragmentManager().findFragmentByTag(INDEX_FRAGMENT);
        if (indexRecordLine != null) {
            if (indexRecordLine != null)
                indexRecordLine.refreshFromChange(true);
            return indexRecordLine.refreshFromChange(reQuery);
        }
        //   Return
        return false;
    }

    @Override
    public void setTabParameter(TabParameter tabParam) {
        //   
    }
}