コード例 #1
0
        private void UpdatePointsOfType(PhonemeType type)
        {
            var points        = PointsOfType(type);
            var projectPoints = ProjectLine.PointsOfType(type, virtuals: false);
            var phonemes      = ProjectLine.Recline.PhonemesOfType(type);

            for (int i = 0; i < points.Count; i++)
            {
                var point      = points[i];
                var wasEnabled = point.IsEnabled;
                point.IsEnabled = i < projectPoints.Count;
                if (point.IsEnabled)
                {
                    var position = Settings.RealToViewX(projectPoints[i]);
                    point.Position = position;
                    point.Update(PointIsLeft(type, i), phonemes[i / 2].Alias);
                }
                else
                {
                    point.Position = -1;
                }
                if (IsEnabled != wasEnabled)
                {
                    point.FireChanged();
                }
            }
        }
コード例 #2
0
 void Awake()
 {
     S            = this;
     line         = GetComponent <LineRenderer>();
     line.enabled = false;
     points       = new List <Vector3>();
 }
コード例 #3
0
 private void ResetPointsOfType(PhonemeType type)
 {
     ProjectLine.PointsOfType(type, false).Clear();
     ProjectLine.ZonesOfType(type).Clear();
     PointsOfType(type).Clear();
     ZonesOfType(type).Clear();
     FirePointsChanged();
 }
コード例 #4
0
        public Project Read(string location, string reclistName)
        {
            var project = new Project();

            string[] lines = File.ReadAllLines(location, Encoding.UTF8);
            project.Options      = new Dictionary <string, string>();
            project.ProjectLines = new List <ProjectLine>();
            int i = 0;

            /// Совместимость со старыми сейвами без опций
            if (!lines[0].StartsWith("$"))
            {
                project.SetVoicebank(new Voicebank(PathResolver.Current.TryGetDirectoryName(location), lines[0]));
                i++;
            }
            /// Чтение опций
            for (; lines.Length > i && lines[i].StartsWith("$"); i++)
            {
                if (!lines[i].Contains("="))
                {
                    continue;
                }
                ReadOption(project, lines[i], location);
            }
            // TODO: select reclist to import
            project.SetReclist(ReclistReader.Current.Read(reclistName));
            project.ProjectLines = new List <ProjectLine>();
            var usedReclines = new List <Recline>();

            /// Чтение строк реклиста из проекта
            for (; i + 3 < lines.Length; i += 4)
            {
                var file    = lines[i].Replace(".wav", "");
                var recline = project.Reclist.GetRecline(file);
                usedReclines.Add(recline);
                var projectLine = ProjectLine.Read(recline, lines[i + 1], lines[i + 2], lines[i + 3]);
                project.AddProjectLine(file, projectLine);
            }
            /// Чтение строк реклиста, которых нет в проекте
            if (project.Reclist != null)
            {
                foreach (var recline in project.Reclist.Reclines)
                {
                    if (!usedReclines.Contains(recline))
                    {
                        project.ProcessLineAfterRead(ProjectLine.CreateNewFromRecline(recline));
                    }
                }
            }
            return(project);
        }
コード例 #5
0
        public void AddPoint(double position, PhonemeType type)
        {
            position = CheckPosition(position);
            if (position == -1)
            {
                return;
            }
            var i = ProjectLine.AddPoint(Settings.ViewToRealX(position), type);

            if (i == -1)
            {
                return;
            }
            OnPointAdded(position, type, i);
        }
コード例 #6
0
        public void DeletePoint(double position, PhonemeType type)
        {
            position = GetProjectLineContainer().CheckPosition(position);
            ProjectLine.DeletePoint(Settings.ViewToRealX(position), type);
            var points = PointsOfType(type);

            foreach (var point in points)
            {
                if (point.Position == position)
                {
                    points.Remove(point);
                    break;
                }
            }
            FirePointsChanged();
        }
