/* @file PlotNewDialog.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid new-plot dialog * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import android.app.Dialog; import android.os.Bundle; import android.content.Context; // import android.text.InputType; import android.inputmethodservice.KeyboardView; import android.view.Window; import android.widget.EditText; import android.widget.Button; import android.widget.CheckBox; import android.widget.LinearLayout; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Toast; // import android.util.Log; public class PlotNewDialog extends MyDialog implements View.OnClickListener , View.OnLongClickListener { private TopoDroidApp mApp; private INewPlot mMaker; // private boolean notDone; private EditText mEditName; private EditText mEditStart; // private EditText mEditProject; private Button mBtnOK; private Button mBtnBack; private CheckBox mCBextended; private int mIndex; private MyKeyboard mKeyboard = null; public PlotNewDialog( Context context, TopoDroidApp app, INewPlot maker, int index ) { super( context, R.string.PlotNewDialog ); mApp = app; mMaker = maker; mIndex = index; // notDone = true; } // ------------------------------------------------------------------- @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // requestWindowFeature(Window.FEATURE_NO_TITLE); initLayout( R.layout.plot_new_dialog, R.string.plot_new ); mEditName = (EditText) findViewById(R.id.edit_plot_name); mEditStart = (EditText) findViewById(R.id.edit_plot_start); // mEditProject = (EditText) findViewById(R.id.plot_project); mEditName.setText( Integer.toString( mIndex ) ); // if current station is set: String station = mApp.getCurrentOrLastStation(); if ( station != null ) mEditStart.setText( station ); mEditStart.setOnLongClickListener( this ); mBtnOK = (Button) findViewById(R.id.button_ok ); mBtnBack = (Button) findViewById(R.id.button_back ); mBtnOK.setOnClickListener( this ); mBtnBack.setOnClickListener( this ); mCBextended = (CheckBox)findViewById( R.id.button_extended ); mCBextended.setChecked( true ); // mEditProject.setVisibility( View.INVISIBLE ); // mCBextended.setOnClickListener( new View.OnClickListener() { // public void onClick( View v ) { // mEditProject.setVisibility( mCBextended.isChecked() ? View.INVISIBLE : View.VISIBLE ); // } // } ); if ( ! TDSetting.mLevelOverAdvanced ) { LinearLayout layout3 = (LinearLayout) findViewById( R.id.layout3 ); layout3.setVisibility( View.GONE ); } mKeyboard = new MyKeyboard( mContext, (KeyboardView)findViewById( R.id.keyboardview ), R.xml.my_keyboard_base_sign, R.xml.my_keyboard_qwerty ); if ( TDSetting.mKeyboard ) { MyKeyboard.registerEditText( mKeyboard, mEditName, MyKeyboard.FLAG_POINT_LCASE_2ND ); int flag = ( TDSetting.mStationNames == 1 ) ? MyKeyboard.FLAG_POINT : MyKeyboard.FLAG_POINT_LCASE_2ND; MyKeyboard.registerEditText( mKeyboard, mEditStart, flag); // MyKeyboard.registerEditText( mKeyboard, mEditProject, 0 ); // MyKeyboard.FLAG_POINT ); } else { mKeyboard.hide(); if ( TDSetting.mStationNames == 1 ) { mEditStart.setInputType( TDConst.NUMBER_DECIMAL ); } // mEditProject.setInputType( TDConst.NUMBER ); } } @Override public boolean onLongClick(View v) { CutNPaste.makePopup( mContext, (EditText)v ); return true; } // FIXME synchronized ? @Override public void onClick(View v) { CutNPaste.dismissPopup(); // When the user clicks, just finish this activity. // onPause will be called, and we save our data there. Button b = (Button) v; // TDLog.Log( TDLog.LOG_INPUT, "PlotDialog onClick() button " + b.getText().toString() ); if ( /* notDone && */ b == mBtnOK ) { // notDone = false; String name = mEditName.getText().toString().trim(); String start = mEditStart.getText().toString().trim(); // String view = mEditView.getText().toString(); // String view = null; if ( name == null ) { String error = mContext.getResources().getString( R.string.error_name_required ); mEditName.setError( error ); return; } name = TopoDroidUtil.noSpaces( name ); if ( name.length() == 0 ) { String error = mContext.getResources().getString( R.string.error_name_required ); mEditName.setError( error ); return; } if ( start == null ) { String error = mContext.getResources().getString( R.string.error_start_required ); mEditStart.setError( error ); return; } // start = TopoDroidUtil.noSpaces( start ); start = start.trim(); if ( start.length() == 0 ) { String error = mContext.getResources().getString( R.string.error_start_required ); mEditStart.setError( error ); return; } if ( mMaker.hasSurveyPlot( name ) ) { String error = mContext.getResources().getString( R.string.plot_duplicate_name ); mEditName.setError( error ); return; } if ( ! mMaker.hasSurveyStation( start ) ) { String error = mContext.getResources().getString( R.string.error_station_non_existing ); mEditStart.setError( error ); return; } boolean extended = true; // int project = 0; if ( TDSetting.mLevelOverAdvanced ) { extended = mCBextended.isChecked(); // if ( ! extended ) { // try { // project = Integer.parseInt( mEditProject.getText().toString() ); // } catch ( NumberFormatException e ) { } // } } if ( extended ) { mMaker.makeNewPlot( name, start, extended, 0 ); } else { mMaker.doProjectionDialog( name, start ); } } else if ( b == mBtnBack ) { /* nothing */ } dismiss(); } @Override public void onBackPressed() { if ( CutNPaste.dismissPopup() ) return; if ( TDSetting.mKeyboard ) { if ( mKeyboard.isVisible() ) { mKeyboard.hide(); return; } } dismiss(); } }