/* @file UndeleteDialog.java
*
* @author marco corvi
* @date nov 2011
*
* @brief TopoDroid undelete survey item activity
* --------------------------------------------------------
* 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.Locale;
import android.app.Dialog;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;
public class UndeleteDialog extends MyDialog
implements OnItemClickListener
, View.OnClickListener
{
public long mSID;
DataHelper mData;
ShotWindow mParent;
private Button mBtnCancel;
// ArrayAdapter< String > mArrayAdapter;
MyStringAdapter mArrayAdapter;
ListView mList;
List< DistoXDBlock > mShots;
List< PlotInfo > mPlots;
public UndeleteDialog( Context context, ShotWindow parent, DataHelper data, long sid,
List<DistoXDBlock> shots, List<PlotInfo> plots )
{
super( context, R.string.UndeleteDialog );
mParent = parent;
mData = data;
mSID = sid;
mShots = shots;
mPlots = plots;
}
@Override
public void onClick(View v)
{
// TDLog.Log( TDLog.LOG_INPUT, "UndeleteDialog onClick()" );
dismiss();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long index)
{
CharSequence item = ((TextView) view).getText();
// TDLog.Log( TDLog.LOG_INPUT, "UndeleteDialog onItemClick() " + item.toString() );
String[] value = item.toString().split( " " );
if ( value.length >= 2 ) {
long id = Long.parseLong( value[1] );
try {
if ( value[0].equals( "shot" ) ) {
mData.undeleteShot( id, mSID, true );
mParent.updateDisplay();
} else {
mData.undeletePlot( id, mSID );
}
} catch ( NumberFormatException e ) {
TDLog.Error( "undelete parse error: item " + item.toString() );
}
}
dismiss();
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate( savedInstanceState );
setContentView(R.layout.undelete_dialog);
// mArrayAdapter = new ArrayAdapter<String>( mContext, R.layout.message );
mArrayAdapter = new MyStringAdapter( mContext, R.layout.message );
mList = (ListView) findViewById(R.id.list_undelete);
mList.setAdapter( mArrayAdapter );
mList.setOnItemClickListener( this );
mList.setDividerHeight( 2 );
mBtnCancel = (Button) findViewById( R.id.button_cancel );
mBtnCancel.setOnClickListener( this );
for ( DistoXDBlock b : mShots ) {
mArrayAdapter.add(
String.format(Locale.US, "shot %d <%s> %.2f %.1f %.1f", b.mId, b.Name(), b.mLength, b.mBearing, b.mClino ) );
}
for ( PlotInfo p : mPlots ) {
if ( p.type == PlotInfo.PLOT_PLAN ) {
mArrayAdapter.add( String.format("plot %d <%s> %s", p.id, p.name, p.getTypeString() ) );
// } else { // this is OK extended do not show up in this dialog
// TDLog.Log( TDLog.LOG_PLOT, " plot " + p.id + " <" + p.name + "> " + p.getTypeString() );
}
}
setTitle( R.string.undelete_text );
}
}