मेट्रिक मैनेजर

मेट्रिक मैनेजर, Blockly वर्कस्पेस से जुड़ी सभी मेट्रिक इकट्ठा करता है और उनकी रिपोर्ट बनाता है. इस गाइड में, Metrics Manager से मिली मेट्रिक के हर सेट का मतलब बताया गया है. मेट्रिक मैनेजर के बारे में ज़्यादा जानकारी के लिए, 2021 Metrics Deep Dive भी देखा जा सकता है.

मेट्रिक

टूलबॉक्स मेट्रिक

workspace.getMetricsManager().getToolboxMetrics();

टूलबॉक्स मेट्रिक में, कैटगरी के टूलबॉक्स के height, width, और position शामिल होते हैं. इसमें टूलबॉक्स से जुड़े फ़्लायआउट की जानकारी शामिल नहीं होती.

इस इमेज में, Blockly वर्कस्पेस दिखाया गया है. इसमें टूलबॉक्स की चौड़ाई और ऊंचाई को दिखाने वाले ऐरो भी दिखाए गए हैं.

टूलबॉक्स का position, Blockly.utils.toolbox.Position टाइप का है.

फ़्लायआउट मेट्रिक

workspace.getMetricsManager().getFlyoutMetrics();

फ़्लायआउट मेट्रिक में, फ़्लायआउट टूलबॉक्स के height, width, और position शामिल होते हैं. ध्यान दें कि यह फ़्लायआउट, कैटगरी टूलबॉक्स से अटैच नहीं होता. यह सिर्फ़ फ़्लायआउट टूलबॉक्स पर लागू होता है. इसकी जानकारी यहां दी गई है.

Blockly वर्कस्पेस में, ऐरो की मदद से फ़्लायआउट की चौड़ाई और ऊंचाई दिखाई गई है.

फ़्लायआउट का position, Blockly.utils.toolbox.Position टाइप का है.

SVG मेट्रिक

workspace.getMetricsManager().getSvgMetrics();

एसवीजी मेट्रिक, वर्कस्पेस के पैरंट एसवीजी के width और height से बनी होती हैं. मुख्य वर्कस्पेस के लिए, यह blocklySvg क्लास वाला SVG है. इस SVG में, दिखने वाला वर्कस्पेस और टूलबॉक्स, दोनों शामिल होते हैं.

Blockly वर्कस्पेस, जिसके चारों ओर नीला रेक्टैंगल है.

मेट्रिक देखना

workspace.getMetricsManager().getViewMetrics(opt_getWorkspaceCoordinates);

व्यू मेट्रिक में, व्यूपोर्ट के height, width, top, और left शामिल होते हैं. व्यूपोर्ट, वर्कस्पेस का वह हिस्सा होता है जो दिखता है. इसमें किसी भी तरह का टूलबॉक्स शामिल नहीं है.

Blockly वर्कस्पेस में, टूलबॉक्स को छोड़कर बाकी हिस्से के चारों ओर नीला आयत बना हुआ है.

सबसे ऊपर बाईं ओर का हिस्सा, वर्कस्पेस के ऑरिजिन के हिसाब से होता है. वर्कस्पेस को इधर-उधर खींचने पर, व्यूपोर्ट की ऊपर और बाईं ओर की पोज़िशन अपडेट हो जाती है.

इस इमेज में, Blockly वर्कस्पेस दिखाया गया है. इसमें टूलबॉक्स को छोड़कर, बाकी हिस्से के चारों ओर नीला आयत बना हुआ है. साथ ही, ऑरिजिन को ऊपर बाएं कोने से ऑफ़सेट करके दिखाया गया है.

ऐब्सलूट मेट्रिक

workspace.getMetricsManager().getAbsoluteMetrics();

ऐब्सलूट मेट्रिक में, पैरेंट एसवीजी से व्यूपोर्ट के top और left ऑफ़सेट शामिल होते हैं. यह टूलबॉक्स की चौड़ाई या ऊंचाई होती है. यह इस बात पर निर्भर करती है कि टूलबॉक्स को वर्कस्पेस में कहां रखा गया है.

इस इमेज में, Blockly वर्कस्पेस दिखाया गया है. इसमें टूलबॉक्स के दाईं ओर और वर्कस्पेस के ऊपर नीले रंग की लाइन दिख रही है. हॉरिज़ॉन्टल टूलबॉक्स वाला Blockly वर्कस्पेस. वर्कस्पेस के बाईं ओर और टूलबॉक्स के नीचे नीले रंग की लाइन होती है.

सामग्री मीट्रिक्स

workspace.getMetricsManager().getContentMetrics(opt_getWorkspaceCoordinates);

कॉन्टेंट मेट्रिक में, किसी भी ब्लॉक या Workspace की टिप्पणियों के आस-पास मौजूद बाउंडिंग बॉक्स के height, width, top, और left शामिल होते हैं.

Blockly वर्कस्पेस में, वर्कस्पेस के कॉन्टेंट के चारों ओर नीला बॉक्स है.

स्क्रोल मेट्रिक

workspace.getMetricsManager().getScrollMetrics(opt_getWorkspaceCoordinates);

स्क्रोल मेट्रिक में, स्क्रोल किए जा सकने वाले कॉन्टेंट के height, width, top, और left शामिल होते हैं. मूवेबल वर्कस्पेस के लिए, स्क्रोल की जा सकने वाली जगह, कॉन्टेंट एरिया और कुछ पैडिंग होती है.

Blockly वर्कस्पेस, जिसके चारों ओर बड़ा नीला बॉक्स है.

कोऑर्डिनेट सिस्टम

डिफ़ॉल्ट रूप से, Metrics Manager से कैलकुलेट की गई सभी मेट्रिक, पिक्सल कोऑर्डिनेट के तौर पर दिखती हैं. जहां लागू हो, वहां मेट्रिक के तरीकों में true पास करके, वर्कस्पेस के कोऑर्डिनेट में कुछ मेट्रिक पाने का विकल्प होता है. उदाहरण के लिए, metricsManager.getViewMetrics(true).

workspaceCoordinate = pixelCoordinates / workspace.scale

Workspace कोऑर्डिनेट का इस्तेमाल आम तौर पर उन आइटम के लिए किया जाता है जो वर्कस्पेस पर मौजूद होते हैं. जैसे, ब्लॉक और वर्कस्पेस पर की गई टिप्पणियां. उपयोगकर्ता के ज़ूम इन और ज़ूम आउट करने पर, फ़ाइल फ़ोल्डर के कोऑर्डिनेट नहीं बदलते.

मेट्रिक को ओवरराइड करना

जो डेवलपर, वर्कस्पेस के लिए अपनी मेट्रिक उपलब्ध कराना चाहते हैं वे मेट्रिक मैनेजर ऑब्जेक्ट को रजिस्टर कर सकते हैं. यह ऑब्जेक्ट, IMetricsManager इंटरफ़ेस को लागू करता है या Blockly.MetricsManager को बढ़ाता है.

इसका उदाहरण, Continuous Toolbox प्लगिन या Fixed Edges प्लगिन में देखा जा सकता है.