// User deletes a row private void fieldslist_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { // Get the row FieldsEditorRow row = e.Row as FieldsEditorRow; if (row == null) { return; } // Fixed/uservar field? if (row.RowType == FieldsEditorRowType.FIXED || row.RowType == FieldsEditorRowType.USERVAR) { // Just undefine the field row.Undefine(); e.Cancel = true; if (OnFieldUndefined != null) { OnFieldUndefined(row.Name); } } else { if (OnFieldDeleted != null) { OnFieldDeleted(row.Name); } } }
// User deletes a row private void fieldslist_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e) { // Get the row FieldsEditorRow row = e.Row as FieldsEditorRow; // Fixed field? if (row.IsFixed) { // Just undefine the field row.Undefine(); e.Cancel = true; if (OnFieldUndefined != null) { OnFieldUndefined(row.Name); } } else { if (OnFieldDeleted != null) { OnFieldDeleted(row.Name); } } }
// This applies a value to a row private void ApplyValue(FieldsEditorRow frow, object value) { // Defined? if ((value != null) && (!frow.IsFixed || !frow.Info.Default.Equals(value))) { frow.Define(value); } else if (frow.IsFixed) { frow.Undefine(); } }
// This applies a value to a row private void ApplyValue(FieldsEditorRow frow, object value) { // Defined? if ((value != null) && (frow.RowType == FieldsEditorRowType.DYNAMIC || frow.RowType == FieldsEditorRowType.USERVAR || !frow.Info.Default.Equals(value))) { frow.Define(value); } else if (frow.RowType == FieldsEditorRowType.FIXED) { frow.Undefine(); } if (OnFieldValueChanged != null) { OnFieldValueChanged(frow.Name); } }
// This applies a value to a row private void ApplyValue(FieldsEditorRow frow, object value) { // Defined? if (value != null && ( !frow.IsFixed || (frow.Info.Default == null || !frow.Info.Default.Equals(value)) ) ) { frow.Define(value); } else if (frow.IsFixed) { frow.Undefine(); } if (OnFieldValueChanged != null) { OnFieldValueChanged(frow.Name); } }
//mxd public void SetUserVars(Dictionary <string, UniversalType> vars, UniFields fromfields, bool first) { foreach (KeyValuePair <string, UniversalType> group in vars) { // Go for all rows bool foundrow = false; TypeHandler vartype = General.Types.GetFieldHandler((int)group.Value, 0); object value = fromfields.ContainsKey(group.Key) ? fromfields[group.Key].Value : vartype.GetDefaultValue(); foreach (DataGridViewRow row in fieldslist.Rows) { // Row is a field? if (row is FieldsEditorRow) { FieldsEditorRow frow = row as FieldsEditorRow; // Row name matches with user var? if (frow.RowType == FieldsEditorRowType.USERVAR && frow.Name == group.Key) { // First time? if (first) { frow.Define(value); } // Check if the value is different else if (!frow.TypeHandler.GetValue().Equals(value)) { // Clear the value in the row frow.Define(value); frow.Clear(); } // Done foundrow = true; break; } } } // Row not found? if (!foundrow) { // Make new row object defaultvalue = vartype.GetDefaultValue(); FieldsEditorRow frow = new FieldsEditorRow(fieldslist, group.Key, (int)group.Value, defaultvalue, true); if (!value.Equals(defaultvalue)) { frow.Define(value); } fieldslist.Rows.Insert(fieldslist.Rows.Count - 1, frow); } } // Now check for rows that the givens fields do NOT have foreach (DataGridViewRow row in fieldslist.Rows) { // Row is a field? if (row is FieldsEditorRow) { FieldsEditorRow frow = row as FieldsEditorRow; // Don't undefine user var rows defined by other actor types if (frow.RowType == FieldsEditorRowType.USERVAR || vars.ContainsKey(frow.Name)) { continue; } // Is this row defined previously? if (frow.IsDefined) { // Check if this row can not be found in the fields at all if (!fromfields.ContainsKey(frow.Name)) { // It is not defined in these fields, undefine the value frow.Undefine(); } } } } // Sort fields Sort(); }