Crea organigramma Java

Gli organigrammi aiutano a presentare la struttura di un’organizzazione, fornendo una chiara rappresentazione delle gerarchie e delle relazioni tra diversi ruoli e dipartimenti. In questo post del blog esploreremo come creare un organigramma in Java.

Perché creare un organigramma?

Chiarezza e comunicazione: gli organigrammi aiutano a comprendere la struttura di un’azienda, facilitando la comunicazione di ruoli e responsabilità.

Efficienza: aiutano a identificare le relazioni di reporting e a semplificare i canali di comunicazione.

Gestione delle risorse: i grafici aiutano a gestire le risorse in modo efficace fornendo una visione chiara della forza lavoro e delle loro posizioni.

Crea organigramma - Installazione API Java

Puoi creare organigrammi in Java configurando il tuo ambiente come installando JDK e un IDE Java. Successivamente, installa la libreria Conholdate.Total for Java utilizzando le seguenti configurazioni nel file pom.xml del tuo progetto:

<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.4</version>
<type>pom</type>
</dependency>

Crea un organigramma in Java

È possibile creare un organigramma in Java seguendo i passaggi seguenti:

  • Carica i master da qualsiasi modello esistente con la classe Diagram.
  • Specificare i valori per creare la gerarchia.
  • Inserisci le forme e crea connessioni tra i nodi.
  • Eseguire il rendering dell’organigramma di output utilizzando il metodo di salvataggio.

Il seguente frammento di codice mostra come creare un organigramma in Java:

// Carica i master da qualsiasi diagramma, stencil o modello esistente
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;
// Definire i valori per costruire la gerarchia
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" });
// Definire una Hashtable per mappare il nome della stringa sull'ID di forma lunga
Hashtable shapeIdMap = new Hashtable();
// Crea un nuovo diagramma
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Aggiungi una nuova forma rettangolare
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Imposta le proprietà della nuova forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Creare connessioni tra i nodi
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);
    }
}

//grafico CompactTree con layout automatico
LayoutOptions compactTreeOptions = new LayoutOptions();
compactTreeOptions.setLayoutStyle(LayoutStyle.COMPACT_TREE);
compactTreeOptions.setDirection(LayoutDirection.DOWN_THEN_RIGHT);
compactTreeOptions.setEnlargePage(false);

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

// Salva diagramma
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);

Crea un organigramma in formato diagramma di flusso utilizzando Java

Puoi creare organigrammi in diversi stili, incluso lo stile del diagramma di flusso. Si prega di seguire i passaggi seguenti per soddisfare le vostre esigenze:

  • Carica i master dallo stencil esistente.
  • Aggiungi connettori e nodi dell’organizzazione.
  • Specificare il layout del grafico e scrivere il diagramma di output.

Il codice di esempio seguente mostra come creare un organigramma in formato diagramma di flusso utilizzando Java:

// Carica i master da qualsiasi diagramma, stencil o modello esistente
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;
// Definire i valori per costruire la gerarchia
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" });
// Definire una Hashtable per mappare il nome della stringa sull'ID di forma lunga
Hashtable shapeIdMap = new Hashtable();
// Crea un nuovo diagramma
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
    // Aggiungi una nuova forma rettangolare
    long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
    // Imposta le proprietà della nuova forma
    Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
    shape.getText().getValue().add(new Txt(orgnode));
    shape.setName(orgnode);
    shapeIdMap.put(orgnode, rectangleId);
}
// Creare connessioni tra i nodi
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);
    }
}

//diagramma di flusso del layout automatico
LayoutOptions flowChartOptions = new LayoutOptions();
flowChartOptions.setLayoutStyle(LayoutStyle.FLOW_CHART);
flowChartOptions.setDirection(LayoutDirection.TOP_TO_BOTTOM);
flowChartOptions.setEnlargePage(true);

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

// Salva diagramma
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);

Personalizzazione degli organigrammi

Puoi personalizzare l’organigramma modificando il layout, i colori e le etichette per adattarlo alle tue esigenze organizzative. Puoi sperimentare diverse opzioni per trovare la migliore rappresentazione per la tua organizzazione.

Licenza di valutazione gratuita

Puoi richiedere una licenza temporanea gratuita per valutare le API senza alcuna limitazione di valutazione.

Riassumendo

La creazione di un organigramma in Java è un processo semplice seguendo questo articolo. Sfruttando le API discusse puoi facilmente visualizzare e personalizzare la struttura della tua organizzazione poiché gli organigrammi sono strumenti preziosi per migliorare la comunicazione, l’efficienza e la gestione delle risorse all’interno di qualsiasi organizzazione. Se desideri discutere delle tue preoccupazioni, scrivici al forum.

Domande frequenti

Posso integrare l’organigramma in un’applicazione web?

Sì, puoi integrare la creazione dell’organigramma in un’applicazione web.

È possibile esportare l’organigramma in altri formati?

Sì, puoi esportare l’organigramma in vari formati come PDF, PNG o SVG in base alle tue esigenze.

Guarda anche