/// <summary>
        /// affiche le calculatedMeasure en edition
        /// </summary>
        /// <param name="table"></param>
        public void DisplayCalculatedMeasure(CalculatedMeasure calculatedMeasure)
        {
            CalculatedMeasureItem last = calculatedMeasure.GetCalculatedMeasureItems().Count > 0 ? calculatedMeasure.GetItemByPosition(calculatedMeasure.GetCalculatedMeasureItems().Count - 1):null;

            if (last != null && last.sign != null && last.sign.Equals("="))
            {
                calculatedMeasure.RemoveItem(last);
            }

            this.CalculatedMeasure = calculatedMeasure;
            this.panel.Children.Clear();
            int index = 1;

            if (calculatedMeasure == null)
            {
                this.ActiveItemPanel = new CalculatedMeasureItemPanel(index);
                AddItemPanel(this.ActiveItemPanel);
                return;
            }
            foreach (CalculatedMeasureItem item in calculatedMeasure.GetCalculatedMeasureItems())
            {
                CalculatedMeasureItemPanel itemPanel = new CalculatedMeasureItemPanel(item);
                AddItemPanel(itemPanel);
                index++;
            }

            this.ActiveItemPanel = new CalculatedMeasureItemPanel(index);
            AddItemPanel(this.ActiveItemPanel);
        }
        /// <summary>
        /// Définit la valeur du TargetItem en cour d'édition
        /// et affiche cette valeur dans le TextBox
        /// </summary>
        /// <param name="value">La valeur du TargetItem en cour d'édition</param>
        public bool SetCalculatedMeasureItemValue(CalculatedMeasureItem value)
        {
            if (this.ActiveItemPanel == null)
            {
                this.ActiveItemPanel = (CalculatedMeasureItemPanel)this.panel.Children[this.panel.Children.Count - 1];
            }

            this.ActiveItemPanel.SetValue(value);
            return(true);
        }
Exemple #3
0
        public override OperationState Save(EditorItem <CalculatedMeasure> page)
        {
            try
            {
                if (ValidateEditedNewName() == OperationState.STOP)
                {
                    return(OperationState.STOP);
                }


                if (validateOperations(page) == OperationState.STOP)
                {
                    return(OperationState.STOP);
                }

                if (validateSyntax(page) == OperationState.STOP)
                {
                    return(OperationState.STOP);
                }

                CalculatedMeasureItem last = page.EditedObject.GetItemByPosition(page.EditedObject.GetCalculatedMeasureItems().Count - 1);
                if (last.sign == null || (last.sign != null && !last.sign.Equals("=")))
                {
                    CalculatedMeasureItem equalsSign = new CalculatedMeasureItem();
                    equalsSign.sign = "=";
                    page.EditedObject.AddItem(equalsSign);
                }

                currentPage = (CalculatedMeasureEditorItem)page;
                if (base.Save(page) == OperationState.STOP)
                {
                    return(OperationState.STOP);
                }
                //((CalculatedMeasureSideBar)SideBar).MeasureGroup.MeasureTreeview.AddOrUpdateCalculateMeasure(page.EditedObject);
            }
            catch (Exception)
            {
                DisplayError("Save", "Unable to save CalculatedMeasure");
                return(OperationState.STOP);
            }
            //( (CalculatedMeasureEditorItem) page).getCalculatedMeasureForm().CalculatedMeasurePropertiesPanel.setIgnorePropertiesGridVisibility(false);
            string expression = page.EditedObject.computeExpression();

            if (expression.IndexOf("=") < 0)
            {
                expression = expression + "=";
            }
            this.ApplicationManager.MainWindow.StatusLabel.Content = String.IsNullOrEmpty(expression) ? "" : "Operation: " + expression;

            return(OperationState.CONTINUE);
        }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnValidateEdition()
        {
            String  text = this.TextBox.Text;
            decimal amount;
            bool    valid = decimal.TryParse(text, out amount);

            if (!valid)
            {
                return;
            }

            CalculatedMeasureItem value = new CalculatedMeasureItem();

            value.measureType = CalculatedMeasureItem.MeasureType.AMOUNT.ToString();
            value.amount      = amount;
            SetValue(value);
        }
Exemple #5
0
        protected void onIgnorePropertiesChange()
        {
            /*  CalculatedMeasureItem item = page.EditedObject.calculatedMeasureItemListChangeHandler.Items.Last();
             * if(item.sign!=null && item.sign.Equals("="))
             * {
             *  item = page.EditedObject.GetItemByPosition(page.EditedObject.calculatedMeasureItemListChangeHandler.Items.Count - 2);
             * }*/

            CalculatedMeasureEditorItem page = (CalculatedMeasureEditorItem)getCalculatedMeasureEditor().getActivePage();
            CalculatedMeasureItem       item = page.getCalculatedMeasureForm().CalculatedMeasurePanel.ActiveItemPanel.CalculatedMeasureItem;

            page.getCalculatedMeasureForm().CalculatedMeasurePropertiesPanel.fillCalculatedMeasureItemIgnoreProperties(item);



            OnChange();
        }
