O gerenciador de métricas

O Metrics Manager coleta e gera relatórios sobre todas as métricas pertencentes ao espaço de trabalho do Blockly. Neste guia, descrevemos o significado de cada conjunto de métricas retornadas do gerenciador de métricas. Para mais informações sobre o Metrics Manager, confira nossa análise detalhada das métricas de 2021.

Métricas

Métricas da caixa de ferramentas

workspace.getMetricsManager().getToolboxMetrics();

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

Espaço 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 menu suspenso

workspace.getMetricsManager().getFlyoutMetrics();

As métricas de menu suspenso são compostas por height, width e position de uma caixa de ferramentas suspensa. Esse não é o menu suspenso anexado à caixa de ferramentas da categoria. Refere-se apenas a caixas de ferramentas suspensas, conforme mostrado na foto abaixo.

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

O position do menu suspenso é do tipo Blockly.utils.toolbox.Position.

Métricas de SVG

workspace.getMetricsManager().getSvgMetrics();

As métricas de SVG são compostas por width e height do SVG pai do espaço de trabalho. Para o espaço de trabalho principal, é o SVG com a classe blocklySvg. Esse SVG inclui o espaço de trabalho visível, bem como 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 por height, width, top e left da janela de visualização. A janela de visualização é a parte do espaço de trabalho que é visível. 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 sem incluir a caixa de ferramentas.

O canto superior esquerdo é relativo à origem do espaço de trabalho. À medida que arrastamos ao redor do 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 sem incluir a caixa de ferramentas e uma origem mostrada no canto superior esquerdo.

Métricas absolutas

workspace.getMetricsManager().getAbsoluteMetrics();

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

O espaço de trabalho do Blockly com uma linha azul à direita da caixa de ferramentas e acima 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 por height, width, top e left da caixa delimitadora em torno de todos os blocos ou comentários do espaço de trabalho.

Espaço de trabalho do Blockly com uma caixa azul em torno 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 por height, width, top e left da área de rolagem. Em um espaço de trabalho móvel, a área rolável é a área de conteúdo, além de 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 Metrics Manager são retornadas como coordenadas de pixel. Quando aplicável, há a opção de receber determinadas métricas nas coordenadas do espaço de trabalho transmitindo true aos 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 do espaço de trabalho. As coordenadas do espaço de trabalho não mudam conforme o usuário aumenta e diminui o zoom.

Modificar 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 implemente a interface IMetricsManager ou estenda Blockly.MetricsManager.

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