Beispiel #1
0
        /// <summary>
        /// Construtor para <typeparamref name="MapaDeReferencia"/>.
        /// </summary>
        /// <param name="entradaReferenciada">Is the linked entry.</param>
        /// <param name="subEntradaOrigem">Is the source Element that references the entry.</param>
        /// <param name="source">Is the source Simbolo that references the entry.</param>
        /// <param name="simboloDestino">Is the target referencied Simbolo (entry owner).</param>
        public MapaDeReferencia(MapaDeEntrada mapaDeEntrada, SubEntrada subEntradaOrigem)
        {
            //SimboloOrigemId:
            if (subEntradaOrigem is Nocao)
            {
                SimboloOrigemId = (subEntradaOrigem as Nocao).Simbolo.Id;
            }
            else
            {
                SimboloOrigemId = (subEntradaOrigem as Impacto).Simbolo.Id;
            }

            //SimboloDestinoId:
            var entrada = subEntradaOrigem.Store.ElementDirectory.FindElement(mapaDeEntrada.EntradaId) as Entrada;

            if (entrada is Simbolo)
            {
                SimboloDestinoId = entrada.Id;
            }
            else if (entrada is Sinonimo)
            {
                SimboloDestinoId = (entrada as Sinonimo).Simbolo.Id;
            }
            else
            {
                throw new ArgumentException($"Entrada não é Simbolo nem Sinonimo.");
            }

            EntradaReferenciada = mapaDeEntrada.EntradaUnica;
            SubEntradaOrigemId  = subEntradaOrigem.Id;
        }
Beispiel #2
0
 /// <summary>
 /// Check whether newly added nocao references some entry and adds it if necessary
 /// </summary>
 /// <param name="nocao">Is the newly added nocao.</param>
 public void AnalisaEAdicionaMapaDeReferenciaParaNovaSubEntrada(SubEntrada subEntrada)
 {
     foreach (var mapaEntrada in VisualLALMapeamento.Instance.MapaEntradas)
     {
         AnalisaEAdicionaMapaDeReferencia(mapaEntrada, subEntrada);
     }
 }
Beispiel #3
0
        /// <summary>
        /// Removes all Link map that references from nocao specified.
        /// </summary>
        /// <param name="nocao"></param>
        public void RemoverReferenciasDeSubEntrada(SubEntrada subEntrada)
        {
            var referencias = new List <MapaDeReferencia>
                              (
                _lista.Where(mRef => mRef.SubEntradaOrigemId.Equals(subEntrada.Id))
                              );

            foreach (var referencia in referencias)
            {
                Remove(referencia);
            }
        }
Beispiel #4
0
        private void AnalisaEAdicionaMapaDeReferencia(MapaDeEntrada mapaEntrada, SubEntrada subEntrada)
        {
            var textoContemAlgumaEntrada = subEntrada.Texto.ContainsExtactExpression(mapaEntrada.EntradaUnica);

            if (textoContemAlgumaEntrada)
            {
                var novoMapaDeReferencia = new MapaDeReferencia(mapaEntrada, subEntrada);

                if (!Contem(novoMapaDeReferencia))
                {
                    Adiciona(novoMapaDeReferencia);
                }
            }
        }
Beispiel #5
0
        public static SizeD ObterTamanho(SimboloCompartment compartimento, SubEntrada subEntrada)
        {
            if (compartimento == null)
            {
                return(new SizeD(0, 0));
            }


            //nomeSubEntradaCompartimento
            string nomeSubEntradaCompartimento;

            if (subEntrada is Nocao)
            {
                nomeSubEntradaCompartimento = "NocaoCompartment";
            }
            else
            {
                nomeSubEntradaCompartimento = "ImpactoCompartment";
            }


            //subCompartimento
            var subCompartimento = compartimento.NestedChildShapes
                                   .Where(s => s is ElementListCompartment)
                                   .Where(s => (s as ElementListCompartment).Name.Equals(nomeSubEntradaCompartimento))
                                   .FirstOrDefault() as ElementListCompartment;

            if (subCompartimento == null)
            {
                return(new SizeD(0, 0));
            }


            //textField
            var textField = subCompartimento.ShapeFields
                            .Where(s => s.Name == "HdrText")
                            .FirstOrDefault() as TextField;

            if (textField == null)
            {
                return(new SizeD(0, 0));
            }


            //novoSize
            var novoSize = Measure(textField, compartimento, subEntrada.Texto);

            return(novoSize);
        }
Beispiel #6
0
 /// <summary>
 /// Updates link maps from newly changed nocao.
 /// </summary>
 /// <param name="nocao">Is the newly changed nocao.</param>
 public void AtualizaMapaDeReferenciaAposAlteracaoDeSubEntrada(SubEntrada subEntrada)
 {
     RemoverReferenciasDeSubEntrada(subEntrada);
     AnalisaEAdicionaMapaDeReferenciaParaNovaSubEntrada(subEntrada);
 }