Exemple #6
0
        /// <summary>
        /// Cette méthode est exécutée lorsqu'on sélectionne un element sur la sidebar.
        /// ces instructions ont pour but de rajouté cet élément ,
        /// dans l'operation de la mesure calculé en édition
        /// </summary>
        /// <param name="sender">l operateur sélectionné</param>
        protected void onSelectOperationItemFromSidebar(object sender)
        {
            CalculatedMeasureEditorItem page = (CalculatedMeasureEditorItem)getCalculatedMeasureEditor().getActivePage();

            if (page == null)
            {
                return;
            }
            if (page.EditedObject.name != (sender as Measure).name)
            {
                CalculatedMeasureItem item = createNewCalculatedMeasureItem(sender, page);
                if (page.getCalculatedMeasureForm().CalculatedMeasurePanel.SetCalculatedMeasureItemValue(item) == true)
                {
                    OnChange();
                }
            }
        }
Exemple #7
0
 public void Display(CalculatedMeasureItem item)
 {
     update = false;
     this.CalculatedMeasureItem = item;
     if (item != null)
     {
         this.Index = item.position + 1;
     }
     this.TextBox.Text = item != null && !String.IsNullOrWhiteSpace(item.GetValue()) ? item.GetValue() : "";
     this.OpenParComboBox.SelectedItem  = item != null && item.openPar == true ? "(" : null;
     this.SignComboBox.SelectedItem     = item != null && item.sign != null ? item.sign : null;
     this.CloseParComboBox.SelectedItem = item != null && item.closePar == true ? ")" : null;
     if (item != null && item.sign != null && item.sign.Equals("="))
     {
         this.TextBox.IsEnabled = false;
     }
     update = true;
 }
Exemple #8
0
        private CalculatedMeasureItem createNewCalculatedMeasureItem(object sender, CalculatedMeasureEditorItem page)
        {
            CalculatedMeasureItem item = new CalculatedMeasureItem();

            item.measureType = CalculatedMeasureItem.MeasureType.AMOUNT.ToString();
            if (sender != null)
            {
                page.getCalculatedMeasureForm().CalculatedMeasurePropertiesPanel.setIgnorePropertiesGridVisibility(true);
                if (sender is CalculatedMeasure)
                {
                    item.measureType = CalculatedMeasureItem.MeasureType.CALCULATED_MEASURE.ToString();
                    item.measure     = (CalculatedMeasure)sender;
                }
                else if (sender is Measure)
                {
                    item.measure     = (Measure)sender;
                    item.measureType = CalculatedMeasureItem.MeasureType.MEASURE.ToString();
                }
            }
            return(item);
        }
        private void OnAdded(object item)
        {
            CalculatedMeasureItemPanel panel = (CalculatedMeasureItemPanel)item;

            if (this.CalculatedMeasure == null)
            {
                this.CalculatedMeasure = new CalculatedMeasure();
            }
            CalculatedMeasureItem last = this.CalculatedMeasure.GetCalculatedMeasureItems().Count > 0 ? this.CalculatedMeasure.GetItemByPosition(this.CalculatedMeasure.GetCalculatedMeasureItems().Count - 1) : null;

            if (last != null && last.sign != null && last.sign.Equals("="))
            {
                this.CalculatedMeasure.RemoveItem(last);
                //string message = "Cannot add measure item after equals operator ";
                //Kernel.Util.MessageDisplayer.DisplayWarning("Add CalculatedMeasureItem", message);
                //return;
            }
            this.CalculatedMeasure.AddItem(panel.CalculatedMeasureItem);
            updated = false;
            OnChanged(panel.CalculatedMeasureItem);
        }
Exemple #10
0
        private void onItemCloseParOrEqualSelected(object newSelection)
        {
            CalculatedMeasureEditorItem page = (CalculatedMeasureEditorItem)getCalculatedMeasureEditor().getActivePage();

            if (page == null)
            {
                return;
            }
            page.getCalculatedMeasureForm().CalculatedMeasurePropertiesPanel.setIgnorePropertiesGridVisibility(true);
            if (newSelection.ToString().Equals(")"))
            {
                CalculatedMeasureItem item = new CalculatedMeasureItem();
                item.measureType = CalculatedMeasureItem.MeasureType.MEASURE.ToString();
                page.getCalculatedMeasureForm().CalculatedMeasurePanel.SetCalculatedMeasureItemValue(item);
            }
            else
            {
                string expression = page.EditedObject.computeExpression();
                // expression = expression + "=";
                this.ApplicationManager.MainWindow.StatusLabel.Content = String.IsNullOrEmpty(expression) ? "" : "Operation: " + expression;
            }
        }
