protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.LayoutSenhaCal); var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar); SetSupportActionBar(toolbar); SupportActionBar.Title = "LIBERAÇÃO CALIBRAÇÃO"; SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.SetHomeButtonEnabled(true); Android.Support.V7.Widget.AppCompatImageButton BtnSair = FindViewById <Android.Support.V7.Widget.AppCompatImageButton>(Resource.Id.BtnSair); Android.Support.V7.Widget.AppCompatImageButton BtnSalvar = FindViewById <Android.Support.V7.Widget.AppCompatImageButton>(Resource.Id.BtnSalvar); Android.Support.V7.Widget.AppCompatEditText Senha = FindViewById <Android.Support.V7.Widget.AppCompatEditText>(Resource.Id.TxtSenha); Window.SetSoftInputMode(SoftInput.StateHidden); BtnSair.Click += delegate { Finish(); }; BtnSalvar.Click += delegate { if (Senha.Text != "2901") { Toast.MakeText(this, "SENHA INVÁLIDA !", ToastLength.Short).Show(); return; } else { Validacoes.SenhaCalibracao = true; Toast.MakeText(this, "SENHA VÁLIDA !", ToastLength.Short).Show(); Finish(); } }; }
private void ListView_Click(int position) { if (adapter.Count == 0) { Refresh(); if (adapter.Count == 0) Show("항목이 없습니다"); return; } var jobFile = adapter.GetItem(position); if (jobFile.JobCount.Total == 0) { Show("CN 항목이 없습니다"); return; } InputMethodManager imm = (InputMethodManager)Context.GetSystemService(Context.InputMethodService); View dialogView = LayoutInflater.From(Context).Inflate(Resource.Layout.weld_count_editor, null); AlertDialog.Builder dialog = new AlertDialog.Builder(Context); dialog.SetView(dialogView); var statusText = dialogView.FindViewById<TextView>(Resource.Id.statusText); statusText.Text = "계열 수정 (CN: " + jobFile.JobCount.Total.ToString() + "개)"; var linearLayout = dialogView.FindViewById<LinearLayout>(Resource.Id.linearLayout); var etBeginNumber = dialogView.FindViewById<EditText>(Resource.Id.etBeginNumber); var sbBeginNumber = dialogView.FindViewById<SeekBar>(Resource.Id.sampleSeekBar); var etList = new List<EditText>(); for (int i = 0; i < jobFile.Count; i++) { if (jobFile[i].RowType == Job.RowTypes.Spot) { var textInputLayout = new TextInputLayout(Context); var etCN = new EditText(Context); etCN.SetSingleLine(); etCN.SetTextSize(ComplexUnitType.Dip, 12); etCN.InputType = etBeginNumber.InputType; etCN.SetSelectAllOnFocus(true); etCN.Hint = "CN[" + jobFile[i].RowNumber + "]"; etCN.Text = jobFile[i].CN; etCN.Gravity = GravityFlags.Center; etCN.Tag = jobFile[i]; etCN.FocusChange += (object sender1, View.FocusChangeEventArgs e1) => { int beginNumber; if (Int32.TryParse(etCN.Text, out beginNumber)) { if (beginNumber > 255) { beginNumber = 255; etCN.Text = beginNumber.ToString(); } } }; etCN.KeyPress += (object sender1, View.KeyEventArgs e1) => { e1.Handled = false; if (e1.KeyCode == Keycode.Enter || e1.KeyCode == Keycode.Back || e1.KeyCode == Keycode.Escape) { imm.HideSoftInputFromWindow(etCN.WindowToken, 0); etCN.ClearFocus(); e1.Handled = true; } }; textInputLayout.AddView(etCN); linearLayout.AddView(textInputLayout); etList.Add(etCN); } } etBeginNumber.FocusChange += (object sender1, View.FocusChangeEventArgs e1) => { int beginNumber; if (int.TryParse(etBeginNumber.Text, out beginNumber)) { if (beginNumber > 255) { beginNumber = 255; etBeginNumber.Text = beginNumber.ToString(); } sbBeginNumber.Progress = beginNumber - 1; foreach (var et in etList) { et.Text = beginNumber++.ToString(); if (beginNumber > 255) beginNumber = 255; } } }; etBeginNumber.KeyPress += (object sender1, View.KeyEventArgs e1) => { e1.Handled = false; if (e1.KeyCode == Keycode.Enter || e1.KeyCode == Keycode.Back || e1.KeyCode == Keycode.Escape) { imm.HideSoftInputFromWindow(etBeginNumber.WindowToken, 0); etBeginNumber.ClearFocus(); e1.Handled = true; } }; sbBeginNumber.Max = 254; sbBeginNumber.Progress = 0; sbBeginNumber.ProgressChanged += (object sender1, SeekBar.ProgressChangedEventArgs e1) => { int beginNumber = sbBeginNumber.Progress + 1; etBeginNumber.Text = beginNumber.ToString(); }; sbBeginNumber.StopTrackingTouch += (object sender1, SeekBar.StopTrackingTouchEventArgs e1) => { int beginNumber = sbBeginNumber.Progress + 1; etBeginNumber.Text = beginNumber.ToString(); foreach (var et in etList) { et.Text = beginNumber++.ToString(); if (beginNumber > 255) beginNumber = 255; } }; dialog.SetNegativeButton("취소", delegate { }); dialog.SetPositiveButton("저장", delegate { foreach (var et in etList) { var job = (Job)et.Tag; job.CN = et.Text; } if (jobFile.JobCount.Total > 0) { jobFile.SaveFile(); adapter.NotifyDataSetChanged(); listView.RefreshDrawableState(); this.Show((string)("저장 완료: " + jobFile.JobCount.fi.Name)); } }); dialog.Show(); }
private void ListView_Click(int position) { if (adapter.Count == 0) { Refresh(); if (adapter.Count == 0) { Show("항목이 없습니다"); } return; } var jobFile = adapter.GetItem(position); if (jobFile.JobCount.Total == 0) { Show("CN 항목이 없습니다"); return; } InputMethodManager imm = (InputMethodManager)Context.GetSystemService(Context.InputMethodService); View dialogView = LayoutInflater.From(Context).Inflate(Resource.Layout.weld_count_editor, null); AlertDialog.Builder dialog = new AlertDialog.Builder(Context); dialog.SetView(dialogView); var statusText = dialogView.FindViewById <TextView>(Resource.Id.statusText); statusText.Text = "계열 수정 (CN: " + jobFile.JobCount.Total.ToString() + "개)"; var linearLayout = dialogView.FindViewById <LinearLayout>(Resource.Id.linearLayout); var etBeginNumber = dialogView.FindViewById <EditText>(Resource.Id.etBeginNumber); var sbBeginNumber = dialogView.FindViewById <SeekBar>(Resource.Id.sampleSeekBar); var etList = new List <EditText>(); for (int i = 0; i < jobFile.Count; i++) { if (jobFile[i].RowType == Job.RowTypes.Spot) { var textInputLayout = new TextInputLayout(Context); var etCN = new EditText(Context); etCN.SetSingleLine(); etCN.SetTextSize(ComplexUnitType.Dip, 12); etCN.InputType = etBeginNumber.InputType; etCN.SetSelectAllOnFocus(true); etCN.Hint = "CN[" + jobFile[i].RowNumber + "]"; etCN.Text = jobFile[i].CN; etCN.Gravity = GravityFlags.Center; etCN.Tag = jobFile[i]; etCN.FocusChange += (object sender1, View.FocusChangeEventArgs e1) => { int beginNumber; if (Int32.TryParse(etCN.Text, out beginNumber)) { if (beginNumber > 255) { beginNumber = 255; etCN.Text = beginNumber.ToString(); } } }; etCN.KeyPress += (object sender1, View.KeyEventArgs e1) => { e1.Handled = false; if (e1.KeyCode == Keycode.Enter || e1.KeyCode == Keycode.Back || e1.KeyCode == Keycode.Escape) { imm.HideSoftInputFromWindow(etCN.WindowToken, 0); etCN.ClearFocus(); e1.Handled = true; } }; textInputLayout.AddView(etCN); linearLayout.AddView(textInputLayout); etList.Add(etCN); } } etBeginNumber.FocusChange += (object sender1, View.FocusChangeEventArgs e1) => { int beginNumber; if (int.TryParse(etBeginNumber.Text, out beginNumber)) { if (beginNumber > 255) { beginNumber = 255; etBeginNumber.Text = beginNumber.ToString(); } sbBeginNumber.Progress = beginNumber - 1; foreach (var et in etList) { et.Text = beginNumber++.ToString(); if (beginNumber > 255) { beginNumber = 255; } } } }; etBeginNumber.KeyPress += (object sender1, View.KeyEventArgs e1) => { e1.Handled = false; if (e1.KeyCode == Keycode.Enter || e1.KeyCode == Keycode.Back || e1.KeyCode == Keycode.Escape) { imm.HideSoftInputFromWindow(etBeginNumber.WindowToken, 0); etBeginNumber.ClearFocus(); e1.Handled = true; } }; sbBeginNumber.Max = 254; sbBeginNumber.Progress = 0; sbBeginNumber.ProgressChanged += (object sender1, SeekBar.ProgressChangedEventArgs e1) => { int beginNumber = sbBeginNumber.Progress + 1; etBeginNumber.Text = beginNumber.ToString(); }; sbBeginNumber.StopTrackingTouch += (object sender1, SeekBar.StopTrackingTouchEventArgs e1) => { int beginNumber = sbBeginNumber.Progress + 1; etBeginNumber.Text = beginNumber.ToString(); foreach (var et in etList) { et.Text = beginNumber++.ToString(); if (beginNumber > 255) { beginNumber = 255; } } }; dialog.SetNegativeButton("취소", delegate { }); dialog.SetPositiveButton("저장", delegate { foreach (var et in etList) { var job = (Job)et.Tag; job.CN = et.Text; } if (jobFile.JobCount.Total > 0) { jobFile.SaveFile(); adapter.NotifyDataSetChanged(); listView.RefreshDrawableState(); this.Show((string)("저장 완료: " + jobFile.JobCount.fi.Name)); } }); dialog.Show(); }
private void FabWcd_Click(object sender, EventArgs e) { if (snackbar != null) { snackbar.Dismiss(); snackbar = null; } if (wcdListAdapter.Count == 0) { Refresh(); if (wcdListAdapter.Count == 0) { Show("항목이 없습니다"); } return; } List <int> positions = new List <int>(); try { SparseBooleanArray checkedList = listView.CheckedItemPositions; for (int i = 0; i < checkedList.Size(); i++) { if (checkedList.ValueAt(i)) { positions.Add(checkedList.KeyAt(i)); } } if (positions.Count == 0) { lastPosition = 0; } } catch { return; } View dialogView = LayoutInflater.From(Context).Inflate(Resource.Layout.weld_condition_editor, null); AlertDialog.Builder dialog = new AlertDialog.Builder(Context); dialog.SetView(dialogView); // 에디트텍스트 IList <EditText> etList = new List <EditText>(); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etOutputData)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etOutputType)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etSqueezeForce)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etMoveTipClearance)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etFixedTipClearance)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etPannelThickness)); etList.Add(dialogView.FindViewById <EditText>(Resource.Id.etCommandOffset)); int[] etMax = { 2000, 100, 350, 500, 500, 500, 500, 1000, 1000 }; // 임계치 InputMethodManager imm = (InputMethodManager)Context.GetSystemService(Context.InputMethodService); for (int i = 0; i < etList.Count; i++) { EditText et = etList[i]; if (i == 0) // outputData { et.Text = wcdListAdapter[lastPosition][i]; // 기본선택된 자료값 가져오기 } int maxValue = etMax[i]; // 임계치 설정 et.FocusChange += (object sender1, View.FocusChangeEventArgs e1) => { int n; if (Int32.TryParse(et.Text, out n)) { if (n > maxValue) { n = maxValue; et.Text = n.ToString(); } } }; et.KeyPress += (object sender1, View.KeyEventArgs e1) => { // KeyEventArgs.Handled // 라우트된 이벤트를 처리된 것으로 표시하려면 true이고, // 라우트된 이벤트를 처리되지 않은 것으로 두어 이벤트가 추가로 라우트되도록 허용하려면 false입니다. // 기본값은 false입니다. e1.Handled = false; if (e1.KeyCode == Keycode.Enter || e1.KeyCode == Keycode.Back || e1.KeyCode == Keycode.Escape) { imm.HideSoftInputFromWindow(et.WindowToken, 0); et.ClearFocus(); e1.Handled = true; } }; } var statusText = dialogView.FindViewById <TextView>(Resource.Id.statusText); statusText.Text = wcdListAdapter[lastPosition][0]; if (positions.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (int pos in positions) { sb.Append(pos + 1); sb.Append(" "); } statusText.Text = "수정 항목: " + sb.ToString().TrimEnd(); } else { statusText.Text = "수정 항목: " + (lastPosition + 1).ToString(); } var sampleSeekBar = dialogView.FindViewById <SeekBar>(Resource.Id.sampleSeekBar); sampleSeekBar.Max = wcdListAdapter.Count - 1; sampleSeekBar.Progress = Convert.ToInt32(wcdListAdapter[lastPosition][0]) - 1; sampleSeekBar.ProgressChanged += (object sender1, SeekBar.ProgressChangedEventArgs e1) => { for (int i = 0; i < wcdListAdapter[sampleSeekBar.Progress].Count; i++) { if (etList[i].Text != "") { etList[i].Text = wcdListAdapter[sampleSeekBar.Progress][i]; } } if (positions.Count == 0) { lastPosition = sampleSeekBar.Progress; statusText.Text = "수정 항목: " + (lastPosition + 1).ToString(); } }; // 선택 시작 var beginSeekBar = dialogView.FindViewById <SeekBar>(Resource.Id.sbBegin); beginSeekBar.Max = wcdListAdapter.Count - 1; beginSeekBar.Progress = 0; // 선택 끝 var endSeekBar = dialogView.FindViewById <SeekBar>(Resource.Id.sbEnd); endSeekBar.Max = wcdListAdapter.Count - 1; endSeekBar.Progress = endSeekBar.Max; beginSeekBar.ProgressChanged += (object sender1, SeekBar.ProgressChangedEventArgs e1) => { if (e1.FromUser) { int sb1Progress = beginSeekBar.Progress; int sb2Progress = endSeekBar.Max - endSeekBar.Progress; if (sb1Progress > sb2Progress) { sb2Progress = sb1Progress; endSeekBar.Progress = endSeekBar.Max - sb1Progress; } if (sb1Progress == 0 && sb2Progress == 0 || sb1Progress == beginSeekBar.Max && sb2Progress == endSeekBar.Max) { if (positions.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (int pos in positions) { sb.Append(pos + 1); sb.Append(" "); } statusText.Text = "수정 항목: " + sb.ToString().TrimEnd(); } else { statusText.Text = "수정 항목: " + (lastPosition + 1).ToString(); } } else { statusText.Text = "수정 범위: " + string.Format("{0}", sb1Progress + 1) + " ~ " + string.Format("{0}", sb2Progress + 1); } } }; endSeekBar.ProgressChanged += (object sender2, SeekBar.ProgressChangedEventArgs e2) => { if (e2.FromUser) { int sb1Progress = beginSeekBar.Progress; int sb2Progress = endSeekBar.Max - endSeekBar.Progress; if (sb2Progress < sb1Progress) { sb1Progress = sb2Progress; beginSeekBar.Progress = sb2Progress; } if (sb1Progress == 0 && sb2Progress == 0 || sb1Progress == beginSeekBar.Max && sb2Progress == endSeekBar.Max) { if (positions.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (int pos in positions) { sb.Append(pos + 1); sb.Append(" "); } statusText.Text = "수정 항목: " + sb.ToString().TrimEnd(); } else { statusText.Text = "수정 항목: " + (lastPosition + 1).ToString(); } } else { statusText.Text = "수정 범위: " + string.Format("{0}", sb1Progress + 1) + " ~ " + string.Format("{0}", sb2Progress + 1); } } }; dialog.SetNegativeButton("취소", delegate { CheckListItem(false); }); dialog.SetPositiveButton("저장", async delegate { int seekBegin = beginSeekBar.Progress + 1; int seekEnd = endSeekBar.Max - endSeekBar.Progress + 1; bool isSeek = !((seekBegin == 1 && seekEnd == 1) || (seekBegin == beginSeekBar.Max + 1 && seekEnd == endSeekBar.Max + 1)); bool isUpdate = false; if (positions.Count == 0) { positions.Add(lastPosition); } if (isSeek) { positions.Clear(); for (int rowNum = seekBegin - 1; rowNum < seekEnd; rowNum++) { positions.Add(rowNum); } } foreach (int rowNum in positions) { for (int colNum = 1; colNum < wcdListAdapter[rowNum].Count; colNum++) { if (etList[colNum].Text != "") { wcdListAdapter[rowNum][colNum] = etList[colNum].Text; isUpdate = true; } } listView.SetItemChecked(rowNum, false); wcdListAdapter[rowNum].ItemChecked = false; } if (isUpdate) { wcdListAdapter.NotifyDataSetChanged(); await UpdateFileAsync(robotPath, wcdListAdapter); } else { CheckListItem(false); } try { if (wcdListAdapter.Count == 0) { fabWcd.SetImageResource(Resource.Drawable.ic_refresh_white); } else if (listView.CheckedItemCount == 0) { fabWcd.SetImageResource(Resource.Drawable.ic_subject_white); } else { fabWcd.SetImageResource(Resource.Drawable.ic_edit_white); } } catch { } }); dialog.Show(); }