Пример #1
0
        private void ButtonDeleteScript_Click(object sender, EventArgs e)
        {
            Log.Debug(TAG, "ButtonDeleteScript_Click");

            CardTitle.Text = GetText(Resource.String.delete_script_card_title);

            CardSubtitle.Text = GetText(Resource.String.delete_script_card_sub_title);
            CardSubtitle.SetTextColor(Color.IndianRed);

            ScriptName.Enabled = false;

            ButtonOk.Enabled = false;
            ButtonOk.Text    = GetText(Resource.String.ok_mute_button_with_remove_script);

            DeleteScript.Enabled = false;
            DeleteScript.SetTextColor(Color.Gray);
            DeleteScript.Click -= ButtonDeleteScript_Click;

            CommandsScript.Enabled = false;
            CommandsScript.SetTextColor(Color.Gray);
            CommandsScript.Click -= ButtonConfigScript_Click;


            AppCompatTextView appCompatTextView = new AppCompatTextView(this)
            {
                Text = GetText(Resource.String.footer_text_with_remove_script), TextSize = 15
            };

            appCompatTextView.SetTextColor(Color.Red);
            appCompatTextView.SetWidth(3);
            FooterLayout.AddView(appCompatTextView);

            AppCompatButton ButtonConfirmDeleteScript = new AppCompatButton(this)
            {
                Text = GetText(Resource.String.button_confirm_remove)
            };

            ButtonConfirmDeleteScript.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
            ButtonConfirmDeleteScript.SetTextColor(Color.DarkRed);
            ButtonConfirmDeleteScript.Click += new EventHandler((sender, eventArg) =>
            {
                lock (DatabaseContext.DbLocker)
                {
                    using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase))
                    {
                        ScriptModel script = db.Scripts.Find(scriptHardware.Id);
                        db.Scripts.Remove(script);
                        db.SaveChanges();

                        StartActivity(typeof(ScriptsListActivity));
                    }
                }
            });
            FooterLayout.AddView(ButtonConfirmDeleteScript);
        }
Пример #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            Log.Debug(TAG, "OnCreate");
            base.OnCreate(savedInstanceState);

            lock (DatabaseContext.DbLocker)
            {
                using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase))
                {
                    scriptHardware = db.Scripts.Include(x => x.Commands).Include(x => x.TriggerPort).FirstOrDefault(x => x.Id == Intent.Extras.GetInt(nameof(ScriptModel.Id), 0));
                }
            }

            TopLayout    = FindViewById <LinearLayoutCompat>(Resource.Id.script_top_layout);
            FooterLayout = FindViewById <LinearLayoutCompat>(Resource.Id.script_footer_layout);

            CardTitle.Text    = GetText(Resource.String.script_edit_title);
            CardSubtitle.Text = GetText(Resource.String.script_edit_subtitle);

            DeleteScript = new AppCompatButton(this)
            {
                Text = GetText(Resource.String.delete_title)
            };
            DeleteScript.SetTextColor(Color.DarkRed);
            DeleteScript.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
            FooterLayout.AddView(DeleteScript);

            ButtonOk.Tag = scriptHardware.Id;

            CommandsScript = new AppCompatButton(this)
            {
                Text = $"{GetString(Resource.String.commands_title)} ({scriptHardware.Commands.Count})"
            };
            CommandsScript.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
            TopLayout.AddView(CommandsScript);

            StartScript = new AppCompatButton(this)
            {
                Text    = GetText(Resource.String.run_the_script_title),
                Enabled = scriptHardware.Commands.Count > 0
            };
            StartScript.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);


            TopLayout.AddView(StartScript);

            ScriptName.Text = scriptHardware.Name;
            if (scriptHardware.TriggerPort != null)
            {
                AutorunTrigger.Checked  = true;
                PortTrigger.Enabled     = true;
                HardwareTrigger.Enabled = true;
                StateTrigger.Enabled    = true;

                int indexPosition = Hardwares.Keys.ToList().IndexOf(scriptHardware.TriggerPort.HardwareId);
                HardwareTrigger.SetSelection(indexPosition);

                PortsList_UpdateSpinner(scriptHardware.TriggerPort.HardwareId, ref PortTrigger, scriptHardware.TriggerPort.Id);//, ref Ports

                string[] statuses = Resources.GetStringArray(Resource.Array.script_trigger_port_states_array);
                if (scriptHardware.TriggerPortState == true)
                {
                    indexPosition = Array.IndexOf(statuses, GetString(Resource.String.abc_capital_on));
                }
                else if (scriptHardware.TriggerPortState == false)
                {
                    indexPosition = Array.IndexOf(statuses, GetString(Resource.String.abc_capital_off));
                }
                else
                {
                    indexPosition = Array.IndexOf(statuses, GetString(Resource.String.abc_capital_switch));
                }
                StateTrigger.SetSelection(indexPosition);
            }
        }
Пример #3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            Log.Debug(TAG, "OnCreate");
            base.OnCreate(savedInstanceState);

            int CommandId = Intent.Extras.GetInt(nameof(CommandModel.Id), 0);

            if (CommandId > 0)
            {
                lock (DatabaseContext.DbLocker)
                {
                    using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase))
                    {
                        command = db.Commands.Include(x => x.Script).Include(x => x.PortExecutionCondition).ThenInclude(x => x.Hardware).FirstOrDefault(x => x.Id == CommandId);
                    }
                }
            }

            AbstractSettingsManage.Command = command;
            List <string> commands_types_array = new List <string>(Resources.GetStringArray(Resource.Array.commands_types_array));

            switch (command.TypeCommand)
            {
            case TypesCommands.Port:
                TypesCommand.SetSelection(commands_types_array.IndexOf(GetString(Resource.String.command_type_array_item_port)));
                break;

            case TypesCommands.Controller:
                TypesCommand.SetSelection(commands_types_array.IndexOf(GetString(Resource.String.command_type_array_item_controller)));
                break;

            case TypesCommands.Exit:
                TypesCommand.SetSelection(commands_types_array.IndexOf(GetString(Resource.String.command_type_array_item_transit)));
                break;
            }

            ScriptId = command.ScriptId;

            DeleteCommand = new AppCompatButton(this)
            {
                Text = GetText(Resource.String.delete_title)
            };
            DeleteCommand.SetTextColor(Color.DarkRed);
            DeleteCommand.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent);
            FooterLayout.AddView(DeleteCommand);

            HiddenCommandCheckBox.Checked = command.Hidden;
            CardTitle.Text    = command.Script.ToString();
            CardSubtitle.Text = command.ToString();
            PauseSecondsBeforeStarting.Text = command.PauseBeforeExecution.ToString();

            if (command.PortExecutionCondition != null)
            {
                RequiredCondition.Checked = true;

                HardwareCondition.Enabled = true;
                HardwareCondition.SetSelection(Hardwares.Keys.ToList().IndexOf(command.PortExecutionCondition.HardwareId));

                PortCondition.Enabled = true;
                PortsList_UpdateSpinner(command.PortExecutionCondition.HardwareId, ref PortCondition, command.PortExecutionCondition.Id);
                //PortCondition.SetSelection(Ports.Keys.ToList().IndexOf(command.PortExecutionCondition.Id));

                StateCondition.Enabled = true;
                StateCondition.SetSelection(GetIndexPortState(command.PortExecutionConditionAllowingState, new List <string>(Resources.GetStringArray(Resource.Array.required_condition_port_states_array))));
            }
        }