Crear organigrama Java

Se utiliza un organigrama para explicar la jerarquía de informes o relaciones de un instituto o empresa. Puede crear un organigrama sin necesidad de instalar una aplicación o herramienta basada en la interfaz de usuario. Este artículo cubre cómo crear diferentes tipos de organigramas mediante programación en Java.

ORG Chart Maker - Instalación de la API de Java

Aspose.Diagram for Java La API se puede utilizar para crear muchos tipos de diagramas visuales, incluidos gráficos y diagramas de flujo. Puede descargar el archivo JAR desde la sección Descargas o utilizando las siguientes especificaciones Maven en el archivo pom.xml de su aplicación:

Repositorio:

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

Dependencia:

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

Crear organigrama en estilo CompactTree en Java

Puede crear un organigrama en estilo CompactTree con los siguientes pasos:

  1. Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla existente.
  2. Defina valores para construir la jerarquía.
  3. Agregue formas y conexiones entre nodos.
  4. Guarde el diagrama de salida.

El siguiente código de ejemplo demuestra cómo crear un organigrama en Java:

// Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla 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 la jerarquía.
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 una tabla hash para asignar el nombre de la cadena a una identificación de forma larga
Hashtable shapeIdMap = new Hashtable();
// Crear un nuevo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Agregar una nueva forma de rectángulo
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Establecer las propiedades de la nueva forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Crear conexiones entre nodos
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);
    }
}

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

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

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

Crear organigrama en estilo de diagrama de flujo en Java

Es posible que deba crear diferentes tipos de organigramas que pueden seguir diferentes plantillas. Aquí aprenderá cómo crear un organigrama en estilo Flowchart programáticamente en Java:

  1. Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla existente.
  2. Agregue nodos y conectores de organización.
  3. Establezca el diseño y guarde el diagrama de salida.

El fragmento de código a continuación explica cómo crear un organigrama en estilo de diagrama de flujo usando Java:

// Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla 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 la jerarquía.
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 una tabla hash para asignar el nombre de la cadena a una identificación de forma larga
Hashtable shapeIdMap = new Hashtable();
// Crear un nuevo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Agregar una nueva forma de rectángulo
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Establecer las propiedades de la nueva forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Crear conexiones entre nodos
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);
    }
}

//Diagrama de flujo de diseño 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);

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

Obtenga una Licencia Temporal Gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido cómo crear organigramas mediante programación en Java. Explica cómo crear el gráfico de estilo CompactTree o Flowchart según sus necesidades. Además, puede echar un vistazo a otras características en el espacio documentación. No dude en escribirnos al foro en caso de que quiera hablar sobre alguno de sus requisitos o inquietudes.

Ver también

Convertir VSD o VSDX a VTX en Java