コード例 #7
0
        public void MovePoint(double position1, double position2, PhonemeType type)
        {
            position2 = GetProjectLineContainer().CheckPosition(position2);
            ProjectLine.MovePoint(Settings.ViewToRealX(position1), Settings.ViewToRealX(position2), type);
            var points = PointsOfType(type);

            for (int i = 0; i < points.Count; i++)
            {
                if (points[i].Position == position1)
                {
                    points[i].Position = position2;
                    break;
                }
            }
            FirePointsChanged();
        }
コード例 #8
0
        private void BuildZones(ObservableCollection <WavZoneViewModel> zones, PhonemeType type)
        {
            if (ProjectLine == null)
            {
                return;
            }
            var points = ProjectLine.PointsOfType(type);

            zones.Clear();
            var kindaWitdh = Width > 0 ? Width : 2000;

            for (int i = 0; i + 1 < points.Count; i += 2)
            {
                var pIn  = Settings.RealToViewX(points[i]);
                var pOut = Settings.RealToViewX(points[i + 1]);
                zones.Add(new WavZoneViewModel(type, pIn, pOut, kindaWitdh, (int)Height));
            }
            return;
        }
コード例 #9
0
 public ProjectLineContainer(ProjectLine projectLine, ImagesLibrary imagesLibrary, WavPlayer wavPlayer, string sampleName, WavImagesHash hash, int number)
 {
     ProjectLine        = projectLine;
     Number             = number;
     this.imagesLibrary = imagesLibrary;
     this.wavPlayer     = wavPlayer;
     this.hash          = hash;
     if (!string.IsNullOrEmpty(ProjectLine?.Recline?.Description))
     {
         viewName = $"{ProjectLine?.Recline?.Description} [{ProjectLine?.Recline?.Name}]";
     }
     else
     {
         viewName = ProjectLine?.Recline?.Name.Replace("_", " ");
     }
     WaveForm    = new WaveForm(sampleName);
     IsCompleted = ProjectLine.IsCompleted;
     IsEnabled   = ProjectLine.IsEnabled;
 }
コード例 #10
0
        public void LoadImages(int height)
        {
            App.MainDispatcher.Invoke(delegate
            {
                IsLoadingImages = true;
                IsLoadedImages  = false;
                ProjectLine.UpdateEnabled();
                if (!ProjectLine.IsEnabled)
                {
                    FinishImagesLoading();
                }
            });
            if (!ProjectLine.IsEnabled)
            {
                return;
            }

            imagesLibrary.Load(WaveForm, height, hash);
        }
コード例 #11
0
 public async void LoadSpectrum(int height)
 {
     IsLoadingImages = true;
     IsLoadedImages  = false;
     ProjectLine.UpdateEnabled();
     if (!ProjectLine.IsEnabled)
     {
         FinishImagesLoading();
     }
     else
     {
         await Task.Run(() => ExceptionCatcher.Current.CatchOnAction(() =>
         {
             imagesLibrary.RequestLoadSpectrum(WaveForm, height, hash);
         })).ContinueWith(delegate
         {
             App.MainDispatcher.Invoke(delegate
             {
                 FinishImagesLoading();
             });
         });
     }
 }
コード例 #12
0
 public MissingProject(Solution solution, ProjectLine project) : base(solution)
 {
     Project = project;
 }
