protected bool IsEditionValid(GridItem item, GrilleColumn column, string oldValue, string newValue, GridCellValidationEventArgs args) { int? oid = item.GetOid(); bool isKey = column.position == 0; if (isKey) { if (string.IsNullOrWhiteSpace(newValue)) { args.ErrorContent = column.name + " can't be empty!"; args.IsValid = false; return(false); } } else if (!oid.HasValue) { LinkedAttributeGrid grid = (LinkedAttributeGrid)this.Grille; Object keyValue = item.Datas[0]; bool emptyKeyValue = keyValue == null || string.IsNullOrWhiteSpace(keyValue.ToString()); if (emptyKeyValue && !grid.attribute.incremental) { args.ErrorContent = "You have to set " + grid.attribute.name + " before set " + column.name; args.IsValid = false; return(false); } } return(true); }
protected bool isUniqueColumn(Persistent obj) { String type = null; if (obj is Measure) { type = ParameterType.MEASURE.ToString(); } else if (obj is Target) { type = ParameterType.SCOPE.ToString(); } else if (obj is PeriodName) { type = ParameterType.PERIOD.ToString(); } GrilleColumn column = this.Grid.GetColumn(type, obj.oid.Value); if (column != null) { MessageDisplayer.DisplayWarning("Duplicate column", "The column '" + obj.ToString() + "' is already selected!"); return(false); } return(true); }
private bool ValidateSelection(RelationshipItemPanel panel) { GrilleColumn column = panel.SelectedColumn(); GrilleRelationshipItem item = this.Relationship.GetItemByColumn(column); if (item == null || item == panel.RelationshipItem) { return(true); } if (item != null) { String title = ""; String message = ""; if (panel.RelationshipItem == null) { if (item.primary) { title = "Wrong selection"; } } MessageDisplayer.DisplayWarning(title, message); return(false); } return(true); }
private void OnMove(bool up) { List <GrilleColumn> columns = new List <GrilleColumn>(0); foreach (GrilleColumn column in ColumnsListBox.SelectedItems) { columns.Add(column); } if (columns.Count == 0) { return; } if (up) { columns.BubbleSort(); } else { columns.BubbleSortDesc(); } foreach (GrilleColumn column in columns) { int position = column.position + (up ? -1 : 1); GrilleColumn child = this.Grid.GetColumn(position); if (child != null) { child.position = column.position; this.Grid.UpdateColumn(child); column.position = position; this.Grid.UpdateColumn(column); } } this.ColumnsListBox.ItemsSource = new ObservableCollection <GrilleColumn>(this.Grid.columnListChangeHandler.Items); OnChanged(true); }
protected override void setColumnEditSettings(GridColumn column, GrilleColumn grilleColumn, bool readOnly = false) { bool isIncremental = grilleColumn.attribute.incremental; bool isKey = ((LinkedAttributeGrid)Grille).attribute.oid == grilleColumn.attribute.oid; if (!isIncremental) { try { grilleColumn.values = Service.ModelService.getLeafAttributeValues(grilleColumn.valueOid.Value); } catch (Exception) { } ComboBoxEditSettings combo = new ComboBoxEditSettings(); combo.ItemsSource = grilleColumn.Items; combo.IsTextEditable = true; combo.ShowText = true; combo.ValidateOnTextInput = true; combo.AllowNullInput = !isKey; combo.AutoComplete = true; combo.IncrementalFiltering = true; combo.ImmediatePopup = true; column.AllowIncrementalSearch = true; column.EditSettings = combo; } }
public GrilleColumn GetNewColumn() { GrilleColumn column = new GrilleColumn(); column.isModified = false; column.isAdded = false; column.position = this.Grid.columnListChangeHandler.Items.Count; return(column); }
protected override void OnValidateCell(object sender, GridCellValidationEventArgs args) { GridItem item = (GridItem)this.gridControl.SelectedItem; if (item == null) { item = (GridItem)this.gridControl.CurrentItem; } if (item != null) { ColumnBase col = args.Column; GrilleColumn column = this.Grille.GetColumn(col.FieldName); string oldValue = item.Datas[column.position] != null ? item.Datas[column.position].ToString() : ""; string newValue = args.Value != null?args.Value.ToString() : ""; if (!IsEditionValid(item, column, oldValue, newValue, args)) { args.Handled = true; args.IsValid = false; return; } GrilleEditedElement element = new GrilleEditedElement(); element.column = column; element.oid = item.GetOid(); element.value = new Kernel.Domain.Browser.BrowserData(); element.value.name = newValue; if (this.EditEventHandler != null) { GrilleEditedResult result = EditEventHandler(element); if (result.isError) { args.Handled = true; args.IsValid = false; args.ErrorContent = result.error; return; } else { if (result.datas == null) { args.Handled = true; } else { item.Datas = result.datas; } Refresh(); } } } }
public GrilleRelationshipItem Fill() { GrilleColumn column = (GrilleColumn)this.comboBox.SelectedItem; if (this.RelationshipItem == null) { this.RelationshipItem = new GrilleRelationshipItem(); } this.RelationshipItem.position = Index; this.RelationshipItem.primary = IsPrimary; this.RelationshipItem.exclusive = this.checkBox.IsChecked.Value; this.RelationshipItem.column = column; return(this.RelationshipItem); }
private GrilleColumnFilter buildColumnFilter(String link, String name, String operation, String value) { GrilleColumn column = this.Grille.GetColumn(name); if (column != null) { GrilleColumnFilter filter = new GrilleColumnFilter(); filter.column = column; filter.filterOperation = link; filter.filterOperator = operation; filter.filterValue = value; return(filter); } return(null); }
private void OnSelectedColumnChanged(object sender, SelectionChangedEventArgs e) { if (!throwEvent) { return; } GrilleColumn column = (GrilleColumn)this.ColumnsListBox.SelectedItem; FillActiveColumn(); ColumnForms.Display(column); if (selectionColumnChanged != null) { selectionColumnChanged(column); } }
public void SelecteColumn(Kernel.Ui.Office.Cell activeCell) { if (activeCell == null) { return; } int col = activeCell.Column; if (this.Grid == null) { return; } GrilleColumn column = this.Grid.GetColumn(col); ColumnForms.Display(column); }
public void SetListValue(List <Measure> values) { int col = this.Grid.columnListChangeHandler.Items.Count + 1; GrilleColumn column = ColumnForms.Column; foreach (Measure value in values) { column = new GrilleColumn(); column.isModified = false; column.isAdded = false; column.position = col++; column.SetValue(value); this.Grid.AddColumn(column); } ColumnForms.Display(column); OnColumnChanged(true); }
private void OnSort(object columnName) { if (this.Grille != null && columnName != null) { GrilleColumn column = this.Grille.GetColumn(columnName.ToString()); if (column != null) { bool orderAsc = column.orderAsc.HasValue && column.orderAsc.Value; OnClearSort(); column.orderAsc = !orderAsc; } if (SortEventHandler != null) { SortEventHandler(column); } } }
protected override GridColumn getColumn(GrilleColumn grilleColumn, bool readOnly = false) { DevExpress.Xpf.Grid.GridColumn column = new DevExpress.Xpf.Grid.GridColumn(); column.FieldName = grilleColumn.name; column.IsSmart = true; column.ReadOnly = this.IsReadOnly || this.Grille.IsReadOnly() || readOnly; column.ColumnFilterMode = ColumnFilterMode.DisplayText; Binding b = new Binding(getBindingName(grilleColumn)); b.Mode = BindingMode.TwoWay; column.Binding = b; column.Style = this.gridControl.FindResource("GridColumn") as Style; column.Width = new GridColumnWidth(1, GridColumnUnitType.Star); setColumnEditSettings(column, grilleColumn, readOnly); return(column); }
public void Display(GrilleColumn column) { throwChange = false; this.Column = column; if (this.Column == null) { this.Column = GetNewColumn(); } if (this.Column.oid.HasValue) { this.Column.isAdded = true; } String colName = Kernel.Util.RangeUtil.GetColumnName(this.Column.position); ColumnTextBox.Text = colName; TypeTextBox.Text = this.Column.type != null ? this.Column.type : ""; NameTextBox.Text = this.Column.name != null ? this.Column.name : ""; ShowCheckBox.IsChecked = this.Column.show; this.ModifyThisColumn = false; throwChange = true; }
public override void buildColumns(Grille grille) { if (grille is LinkedAttributeGrid) { LinkedAttributeGrid grid = (LinkedAttributeGrid)grille; this.Grille = grid; buildGrid(); int position = 0; GrilleColumn column = new GrilleColumn(grid.attribute, position++); grid.AddColumn(column); this.AddColumn(column, grid.attribute.incremental); foreach (Kernel.Domain.Attribute attribute in grid.attribute.childrenListChangeHandler.Items) { column = new GrilleColumn(attribute, position++); grid.AddColumn(column); this.AddColumn(column, attribute.incremental); } this.Children.Add(this.gridControl); RebuildGrid = false; } }
private void OnEndSorting(object sender, RoutedEventArgs e) { if (allowSort && this.Grille != null && gridControl.SortInfo != null) { OnClearSort(); foreach (GridSortInfo info in gridControl.SortInfo) { GrilleColumn column = this.Grille.GetColumn(info.FieldName); if (column != null) { column.orderAsc = info.SortOrder.Equals(ListSortDirection.Ascending); } } if (allowSort && SortEventHandler != null) { allowSort = false; SortEventHandler(null); } allowSort = true; } }
private bool OnItemChanged(object item) { RelationshipItemPanel panel = (RelationshipItemPanel)item; if (this.Relationship == null) { this.Relationship = GetNewRelationship(); } if (ValidateSelection(panel)) { bool isNew = panel.RelationshipItem == null; GrilleColumn oldColumn = isNew ? null : panel.RelationshipItem.column; panel.Fill(); if (isNew) { this.Relationship.AddItem(panel.RelationshipItem); } else { this.Relationship.UpdateItem(panel.RelationshipItem); } OnChanged(panel.RelationshipItem, isNew); if (panel.RelationshipItem.primary) { this.Grid.RelatedColumnsDataSource.Remove(panel.RelationshipItem.column); this.Grid.RelatedColumnsDataSource.Add(oldColumn); } else { this.Grid.PrimaryColumnsDataSource.Remove(panel.RelationshipItem.column); this.Grid.PrimaryColumnsDataSource.Add(oldColumn); } return(true); } return(false); }
protected virtual GridColumn getColumn(GrilleColumn grilleColumn, bool readOnly = false) { DevExpress.Xpf.Grid.GridColumn column = new DevExpress.Xpf.Grid.GridColumn(); column.FieldName = grilleColumn.name; column.IsSmart = true; column.ReadOnly = this.IsReadOnly || this.Grille.IsReadOnly() || readOnly; column.ColumnFilterMode = ColumnFilterMode.DisplayText; Binding b = new Binding(getBindingName(grilleColumn)); b.Mode = BindingMode.TwoWay; column.Binding = b; setColumnEditSettings(column, grilleColumn, readOnly); if (grilleColumn.type.Equals(ParameterType.PERIOD.ToString()) || grilleColumn.type.Equals(ParameterType.MEASURE.ToString()) || grilleColumn.type.Equals(ParameterType.SPECIAL_MEASURE.ToString())) { column.ColumnFilterMode = ColumnFilterMode.Value; } return(column); }
private void OnInputGridPropertiesSelectionColumnChange(object obj) { InputGridEditorItem page = (InputGridEditorItem)getInputGridEditor().getActivePage(); if (page == null) { return; } if (obj is GrilleColumn) { GrilleColumn column = (GrilleColumn)obj; if (column.type.Equals(ParameterType.SCOPE.ToString())) { //Target target = column.scope; //if (target.typeName.Equals(typeof(AttributeValue).Name, StringComparison.OrdinalIgnoreCase)) //{ // Kernel.Domain.AttributeValue value = GetInputGridService().ModelService.getAttributeValue(target.oid.Value, target.name); // column.SetValue(value); // page.getInputGridForm().InputGridSheetForm.InputGridPropertiesPanel.ColumnForms.Display(column); //} //if (target.typeName.Equals(typeof(Misp.Kernel.Domain.Attribute).Name, StringComparison.OrdinalIgnoreCase)) //{ // Misp.Kernel.Domain.Attribute value = GetInputGridService().ModelService.getAttributeByOid(target.oid.Value); // column.SetValue(value); // page.getInputGridForm().InputGridSheetForm.InputGridPropertiesPanel.ColumnForms.Display(column); //} //if (target.typeName.Equals(typeof(Entity).Name, StringComparison.OrdinalIgnoreCase)) //{ // Misp.Kernel.Domain.Entity value = GetInputGridService().ModelService.getEntityByOid(target.oid.Value); // column.SetValue(value); // page.getInputGridForm().InputGridSheetForm.InputGridPropertiesPanel.ColumnForms.Display(column); //} } } }
protected virtual void setColumnEditSettings(GridColumn column, GrilleColumn grilleColumn, bool readOnly = false) { if (grilleColumn.type.Equals(ParameterType.MEASURE.ToString())) { TextEditSettings settings = new TextEditSettings(); settings.DisplayFormat = "N2"; settings.ValidateOnTextInput = true; settings.AllowNullInput = true; column.EditSettings = settings; } if (!this.Grille.report && grilleColumn.type.Equals(ParameterType.SCOPE.ToString())) { try { grilleColumn.values = Service.ModelService.getLeafAttributeValues(grilleColumn.valueOid.Value); } catch (Exception) { } ComboBoxEditSettings combo = new ComboBoxEditSettings(); combo.ItemsSource = grilleColumn.Items; combo.IsTextEditable = true; combo.ShowText = true; combo.ValidateOnTextInput = true; combo.AllowNullInput = true; column.EditSettings = combo; } else if (!this.Grille.report && grilleColumn.type.Equals(ParameterType.PERIOD.ToString())) { DateEditSettings dateSetting = new DateEditSettings(); dateSetting.IsTextEditable = true; dateSetting.ShowText = true; dateSetting.ValidateOnTextInput = true; dateSetting.AllowNullInput = true; column.EditSettings = dateSetting; } }
private Decimal[] BuildBottomBalance(Grille grid, GridBrowser browser) { Decimal credit = 0; Decimal debit = 0; GrilleColumn leftAmountColumn = null; GrilleColumn rightAmountColumn = null; GrilleColumn creditDebitColumn = null; Measure leftMeasure = this.EditedObject.leftMeasure; Measure rightMeasure = this.EditedObject.rightMeasure; if (leftMeasure != null) { leftAmountColumn = grid.GetColumn(ParameterType.MEASURE.ToString(), leftMeasure.oid.Value); } if (rightMeasure != null) { rightAmountColumn = grid.GetColumn(ParameterType.MEASURE.ToString(), rightMeasure.oid.Value); } if (leftAmountColumn != null && rightAmountColumn != null) { String creditValue = "C"; String debitValue = "D"; if (this.EditedObject.useDebitCredit == true) { Misp.Kernel.Domain.ReconciliationContext context = ApplicationManager.Instance.ControllerFactory.ServiceFactory.GetReconciliationContextService().getReconciliationContext(); if (context != null) { creditValue = context.creditAttributeValue != null ? context.creditAttributeValue.name : "C"; debitValue = context.debitAttributeValue != null ? context.debitAttributeValue.name : "D"; if (context.dcNbreAttribute != null) { creditDebitColumn = grid.GetColumn(ParameterType.SCOPE.ToString(), context.dcNbreAttribute.oid.Value); } } } foreach (object row in browser.gridControl.SelectedItems) { if (row is GridItem) { String side = ((GridItem)row).Side; if (string.IsNullOrWhiteSpace(side)) { continue; } GrilleColumn amountColumn = side == GridItem.LEFT_SIDE ? leftAmountColumn : rightAmountColumn; if (amountColumn == null) { continue; } Object[] datas = ((GridItem)row).Datas; Decimal amount = 0; object item = item = datas[amountColumn.position]; try { Decimal.TryParse(item.ToString(), out amount); } catch (Exception) { } if (this.EditedObject.useDebitCredit == true) { if (creditDebitColumn == null) { continue; } item = datas[creditDebitColumn.position]; Boolean isCredit = item != null && item.ToString().Equals(creditValue, StringComparison.OrdinalIgnoreCase); Boolean isDebit = item != null && item.ToString().Equals(debitValue, StringComparison.OrdinalIgnoreCase); if (side == GridItem.LEFT_SIDE) { if (isCredit) { credit += amount; } else if (isDebit) { credit -= amount; } } else { if (isCredit) { debit += amount; } else if (isDebit) { debit -= amount; } } } else { if (side == GridItem.LEFT_SIDE) { credit += amount; } else { debit += amount; } } } } } Decimal[] balances = new Decimal[] { credit, debit }; return(balances); }
private List <FormatCondition> BuildFormatConditions(GridBrowser grid, Measure leftMeasure, Measure rightMeasure) { List <FormatCondition> conditions = new List <FormatCondition>(0); if (leftMeasure == null && rightMeasure == null) { return(conditions); } if (this.EditedObject.useDebitCredit.Value) { Misp.Kernel.Domain.ReconciliationContext context = ApplicationManager.Instance.ControllerFactory.ServiceFactory.GetReconciliationContextService().getReconciliationContext(); if (context != null && context.dcNbreAttribute != null) { GrilleColumn creditDebitColumn = grid.Grille.GetColumn(ParameterType.SCOPE.ToString(), context.dcNbreAttribute.oid.Value); if (creditDebitColumn != null) { String debitValue = context.debitAttributeValue != null ? context.debitAttributeValue.name : "D"; conditions.Add(new FormatCondition() { ApplyToRow = true, Expression = "[" + creditDebitColumn.name + "] == '" + debitValue + "'", FieldName = creditDebitColumn.name, Format = new Format() { Foreground = Brushes.Red } }); } } } else { if (leftMeasure != null) { GrilleColumn amountColumn = grid.Grille.GetColumn(ParameterType.MEASURE.ToString(), leftMeasure.oid.Value); if (amountColumn != null) { conditions.Add(new FormatCondition() { ApplyToRow = true, Expression = "[" + amountColumn.name + "] < 0.0", FieldName = amountColumn.name, Format = new Format() { Background = Brushes.Red } }); } } if (rightMeasure != null) { GrilleColumn amountColumn = grid.Grille.GetColumn(ParameterType.MEASURE.ToString(), rightMeasure.oid.Value); if (amountColumn != null) { conditions.Add(new FormatCondition() { ApplyToRow = true, Expression = "[" + amountColumn.name + "] < 0.0", FieldName = amountColumn.name, Format = new Format() { Background = Brushes.Red } }); } } } return(conditions); }
protected String getBindingName(GrilleColumn grilleColumn) { return("Datas[" + grilleColumn.position + "]"); }
public void AddColumn(GrilleColumn grilleColumn, bool readOnly = false) { DevExpress.Xpf.Grid.GridColumn column = getColumn(grilleColumn, readOnly); gridControl.Columns.Add(column); }
protected virtual void OnCellValueChanged(object sender, CellValueChangedEventArgs args) { GridItem item = (GridItem)this.gridControl.SelectedItem; if (item == null) { item = (GridItem)this.gridControl.CurrentItem; } if (item != null) { int? oid = item.GetOid(); GridColumn col = args.Column; GrilleColumn column = this.Grille.GetColumn(col.FieldName); string oldValue = item.Datas[column.position] != null ? item.Datas[column.position].ToString() : ""; string newValue = args.Value != null?args.Value.ToString() : ""; GrilleEditedElement element = new GrilleEditedElement(); element.column = column; element.oid = oid; //if (newValue.Equals(oldValue)) return; if (column.type.Equals(ParameterType.MEASURE.ToString())) { decimal val = 0; if (string.IsNullOrWhiteSpace(newValue)) { val = 0; } else if (decimal.TryParse(newValue, out val)) { element.measure = val; } else if (decimal.TryParse(newValue.Replace(".", ","), out val)) { element.measure = val; } else { MessageDisplayer.DisplayError("Wrong measure", "'" + newValue + "'" + " is not a decimal!"); args.Handled = true; //args.Value = args.OldValue; return; } } else if (column.type.Equals(ParameterType.SCOPE.ToString())) { if (string.IsNullOrWhiteSpace(newValue)) { element.value = null; } else { BrowserData data = column.getValue(newValue); if (!AllowUnknowValueForScope && data == null) { MessageDisplayer.DisplayError("Wrong value", "Unknow value : '" + newValue + "'"); args.Handled = true; return; } else { element.value = data; } } } if (column.type.Equals(ParameterType.PERIOD.ToString())) { DateTime date; if (string.IsNullOrWhiteSpace(newValue)) { element.date = null; } else if (DateTime.TryParse(newValue, out date)) { element.date = date.ToShortDateString(); } else { MessageDisplayer.DisplayError("Wrong date", "'" + newValue + "'" + " is not a date!"); args.Handled = true; return; } } if (this.EditEventHandler != null) { GrilleEditedResult result = EditEventHandler(element); if (result.isError) { MessageDisplayer.DisplayError("Wrong value", result.error); args.Handled = true; return; } else { if (result.datas == null) { args.Handled = true; } else { item.Datas = result.datas; } Refresh(); //this.grid.SelectedItem = item; } } } }