示例#1
0
        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);
            }
        }
示例#7
0
        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();
 }