コード例 #13
0
        private void ProjectLineGetPreviousAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                GlobalFunction _globFunc    = new GlobalFunction();
                IObjectSpace   _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace;

                ArrayList     _objectsToProcess = new ArrayList(e.SelectedObjects);
                DateTime      now                   = DateTime.Now;
                Session       _currSession          = null;
                string        _currObjectId         = null;
                ProjectHeader _locProjectHeaderXPO  = null;
                string        _locProjectHeaderCode = null;

                if (this.ObjectSpace != null)
                {
                    _currSession = ((XPObjectSpace)this.ObjectSpace).Session;
                }

                if (_objectsToProcess != null)
                {
                    foreach (Object obj in _objectsToProcess)
                    {
                        ProjectLine _locProjectLineOS = (ProjectLine)_objectSpace.GetObject(obj);


                        if (_locProjectLineOS != null)
                        {
                            if (_locProjectLineOS.ProjectHeader != null)
                            {
                                if (_locProjectLineOS.ProjectHeader.Code != null)
                                {
                                    _locProjectHeaderCode = _locProjectLineOS.ProjectHeader.Code;
                                }
                            }

                            if (_locProjectLineOS.Code != null)
                            {
                                _currObjectId = _locProjectLineOS.Code;

                                ProjectLine _locProjectLineXPO = _currSession.FindObject <ProjectLine>
                                                                     (new GroupOperator(GroupOperatorType.And,
                                                                                        new BinaryOperator("Code", _currObjectId)));

                                if (_locProjectLineXPO == null)
                                {
                                    if (_locProjectHeaderCode != null)
                                    {
                                        _locProjectHeaderXPO = _currSession.FindObject <ProjectHeader>
                                                                   (new GroupOperator(GroupOperatorType.And,
                                                                                      new BinaryOperator("Code", _locProjectHeaderCode)));
                                    }

                                    if (_locProjectHeaderXPO != null)
                                    {
                                        XPCollection <ProjectLine> _numLines = new XPCollection <ProjectLine>
                                                                                   (_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                    new BinaryOperator("ProjectHeader", _locProjectHeaderXPO)),
                                                                                   new SortProperty("No", DevExpress.Xpo.DB.SortingDirection.Ascending));

                                        if (_numLines != null && _numLines.Count > 0)
                                        {
                                            foreach (ProjectLine _numLine in _numLines)
                                            {
                                                if (_numLine.No == _numLines.Count())
                                                {
                                                    _locProjectLineOS.Title  = _numLine.Title;
                                                    _locProjectLineOS.Title2 = _numLine.Title2;
                                                    _locProjectLineOS.Title3 = _numLine.Title3;
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    ErrorMessageShow("Data Project Line Not Available");
                                }
                            }
                            else
                            {
                                ErrorMessageShow("Data Project Line Not Available");
                            }
                        }
                    }
                }

                if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View)
                {
                    _objectSpace.CommitChanges();
                    _objectSpace.Refresh();
                }
                if (View is ListView)
                {
                    _objectSpace.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                Tracing.Tracer.LogError(" BusinessObject = ProjectLine " + ex.ToString());
            }
        }
コード例 #14
0
        private void ProjectLineMirrorAction_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            try
            {
                GlobalFunction _globFunc    = new GlobalFunction();
                IObjectSpace   _objectSpace = View is ListView?Application.CreateObjectSpace() : View.ObjectSpace;

                ArrayList     _objectsToProcess = new ArrayList(e.SelectedObjects);
                DateTime      now                   = DateTime.Now;
                Session       _currSession          = null;
                string        _currObjectId         = null;
                ProjectHeader _locProjectHeaderXPO  = null;
                string        _locProjectHeaderCode = null;

                if (this.ObjectSpace != null)
                {
                    _currSession = ((XPObjectSpace)this.ObjectSpace).Session;
                }

                if (_objectsToProcess != null)
                {
                    foreach (Object obj in _objectsToProcess)
                    {
                        ProjectLine _locProjectLineOS = (ProjectLine)_objectSpace.GetObject(obj);


                        if (_locProjectLineOS != null)
                        {
                            if (_locProjectLineOS.ProjectHeader != null)
                            {
                                if (_locProjectLineOS.ProjectHeader.Code != null)
                                {
                                    _locProjectHeaderCode = _locProjectLineOS.ProjectHeader.Code;
                                }
                            }

                            if (_locProjectLineOS.Code != null)
                            {
                                if (_locProjectHeaderCode != null)
                                {
                                    _locProjectHeaderXPO = _currSession.FindObject <ProjectHeader>
                                                               (new GroupOperator(GroupOperatorType.And,
                                                                                  new BinaryOperator("Code", _locProjectHeaderCode)));

                                    if (_locProjectHeaderXPO != null)
                                    {
                                        _currObjectId = _locProjectLineOS.Code;

                                        ProjectLine _locProjectLineXPO = _currSession.FindObject <ProjectLine>
                                                                             (new GroupOperator(GroupOperatorType.And,
                                                                                                new BinaryOperator("Code", _currObjectId),
                                                                                                new BinaryOperator("ProjectHeader", _locProjectHeaderXPO)));


                                        if (_locProjectLineXPO != null)
                                        {
                                            XPCollection <ProjectLineItem> _numProjectLineItems = new XPCollection <ProjectLineItem>
                                                                                                      (_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                                       new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                                                                       new BinaryOperator("ProjectLine", _locProjectLineXPO)),
                                                                                                      new SortProperty("No", DevExpress.Xpo.DB.SortingDirection.Ascending));

                                            if (_numProjectLineItems != null && _numProjectLineItems.Count > 0)
                                            {
                                                foreach (ProjectLineItem _numProjectLineItem in _numProjectLineItems)
                                                {
                                                    if (_numProjectLineItem.Item != null && (_numProjectLineItem.Status == Status.Open || _numProjectLineItem.Status == Status.Progress || _numProjectLineItem.Status == Status.Lock))
                                                    {
                                                        #region Mirror ProjectLineItem2
                                                        XPCollection <ItemComponent> _locItemComponents = new XPCollection <ItemComponent>(_currSession, new GroupOperator(GroupOperatorType.And,
                                                                                                                                                                           new BinaryOperator("Item", _numProjectLineItem.Item),
                                                                                                                                                                           new BinaryOperator("Active", true)));

                                                        if (_locItemComponents != null && _locItemComponents.Count > 0)
                                                        {
                                                            foreach (ItemComponent _locItemComponent in _locItemComponents)
                                                            {
                                                                ProjectLineItem2 _locProjectLineItem2 = _currSession.FindObject <ProjectLineItem2>(
                                                                    new GroupOperator(GroupOperatorType.And,
                                                                                      new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                      new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                      new BinaryOperator("ProjectLineItem", _numProjectLineItem),
                                                                                      new BinaryOperator("Item", _locItemComponent.ItemComp)
                                                                                      ));

                                                                if (_locProjectLineItem2 == null)
                                                                {
                                                                    if (_numProjectLineItem.Item == _locItemComponent.ItemComp)
                                                                    {
                                                                        ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                        {
                                                                            Item            = _numProjectLineItem.Item,
                                                                            DUOM            = _numProjectLineItem.DUOM,
                                                                            DQty            = _numProjectLineItem.DQty,
                                                                            TQty            = _numProjectLineItem.TQty,
                                                                            ProjectHeader   = _locProjectHeaderXPO,
                                                                            ProjectLine     = _locProjectLineXPO,
                                                                            ProjectLineItem = _numProjectLineItem
                                                                        };
                                                                        _saveDataPLI2.Save();
                                                                        _saveDataPLI2.Session.CommitTransaction();
                                                                    }
                                                                    else
                                                                    {
                                                                        ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                        {
                                                                            Item            = _locItemComponent.ItemComp,
                                                                            DUOM            = _locItemComponent.UOM,
                                                                            DQty            = _locItemComponent.Qty,
                                                                            ProjectHeader   = _locProjectHeaderXPO,
                                                                            ProjectLine     = _locProjectLineXPO,
                                                                            ProjectLineItem = _numProjectLineItem
                                                                        };
                                                                        _saveDataPLI2.Save();
                                                                        _saveDataPLI2.Session.CommitTransaction();
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        else
                                                        {
                                                            ProjectLineItem2 _locProjectLineItem2 = _currSession.FindObject <ProjectLineItem2>(
                                                                new GroupOperator(GroupOperatorType.And,
                                                                                  new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                  new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                  new BinaryOperator("ProjectLineItem", _numProjectLineItem),
                                                                                  new BinaryOperator("Item", _numProjectLineItem.Item)
                                                                                  ));

                                                            if (_locProjectLineItem2 != null)
                                                            {
                                                                _locProjectLineItem2.Name          = _numProjectLineItem.Name;
                                                                _locProjectLineItem2.Item          = _numProjectLineItem.Item;
                                                                _locProjectLineItem2.DQty          = _numProjectLineItem.DQty;
                                                                _locProjectLineItem2.DUOM          = _numProjectLineItem.DUOM;
                                                                _locProjectLineItem2.Qty           = _numProjectLineItem.Qty;
                                                                _locProjectLineItem2.UOM           = _numProjectLineItem.UOM;
                                                                _locProjectLineItem2.TQty          = _numProjectLineItem.TQty;
                                                                _locProjectLineItem2.Description   = _numProjectLineItem.Description;
                                                                _locProjectLineItem2.ProjectHeader = _locProjectHeaderXPO;
                                                                _locProjectLineItem2.ProjectLine   = _locProjectLineXPO;
                                                                _locProjectLineItem2.Save();
                                                                _locProjectLineItem2.Session.CommitTransaction();
                                                            }
                                                            else
                                                            {
                                                                ProjectLineItem2 _saveDataPLI2 = new ProjectLineItem2(_currSession)
                                                                {
                                                                    Item            = _numProjectLineItem.Item,
                                                                    DUOM            = _numProjectLineItem.DUOM,
                                                                    DQty            = _numProjectLineItem.DQty,
                                                                    Qty             = _numProjectLineItem.Qty,
                                                                    UOM             = _numProjectLineItem.UOM,
                                                                    TQty            = _numProjectLineItem.TQty,
                                                                    ProjectHeader   = _locProjectHeaderXPO,
                                                                    ProjectLine     = _locProjectLineXPO,
                                                                    ProjectLineItem = _numProjectLineItem
                                                                };
                                                                _saveDataPLI2.Save();
                                                                _saveDataPLI2.Session.CommitTransaction();
                                                            }
                                                        }
                                                        #endregion Mirror ProjectLineItem2

                                                        #region Mirror ProjectLineServices
                                                        ProjectLineService _locProjectLineService = _currSession.FindObject <ProjectLineService>
                                                                                                        (new GroupOperator(GroupOperatorType.And,
                                                                                                                           new BinaryOperator("ProjectHeader", _locProjectHeaderXPO),
                                                                                                                           new BinaryOperator("ProjectLine", _locProjectLineXPO),
                                                                                                                           new BinaryOperator("ProjectLineItem", _numProjectLineItem)));
                                                        if (_locProjectLineService != null)
                                                        {
                                                            _locProjectLineService.Qty             = _numProjectLineItem.TQty;
                                                            _locProjectLineService.UOM             = _numProjectLineItem.DUOM;
                                                            _locProjectLineService.ProjectHeader   = _locProjectHeaderXPO;
                                                            _locProjectLineService.ProjectLine     = _locProjectLineXPO;
                                                            _locProjectLineService.ProjectLineItem = _numProjectLineItem;
                                                        }
                                                        if (_locProjectLineService == null)
                                                        {
                                                            ProjectLineService _saveDataPLS = new ProjectLineService(_currSession)
                                                            {
                                                                Qty             = _numProjectLineItem.TQty,
                                                                UOM             = _numProjectLineItem.DUOM,
                                                                ProjectHeader   = _locProjectHeaderXPO,
                                                                ProjectLine     = _locProjectLineXPO,
                                                                ProjectLineItem = _numProjectLineItem
                                                            };
                                                            _saveDataPLS.Save();
                                                            _saveDataPLS.Session.CommitTransaction();
                                                        }
                                                        #endregion Mirror ProjectLineServices
                                                    }
                                                }
                                            }
                                        }
                                        SuccessMessageShow("Project Line Item Has Successfully Mirror to Project Line Item 2");
                                    }
                                }
                                else
                                {
                                    ErrorMessageShow("Data Project Line Not Available");
                                }
                            }
                            else
                            {
                                ErrorMessageShow("Data Project Line Not Available");
                            }
                        }
                    }
                }

                if (View is DetailView && ((DetailView)View).ViewEditMode == ViewEditMode.View)
                {
                    _objectSpace.CommitChanges();
                    _objectSpace.Refresh();
                }
                if (View is ListView)
                {
                    _objectSpace.CommitChanges();
                    View.ObjectSpace.Refresh();
                }
            }
            catch (Exception ex)
            {
                Tracing.Tracer.LogError(" BusinessObject = ProjectLine " + ex.ToString());
            }
        }
コード例 #15
0
 public override string ToString()
 {
     return($"ProjectLineContainer {ProjectLine?.ToString()}");
 }