Pergunta

Estamos trabalhando na criação de uma ferramenta de modelagem baseada na estrutura e as ferramentas GMF. Nós temos um requisito para permitir aos usuários adicionar visualizações (figuras) em tempo de execução e usá-los em seus diagramas. Nós estaremos usando arquivos SVG para representar números.

Qual é a estrutura correta de EditParts e outras classes relacionadas GEF em tal caso? Estávamos pensando em implementar uma única classe GEF EditPart, que criaria a figura apropriada com base em um parâmetro (caminho para arquivo de SVG) presente no modelo. Até agora não parece estar funcionando.

Tem de haver alguém que já fez algo assim antes. Pesquisando e fóruns Eclipse não foram úteis até agora ...

Foi útil?

Solução

Bem, nós encontramos uma solução (parcial). Temos um elemento, e dependendo de um parâmetro criamos uma figura criança dentro dele, que usa um arquivo SVG (com base no parâmetro).

O seguinte código de teste é chamado no construtor da Figura:

ScalableImageFigure SVG; URL url; se (tipo == 1) {url = ArchitectureStudioDiagramEditorPlugin.getInstance (). GetBundle (). GetEntry ( "Ícones" + IPath.SEPARATOR + "sombra-box.svg"); } Else {url = ArchitectureStudioDiagramEditorPlugin.getInstance (). GetBundle (). GetEntry ( "ícones" + IPath.SEPARATOR + "star.svg"); } SVG = new ScalableImageFigure (RenderedImageFactory.getInstance (url), verdade, verdade, true);

  this.add(svg);

Agora precisamos descobrir como ter vários elementos na paleta.

Outras dicas

A maneira correta é ter mapeamento um para um entre figura e EditPart. Também tarefa pintura deve ser deixado à figura. Como a imagem deve ser pintado, a lógica deve ser dentro da figura não no EditPart.

Graças

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top