मेट्रिक मैनेजर, Blockly वर्कस्पेस से जुड़ी सभी मेट्रिक इकट्ठा करता है और उनकी रिपोर्ट बनाता है. इस गाइड में, Metrics Manager से मिली मेट्रिक के हर सेट का मतलब बताया गया है. मेट्रिक मैनेजर के बारे में ज़्यादा जानकारी के लिए, 2021 Metrics Deep Dive भी देखा जा सकता है.
मेट्रिक
टूलबॉक्स मेट्रिक
workspace.getMetricsManager().getToolboxMetrics();
टूलबॉक्स मेट्रिक में, कैटगरी के टूलबॉक्स के height
, width
, और position
शामिल होते हैं. इसमें टूलबॉक्स से जुड़े फ़्लायआउट की जानकारी शामिल नहीं होती.
टूलबॉक्स का position
, Blockly.utils.toolbox.Position
टाइप का है.
फ़्लायआउट मेट्रिक
workspace.getMetricsManager().getFlyoutMetrics();
फ़्लायआउट मेट्रिक में, फ़्लायआउट टूलबॉक्स के height
, width
, और position
शामिल होते हैं. ध्यान दें कि यह फ़्लायआउट, कैटगरी टूलबॉक्स से अटैच नहीं होता. यह सिर्फ़ फ़्लायआउट टूलबॉक्स पर लागू होता है. इसकी जानकारी यहां दी गई है.
फ़्लायआउट का position
, Blockly.utils.toolbox.Position
टाइप का है.
SVG मेट्रिक
workspace.getMetricsManager().getSvgMetrics();
एसवीजी मेट्रिक, वर्कस्पेस के पैरंट एसवीजी के width
और height
से बनी होती हैं. मुख्य वर्कस्पेस के लिए, यह blocklySvg
क्लास वाला SVG है.
इस SVG में, दिखने वाला वर्कस्पेस और टूलबॉक्स, दोनों शामिल होते हैं.
मेट्रिक देखना
workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);
व्यू मेट्रिक में, व्यूपोर्ट के height
, width
, top
, और left
शामिल होते हैं. व्यूपोर्ट, वर्कस्पेस का वह हिस्सा होता है जो दिखता है. इसमें किसी भी तरह का टूलबॉक्स शामिल नहीं है.
सबसे ऊपर बाईं ओर का हिस्सा, वर्कस्पेस के ऑरिजिन के हिसाब से होता है. वर्कस्पेस को इधर-उधर खींचने पर, व्यूपोर्ट की ऊपर और बाईं ओर की पोज़िशन अपडेट हो जाती है.
ऐब्सलूट मेट्रिक
workspace.getMetricsManager().getAbsoluteMetrics();
ऐब्सलूट मेट्रिक में, पैरेंट एसवीजी से व्यूपोर्ट के top
और left
ऑफ़सेट शामिल होते हैं. यह टूलबॉक्स की चौड़ाई या ऊंचाई होती है. यह इस बात पर निर्भर करती है कि टूलबॉक्स को वर्कस्पेस में कहां रखा गया है.
सामग्री मीट्रिक्स
workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);
कॉन्टेंट मेट्रिक में, किसी भी ब्लॉक या Workspace की टिप्पणियों के आस-पास मौजूद बाउंडिंग बॉक्स के height
, width
, top
, और left
शामिल होते हैं.
स्क्रोल मेट्रिक
workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);
स्क्रोल मेट्रिक में, स्क्रोल किए जा सकने वाले कॉन्टेंट के height
, width
, top
, और left
शामिल होते हैं. मूवेबल वर्कस्पेस के लिए, स्क्रोल की जा सकने वाली जगह, कॉन्टेंट एरिया और कुछ पैडिंग होती है.
कोऑर्डिनेट सिस्टम
डिफ़ॉल्ट रूप से, Metrics Manager से कैलकुलेट की गई सभी मेट्रिक, पिक्सल कोऑर्डिनेट के तौर पर दिखती हैं. जहां लागू हो, वहां मेट्रिक के तरीकों में true
पास करके, वर्कस्पेस के कोऑर्डिनेट में कुछ मेट्रिक पाने का विकल्प होता है. उदाहरण के लिए,
metricsManager.getViewMetrics(true)
.
workspaceCoordinate = pixelCoordinates / workspace.scale
Workspace कोऑर्डिनेट का इस्तेमाल आम तौर पर उन आइटम के लिए किया जाता है जो वर्कस्पेस पर मौजूद होते हैं. जैसे, ब्लॉक और वर्कस्पेस पर की गई टिप्पणियां. उपयोगकर्ता के ज़ूम इन और ज़ूम आउट करने पर, फ़ाइल फ़ोल्डर के कोऑर्डिनेट नहीं बदलते.
मेट्रिक को ओवरराइड करना
जो डेवलपर, वर्कस्पेस के लिए अपनी मेट्रिक उपलब्ध कराना चाहते हैं वे मेट्रिक मैनेजर ऑब्जेक्ट को रजिस्टर कर सकते हैं. यह ऑब्जेक्ट, IMetricsManager
इंटरफ़ेस को लागू करता है या Blockly.MetricsManager
को बढ़ाता है.
इसका उदाहरण, Continuous Toolbox प्लगिन या Fixed Edges प्लगिन में देखा जा सकता है.