FixtureProfiles LoadFixtureProfiles(string[] lines) { FixtureProfiles fixtureProfiles = new FixtureProfiles(); bool fixtureProfilesFound = false; foreach (string line in lines) { if (line.Contains("@FIXTURE PROFILES")) { fixtureProfilesFound = true; } else if (fixtureProfilesFound) { if (string.IsNullOrEmpty(line) && !line.StartsWith("% ") || line.Contains("@DATA")) { break; } else if (!line.StartsWith("% FixtureClass")) { FixtureProfile fixtureProfile = new FixtureProfile(ToStringArray(line, ',')); fixtureProfiles.Add(fixtureProfile); } } } return(fixtureProfiles); }
public void AddRow(FixtureProfile fixtureProfile) { var row = new FixtureProfileRow(); row.FixtureProfile = fixtureProfile; row.FixtureProfilesEditor = this; row.Initialize(); StackPanelRows.Children.Add(row); }
FixtureProfile AddFixture(Event @event) { var fixtureProfile = FixtureProfile.FilterFixtureProfile(FixtureProfile.CreateFixtureProfile(@event)); int position = GetInsertPosition(Analysis.FixtureProfiles, fixtureProfile.FixtureClass); Analysis.FixtureProfiles.Insert(position, fixtureProfile); PopulateRows(); SelectRow(RowFromProfile(fixtureProfile)); return(fixtureProfile); }
FixtureProfileRow RowFromProfile(FixtureProfile fixtureProfile) { foreach (FixtureProfileRow row in StackPanelRows.Children) { if (row.FixtureProfile == fixtureProfile) { return(row); } } return(null); }
void SetRowSelected(FixtureProfile fixtureProfile) { foreach (FixtureProfileRow row in StackPanelRows.Children) { if (fixtureProfile != null && row.FixtureProfile == fixtureProfile) { SelectRow(row); return; } } }
void DispatchDrop(Polygon polygon, FixtureProfile fixtureProfile) { var @event = (polygon).Tag as Event; if (fixtureProfile != null && fixtureProfile.FixtureClass == @event.FixtureClass) { Apply(fixtureProfile, @event); } else { AddFixture(@event); } }
void WriteFixtureProfile(System.Text.StringBuilder text, FixtureProfile fixtureProfile) { string s = "% " + fixtureProfile.FixtureClass.Name + "," + fixtureProfile.MinVolume + "," + fixtureProfile.MaxVolume + "," + fixtureProfile.MinPeak + "," + fixtureProfile.MaxPeak + "," + (fixtureProfile.MinDuration.HasValue ? fixtureProfile.MinDuration.Value.TotalSeconds.ToString() : null) + "," + (fixtureProfile.MaxDuration.HasValue ? fixtureProfile.MaxDuration.Value.TotalSeconds.ToString() : null) + "," + fixtureProfile.MinMode + "," + fixtureProfile.MaxMode; text.Append(s); }
public void DragDrop(object sender, DragEventArgs e, FixtureProfile fixtureProfile) { if (e.Data.GetDataPresent(typeof(Polygon))) { DispatchDrop((Polygon)e.Data.GetData(typeof(Polygon)), fixtureProfile); } else if (e.Data.GetDataPresent(typeof(List <Polygon>))) { var polygons = (List <Polygon>)e.Data.GetData(typeof(List <Polygon>)); foreach (Polygon polygon in polygons) { DispatchDrop(polygon, fixtureProfile); } } e.Handled = true; }
FixtureProfile Apply(Event @event) { var fixtureProfilesThisFixture = GetFixtureProfiles(@event.FixtureClass); FixtureProfile fixtureProfile = null; if (fixtureProfilesThisFixture.Count == 0) { fixtureProfile = AddFixture(@event); return(fixtureProfile); } else if (fixtureProfilesThisFixture.Count == 1) { fixtureProfile = fixtureProfilesThisFixture[0]; Apply(fixtureProfile, @event); } else { fixtureProfile = FixtureProfiles.GetMostSimilar(fixtureProfilesThisFixture, @event); Apply(fixtureProfile, @event); } SelectRow(RowFromProfile(fixtureProfile)); return(fixtureProfile); }
void Apply(FixtureProfile fixtureProfile, Event @event) { fixtureProfile.Apply(@event); PopulateRows(); }