Exemple #1
0
        /// <summary>
        /// 現在のノードの親とノードの間にノードを挿入
        /// </summary>
        public Node InsertParent()
        {
            if (Parent == null)
            {
                return(null);
            }

            var node = new Node(Parent);

            node.children.Add((Node)this);

            var old_value = Parent.children;
            var new_value = new List <Node>(Parent.children);

            for (int i = 0; i < new_value.Count; i++)
            {
                if (new_value[i] == this)
                {
                    new_value[i] = node;
                    break;
                }
            }

            var parent = Parent;
            var _this  = this;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                parent.children = new_value;
                _this.Parent    = node;
                if (parent.OnAfterRemoveNode != null)
                {
                    parent.OnAfterRemoveNode(parent, new ChangedValueEventArgs(_this, ChangedValueType.Execute));
                }

                if (parent.OnAfterAddNode != null)
                {
                    parent.OnAfterAddNode(parent, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                }
            },
                () =>
            {
                parent.children = old_value;
                _this.Parent    = parent;
                if (parent.OnAfterAddNode != null)
                {
                    parent.OnAfterAddNode(this, new ChangedValueEventArgs(_this, ChangedValueType.Unexecute));
                }

                if (parent.OnAfterRemoveNode != null)
                {
                    parent.OnAfterRemoveNode(parent, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);

            return(node);
        }
Exemple #2
0
        public bool Add()
        {
            if (values.Count >= 16)
            {
                return(false);
            }

            var old_value = values;
            var new_value = new List <DynamicEquation>(values);

            new_value.Add(new DynamicEquation(DynamicEquation.DefaultName, this));


            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values = old_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
Exemple #3
0
        public void SetColorSpace(ColorSpace colorSpace, bool isCombined = false)
        {
            ColorSpace oldval = ColorSpace;
            ColorSpace newval = colorSpace;

            if (oldval == newval)
            {
                return;
            }

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _colorSpace = newval;
                CallChangedColorSpace(false, ChangedValueType.Execute);
            },
                () =>
            {
                _colorSpace = oldval;
                CallChangedColorSpace(false, ChangedValueType.Unexecute);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #4
0
 public ReactionVM()
 {
     enableUpdate              = true;
     Stages                    = new ObservableCollection <StageVM>();
     Stages.CollectionChanged += Stages_CollectionChanged;
     DeleteStage               = new Command.DelegateCommand(this.RemoveStage);
 }
Exemple #5
0
        public bool Delete(DynamicEquation o)
        {
            if (o == null)
            {
                return(false);
            }

            var old_value = values;
            var new_value = new List <DynamicEquation>(values);

            new_value.Remove(o);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values = old_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
Exemple #6
0
		public void SetValue(int value, bool isCombined = false)
		{
			value = value.Clipping(_max, _min);

			if (value == _value) return;

			int old_value = _value;
			int new_value = value;
			bool old_IsValueAssigned = IsValueAssigned;

			var cmd = new Command.DelegateCommand(
				() =>
				{
					_value = new_value;
					IsValueAssigned = true;

					CallChanged(new_value, ChangedValueType.Execute);
				},
				() =>
				{
					_value = old_value;
					IsValueAssigned = old_IsValueAssigned;

					CallChanged(old_value, ChangedValueType.Unexecute);
				},
				this,
				isCombined);

			Command.CommandManager.Execute(cmd);
		}
Exemple #7
0
        /// <summary>
        /// 子ノードの追加
        /// </summary>
        /// <returns></returns>
        public Node AddChild()
        {
            var node = new Node(this);

            var old_value = children;
            var new_value = new List <Node>(children);

            new_value.Add(node);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                children = new_value;

                if (OnAfterAddNode != null)
                {
                    OnAfterAddNode(this, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                }
            },
                () =>
            {
                children = old_value;

                if (OnAfterRemoveNode != null)
                {
                    OnAfterRemoveNode(this, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);

            return(node);
        }
Exemple #8
0
        public PopupVM()
        {
            TanChemicalVMList = new ObservableCollection <TanChemicalVM>();
            SearchSites       = new ObservableCollection <SearchSite>()
            {
                new SearchSite {
                    Code = "CAS", Url = @"http://www.commonchemistry.org/search.aspx?terms="
                },
                new SearchSite {
                    Code = "WIKI", Url = @"https://en.wikipedia.org/wiki/"
                }
            };
            S8000Metas           = new ObservableCollection <S8000MetaVM>();
            SelectedChemicalType = ChemicalType.NUM;

            SelectedSite = SearchSites.First();
            DisableAdd();
            (App.Current.MainWindow as MainWindow).PublishNUMAssign    += PopupViewModel_PublishNUMAssign;
            (App.Current.MainWindow as MainWindow).SerializedTanLoaded += PopupViewModel_TANLoaded;
            //mainViewModelParticipantTypeChanged
            EditChemical        = new Command.DelegateCommand(this.EditTanChemical);
            DeleteChemical      = new Command.DelegateCommand(this.DeleteTanChemical);
            AddS8000Chemical    = new Command.DelegateCommand(this.Add8000SeriesChemical);
            OpenEditViewCommand = new Command.DelegateCommand(this.OpenEditView);
            AddChemical         = new Command.DelegateCommand(this.AddParticipant);
            AddAsParticipant    = true;
            SelectedTabIndex    = 0;
        }
Exemple #9
0
        public void SetDynamicEquation(DynamicEquation param)
        {
            if (param == DynamicEquation)
            {
                return;
            }

            var old_value = DynamicEquation;
            var new_value = param;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                DynamicEquation = new_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(new_value, ChangedValueType.Execute));
                }
            },
                () =>
            {
                DynamicEquation = old_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(old_value, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);
        }
Exemple #10
0
        public void SetAbsolutePath(string abspath)
        {
            if (abspath == _abspath)
            {
                return;
            }

            var old_value = _abspath;
            var new_value = abspath;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _abspath = new_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(new_value, ChangedValueType.Execute));
                }
            },
                () =>
            {
                _abspath = old_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(old_value, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);
        }
Exemple #11
0
        public void Add()
        {
            var old_value = values;
            var new_value = new List <DynamicInput>(values);

            new_value.Add(new DynamicInput());


            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values = old_value;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);
        }
Exemple #12
0
        public void SetValue(float value, bool isCombined = false)
        {
            value = value.Clipping(_max, _min);

            if (value == _value)
            {
                return;
            }

            float old_value = _value;
            float new_value = value;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _value = new_value;

                CallChanged(new_value, ChangedValueType.Execute);
            },
                () =>
            {
                _value = old_value;

                CallChanged(old_value, ChangedValueType.Unexecute);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #13
0
        public void SetValue(string value)
        {
            if (value == _value)
            {
                return;
            }

            string old_value = _value;
            string new_value = value;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _value = new_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(new_value, ChangedValueType.Execute));
                }
            },
                () =>
            {
                _value = old_value;

                if (OnChanged != null)
                {
                    OnChanged(this, new ChangedValueEventArgs(old_value, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);
        }
Exemple #14
0
        public void Clear()
        {
            var old_values   = values;
            var old_selected = selected;
            var new_values   = new List <ObjectHolder <T> >();

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_values;

                AssignIndexes(values);
                selected = null;

                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values = old_values;

                AssignIndexes(values);

                selected = old_selected;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);
        }
Exemple #15
0
        public void SetColorSpace(ColorSpace colorSpace, bool isColorConverted, bool isCombined)
        {
            ColorSpace oldval = ColorSpace;
            ColorSpace newval = colorSpace;

            if (oldval == newval)
            {
                return;
            }

            int old_r = R.Value;
            int old_g = G.Value;
            int old_b = B.Value;
            int old_a = A.Value;

            Utl.RGBHSVColor color;

            color.RH = old_r;
            color.GS = old_g;
            color.BV = old_b;

            if (isColorConverted)
            {
                if (newval == ColorSpace.HSVA)
                {
                    color = Utl.RGBHSVColor.RGBToHSV(color);
                }
                else
                {
                    color = Utl.RGBHSVColor.HSVToRGB(color);
                }
            }

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _colorSpace = newval;

                R.SetValueDirectly(color.RH);
                G.SetValueDirectly(color.GS);
                B.SetValueDirectly(color.BV);

                CallChangedColorSpace(false, ChangedValueType.Execute);
            },
                () =>
            {
                R.SetValueDirectly(old_r);
                G.SetValueDirectly(old_g);
                B.SetValueDirectly(old_b);

                _colorSpace = oldval;
                CallChangedColorSpace(false, ChangedValueType.Unexecute);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #16
0
        public bool Delete(T o)
        {
            if (o == null)
            {
                return(false);
            }

            var removing_holder = values.FirstOrDefault(_ => _.Value == o);
            var old_index       = values.FindIndex(_ => _.Value == o);
            var old_values      = values;
            var new_values      = new List <ObjectHolder <T> >(values);

            new_values.Remove(removing_holder);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_values;

                AssignIndexes(values);

                removing_holder.Index = -1;

                if (old_index < values.Count)
                {
                    selected = new_values[old_index].Value;
                }
                else if (old_index > 0 && values.Count > 0)
                {
                    selected = new_values[old_index - 1].Value;
                }
                else
                {
                    selected = null;
                }

                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values = old_values;

                AssignIndexes(values);

                selected = o;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
 public ValidationVM()
 {
     ValidationErrors        = new ObservableCollection <ViewModels.ValidationError>();
     ValidationWarnings      = new ObservableCollection <ViewModels.ValidationError>();
     ErrorsInfo              = "Errors";
     WarningInfo             = "Warnings";
     SwitchToSelectedError   = new Command.DelegateCommand(this.GoToSelectedReaction);
     SwitchToSelectedWarning = new Command.DelegateCommand(this.GoToSelectedReaction);
 }
Exemple #18
0
 public TaskSheetVM()
 {
     RefreshClick            = new Command.DelegateCommand(this.LoadTasks);
     GetTasks                = new DelegateCommand(this.PullTasks);
     MouseDoubleClickCommand = new DelegateCommand(this.GetSelectedRow);
     ButtonEnable            = true;
     ProgressBarVisibility   = Visibility.Hidden;
     LoadTasks(U.RoleId, false).ContinueWith(r => { });
 }
Exemple #19
0
        /// <summary>
        /// Add child
        /// </summary>
        /// <param name="node">Added node (if null, generated automatically)</param>
        /// <param name="index">inserted position</param>
        /// <returns></returns>
        public Node AddChild(Node node = null, int index = int.MaxValue)
        {
            if (node == null)
            {
                node = new Node(this);
            }

            var old_parent = node.Parent;
            var new_parent = this;
            var old_value  = children;
            var new_value  = new List <Node>(children);

            if (index == int.MaxValue)
            {
                new_value.Add(node);
            }
            else
            {
                if (index >= children.Count)
                {
                    new_value.Add(node);
                }
                else
                {
                    new_value.Insert(index, node);
                }
            }

            var cmd = new Command.DelegateCommand(
                () =>
            {
                children    = new_value;
                node.Parent = new_parent;

                if (OnAfterAddNode != null)
                {
                    OnAfterAddNode(this, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                }
            },
                () =>
            {
                children    = old_value;
                node.Parent = old_parent;

                if (OnAfterRemoveNode != null)
                {
                    OnAfterRemoveNode(this, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);

            return(node);
        }
Exemple #20
0
        public void SetMax(int r, int g, int b, int a = -1, bool isCombined = false)
        {
            if (
                r == R.GetMax() &&
                g == G.GetMax() &&
                b == B.GetMax() &&
                a == A.GetMax())
            {
                return;
            }

            int old_r = R.GetMax();
            int new_r = r;

            int old_g = G.GetMax();
            int new_g = g;

            int old_b = B.GetMax();
            int new_b = b;

            int old_a = A.GetMax();
            int new_a = a;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                R.SetMaxDirectly(new_r);
                G.SetMaxDirectly(new_g);
                B.SetMaxDirectly(new_b);
                A.SetMaxDirectly(new_a);

                R.CallChanged(new_r, ChangedValueType.Execute);
                G.CallChanged(new_g, ChangedValueType.Execute);
                B.CallChanged(new_b, ChangedValueType.Execute);
                A.CallChanged(new_a, ChangedValueType.Execute);
            },
                () =>
            {
                R.SetMaxDirectly(old_r);
                G.SetMaxDirectly(old_g);
                B.SetMaxDirectly(old_b);
                A.SetMaxDirectly(old_a);

                R.CallChanged(old_r, ChangedValueType.Unexecute);
                G.CallChanged(old_g, ChangedValueType.Unexecute);
                B.CallChanged(old_b, ChangedValueType.Unexecute);
                A.CallChanged(old_a, ChangedValueType.Unexecute);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #21
0
        /// <summary>
        /// Exchange children each other
        /// </summary>
        /// <param name="node1"></param>
        /// <param name="node2"></param>
        /// <returns></returns>
        public bool ExchangeChildren(Node node1, Node node2)
        {
            if (node1 == node2)
            {
                return(false);
            }
            if (!children.Contains(node1))
            {
                return(false);
            }
            if (!children.Contains(node2))
            {
                return(false);
            }

            var old_value = children;
            var new_value = new List <Node>(children);
            var ind1      = new_value.FindIndex((n) => { return(n == node1); });
            var ind2      = new_value.FindIndex((n) => { return(n == node2); });

            new_value[ind1] = node2;
            new_value[ind2] = node1;



            var cmd = new Command.DelegateCommand(
                () =>
            {
                Tuple <Node, Node> nodes = new Tuple <Node, Node>(node1, node2);
                children = new_value;

                if (OnAfterExchangeNodes != null)
                {
                    OnAfterExchangeNodes(this, new ChangedValueEventArgs(nodes, ChangedValueType.Execute));
                }
            },
                () =>
            {
                Tuple <Node, Node> nodes = new Tuple <Node, Node>(node2, node1);
                children = old_value;

                if (OnAfterExchangeNodes != null)
                {
                    OnAfterExchangeNodes(this, new ChangedValueEventArgs(nodes, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
Exemple #22
0
        public bool Delete(DynamicEquation o)
        {
            if (o == null)
            {
                return(false);
            }

            var old_index = values.IndexOf(o);
            var old_value = values;
            var new_value = new List <DynamicEquation>(values);

            new_value.Remove(o);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values = new_value;

                if (old_index < values.Count)
                {
                    selected = new_value[old_index];
                }
                else if (old_index > 0 && values.Count > 0)
                {
                    selected = new_value[old_index - 1];
                }
                else
                {
                    selected = null;
                }

                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values   = old_value;
                selected = o;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
Exemple #23
0
        public bool Add(T value)
        {
            if (values.Count >= ElementMax)
            {
                return(false);
            }

            var old_selected = selected;
            var old_values   = values;
            var new_values   = new List <ObjectHolder <T> >(values);

            var new_holder = new ObjectHolder <T>();

            new_holder.Value = value;
            new_values.Add(new_holder);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values   = new_values;
                selected = new_values[new_values.Count - 1].Value;

                AssignIndexes(values);


                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values           = old_values;
                selected         = old_selected;
                new_holder.Index = -1;

                AssignIndexes(values);


                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
Exemple #24
0
        public CopyStageVM()
        {
            CopyStages     = new Command.DelegateCommand(this.CopySelectedStages);
            Stages         = new ObservableCollection <StageVM>();
            SelectedStages = new List <ViewModels.StageVM>();
            var mainViewModel = ((MainWindow)(App.Current.MainWindow)).DataContext as MainVM;

            Stages               = mainViewModel.TanVM.SelectedReaction.Stages;
            IsAgentsSelected     = true;
            IsCatalystSelected   = true;
            IsConditionsSelected = true;
            IsRSNSelected        = true;
            IsSolventsSelected   = true;
            Visible              = System.Windows.Visibility.Visible;
            StagesCountToCopy    = 1;
        }
 public TaskAllocationVM()
 {
     BatchTans               = new ObservableCollection <Delivery.BatchTanVM>();
     SelectedTans            = new ObservableCollection <object>();
     Batches                 = new ObservableCollection <Delivery.BatchVM>();
     Curators                = new ObservableCollection <Tasks.UsersVM>();
     SelectedBatches         = new ObservableCollection <BatchVM>();
     Roles                   = new ObservableCollection <string>(LoadRoles());
     SearchTans              = new Command.DelegateCommand(DoSearchTans);
     AssignTans              = new Command.DelegateCommand(DoAssignTans);
     MouseDoubleClickCommand = new Command.DelegateCommand(DoOpenTan);
     AllowReview             = new DelegateCommand(DoAllowReview);
     ShowCuratorVersion      = new DelegateCommand(DoShowCuratorVersion);
     ShowReviewerVersion     = new DelegateCommand(DoShowReviewerVersion);
     ShowQcVersion           = new DelegateCommand(DoShowQcVersion);
 }
        public TanCommentsVM(ObservableCollection <Comments> Comments)
        {
            TanComments        = new ObservableCollection <Comments>(Comments);
            EditCommentCommand = new Command.DelegateCommand(this.EditComment);
            SaveAuthorComment  = new DelegateCommand(this.AddAuthorComment);
            SaveOtherComment   = new DelegateCommand(this.AddOtherComment);
            SaveCASComment     = new DelegateCommand(this.AddCASComment);
            SaveIndexComment   = new DelegateCommand(this.AddIndexComment);
            ClearAllFields     = new Command.DelegateCommand(this.ClearVM);
            DeleteTanComment   = new Command.DelegateCommand(this.DeleteComment);
            string pattern = S.RegularExpressions
                             .Where(re => re.RegulerExpressionFor == ProductTracking.Models.Core.RegulerExpressionFor.FreeText)
                             .Select(re => re.Expression).FirstOrDefault();

            CommentRegExp = new Regex(string.IsNullOrEmpty(pattern) ? "" : pattern);
            TanComments.CollectionChanged += TanComments_CollectionChanged;
            TanComments.UpdateDisplayOrder();
        }
Exemple #27
0
        public void SetMin(int r, int g, int b, int a = -1, bool isCombined = false)
        {
            if (
                r == R.GetMin() &&
                g == G.GetMin() &&
                b == B.GetMin() &&
                a == A.GetMin())
            {
                return;
            }

            int old_r = R.GetMin();
            int new_r = r;

            int old_g = G.GetMin();
            int new_g = g;

            int old_b = B.GetMin();
            int new_b = b;

            int old_a = A.GetMin();
            int new_a = a;

            var cmd = new Command.DelegateCommand(
                () =>
            {
                R.SetMinDirectly(new_r);
                G.SetMinDirectly(new_g);
                B.SetMinDirectly(new_b);
                A.SetMinDirectly(new_a);
            },
                () =>
            {
                R.SetMinDirectly(old_r);
                G.SetMinDirectly(old_g);
                B.SetMinDirectly(old_b);
                A.SetMinDirectly(old_a);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #28
0
        public bool Add()
        {
            if (values.Count >= 16)
            {
                return(false);
            }

            var old_selected = selected;
            var old_value    = values;
            var new_value    = new List <DynamicEquation>(values);

            var value = new DynamicEquation(this);

            value.Name.SetValue("New Expression");
            value.Code.SetValue("@O.x = @In0\[email protected] = @In1");
            new_value.Add(value);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                values   = new_value;
                selected = new_value[new_value.Count - 1];
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            },
                () =>
            {
                values   = old_value;
                selected = old_selected;
                if (OnChanged != null)
                {
                    OnChanged(this, null);
                }
            });

            Command.CommandManager.Execute(cmd);

            return(true);
        }
        public void SetCenter(float value, bool isCombined = false)
        {
            value = Math.Min(value, _max);
            value = Math.Max(value, _min);

            if (value == _value_center)
            {
                return;
            }

            float a = Amplitude;

            float old_center = _value_center;
            float new_center = value;
            float old_max    = _value_max;
            float new_max    = Math.Min(value + a, _max);
            float old_min    = _value_min;
            float new_min    = Math.Max(value - a, _min);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                _value_center = new_center;
                _value_max    = new_max;
                _value_min    = new_min;

                CallChanged(new_center, ChangedValueType.Execute);
            },
                () =>
            {
                _value_center = old_center;
                _value_max    = old_max;
                _value_min    = old_min;

                CallChanged(old_center, ChangedValueType.Unexecute);
            },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #30
0
        /// <summary>
        /// 子ノードの破棄
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public bool RemoveChild(Node node)
        {
            if (!children.Contains(node))
            {
                return(false);
            }

            var old_value = children;
            var new_value = new List <Node>(children);

            new_value.Remove(node);

            var cmd = new Command.DelegateCommand(
                () =>
            {
                children = new_value;

                if (OnAfterRemoveNode != null)
                {
                    OnAfterRemoveNode(this, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                }
            },
                () =>
            {
                children = old_value;

                if (OnAfterAddNode != null)
                {
                    OnAfterAddNode(this, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                }
            });

            Command.CommandManager.Execute(cmd);

            if (node == Core.SelectedNode)
            {
                Core.SelectedNode = null;
            }

            return(true);
        }
Exemple #31
0
        public void SetValue(bool value)
        {
            if (value == _value) return;

            bool old_value = _value;
            bool new_value = value;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _value = new_value;

                    if (OnChanged != null)
                    {
                        OnChanged(this, new ChangedValueEventArgs(new_value, ChangedValueType.Execute));
                    }
                },
                () =>
                {
                    _value = old_value;

                    if (OnChanged != null)
                    {
                        OnChanged(this, new ChangedValueEventArgs(old_value, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);
        }
Exemple #32
0
        public void SetAbsolutePath(string abspath)
        {
            if (abspath == _abspath) return;

            var old_value = _abspath;
            var new_value = abspath;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _abspath = new_value;

                    if (OnChanged != null)
                    {
                        OnChanged(this, new ChangedValueEventArgs(new_value, ChangedValueType.Execute));
                    }
                },
                () =>
                {
                    _abspath = old_value;

                    if (OnChanged != null)
                    {
                        OnChanged(this, new ChangedValueEventArgs(old_value, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);
        }
Exemple #33
0
        /// <summary>
        /// 子同士を交換
        /// </summary>
        /// <param name="node1"></param>
        /// <param name="node2"></param>
        /// <returns></returns>
        public bool ExchangeChildren(Node node1, Node node2)
        {
            if (node1 == node2) return false;
            if (!children.Contains(node1)) return false;
            if (!children.Contains(node2)) return false;

            var old_value = children;
            var new_value = new List<Node>(children);
            var ind1 = new_value.FindIndex((n) => { return n == node1; });
            var ind2 = new_value.FindIndex((n) => { return n == node2; });
            new_value[ind1] = node2;
            new_value[ind2] = node1;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    Tuple<Node, Node> nodes = new Tuple<Node, Node>(node1, node2);
                    children = new_value;

                    if (OnAfterExchangeNodes != null)
                    {
                        OnAfterExchangeNodes(this, new ChangedValueEventArgs(nodes, ChangedValueType.Execute));
                    }
                },
                () =>
                {
                    Tuple<Node, Node> nodes = new Tuple<Node, Node>(node2, node1);
                    children = old_value;

                    if (OnAfterExchangeNodes != null)
                    {
                        OnAfterExchangeNodes(this, new ChangedValueEventArgs(nodes, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);

            return true;
        }
Exemple #34
0
        /// <summary>
        /// 現在のノードの親とノードの間にノードを挿入
        /// </summary>
        public Node InsertParent()
        {
            if (Parent == null) return null;

            var node = new Node(Parent);
            node.children.Add((Node)this);

            var old_value = Parent.children;
            var new_value = new List<Node>(Parent.children);
            for (int i = 0; i < new_value.Count; i++)
            {
                if (new_value[i] == this)
                {
                    new_value[i] = node;
                    break;
                }
            }

            var parent = Parent;
            var _this = this;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    parent.children = new_value;
                    _this.Parent = node;
                    if (parent.OnAfterRemoveNode != null)
                    {
                        parent.OnAfterRemoveNode(parent, new ChangedValueEventArgs(_this, ChangedValueType.Execute));
                    }

                    if (parent.OnAfterAddNode != null)
                    {
                        parent.OnAfterAddNode(parent, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                    }

                },
                () =>
                {
                    parent.children = old_value;
                    _this.Parent = parent;
                    if (parent.OnAfterAddNode != null)
                    {
                        parent.OnAfterAddNode(this, new ChangedValueEventArgs(_this, ChangedValueType.Unexecute));
                    }

                    if (parent.OnAfterRemoveNode != null)
                    {
                        parent.OnAfterRemoveNode(parent, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);

            return node;
        }
Exemple #35
0
        /// <summary>
        /// 子ノードの破棄
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        public bool RemoveChild(Node node)
        {
            if (!children.Contains(node)) return false;

            var old_value = children;
            var new_value = new List<Node>(children);
            new_value.Remove(node);

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    children = new_value;

                    if (OnAfterRemoveNode != null)
                    {
                        OnAfterRemoveNode(this, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                    }
                },
                () =>
                {
                    children = old_value;

                    if (OnAfterAddNode != null)
                    {
                        OnAfterAddNode(this, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);

            if (node == Core.SelectedNode)
            {
                Core.SelectedNode = null;
            }

            return true;
        }
Exemple #36
0
        /// <summary>
        /// 子ノードの追加
        /// </summary>
        /// <returns></returns>
        public Node AddChild()
        {
            var node = new Node(this);

            var old_value = children;
            var new_value = new List<Node>(children);
            new_value.Add(node);

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    children = new_value;

                    if (OnAfterAddNode != null)
                    {
                        OnAfterAddNode(this, new ChangedValueEventArgs(node, ChangedValueType.Execute));
                    }
                },
                () =>
                {
                    children = old_value;

                    if (OnAfterRemoveNode != null)
                    {
                        OnAfterRemoveNode(this, new ChangedValueEventArgs(node, ChangedValueType.Unexecute));
                    }
                });

            Command.CommandManager.Execute(cmd);

            return node;
        }
Exemple #37
0
        public void SetValue(float value, bool isCombined = false)
        {
            value = value.Clipping(_max, _min);

            if (value == _value) return;

            float old_value = _value;
            float new_value = value;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _value = new_value;

                    CallChanged(new_value, ChangedValueType.Execute);
                },
                () =>
                {
                    _value = old_value;

                    CallChanged(old_value, ChangedValueType.Unexecute);
                },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #38
0
        public void SetCenter(float value, bool isCombined = false)
        {
            value = Math.Min(value, _max);
            value = Math.Max(value, _min);

            if (value == _value_center) return;

            float a = Amplitude;

            float old_center = _value_center;
            float new_center = value;
            float old_max = _value_max;
            float new_max = Math.Min(value + a, _max );
            float old_min = _value_min;
            float new_min = Math.Max(value - a, _min);

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _value_center = new_center;
                    _value_max = new_max;
                    _value_min = new_min;

                    CallChanged(new_center, ChangedValueType.Execute);
                },
                () =>
                {
                    _value_center = old_center;
                    _value_max = old_max;
                    _value_min = old_min;

                    CallChanged(old_center, ChangedValueType.Unexecute);
                },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #39
0
        public void SetMin(int value, bool isCombined = false)
        {
            value = Math.Min(value, _max);
            value = Math.Max(value, _min);

            if (value == _value_min) return;

            int old_max = _value_max;
            int new_max = Math.Max(value, _value_max);
            int old_min = _value_min;
            int new_min = value;
            int old_center = _value_center;
            int new_center = (new_max + new_min) / 2;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _value_center = new_center;
                    _value_max = new_max;
                    _value_min = new_min;

                    CallChanged(new_min, ChangedValueType.Execute);
                },
                () =>
                {
                    _value_center = old_center;
                    _value_max = old_max;
                    _value_min = old_min;

                    CallChanged(old_min, ChangedValueType.Unexecute);
                },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }
Exemple #40
0
        public void SetAmplitude(int value, bool isCombined = false)
        {
            value = Math.Abs(value);

            int old_center = _value_center;
            int new_center = _value_center;
            int old_max = _value_max;
            int new_max = Math.Min(_value_center + value, _max);
            int old_min = _value_min;
            int new_min = Math.Max(_value_center - value, _min);

            if (new_max == old_max && new_min == old_min) return;

            var cmd = new Command.DelegateCommand(
                () =>
                {
                    _value_center = new_center;
                    _value_max = new_max;
                    _value_min = new_min;

                    CallChanged(new_min, ChangedValueType.Execute);
                },
                () =>
                {
                    _value_center = old_center;
                    _value_max = old_max;
                    _value_min = old_min;

                    CallChanged(old_min, ChangedValueType.Unexecute);
                },
                this,
                isCombined);

            Command.CommandManager.Execute(cmd);
        }