Suporte bidirecional avançado

Existem muitas propriedades que você pode configurar para ativar o suporte bidirecional em documentos.

Propriedades bidirecionais nos modelos

Alguns dos elementos de modelo possuem a propriedade direction. O valor dessa propriedade pode ser configurado como ltr (esquerda para direita), rtl (direita para esquerda), contextual ou empty (a configuração padrão). Se o valor desta propriedade for empty, a direção do elemento correspondente será herdada ou terá um padrão para o valor do documento atual.

Os seguintes elementos de modelo têm a propriedade direction:
  • Contêiner, Parágrafo, Célula da tabela, Item da lista: A propriedade afeta cada parágrafo lógico do texto, para o qual a direção não está explicitamente definida.
  • Tabela : A propriedade define a maneira de exibir colunas (da esquerda para direita ou na direção oposta) e afeta cada célula, para qual a direção não é explicitamente definida.
  • Lista: A propriedade afeta cada item da lista para qual a direção não está explicitamente definida.
  • Texto: A propriedade afeta o conteúdo do elemento atual apenas. Ela não pode ser herdada de outros elementos, ou por eles.

É possível configurar a propriedade direction a partir da visualização Propriedades no Document Studio.

Propriedade Direção configurada na visualização Propriedades

Propriedades bidirecionais nas especificações de documento

As seguintes propriedades bidirecionais específicas dos metadados de tempo de execução são usadas para controlar o layout do documento gerado e a direção de base de seus conteúdos de texto.

Tipo Valor Descrição
bidi true, false (padrão) Usado como um acionador para ativar ou desativar a funcionalidade bidirecional específica.
direção do documento ltr, rtl Define o layout do documento. Se a direção do documento e as propriedades de metadados de código de idioma de saída estiverem vazias, a direção do documento será configurada como ltr. Se a direção do documento estiver vazia, seu valor de tempo de execução real dependerá do valor da propriedade output locale. Para códigos de idioma bidirecionais, será rtl. Para outros códigos de idiomas será ltr.
direção do texto ltr, rtl, contextual,empty (padrão) Define a direção do texto base. empty significa que a direção do texto padrão é igual à direção do documento.

No Launcher, você pode configurar propriedades na visualização Propriedades ou na janela Configurar propriedades de metadados:

Configurando propriedades bidirecionais na visualização Propriedades das especificações do documento

As propriedades bidirecionais podem ser referenciadas a partir de modelos do Rational Publishing Engine usando a variável interna _sessionInfo:

Informações da sessão em uma expressão de script

