Ejemplo n.º 1
0
        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();
		}
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }