Gerenciador de métricas

O Metrics Manager coleta e gera relatórios sobre todas as métricas relacionadas ao espaço de trabalho do Blockly. Este guia descreve o significado de cada conjunto de métricas retornado pelo Metrics Manager. Para mais informações sobre o Metrics Manager, assista também ao 2021 Metrics Deep Dive (em inglês).

Métricas

Métricas da caixa de ferramentas

workspace.getMetricsManager().getToolboxMetrics();

As métricas da caixa de ferramentas são compostas pelo height, width e position de uma caixa de ferramentas de categoria. Isso não inclui informações sobre o submenu anexado à caixa de ferramentas.

A área de trabalho do Blockly com setas mostrando a largura e a altura da
caixa de ferramentas.

O position da caixa de ferramentas é do tipo Blockly.utils.toolbox.Position.

Métricas de pop-up

workspace.getMetricsManager().getFlyoutMetrics();

As métricas do painel suspenso são compostas pelos height, width e position de uma caixa de ferramentas suspensa. É importante observar que esse não é o menu flutuante anexado à caixa de ferramentas de categoria. Isso se aplica apenas às caixas de ferramentas pop-up, conforme mostrado na foto abaixo.

O espaço de trabalho do Blockly com setas mostrando a largura e a altura do
menu flutuante.

O position do submenu flutuante é do tipo Blockly.utils.toolbox.Position.

Métricas do SVG

workspace.getMetricsManager().getSvgMetrics();

As métricas SVG são compostas pelo width e height do SVG principal do espaço de trabalho. Para o espaço de trabalho principal, esse é o SVG com a classe blocklySvg. O SVG inclui o espaço de trabalho visível e a caixa de ferramentas.

O espaço de trabalho do Blockly com um retângulo azul ao redor.

Mostrar métricas

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

As métricas de visualização são compostas pelo height, width, top e left da janela de visualização. A janela de visualização é a parte visível do espaço de trabalho. Isso não inclui nenhum tipo de caixa de ferramentas.

O espaço de trabalho do Blockly com um retângulo azul ao redor da área que não inclui a
caixa de ferramentas.

O canto superior esquerdo é relativo à origem do espaço de trabalho. À medida que arrastamos o espaço de trabalho, as posições superior e esquerda da janela de visualização são atualizadas.

O espaço de trabalho do Blockly com um retângulo azul ao redor da área que não inclui a
caixa de ferramentas e uma origem mostrada deslocada do canto superior
esquerdo.

Métricas absolutas

workspace.getMetricsManager().getAbsoluteMetrics();

As métricas absolutas são compostas pelo top e pelo deslocamento left da janela de visualização do SVG principal. Dependendo de onde a caixa de ferramentas está posicionada no espaço de trabalho, essa é geralmente a largura ou a altura dela.

O espaço de trabalho do Blockly com uma linha azul à direita da caixa de ferramentas e na parte de cima do espaço de trabalho. O espaço de trabalho do Blockly com uma caixa de ferramentas horizontal. Há uma linha azul à esquerda do espaço de trabalho e abaixo da caixa de ferramentas.

Métricas de conteúdo

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

As métricas de conteúdo são compostas pelo height, width, top e left da caixa delimitadora ao redor de blocos ou comentários do espaço de trabalho.

O espaço de trabalho do Blockly com uma caixa azul ao redor do conteúdo do
espaço de trabalho.

Métricas de rolagem

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

As métricas de rolagem são compostas pelo height, width, top e left da área rolável. Em um espaço de trabalho móvel, a área rolável é a área de conteúdo mais um pouco de padding.

O espaço de trabalho do Blockly com uma grande caixa azul ao redor.

Sistemas de coordenadas

Por padrão, todas as métricas calculadas pelo Gerenciador de métricas são retornadas como coordenadas de pixel. Quando aplicável, há a opção de receber determinadas métricas em coordenadas do espaço de trabalho transmitindo true para os métodos de métricas. Por exemplo, metricsManager.getViewMetrics(true).

workspaceCoordinate = pixelCoordinates / workspace.scale

As coordenadas do espaço de trabalho geralmente são usadas para itens que ficam no espaço de trabalho, como blocos e comentários. As coordenadas do Workspace não mudam quando o usuário aumenta e diminui o zoom.

Substituir métricas

Os desenvolvedores que quiserem fornecer as próprias métricas para o espaço de trabalho podem registrar um objeto gerenciador de métricas substituto que implementa a interface IMetricsManager ou estende Blockly.MetricsManager.

Um exemplo disso pode ser encontrado no plug-in Continuous Toolbox ou no plug-in Fixed Edges.