Os organogramas ajudam a apresentar a estrutura de uma organização, fornecendo uma representação clara das hierarquias e relacionamentos entre diferentes funções e departamentos. Nesta postagem do blog, exploraremos como criar um organograma em Java.
Por que criar um organograma?
Clareza e Comunicação: Os organogramas auxiliam no entendimento da estrutura de uma empresa, facilitando a comunicação de funções e responsabilidades.
Eficiência: Auxiliam na identificação de relações de subordinação e agilizam os canais de comunicação.
Gerenciamento de Recursos: Os gráficos ajudam no gerenciamento eficaz de recursos, fornecendo uma visão clara da força de trabalho e de suas posições.
Criar Organograma - Instalação da API Java
Você pode criar organogramas em Java configurando seu ambiente, como instalar o JDK e um Java IDE. Em seguida, instale a biblioteca Conholdate.Total for Java usando as seguintes configurações no arquivo pom.xml do seu projeto:
<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>24.4</version>
<type>pom</type>
</dependency>
Faça Organograma em Java
Você pode criar um organograma em Java seguindo as etapas abaixo:
- Carregue os mestres de qualquer modelo existente com a classe Diagram.
- Especifique valores para construir a hierarquia.
- Insira as formas e crie conexões entre nós.
- Renderize o organograma de saída usando o método save.
O trecho de código a seguir demonstra como fazer um organograma em Java:
// Carregue mestres de qualquer diagrama, estêncil ou modelo 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;
// Defina valores para construir a hierarquia
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 uma Hashtable para mapear o nome da string para um ID de formato longo
Hashtable shapeIdMap = new Hashtable();
// Crie um novo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
// Adicione uma nova forma de retângulo
long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
// Defina as propriedades da nova forma
Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
shape.getText().getValue().add(new Txt(orgnode));
shape.setName(orgnode);
shapeIdMap.put(orgnode, rectangleId);
}
// Crie conexões entre nós
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 layout 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);
// Salvar diagrama
diagram.save("DrawCompactTreeChart_java.vsdx", SaveFileFormat.VSDX);
Crie Organograma em Formato de Fluxograma usando Java
Você pode criar organogramas em diferentes estilos, incluindo o estilo de fluxograma. Siga as etapas abaixo para atender às suas necessidades:
- Carregue os masters do estêncil existente.
- Anexe conectores e nós da organização.
- Especifique o layout do gráfico e escreva o diagrama de saída.
O código de exemplo abaixo mostra como criar organograma em formato de fluxograma usando Java:
// Carregue mestres de qualquer diagrama, estêncil ou modelo 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;
// Defina valores para construir a hierarquia
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 uma Hashtable para mapear o nome da string para um ID de formato longo
Hashtable shapeIdMap = new Hashtable();
// Crie um novo diagrama
Diagram diagram = new Diagram(visioStencil);
diagram.getPages().get(pageNumber).getPageSheet().getPageProps().getPageWidth().setValue(11);
for (String orgnode : listPos)
{
// Adicione uma nova forma de retângulo
long rectangleId = diagram.addShape(pinX++, pinY++, width, height, rectangleMaster, pageNumber);
// Defina as propriedades da nova forma
Shape shape = diagram.getPages().get(pageNumber).getShapes().getShape(rectangleId);
shape.getText().getValue().add(new Txt(orgnode));
shape.setName(orgnode);
shapeIdMap.put(orgnode, rectangleId);
}
// Crie conexões entre nós
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);
}
}
//fluxograma de layout 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);
// Salvar diagrama
diagram.save("DrawFlowChart_java.vsdx", SaveFileFormat.VSDX);
Personalizando os Organogramas
Você pode personalizar o organograma ajustando o layout, as cores e os rótulos para atender às suas necessidades organizacionais. Você pode experimentar diferentes opções para encontrar a melhor representação para sua organização.
Licença de avaliação gratuita
Você pode solicitar uma licença temporária gratuita para avaliar as APIs sem quaisquer limitações de avaliação.
Resumindo
Criar um organograma em Java é um processo simples seguindo este artigo. Ao aproveitar as APIs discutidas, você pode visualizar e personalizar facilmente a estrutura da sua organização, pois os organogramas são ferramentas valiosas para melhorar a comunicação, a eficiência e o gerenciamento de recursos em qualquer organização. Se você quiser discutir alguma de suas preocupações, escreva para nós em fórum.
Perguntas frequentes
Posso integrar o organograma em uma aplicação web?
Sim, você pode integrar a criação do organograma em um aplicativo da web.
É possível exportar o organograma para outros formatos?
Sim, você pode exportar o organograma para vários formatos, como PDF, PNG ou SVG, conforme suas necessidades.