Exemple #11
0
        public void SetValue(CalculatedMeasureItem value)
        {
            added = false;
            if (this.CalculatedMeasureItem == null)
            {
                this.CalculatedMeasureItem = new CalculatedMeasureItem();
                this.CalculatedMeasureItem.SetPosition(Index - 1);
                added = true;
            }
            this.CalculatedMeasureItem = value.GetCopy(this.CalculatedMeasureItem);
            updateMeasureItemOperator();
            //added = setCalculatedMeasureItemOperator();
            this.TextBox.Text = this.CalculatedMeasureItem != null?this.CalculatedMeasureItem.GetValue() : "";

            if (Added != null && added)
            {
                Added(this);
            }
            if (Updated != null && !added)
            {
                Updated(this);
            }
        }
Exemple #12
0
 /// <summary>
 /// Construit une nouvelle instance de CalculatedMeasureItemPanel
 /// </summary>
 /// <param name="index">Index du panel</param>
 /// <param name="item">TargetItem à afficher</param>
 public CalculatedMeasureItemPanel(CalculatedMeasureItem calculatedMeasureItem) : this()
 {
     Display(calculatedMeasureItem);
 }
Exemple #13
0
        public OperationState validateSyntax(EditorItem <CalculatedMeasure> page)
        {
            int countOpenPar  = 0;
            int countClosePar = 0;
            CalculatedMeasureItem valuePrev = null;
            CalculatedMeasureItem valueAft  = null;
            bool status   = true;
            int  sizePage = page.EditedObject.GetCalculatedMeasureItems().Count;

            foreach (CalculatedMeasureItem item in page.EditedObject.GetCalculatedMeasureItems())
            {
                if (status && item.position >= 0 && item.position <= sizePage - 1)
                {
                    if (item.position == sizePage - 1)
                    {
                        valuePrev = (CalculatedMeasureItem)page.EditedObject.GetItemByPosition(item.position - 1);
                        valueAft  = null;
                    }
                    else if (item.position == 0)
                    {
                        valuePrev = null;
                        valueAft  = (CalculatedMeasureItem)page.EditedObject.GetItemByPosition(item.position + 1);;
                    }
                    else
                    {
                        valuePrev = (CalculatedMeasureItem)page.EditedObject.GetItemByPosition(item.position - 1);
                        valueAft  = (CalculatedMeasureItem)page.EditedObject.GetItemByPosition(item.position + 1);
                    }
                    if (item.openPar)
                    {
                        countOpenPar++;
                        if ((item.amount == 0 && item.measure == null) && item.closePar)
                        {
                            status = false;
                        }
                        if (valuePrev != null && item.sign == null)
                        {
                            status = false;
                        }
                        //if (valuePrev != null && (valuePrev.measure != null || valuePrev.amount != 0 || valuePrev.closePar)) status = false;
                        //if (valueAft != null && (item.measure == null && item.amount == 0 && (valueAft.closePar || valueAft.sign != null))) status = false;
                    }
                    if (status && item.closePar)
                    {
                        countClosePar++;
                        if (valueAft != null && valueAft.sign == null)
                        {
                            status = false;
                        }
                        if (item.amount == 0 && item.measure == null)
                        {
                            status = false;
                        }
                        // if (valuePrev != null && (valuePrev.measure == null && item.amount == 0 && (valuePrev.sign != null || valuePrev.openPar))) status = false;
                        // if (valueAft != null && (valueAft.openPar || ((valueAft.measure != null || valueAft.amount!= 0) && valuePrev.sign == null))) status = false;
                    }
                    if (status && item.sign != null && item.sign != "=")
                    {
                        if (valuePrev != null && (item.amount == 0 && item.measure == null))
                        {
                            status = false;
                        }
                        if (item.amount == 0 && item.measure == null)
                        {
                            status = false;
                        }
                        // if (valuePrev != null && ((valuePrev.sign != null || valuePrev.openPar) && (valuePrev.measure == null && valuePrev.amount == 0))) status = false;
                        // if (valueAft != null && ((item.measure == null && item.amount == 0) && (valueAft.closePar || valueAft.sign != null))) status = false;
                    }
                    if (status && (item.measure != null || item.amount != 0))
                    {
                        if (valueAft != null && valueAft.sign == null)
                        {
                            status = false;
                        }
                        //if (item.sign == null && valuePrev != null && ((valuePrev.measure != null || valuePrev.amount != 0 || valuePrev.closePar))) status = false;
                        // if (valueAft != null && (valueAft.openPar || (valueAft.sign == null && (valueAft.measure != null || valueAft.amount != 0)))) status = false;
                    }
                }
            }
            if (status && countOpenPar != countClosePar)
            {
                status = false;
            }

            if (!status)
            {
                string message = "FORMULA SYNTAX ERROR ! Correct you formula ";
                Kernel.Util.MessageDisplayer.DisplayError("Syntax Error", message);
                return(OperationState.STOP);
            }

            return(OperationState.CONTINUE);
        }