Exemple #1
0
        private void FunctionButtonList_ItemSelected(object sender, FunctionViewModel model)
        {
            BlockNavigator.SetFocus(sender as FrameworkElement, DialAreaControl);
            BlockNavigator.EnterNestedNavigator(DialAreaControl);

            if (_formState == FormState.DialAreaMode)
            {
                DialAreaControl.ReplaceSelectedItem(model);
                _hasUnsavedChanges = true;
            }
            else if (_formState == FormState.FunctionButtonsMode)
            {
                _functionsSelection = model;
                _hasUnsavedChanges  = true;
            }
            DialAreaControl.Enable();
        }
Exemple #2
0
        private void DialArea_ItemPicked(FrameworkElement sender, FunctionViewModel obj)
        {
            if (_formState == FormState.DialAreaMode)
            {
                _dialAreaSelection = DialAreaControl.Selection;
                DialAreaControl.Disable();
                BlockNavigator.SetFocus(sender, FunctionButtonList.GetFirstItemElement());
            }

            else if (_formState == FormState.FunctionButtonsMode)
            {
                DialAreaControl.ReplaceSelectedItem(_functionsSelection);
                DialAreaControl.Reset();
                DialAreaControl.Disable();
                BlockNavigator.SetFocus(sender, FunctionButtonList.GetFirstItemElement());
            }
        }
Exemple #3
0
        private async void SaveChanges()
        {
            var data    = DialAreaControl.GetData().ToArray();
            var ctx     = new SaveData.SaveData();
            var profile = ctx.Profiles.First(p => p.Id == _editorFormData.Profile.Id);

            SaveData.Models.Function[] functions;
            {
                var functionIds = data.Select(p => p.Function.Id).ToArray();
                functions = ctx.Functions.Where(p => functionIds.Contains(p.Id)).ToArray();
            }

            foreach (var item in data)
            {
                item.Profile  = profile;
                item.Function = functions.First(p => p.Id == item.Function.Id);
            }

            var existing = ctx.PanelButtons.Where(p => p.Profile.Id == profile.Id).ToArray();

            ctx.PanelButtons.RemoveRange(existing);
            ctx.PanelButtons.AddRange(data);
            await ctx.SaveChangesAsync();
        }
Exemple #4
0
 private void LoadProfile(EditorFormData data)
 {
     _editorFormData = data;
     DialAreaControl.LoadPanel(data.PanelButtons);
 }