Crea grafico ORG Java

Un organigramma viene utilizzato per spiegare la gerarchia dei rapporti o delle relazioni di un istituto o di un’azienda. È possibile creare un grafico ORG senza dover installare un’applicazione o uno strumento basato sull’interfaccia utente. Questo articolo illustra come creare diversi tipi di grafici ORG a livello di codice in Java.

Creatore di grafici ORG – Installazione dell’API Java

L’API Aspose.Diagram for Java può essere utilizzata per creare molti tipi di diagrammi visivi inclusi diagrammi e diagrammi di flusso. Puoi scaricare il file JAR dalla sezione Download o utilizzando le seguenti specifiche Maven nel file pom.xml della tua applicazione:

Archivio:

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

Dipendenza:

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

Crea un grafico ORG in stile CompactTree in Java

È possibile creare un grafico ORG in stile CompactTree con i seguenti passaggi:

  1. Carica i master da qualsiasi diagramma, stencil o modello esistente.
  2. Definire i valori per costruire la gerarchia.
  3. Aggiungi forme e connessioni tra i nodi.
  4. Salva il diagramma di output.

Il codice di esempio seguente mostra come creare un grafico ORG 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" });
// Definisci una tabella hash per mappare il nome della stringa sull'id della 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);
}
// Crea 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);
    }
}

//layout automatico del grafico 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);

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

Crea un grafico ORG in stile diagramma di flusso in Java

Potrebbe essere necessario creare diversi tipi di grafici ORG che potrebbero seguire modelli diversi. Qui imparerai come creare un grafico ORG in stile diagramma di flusso in modo programmatico in Java:

  1. Carica i master da qualsiasi diagramma, stencil o modello esistente.
  2. Aggiungi nodi e connettori dell’organizzazione.
  3. Imposta il layout e salva il diagramma di output.

Il frammento di codice seguente spiega come creare un grafico ORG in stile 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" });
// Definisci una tabella hash per mappare il nome della stringa sull'id della 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);
}
// Crea 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);

Ottieni una licenza temporanea gratuita

Puoi testare l’API senza alcuna limitazione di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come creare grafici ORG a livello di codice in Java. Spiega la creazione del diagramma di stile CompactTree o Flowchart in base alle tue esigenze. Inoltre, puoi dare un’occhiata a varie altre funzionalità passando attraverso lo spazio documentazione. Non esitare a scriverci nel forum nel caso in cui desideri discutere delle tue esigenze o preoccupazioni.

Guarda anche

Converti VSD o VSDX in VTX in Java