/* @file DistoXStatDialog.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid stats display dialog * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.List; import java.util.ArrayList; import android.os.Bundle; import android.app.Dialog; // import android.app.Activity; import android.content.Context; // import android.content.Intent; import android.content.res.Resources; import android.graphics.*; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.TextView; import android.widget.Button; import android.widget.ListView; import android.widget.ArrayAdapter; public class DistoXStatDialog extends MyDialog implements View.OnClickListener { private DistoXNum mNum; private String mOrigin; private float mAzimuth; SurveyStat mStat; private TextView mTextOrigin; private TextView mTextAzimuth; private TextView mTextLength; private TextView mTextWENS; private TextView mTextZminmax; private TextView mTextStations; private TextView mTextShots; private TextView mTextSplays; private ListView mList; private TextView mTextLeg; private TextView mTextDuplicate; private TextView mTextSurface; private TextView mTextSplay; private TextView mTextStation; private TextView mTextLoop; private TextView mTextComponent; private TextView mTextAngleErr; private Button mBtnBack; public DistoXStatDialog( Context context, DistoXNum num, String origin, float azimuth, SurveyStat stat ) { super( context, R.string.DistoXStatDialog ); mNum = num; mOrigin = origin; mAzimuth = azimuth; mStat = stat; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initLayout( R.layout.distox_stat_dialog, R.string.title_stats ); Resources res = mContext.getResources(); float unit = TDSetting.mUnitLength; String unit_str = TDSetting.mUnitLengthStr; mTextOrigin = (TextView) findViewById(R.id.text_stat_origin); mTextAzimuth = (TextView) findViewById(R.id.text_stat_azimuth); mTextLength = (TextView) findViewById(R.id.text_stat_length); mTextWENS = (TextView) findViewById(R.id.text_stat_wens); mTextZminmax = (TextView) findViewById(R.id.text_stat_zminmax); mTextStations = (TextView) findViewById(R.id.text_stat_stations); mTextShots = (TextView) findViewById(R.id.text_stat_shots); mTextSplays = (TextView) findViewById(R.id.text_stat_splays); mTextLeg = (TextView) findViewById(R.id.stat_leg); mTextDuplicate = (TextView) findViewById(R.id.stat_duplicate); mTextSurface = (TextView) findViewById(R.id.stat_surface); mTextSplay = (TextView) findViewById(R.id.stat_splay); mTextStation = (TextView) findViewById(R.id.stat_station); mTextLoop = (TextView) findViewById(R.id.stat_loop); mTextComponent = (TextView) findViewById(R.id.stat_component); mTextAngleErr = (TextView) findViewById(R.id.text_stat_angle_error); mTextLeg.setText( String.format( res.getString(R.string.stat_leg), mStat.countLeg, mStat.lengthLeg * unit, unit_str ) ); mTextDuplicate.setText( String.format( res.getString(R.string.stat_duplicate), mStat.countDuplicate, mStat.lengthDuplicate * unit, unit_str ) ); mTextSurface.setText( String.format( res.getString(R.string.stat_surface), mStat.countSurface, mStat.lengthSurface * unit, unit_str ) ); mTextSplay.setText( String.format( res.getString(R.string.stat_splay), mStat.countSplay ) ); mTextStation.setText( String.format( res.getString(R.string.stat_station), mStat.countStation ) ); mTextLoop.setText( String.format( res.getString(R.string.stat_loop), mStat.countLoop ) ); mTextComponent.setText( String.format( res.getString(R.string.stat_component), mStat.countComponent ) ); mTextAngleErr.setText( String.format( res.getString(R.string.stat_angle_error), mNum.angleErrorMean() * TDMath.RAD2GRAD, mNum.angleErrorStddev() * TDMath.RAD2GRAD ) ); // mList.setOnItemClickListener( this ); List< String > cls = mNum.getClosures(); if ( cls.size() == 0 ) { ((TextView)findViewById( R.id.text_stat_loops )).setText( R.string.loop_none ); } else { mList = (ListView) findViewById(R.id.list); mList.setAdapter( new ArrayAdapter<String>( mContext, R.layout.row, cls ) ); } mBtnBack = (Button) findViewById(R.id.btn_back); mBtnBack.setOnClickListener( this ); mTextOrigin.setText( String.format( res.getString(R.string.stat_origin), mOrigin ) ); if ( mAzimuth < 0 ) { mTextAzimuth.setVisibility( View.GONE ); } else { mTextAzimuth.setText( String.format( res.getString(R.string.stat_azimuth), mAzimuth ) ); } mTextLength.setText( String.format( res.getString(R.string.stat_length), mNum.surveyLength() * unit, unit_str ) ); mTextWENS.setText( String.format( res.getString(R.string.stat_wens), mNum.surveyWest() * unit, mNum.surveyEast() * unit, mNum.surveyNorth() * unit, mNum.surveySouth() * unit, unit_str ) ); mTextZminmax.setText( String.format( res.getString(R.string.stat_depth), mNum.surveyTop() * unit, unit_str, mNum.surveyBottom() * unit, unit_str ) ); mTextStations.setText(String.format( res.getString(R.string.stat_station), mNum.stationsNr() ) ); mTextShots.setText( String.format( res.getString(R.string.stat_shot), mNum.shotsNr(), mNum.duplicateNr(), mNum.surfaceNr() ) ); mTextSplays.setText( String.format( res.getString(R.string.stat_splay), mNum.splaysNr() ) ); } @Override public void onClick(View view) { Button b = (Button)view; if ( b == mBtnBack ) { /* nothing */ } dismiss(); } }