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.
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 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.
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 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.
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.
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.
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.
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.