Criar gráfico ORG Java

Um organograma é usado para explicar a hierarquia de relatórios ou relacionamento de um instituto ou empresa. Você pode fazer um gráfico ORG sem precisar instalar um aplicativo ou ferramenta baseada na interface do usuário. Este artigo aborda como criar diferentes tipos de gráficos ORG programaticamente em Java.

ORG Chart Maker – Instalação da API Java

A API Aspose.Diagram for Java pode ser usada para criar muitos tipos de diagramas visuais, incluindo gráficos e fluxogramas. Você pode baixar o arquivo JAR da seção Downloads ou usando as seguintes especificações Maven no arquivo pom.xml do seu aplicativo:

Repositório:

 <repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>

Dependência:

 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-diagram</artifactId>
        <version>22.8</version>
        <classifier>jdk16</classifier>
    </dependency>
</dependencies>

Criar gráfico ORG no estilo CompactTree em Java

Você pode criar um gráfico ORG no estilo CompactTree com as seguintes etapas:

  1. Carregue mestres de qualquer diagrama, estêncil ou modelo existente.
  2. Defina valores para construir a hierarquia.
  3. Adicione formas e conexões entre nós.
  4. Salve o diagrama de saída.

O código de exemplo a seguir demonstra como criar um gráfico ORG em Java:

// Carregar mestres de qualquer diagrama, estêncil ou modelo existente
String visioStencil = "Basic Shapes.vss";
String rectangleMaster = "Rectangle";
String connectorMaster = "Dynamic connector";
int pageNumber = 0;
double width = 1;
double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Definir valores para construir a hierarquia
List<String> listPos = Arrays.asList(new String[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// Defina uma Hashtable para mapear o nome da string para o id de forma longa
Hashtable shapeIdMap = new Hashtable();
// Criar um novo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Adicionar uma nova forma de retângulo
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Defina as propriedades da nova forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Criar conexões entre nós
for (String orgName : listPos)
{
    int lastColon = orgName.lastIndexOf(':');
    if(lastColon > 0)
    {
        String parendName = orgName.substring(0, lastColon);
        long shapeId = (long)shapeIdMap.get(orgName);
        long parentId = (long)shapeIdMap.get(parendName);
        Shape connector1 = new Shape();
        long connecter1Id = diagram.addShape(connector1, connectorMaster, pageNumber);
        diagram.getPages().get(pageNumber).connectShapesViaConnector(parentId, ConnectionPointPlace.RIGHT,
            shapeId, ConnectionPointPlace.LEFT, connecter1Id);
    }
}

//layout automático gráfico CompactTree
LayoutOptions compactTreeOptions = new LayoutOptions();
compactTreeOptions.setLayoutStyle(LayoutStyle.COMPACT_TREE);
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_RIGHT);
compactTreeOptions.setEnlargePage(false);

diagram.getPages().get(pageNumber).layout(compactTreeOptions);

// Salvar diagrama
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

Criar gráfico ORG no estilo de fluxograma em Java

Pode ser necessário criar diferentes tipos de gráficos ORG que podem seguir modelos diferentes. Aqui você aprenderá como criar um gráfico ORG no estilo Flowchart programaticamente em Java:

  1. Carregue mestres de qualquer diagrama, estêncil ou modelo existente.
  2. Adicione nós e conectores da organização.
  3. Defina o layout e salve o diagrama de saída.

O trecho de código abaixo explica como criar um gráfico ORG no estilo de fluxograma usando Java:

// Carregar mestres de qualquer diagrama, estêncil ou modelo existente
String visioStencil = "Basic Shapes.vss";
String rectangleMaster = "Rectangle";
String connectorMaster = "Dynamic connector";
int pageNumber = 0;
double width = 1;
double height = 1;
double pinX = 4.25;
double pinY = 9.5;
// Definir valores para construir a hierarquia
List<String> listPos = Arrays.asList(new String[] { "0", "0:0", "0:1", "0:2", "0:3", "0:4", "0:5", "0:6", "0:0:0", "0:0:1", "0:3:0", "0:3:1", "0:3:2", "0:6:0", "0:6:1" });
// Defina uma Hashtable para mapear o nome da string para o id de forma longa
Hashtable shapeIdMap = new Hashtable();
// Criar um novo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Adicionar uma nova forma de retângulo
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Defina as propriedades da nova forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Criar conexões entre nós
for (String orgName : listPos)
{
    int lastColon = orgName.lastIndexOf(':');
    if(lastColon > 0)
    {
        String parendName = orgName.substring(0, lastColon);
        long shapeId = (long)shapeIdMap.get(orgName);
        long parentId = (long)shapeIdMap.get(parendName);
        Shape connector1 = new Shape();
        long connecter1Id = diagram.addShape(connector1, connectorMaster, pageNumber);
        diagram.getPages().get(pageNumber).connectShapesViaConnector(parentId, ConnectionPointPlace.RIGHT,
            shapeId, ConnectionPointPlace.LEFT, connecter1Id);
    }
}

//fluxograma de layout automático
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

diagram.getPages().get(pageNumber).layout(flowChartOptions);

// Salvar diagrama
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

Obtenha Licença Temporária Gratuita

Você pode testar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como criar gráficos ORG programaticamente em Java. Ele explica como criar o gráfico de estilo CompactTree ou Flowchart conforme suas necessidades. Além disso, você pode dar uma olhada em vários outros recursos acessando o espaço documentação. Sinta-se à vontade para nos escrever no fórum caso queira discutir alguma de suas necessidades ou preocupações.

Veja também

Converter VSD ou VSDX para VTX em Java