Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wisp
GitHub Repository: wisp/impinj-reader-app
Path: blob/master/Logging/EditLogForm.cs
180 views
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.InteropServices;
using System.Threading;
using System.IO;
using System.Net;

using System.Diagnostics;

using ReaderLibrary;

namespace Logging
{
    public partial class EditLogForm : Form
    {
        private Logger logOptChosen;
        private LoggingManager log;

        private LoggingForm logForm;

        public EditLogForm(LoggingManager logNew, Logger chosen, LoggingForm logFormNew)
        {
            InitializeComponent();
            logOptChosen = chosen;
            log = logNew;
            logForm = logFormNew;
        }

        private void EditLogForm_Load(object sender, EventArgs e)
        {
            // set position of form
            base.Location = new Point(800, 500);

           ApplySettingsToForm(logOptChosen);
        }

        private void btnOpenLogDialog_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.Title = "Log File Name";
            string currTime = ((DateTime.Now.ToString()).Replace(":", ".")).Replace("/", "-");
            save.FileName = currTime + " - " + logOptChosen.GetName() + ".csv";
            save.ShowDialog();

            if (save.FileName != "")
            {
                txtLogFileName.Text = save.FileName;
            }
        }

        private void btnLogOptApply_Click(object sender, EventArgs e)
        {
            setLogOption();
            this.Close();
        }

        private void setLogOption()
        {
            BindingManagerBase bmOrders = logForm.BindingContext[log.getLogList()];
            bmOrders.SuspendBinding();

            logOptChosen.SetName(txtLogName.Text);
            logOptChosen.SetFileName(txtLogFileName.Text);

            logOptChosen.SetEnabled(chkEnableLog.Checked);


            List<Logger.LoggingOption> options = logOptChosen.getOptions();

            System.Collections.IEnumerator myEnumerator = options.GetEnumerator();

            while (myEnumerator.MoveNext())
            {
                Logger.LoggingOption option = (Logger.LoggingOption)(myEnumerator.Current);

                int idx = lstOptions.Items.IndexOf(option);
                bool sel = lstOptions.GetSelected(idx);
                int idx2 = options.IndexOf(option);
                //options[idx2].SetEnabled(sel);
                option.enabled = sel;
            }

            bmOrders.ResumeBinding();

            //logFrm.setLogOption(logOptChosen);
        }

        public Logger getLogOption()
        {
            return logOptChosen;
        }

        private void ApplySettingsToForm(Logger logOptChosen)
        {
            if (logOptChosen.IsEnabled())
            {
                chkEnableLog.Checked = true;
            }
            
            txtLogFileName.Text = logOptChosen.GetFileName();
            txtLogName.Text = logOptChosen.GetName();

            lstOptions.DataSource = logOptChosen.getOptions();

            List<Logger.LoggingOption> options = logOptChosen.getOptions();
            System.Collections.IEnumerator myEnumerator = options.GetEnumerator();

            while (myEnumerator.MoveNext())
            {
                Logger.LoggingOption option = (Logger.LoggingOption)(myEnumerator.Current);

                int idx = lstOptions.Items.IndexOf(option);
                int idx2 = options.IndexOf(option);
                lstOptions.SetSelected(idx, options[idx2].enabled);
            }

        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}