Créer un organigramme Java

Un Organigramme est utilisé pour expliquer la hiérarchie des rapports ou des relations dans un institut ou 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 par programmation en Java.

Création 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 ci-dessous montre comment créer un organigramme dans le style CompactTree 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 pouvez concevoir plusieurs types d’organigrammes qui peuvent suivre différents modèles. Les étapes suivantes montrent comment créer un organigramme de style organigramme 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 suivant montre comment créer un organigramme de style 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);
    }
}

//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 évaluer l’API dans toute sa capacité en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à créer un organigramme par programmation en Java. Il couvre la création d’un graphique de style CompactTree ou Flowchart en fonction de vos besoins. De plus, vous pouvez visiter la section documentation pour découvrir d’autres fonctionnalités de l’API. Si vous avez besoin de discuter de votre cas d’utilisation ou de vos préoccupations, vous pouvez nous contacter sur le forum.

Voir également

Convertir VSD ou VSDX en VTX en Java