/// <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); }
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); }
/// <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); }
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(); }
/// <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(); } } }
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; }
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); }
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; } }
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); } }
/// <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); }
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); }