Créer un organigramme Java

Un organigramme ORG est utilisé pour expliquer la hiérarchie des rapports ou des relations d’un institut ou d’une entreprise. Vous pouvez créer un organigramme sans avoir à installer une application ou un outil basé sur l’interface utilisateur. Cet article explique comment créer différents types d’organigrammes ORG par programmation en Java.

Créateur d’organigrammes - Installation de l’API Java

Aspose.Diagram pour Java L’API peut être utilisée pour créer de nombreux types de diagrammes visuels, y compris des graphiques et des organigrammes. Vous pouvez télécharger le fichier JAR depuis la section Téléchargements ou en utilisant les spécifications Maven suivantes dans le fichier pom.xml de votre application :

Dépôt:

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

Dépendance:

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

Créer un organigramme dans le style CompactTree en Java

Vous pouvez créer un organigramme dans le style CompactTree en procédant comme suit :

  1. Chargez des modèles à partir de n’importe quel diagramme, gabarit ou modèle existant.
  2. Définissez des valeurs pour construire la hiérarchie.
  3. Ajoutez des formes et des connexions entre les nœuds.
  4. Enregistrez le diagramme de sortie.

L’exemple de code suivant montre comment créer un organigramme en Java :

// Charger des maîtres à partir de n'importe quel diagramme, gabarit ou modèle existant
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;
// Définir des valeurs pour construire la hiérarchie
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" });
// Définissez une table de hachage pour mapper le nom de la chaîne à un identifiant de forme longue
Hashtable shapeIdMap = new Hashtable();
// Créer un nouveau diagramme
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Ajouter une nouvelle forme de rectangle
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Définir les propriétés de la nouvelle forme
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Créer des connexions entre les nœuds
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);
    }
}

//mise en page automatique du graphique 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);

// Enregistrer le diagramme
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

Créer un organigramme dans un style d’organigramme en Java

Vous devrez peut-être créer différents types d’organigrammes ORG qui peuvent suivre différents modèles. Ici, vous apprendrez comment créer un organigramme dans le style Flowchart par programmation en Java :

  1. Chargez des modèles à partir de n’importe quel diagramme, gabarit ou modèle existant.
  2. Ajoutez des nœuds d’organisation et des connecteurs.
  3. Définissez la mise en page et enregistrez le diagramme de sortie.

L’extrait de code ci-dessous explique comment créer un organigramme de style organigramme à l’aide de Java :

// Charger des maîtres à partir de n'importe quel diagramme, gabarit ou modèle existant
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;
// Définir des valeurs pour construire la hiérarchie
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" });
// Définissez une table de hachage pour mapper le nom de la chaîne à un identifiant de forme longue
Hashtable shapeIdMap = new Hashtable();
// Créer un nouveau diagramme
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Ajouter une nouvelle forme de rectangle
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Définir les propriétés de la nouvelle forme
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Créer des connexions entre les nœuds
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);
    }
}

//organigramme de mise en page automatique
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

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

// Enregistrer le diagramme
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

Obtenez une licence temporaire gratuite

Vous pouvez tester l’API sans aucune limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à créer des organigrammes ORG par programmation en Java. Il explique la création du graphique de style CompactTree ou Flowchart selon vos besoins. De plus, vous pouvez jeter un œil à diverses autres fonctionnalités en parcourant l’espace documentation. N’hésitez pas à nous écrire sur le forum si vous souhaitez discuter de l’une de vos exigences ou préoccupations.

Voir également

Convertir VSD ou VSDX en VTX en Java