public Patterns(ScheduleDataSet schedule) { this.pattern_info = schedule.patterns; this.pattern_data = schedule.pattern_data; this.pattern_sub_pattern = schedule.pattern_sub_pattern; this.pattern_java_server = schedule.pattern_java_server; }
public Patterns(PatternDescriptionTable pattern_info, PatternDataTable pattern_data, PatternMultiDataTable pattern_sub_pattern, PatternJavaDataTable pattern_java_server) { this.pattern_info = pattern_info; this.pattern_data = pattern_data; this.pattern_sub_pattern = pattern_sub_pattern; this.pattern_java_server = pattern_java_server; }
public void UpdateBits() { masks.Clear(); PatternDescriptionTable pdt = row.Table as PatternDescriptionTable; DataRow[] bits = pdt.LoadPatternData(row); if (bits != null) { foreach (DataRow child_row in bits) { if (child_row.Table.TableName == PatternMultiDataTable.TableName) { masks.Add(new System.Collections.Specialized.BitVector32(0x1FFF)); } if (child_row.Table.TableName == PatternDataTable.TableName) { int mask = Convert.ToInt32(child_row["bits_int"]); if (mask == 0) { // the reading of pattern data should fixup the bits_int value. String x = child_row["mask"].ToString(); for (int n = 0; n < 25; n++) { if (x[n] == '1') { mask |= 1 << n; } } child_row["bits_int"] = mask; } if (eCube) { mask >>= 3; { int tmp = 0; int r, c; for (r = 0; r < 5; r++) { for (c = 0; c < 5; c++) { if ((mask & (1 << (c * 5) + r)) != 0) { tmp |= 1 << (((4 - c) * 5) + (4 - r)); } } } mask = tmp; } } masks.Add(new System.Collections.Specialized.BitVector32(mask)); } } } }
public void UpdateSubPatterns(Pattern pattern) { PatternDescriptionTable pdt = pattern.row.Table as PatternDescriptionTable; DataRow[] subs = pdt.LoadPatternSubs(pattern.row); pattern.sub_patterns.Clear(); foreach (DataRow sub_row in subs) { foreach (Pattern sub in this) { if (sub.ID.Equals(sub_row["member_pattern_id"])) { pattern.sub_patterns.Add(sub); break; } } } }
public bool UpdateRow() { if (changed || (row != null && row.RowState == DataRowState.Deleted)) { expanded = false; if (row != null) { if (row.RowState != DataRowState.Deleted) { StringBuilder mask = new StringBuilder(); row[XDataTable.Name(row.Table)] = Name; row["count"] = _repeat_count; row["crazy_hardway"] = _crazy_hardway; row["real_mode"] = _algorithm; row["mode_mod"] = ((int)_mode_mod) + (_repeat_no_overlap ? mode_modifications.max_mod : 0); PatternDescriptionTable pdt = row.Table as PatternDescriptionTable; //pdt.CommitChanges(); if (XDataTable.DefaultAutoKeyType == typeof(Guid)) { ID = new Guid(row["pattern_id"].ToString()); } else { ID = row["pattern_id"]; } if (_algorithm == PatternDescriptionTable.match_types.Normal) { bool bits_changed = false; int block = 0; DataRow[] rows = row.GetChildRows("pattern_has_bits"); //DataRow[] rows = pattern_data.Select( "pattern_id=" + ID.ToString() ); foreach (DataRow delete_row in rows) { // maybe check off each pattern... bits_changed = true; delete_row.Delete(); } foreach (System.Collections.Specialized.BitVector32 bits in masks) { DataRow newrow = pattern_list.pattern_data.NewRow(); mask.Length = 0; newrow["block"] = block++; newrow["bits_int"] = bits.Data; newrow["pattern_id"] = ID; pattern_list.pattern_data.Rows.Add(newrow); bits_changed = true; } if (pattern_list != null && pattern_list.pattern_data != null && bits_changed) { //pattern_list.pattern_data.CommitChanges(); } } } else { PatternDescriptionTable pdt = row.Table as PatternDescriptionTable; pdt.CommitChanges(); } } if (sub_pattern_changed || (row != null && row.RowState == DataRowState.Deleted)) { expanded = false; if (IsMultiPattern()) { UpdateSubPatterns(this); } sub_pattern_changed = false; } changed = false; return(true); } if (sub_pattern_changed || (row != null && row.RowState == DataRowState.Deleted)) { expanded = false; if (IsMultiPattern()) { UpdateSubPatterns(this); } sub_pattern_changed = false; return(true); } return(false); }