A partir dos produtos que usam o mecanismo RRDG integrado, propriedades bidirecionais podem ser configuradas programaticamente. Por exemplo, no caso de Rational DOORS Next Generation, podemos ter algo como:
LocalDocumentGenerator docGen = new LocalDocumentGenerator(new RRDGEngineImpl());
    String config = docGen.getConfigurationPath(configFolder.toURI());
    DocumentSpecificationBuilder builder = new DocumentSpecificationBuilder();
    RPEDocumentSpecification docSpec = builder.create(config);
    RPEMetadata metadata = docSpec.getRuntime().getMetadata();
    metadata.addProperty(new Property(RPEConfigConstants.PROPERTY_DOCUMENT_DIRECTION, new Value("","rtl"));
Nota: A versão anterior do Rational Publishing Engine usou a propriedade bidi da saída do Microsoft Word para ligar ou desligar a funcionalidade bidirecional específica. Essa propriedade não é mais suportada, embora ainda seja mostrada na visualização Propriedades de saída do Word.

Determinando elementos e direção do texto base de seus conteúdos no tempo de execução

A direção do elemento especifica alinhamento, layout e a direção do texto base de seus conteúdos.

Contêiner, Parágrafo, Tabela, Célula da tabela, Lista e Item da lista tem sua própria propriedade direction. Se o valor dessa propriedade estiver vazio, a direção real do elemento correspondente será herdada do ascendente mais próximo, tendo uma propriedade de direção não vazia. Se for verificado que não há nada a ser herdado, a direção do elemento será definida pela propriedade document direction do documento.

Se Contêiner, Parágrafo, Tabela,Célula da tabela, Lista ou Item da lista tiver suas próprias propriedades de direção contextual, ou herdadas, a direção real desses elementos será determinada por seus conteúdos de texto. No entanto, se isso não for possível (o texto não for colocado no elemento atual diretamente ou contiver apenas caracteres neutros), a direção real será herdada do ascendente mais próximo, tendo uma propriedade de direção não vazia ou não contextual. Se for verificado que não há nada para herdar, a direção do elemento será definida pela propriedade text direction do documento.

Se Contêiner, Parágrafo, Tabela, Célula da tabela, Lista ou Item da lista tiver um elemento de texto com uma propriedade de direção não vazia como sua primeira filha direta, a direção real de tais elementos será determinada a partir da direção resolvida deste elemento de texto.

Se Tabela ou Lista tiver sua própria propriedade de direção contextual, ou herdada, a direção real desses elementos será herdada do ascendente mais próximo, tendo uma propriedade de direção não vazia e não contextual. Se for verificado que não há nada a ser herdado, a direção do elemento será definida pela propriedade document direction do documento.

Se a direção do elemento de texto não estiver vazia, o conteúdo desse elemento (que pode ser apenas a parte do parágrafo lógico) aparecerá no documento gerado como um segmento isolado do texto, formatado de acordo com essa propriedade. Se o elemento de texto tiver sua própria propriedade de direção contextual, a direção de base do segmento de texto correspondente será determinada a partir do seu conteúdo. Se o segmento de texto contiver apenas caracteres neutros, a direção do texto base será definida pela propriedade text direction do documento.

A direção de Índice, Tabela de tabelas e Tabela de figuras será definida pela propriedade document direction do documento. Especifica o layout (por exemplo, as posições relativas dos números de seção, seus nomes e números de páginas) apenas. Texto nos nomes de uma seção, para qualquer direção desses elementos, deve ter a mesma aparência do corpo do documento.

A direção de Legenda da tabela e Legenda da figura é definida pela propriedade document direction do documento. Especifica o layout (por exemplo, as posições relativas dos rótulos e conteúdos). A direção do texto base de cada parte das legendas é definida pela propriedade text direction do documento.

A direção de Nota de rodapé é definida pela propriedade document direction do documento. Especifica o layout do conteúdo (por exemplo, as posições relativas do número da nota de rodapé, seu conteúdo e seu alinhamento). A direção do texto base do conteúdo da nota de rodapé é definida pela propriedade text direction do documento.

A direção de Comentário é indefinida. A direção do texto base de seu conteúdo é definida pela propriedade text direction do documento.

A direção de Cabeçalho e Rodapé é definida pela propriedade document direction do documento.

Manipulando rich text (XHTML)

O conteúdo do elemento Texto pode ser apresentado por fragmentos XHTML. Esses fragmentos são analisados e tratados como coleções de elementos de modelo:
  • P, H1-H6 - como parágrafos com estilos diferentes
  • DIV - como Contêiner
  • TABLE - como Tabela
  • TD - como Célula da tabela
  • OL,UL - como Listas
  • LI - como Item da lista

Os valores de estilo direction e atributo dir localizados nos elementos html de nível de bloco, como P, DIV, H1-H6, LI, TD, bem como em TABLE, OL e UL, são reconhecidos e convertidos na propriedade de formatação direction do Rational Publishing Engine. Se estilo e atributo estiverem definidos para o elemento html atual, o valor de dir será usado.Configurar conteúdo para elemento atual

O conteúdo de elementos html de nível de bloco são manipulados como uma sequência de elementos de texto com estilos diferentes. Você pode utilizar os elementos html SPAN com o estilo direction. Esses elementos SPAN são manipulados como um elemento de texto com a propriedade de estilo direction. (No entanto, esses elementos não devem conter nenhuma marcação adicional. Elementos SPAN com marcação adicional não são suportados e podem causar resultados inesperados).