예제 #1
0
        protected virtual void OnDuoConfReplaced(DuoConfig newDuoConf)
        {
            logger.ConditionalDebug("OnDuoConfReplaced");
            EventHandler <DuoConfReplacedEventArgs> eventHandler = DuoConfReplacedEvent;

            eventHandler?.Invoke(this, new DuoConfReplacedEventArgs(newDuoConf));
        }
예제 #2
0
 public DuoAction(string name, DuoConfig inDuoConf, int inPrevNbrAlt, int inNewNbrAlt)
     : base(name)
 {
     type       = DuoActionType.nbreAlt;
     duoConf    = inDuoConf;
     prevNbrAlt = inPrevNbrAlt;
     newNbrAlt  = inNewNbrAlt;
 }
예제 #3
0
 public DuoAction(string name, DuoConfig inDuoConf, DuoConfig.ColorisFunction inPrevColF,
                  DuoConfig.ColorisFunction inNewColF)
     : base(name)
 {
     type            = DuoActionType.colorisFunction;
     duoConf         = inDuoConf;
     prevColFunction = inPrevColF;
     newColFunction  = inNewColF;
 }
예제 #4
0
 public DuoAction(string name, DuoConfig inDuoConf, DuoConfig.Alternance inPrevAlt,
                  DuoConfig.Alternance inNewAlt)
     : base(name)
 {
     type           = DuoActionType.alternance;
     duoConf        = inDuoConf;
     prevAlternance = inPrevAlt;
     newAlternance  = inNewAlt;
 }
예제 #5
0
 public ConfigAction(string name, Config inConf, DuoConfig inPrevDuoConf,
                     DuoConfig inNewDuoConf)
     : base(name)
 {
     type        = ConfigActionType.duoConf;
     conf        = inConf;
     prevDuoConf = inPrevDuoConf;
     newDuoConf  = inNewDuoConf;
 }
예제 #6
0
 private void SetOptionalFieldsToDefaultVal(StreamingContext sc)
 {
     logger.ConditionalDebug("SetOptionalFieldsToDefaultVal");
     SetConfigName(DefaultConfigName);
     _duoConf    = null;
     isSubConfig = false;
     subConfNr   = 0;
     _arcConf    = new ArcConfig();
     _ponctConf  = new PonctConfig();
 }
예제 #7
0
        // ---------------------------------------------- Methods ----------------------------------

        /// <summary>
        /// Crée une config par défaut pour les différents membres.
        /// </summary>
        private void InitCtor()
        {
            logger.ConditionalDebug("InitCtor");
            pBDQ     = new PBDQConfig();
            sylConf  = new SylConfig();
            unsetBeh = new UnsetBehConf();
            colors   = new Dictionary <PhonConfType, ColConfWin>(2);
            colors[PhonConfType.muettes]  = new ColConfWin(PhonConfType.muettes);
            colors[PhonConfType.phonemes] = new ColConfWin(PhonConfType.phonemes);
            _duoConf   = null;
            _arcConf   = new ArcConfig();
            _ponctConf = new PonctConfig();
        }
예제 #8
0
        /// <summary>
        /// Execute une "deep copy" de l'objet, c'est à dire que tous les éléments attachés à <c>this</c> sont copiés
        /// dans une nouvelle instance
        /// </summary>
        /// <returns>Une copie exacte de <c>this</c> qui n'a rien en commun avec ce dernier. Retourne <c>null</c>
        /// en cas d'erreur.</returns>
        public DuoConfig DeepCopy()
        {
            logger.ConditionalDebug("DeepCopy");
            DuoConfig toReturn = null;

            try
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, this);
                    stream.Position = 0;
                    toReturn        = (DuoConfig)formatter.Deserialize(stream);
                    toReturn.PostLoadInitOptionalFields();
                }
            }
            catch (Exception e) when(e is IOException || e is SerializationException)
            {
                logger.Error("Impossible d'effectuer une copie de la \'DuoConfig\'. Erreur: {0}, Stack: {2}",
                             e.Message, e.StackTrace);
            }
            return(toReturn);
        }
예제 #9
0
 /// <summary>
 /// Dit à la <c>Config</c> qu'elle est une subConfig de type donné par <paramref name="theNr"/>.
 /// </summary>
 /// <param name="theNr">Le type de subConfig</param>
 public void IsSubConfig(int theNr)
 {
     isSubConfig = true;
     subConfNr   = theNr;
     _duoConf    = null; // si par hasard une DuoConf était attachée, on la jette.
 }
예제 #10
0
        }                                                   // La nouvelle configuration qui remplace l'ancienne

        public DuoConfReplacedEventArgs(DuoConfig theNewDuoConf)
        {
            newDuoConfig = theNewDuoConf;
        }