/** @file DrawingLineDialog.java
*
* @author marco corvi
* @date june 2012
*
* @brief TopoDroid sketch line attributes editing 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.widget.TextView;
import android.widget.EditText;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.CheckBox;
import android.widget.Spinner;
import android.widget.LinearLayout;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
public class DrawingLineDialog extends MyDialog
implements View.OnClickListener, AdapterView.OnItemSelectedListener
{
private DrawingLinePath mLine;
private DrawingWindow mParent;
private LinePoint mPoint;
private int mType;
private Spinner mETtype;
private EditText mEToptions;
private CheckBox mBtnOutlineOut;
private CheckBox mBtnOutlineIn;
// private RadioButton mBtnOutlineNone;
private Button mBtnOk;
private Button mBtnCancel;
private MyCheckBox mReversed;
private MyCheckBox mBtnSharp;
private MyCheckBox mBtnRock;
private MyCheckBox mBtnClose;
public DrawingLineDialog( Context context, DrawingWindow parent, DrawingLinePath line, LinePoint lp )
{
super( context, R.string.DrawingLineDialog );
mParent = parent;
mLine = line;
mPoint = lp;
mType = mLine.mLineType;
}
// -------------------------------------------------------------------
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
String title = String.format( mParent.getResources().getString( R.string.title_draw_line ),
BrushManager.mLineLib.getSymbolName( mLine.mLineType ) );
initLayout( R.layout.drawing_line_dialog, title );
mETtype = (Spinner) findViewById( R.id.line_type );
// mETtype.setText( BrushManager.mLineLib.getSymbolThName( mLine.mLineType ) );
ArrayAdapter adapter = new ArrayAdapter<String>( mContext, R.layout.menu, BrushManager.mLineLib.getSymbolNames() );
mETtype.setAdapter( adapter );
mETtype.setSelection( mType );
mETtype.setOnItemSelectedListener( this );
mEToptions = (EditText) findViewById( R.id.line_options );
mEToptions.setText( mLine.getOptionString() );
mBtnOutlineOut = (CheckBox) findViewById( R.id.line_outline_out );
mBtnOutlineIn = (CheckBox) findViewById( R.id.line_outline_in );
// mBtnOutlineNone = (RadioButton) findViewById( R.id.line_outline_none );
if ( mLine.mOutline == DrawingLinePath.OUTLINE_OUT ) {
mBtnOutlineOut.setChecked( true );
} else if ( mLine.mOutline == DrawingLinePath.OUTLINE_IN ) {
mBtnOutlineIn.setChecked( true );
// } else if ( mLine.mOutline == DrawingLinePath.OUTLINE_NONE ) {
// mBtnOutlineNone.setChecked( true );
}
// mReversed = (CheckBox) findViewById( R.id.line_reversed );
mBtnOutlineOut.setOnClickListener( this );
mBtnOutlineIn.setOnClickListener( this );
mBtnOk = (Button) findViewById( R.id.button_ok );
mBtnCancel = (Button) findViewById( R.id.button_cancel );
mBtnOk.setOnClickListener( this );
mBtnCancel.setOnClickListener( this );
int size = TopoDroidApp.getScaledSize( mContext );
mReversed = new MyCheckBox( mContext, size, R.drawable.iz_reverse_ok, R.drawable.iz_reverse_no );
mBtnSharp = new MyCheckBox( mContext, size, R.drawable.iz_sharp_ok, R.drawable.iz_sharp_no );
mBtnRock = new MyCheckBox( mContext, size, R.drawable.iz_rock_ok, R.drawable.iz_rock_no );
mBtnClose = new MyCheckBox( mContext, size, R.drawable.iz_close_ok, R.drawable.iz_close_no );
mReversed.setChecked( mLine.isReversed() );
mBtnClose.setChecked( mLine.isPathClosed() );
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT );
lp.setMargins( 0, 10, 20, 10 );
LinearLayout layout3 = (LinearLayout)findViewById( R.id.layout3 );
layout3.addView( mReversed, lp );
layout3.addView( mBtnSharp, lp );
layout3.addView( mBtnRock, lp );
layout3.addView( mBtnClose, lp );
}
@Override
public void onItemSelected( AdapterView av, View v, int pos, long id ) { mType = pos; }
@Override
public void onNothingSelected( AdapterView av ) { mType = mLine.mLineType; }
@Override
public void onClick(View v)
{
Button b = (Button)v;
// TDLog.Log( TDLog.LOG_INPUT, "DrawingLineDialog onClick() " + b.getText().toString() );
if ( b == mBtnOutlineIn ) {
mBtnOutlineOut.setChecked( false );
return;
} else if ( b == mBtnOutlineOut ) {
mBtnOutlineIn.setChecked( false );
return;
} else if ( b == mBtnOk ) {
if ( mType != mLine.mLineType ) mLine.setLineType( mType );
if ( mEToptions.getText() != null ) {
String options = mEToptions.getText().toString().trim();
if ( options.length() > 0 ) mLine.setOptions( options );
}
if ( mBtnOutlineOut.isChecked() ) mLine.mOutline = DrawingLinePath.OUTLINE_OUT;
else if ( mBtnOutlineIn.isChecked() ) mLine.mOutline = DrawingLinePath.OUTLINE_IN;
else /* if ( mBtnOutlineNone.isChecked() ) */ mLine.mOutline = DrawingLinePath.OUTLINE_NONE;
mLine.setReversed( mReversed.isChecked() );
if ( mBtnSharp.isChecked() ) {
mParent.sharpenLine( mLine );
}
if ( mBtnRock.isChecked() ) {
mParent.reduceLine( mLine );
}
if ( mBtnClose.isChecked() ) {
mParent.closeLine( mLine );
mLine.setClosed( true );
} else {
mLine.setClosed( false );
}
} else if ( b == mBtnCancel ) {
// nothing
}
dismiss();
}
}