/* @file DrawingStationDialog.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid drawing: dialog for a station point to the scrap * * for when station points are not automatically added * * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import java.util.List; import android.os.Bundle; import android.app.Dialog; // import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.*; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; public class DrawingStationDialog extends MyDialog implements View.OnClickListener { private TextView mLabel; private TextView mBarrierLabel; private TextView mHiddenLabel; private TextView mCoords; private Button mBtnOK; private Button mBtnSet; private Button mBtnBreak; private Button mBtnHidden; private Button mBtnSplays; private Button mBtnXSection; private Button mBtnXDelete; private Button mBtnCancel; private CheckBox mCBdirect; private CheckBox mCBinverse; private DrawingWindow mParent; private DrawingStationName mStation; // num station point private DrawingStationPath mPath; private String mStationName; private boolean mIsBarrier; private boolean mIsHidden; private List<DistoXDBlock> mBlk; public DrawingStationDialog( Context context, DrawingWindow parent, DrawingStationName station, DrawingStationPath path, boolean is_barrier, boolean is_hidden, List<DistoXDBlock> blk ) { super( context, R.string.DrawingStationDialog ); mParent = parent; mStation = station; mPath = path; mStationName = mStation.mName; mIsBarrier = is_barrier; mIsHidden = is_hidden; mBlk = blk; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String title = mContext.getResources().getString(R.string.STATION) + " " + mStationName; initLayout( R.layout.drawing_station_dialog, title ); mLabel = (TextView) findViewById(R.id.station_text); mBarrierLabel = (TextView) findViewById(R.id.barrier_text); mHiddenLabel = (TextView) findViewById(R.id.hidden_text); mCoords = (TextView) findViewById(R.id.coords); mCoords.setText( mStation.getCoordsString() ); mBtnBreak = (Button) findViewById(R.id.btn_break ); mBtnHidden = (Button) findViewById(R.id.btn_hidden ); mBtnSplays = (Button) findViewById(R.id.btn_splays ); mBtnXSection = (Button) findViewById(R.id.btn_xsection ); mBtnXDelete = (Button) findViewById(R.id.btn_xdelete ); mBtnOK = (Button) findViewById(R.id.btn_ok); mBtnSet = (Button) findViewById(R.id.btn_set); mBtnCancel = (Button) findViewById(R.id.btn_cancel); mCBdirect = (CheckBox) findViewById( R.id.cb_direct ); mCBinverse = (CheckBox) findViewById( R.id.cb_inverse ); mCBdirect.setChecked( true ); mCBinverse.setChecked( false ); if ( mParent.isAnySection() ) { mBtnOK.setVisibility( View.GONE ); mBtnSet.setVisibility( View.GONE ); mBtnBreak.setVisibility( View.GONE ); mBtnHidden.setVisibility( View.GONE ); mBtnXSection.setVisibility( View.GONE ); mBtnXDelete.setVisibility( View.GONE ); mBarrierLabel.setVisibility( View.GONE ); mHiddenLabel.setVisibility( View.GONE ); mLabel.setVisibility( View.GONE ); ((TextView)findViewById(R.id.station_set)).setVisibility( View.GONE ); mBtnSplays.setOnClickListener( this ); mCBdirect.setVisibility( View.GONE ); mCBinverse.setVisibility( View.GONE ); } else { if ( TDSetting.mAutoStations ) { mBtnOK.setVisibility( View.GONE ); mLabel.setVisibility( View.GONE ); } else { mBtnOK.setOnClickListener( this ); } mBtnSet.setOnClickListener( this ); mBtnBreak.setOnClickListener( this ); mBtnHidden.setOnClickListener( this ); mBtnSplays.setOnClickListener( this ); if ( TDSetting.mLevelOverAdvanced ) { int leg_size = mBlk.size(); String direct = null; String inverse = null; if ( leg_size == 1 ) { DistoXDBlock leg0 = mBlk.get(0); direct = leg0.mFrom + ">" + leg0.mTo; inverse = leg0.mTo + ">" + leg0.mFrom; } else if ( leg_size == 2 ) { DistoXDBlock leg0 = mBlk.get(0); DistoXDBlock leg1 = mBlk.get(1); String from = leg0.mFrom; if ( from.equals( mStationName ) ) from = leg0.mTo; String to = leg1.mTo; if ( to.equals( mStationName ) ) to = leg0.mFrom; direct = from + ">" + to; // skip mStationName in the middle inverse = to + ">" + from; } if ( inverse != null ) { mBtnXSection.setOnClickListener( this ); if ( mStation.mXSectionType != PlotInfo.PLOT_NULL ) { mBtnXDelete.setOnClickListener( this ); mCBdirect.setVisibility( View.GONE ); mCBinverse.setVisibility( View.GONE ); } else { mBtnXDelete.setVisibility( View.GONE ); mCBdirect.setText( direct ); mCBinverse.setText( inverse ); mCBdirect.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { mCBdirect.setChecked( true ); mCBinverse.setChecked( false ); } } ); mCBinverse.setOnClickListener( new View.OnClickListener() { @Override public void onClick( View v ) { mCBinverse.setChecked( true ); mCBdirect.setChecked( false ); } } ); } } else { mBtnXSection.setVisibility( View.GONE ); mBtnXDelete.setVisibility( View.GONE ); mCBdirect.setVisibility( View.GONE ); mCBinverse.setVisibility( View.GONE ); } } else { mBtnXSection.setVisibility( View.GONE ); mBtnXDelete.setVisibility( View.GONE ); mCBdirect.setVisibility( View.GONE ); mCBinverse.setVisibility( View.GONE ); } mBtnCancel.setOnClickListener( this ); if ( mIsBarrier ) { mBarrierLabel.setText( mContext.getResources().getString(R.string.barrier_del) ); } if ( mIsHidden ) { mHiddenLabel.setText( mContext.getResources().getString(R.string.hidden_del) ); } } } public void onClick(View view) { // TDLog.Log( TDLog.LOG_INPUT, "Drawing Station Dialog onClick() " + view.toString() ); if (view.getId() == R.id.btn_ok ) { if ( mPath == null ) { mParent.addStationPoint( mStation ); } else { mParent.removeStationPoint( mStation, mPath ); } } else if (view.getId() == R.id.btn_cancel ) { /* nothing */ } else if (view.getId() == R.id.btn_set ) { mParent.setCurrentStationName( mStation.mName ); } else if (view.getId() == R.id.btn_break ) { mParent.toggleStationBarrier( mStationName, mIsBarrier ); } else if (view.getId() == R.id.btn_hidden ) { mParent.toggleStationHidden( mStationName, mIsHidden ); } else if (view.getId() == R.id.btn_splays ) { mParent.toggleStationSplays( mStationName ); } else if (view.getId() == R.id.btn_xsection ) { mParent.openXSection( mStation, mStationName, mParent.getPlotType(), mCBinverse.isChecked() ); } else if (view.getId() == R.id.btn_xdelete ) { mParent.deleteXSection( mStation, mStationName, mParent.getPlotType() ); } dismiss(); } }