Se utiliza un Organigrama para explicar la jerarquía de informes o relaciones en un instituto o empresa. Puede hacer 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.
- Creador de organigramas: instalación de la API de Java
- Crear organigrama en estilo CompactTree en Java
- Crear organigrama en estilo de diagrama de flujo en Java
Creador de organigramas: 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:
- Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla existente.
- Defina valores para construir la jerarquía.
- Agregue formas y conexiones entre nodos.
- Guarde el diagrama de salida.
El ejemplo de código a continuación es una muestra de cómo crear un organigrama en estilo CompactTree 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
Puede diseñar varios tipos de organigramas que pueden seguir diferentes plantillas. Los siguientes pasos muestran cómo crear un organigrama de estilo Flowchart mediante programación en Java:
- Cargue patrones desde cualquier diagrama, galería de símbolos o plantilla existente.
- Agregue nodos y conectores de organización.
- Establezca el diseño y guarde el diagrama de salida.
El siguiente fragmento de código demuestra cómo crear un organigrama en estilo de diagrama de flujo 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);
}
}
//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 evaluar la API en toda su capacidad solicitando una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido cómo crear un organigrama mediante programación en Java. Cubre la creación de un gráfico de estilo CompactTree o Flowchart según sus requisitos. Además, puede visitar la sección documentación para conocer otras características de la API. En caso de que necesite discutir su caso de uso o inquietudes, puede contactarnos en el foro.