Android Open Source - ReqDroid Dependencias Fragment






From Project

Back to project page ReqDroid.

License

The source code is released under:

GNU General Public License

If you think the Android project ReqDroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Este arquivo esta sujeito aos termos e condicoes definidos
 * no arquivo 'LICENSE.txt, o qual e parte deste pacote de codigo fonte.
 *///from   www .  j a  v  a2  s . c o m

package com.vrs.reqdroid.fragments;

import java.util.ArrayList;

import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.NavUtils;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.vrs.reqdroid.R;
import com.vrs.reqdroid.activities.TelaPrincipalActivity;
import com.vrs.reqdroid.models.Dependencia;
import com.vrs.reqdroid.util.DependenciasUtils;
import com.vrs.reqdroid.util.ListViewDependenciasAdapter;
import com.vrs.reqdroid.util.ProjetoUtils;

/**
 * Implementa a tela de dependencias.
 *
 * @author Vinicius Rodrigues Silva <vinicius.rodsilva@gmail.com>
 * @version 1.0
 */
@SuppressWarnings("ForLoopReplaceableByForEach")
public class DependenciasFragment extends Fragment
{
    private static ArrayList<Dependencia> dependencias;
    private static ListViewDependenciasAdapter lvDependenciasAdapter;
    private ListView lvDependencias;
    private static int idProjeto;
    private int posicao;
    private static Spinner spinnerPrimeiroRequisito;
    private static Spinner spinnerSegundoRequisito;
    private static Button botaoAlternarRequisitos;
    private int primeiroRequisitoSelecionado;
    private int segundoRequisitoSelecionado;

    private View rootView;

    public DependenciasFragment() {
        // Empty constructor required for fragment subclasses
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        rootView = inflater.inflate(R.layout.dependencias, container, false);
        getActivity().setTitle(getResources().getStringArray(R.array.titulos_funcionalidades_array)[2]);
        init();
        carregaRequisitos();
        carregaDependencias();
        selecionaRequisitosSpinners();
        alternaSpinners();
        adicionaDependencia();
        return rootView;
    }

    /**
     * Carrega os requisitos existentes e preenche os spinners com eles.
     */
    private void carregaRequisitos()
    {
        DependenciasUtils.preencheSpinners(getActivity(), spinnerPrimeiroRequisito, spinnerSegundoRequisito, idProjeto);
    }

    /**
     * Carrega as dependencias existentes no banco de dados e as adiciona a lista.
     */
    private void carregaDependencias()
    {
        dependencias = DependenciasUtils.carregaDependenciasBD(getActivity(), idProjeto);
        lvDependencias.setCacheColorHint(Color.TRANSPARENT);
        lvDependencias.setSelectionAfterHeaderView();
        lvDependenciasAdapter = new ListViewDependenciasAdapter(getActivity(), dependencias, botaoRemoverListener);
        lvDependencias.setAdapter(lvDependenciasAdapter);
    }

    /**
     * Listener do botao de opcoes da dependencia.
     */
    private final View.OnClickListener botaoRemoverListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            LinearLayout caixaDependencia = (LinearLayout)view.getParent();
            posicao = lvDependencias.getPositionForView(caixaDependencia);
            Dependencia dependencia = (Dependencia) lvDependenciasAdapter.getItem(posicao);
            DependenciasUtils.removeDependencia(getActivity(), dependencias, dependencia,
                    posicao, idProjeto, lvDependenciasAdapter);
        }
    };
    
    /**
     * Adiciona uma nova dependencia ao clicar no botao "Adicionar dependencia".
     */
    private void adicionaDependencia()
    {   
        Button botaoAdicionarDependencia = (Button) rootView.findViewById(R.id.botaoAdicionarDependencia);

        botaoAdicionarDependencia.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                if (DependenciasUtils.possuiItens(spinnerPrimeiroRequisito, spinnerSegundoRequisito)){
                  if (primeiroRequisitoSelecionado != segundoRequisitoSelecionado)
                  {
                      Dependencia novaDependencia = new Dependencia(primeiroRequisitoSelecionado, segundoRequisitoSelecionado);
                      salvaDependencia(novaDependencia);
                      dependencias.add(lvDependencias.getChildCount(), novaDependencia);
                      lvDependenciasAdapter.notifyDataSetChanged();
                  }
                  else
                  {
                  Toast toast = Toast.makeText(getActivity().getApplicationContext(), R.string.toast_dependencia_igual, Toast.LENGTH_SHORT);
                      toast.show();
                  }
                }
            }
        });
    }

    /**
     * Salva a dependencia no banco de dados do aplicativo.
     */
    private void salvaDependencia(Dependencia dependencia)
    {
        DependenciasUtils.salvaDependenciaBD(getActivity(), dependencia, idProjeto);
    }

    /**
     * Configura o texto dos dois requisitos selecionados nas listas de selecao.
     */
    private void selecionaRequisitosSpinners()
    {
      final TextView tvRequisitoSelecionado1 = (TextView) rootView.findViewById(R.id.requisitoSelecionado1);
      final TextView tvRequisitoSelecionado2 = (TextView) rootView.findViewById(R.id.requisitoSelecionado2);
        final String titulo = getResources().getString(R.string.tela_detalhes_requisito_nome_requisito);

        spinnerPrimeiroRequisito.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
      public void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) {
        //pega nome pela posicao
        primeiroRequisitoSelecionado = (Integer)parent.getItemAtPosition(posicao);
        tvRequisitoSelecionado1.setText(titulo + String.valueOf(primeiroRequisitoSelecionado));
      }
      public void onNothingSelected(AdapterView<?> arg0) {        
      }
    });
      
      spinnerSegundoRequisito.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {        
      public void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) {
        segundoRequisitoSelecionado = (Integer)parent.getItemAtPosition(posicao);
          tvRequisitoSelecionado2.setText(titulo + String.valueOf(segundoRequisitoSelecionado));
      }
      public void onNothingSelected(AdapterView<?> arg0) {        
      }
    });          
    }
    
    /**
     * Alterna o conteudo das duas listas de selecao ao clicar no botao de alternar requisitos.
     */
    private void alternaSpinners()
    {   
      botaoAlternarRequisitos = (Button) rootView.findViewById(R.id.BotaoAlternarRequisitos);
      
      botaoAlternarRequisitos.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
               int r1 = spinnerPrimeiroRequisito.getSelectedItemPosition();
               int r2 = spinnerSegundoRequisito.getSelectedItemPosition();
                 spinnerPrimeiroRequisito.setSelection(r2);  
                 spinnerSegundoRequisito.setSelection(r1);   
             }
         });
    }

    /**
     * Inicializa variaveis da classe.
     */
    void init()
  {
    getActivity().setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    idProjeto = ProjetoUtils.getIdProjeto();
        lvDependencias = (ListView) rootView.findViewById(R.id.lvDependencias);
        dependencias = new ArrayList<Dependencia>();
    spinnerPrimeiroRequisito =  (Spinner) rootView.findViewById(R.id.spinnerRequisito1);
    spinnerSegundoRequisito =  (Spinner) rootView.findViewById(R.id.spinnerRequisito2);
  }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpTo(getActivity(), new Intent(getActivity(), TelaPrincipalActivity.class));
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
}




Java Source Code List

com.vrs.reqdroid.activities.DrawerPrincipalActivity.java
com.vrs.reqdroid.activities.MainActivity.java
com.vrs.reqdroid.activities.TelaAbrirProjetoActivity.java
com.vrs.reqdroid.activities.TelaEditarEscopoActivity.java
com.vrs.reqdroid.activities.TelaEscopoActivity.java
com.vrs.reqdroid.activities.TelaHipoteseDetalhadaActivity.java
com.vrs.reqdroid.activities.TelaNovoProjetoActivity.java
com.vrs.reqdroid.activities.TelaPrincipalActivity.java
com.vrs.reqdroid.activities.TelaRequisitoAtrasadoDetalhadoActivity.java
com.vrs.reqdroid.activities.TelaRequisitoDetalhadoActivity.java
com.vrs.reqdroid.activities.TelaSobreActivity.java
com.vrs.reqdroid.dao.BDGerenciador.java
com.vrs.reqdroid.dao.IOperacoesBD.java
com.vrs.reqdroid.fragments.CaracteristicasUsuarioFragment.java
com.vrs.reqdroid.fragments.DependenciasFragment.java
com.vrs.reqdroid.fragments.HipotesesEDependenciasFragment.java
com.vrs.reqdroid.fragments.HipotesesFragment.java
com.vrs.reqdroid.fragments.ProjetosListFragment.java
com.vrs.reqdroid.fragments.RequisitosAtrasadosFragment.java
com.vrs.reqdroid.fragments.RequisitosFragment.java
com.vrs.reqdroid.models.Dependencia.java
com.vrs.reqdroid.models.Projeto.java
com.vrs.reqdroid.util.AlertsUtil.java
com.vrs.reqdroid.util.DependenciasUtils.java
com.vrs.reqdroid.util.DrawerPrincipalAdapter.java
com.vrs.reqdroid.util.HipotesesUtils.java
com.vrs.reqdroid.util.IRequisito.java
com.vrs.reqdroid.util.ListViewDependenciasAdapter.java
com.vrs.reqdroid.util.ListViewHipotesesAdapter.java
com.vrs.reqdroid.util.ListViewProjetosAdapter.java
com.vrs.reqdroid.util.ListViewRequisitosAdapter.java
com.vrs.reqdroid.util.ListViewRequisitosAtrasadosAdapter.java
com.vrs.reqdroid.util.ProjetoUtils.java
com.vrs.reqdroid.util.RequisitosAtrasadosUtils.java
com.vrs.reqdroid.util.RequisitosUtils.java