ব্লকলি > IFocusableTree

IFocusableTree ইন্টারফেস

তার নিজস্ব সক্রিয়/প্যাসিভ ফোকাস প্রসঙ্গ সহ ফোকাসযোগ্য উপাদানগুলির একটি গাছকে প্রতিনিধিত্ব করে।

লক্ষ্য করুন যে ফোকাস ফোকাস ম্যানেজার দ্বারা পরিচালিত হয়, এবং ট্রি বাস্তবায়নে এক সময়ে সর্বাধিক একটি IFocusableNode ফোকাস থাকতে পারে। যদি গাছের নিজেই ফোকাস থাকে, তাহলে গাছের ফোকাসড নোডটিকে 'সক্রিয়' ('প্যাসিভ' বলে মনে করা হয় যদি অন্য গাছের ফোকাস থাকে)।

ফোকাস এক বা একাধিক গাছের মধ্যে ভাগ করা হয়, যেখানে প্রতিটি গাছে ঠিক একটি সক্রিয় বা প্যাসিভ নোড থাকতে পারে (এবং যে কোনো সময়ে পুরো পৃষ্ঠায় শুধুমাত্র একটি সক্রিয় নোড থাকতে পারে)। প্যাসিভ ফোকাসের ধারণা হল ব্যবহারকারীদের প্রসঙ্গ প্রদান করা যেখানে তাদের ফোকাস পূর্বে ফোকাস করা ট্রিতে ফিরে যাওয়ার পরে পুনরুদ্ধার করা হবে।

মনে রাখবেন যে যদি গাছের বর্তমান ফোকাসড নোড (প্যাসিভ বা সক্রিয়) প্রয়োজন হয়, FocusableTreeTraverser.findFocusedNode ব্যবহার করা যেতে পারে।

মনে রাখবেন যে যদি এই গাছের জন্য নির্দিষ্ট নোডগুলি পুনরুদ্ধার করার প্রয়োজন হয়, হয় lookUpFocusableNode বা FocusableTreeTraverser.findFocusableNodeFor ব্যবহার করুন।

স্বাক্ষর:

export interface IFocusableTree 

পদ্ধতি

পদ্ধতি বর্ণনা
GetNested Trees()

এই গাছের নীচে সমস্ত সরাসরি নেস্টেড গাছ ফেরত দেয়।

মনে রাখবেন যে গাছের প্রত্যাবর্তিত তালিকাটি স্থিতিশীল হওয়ার প্রয়োজন নেই, তবে সমস্ত ফেরত গাছ *করতে হবে* ফোকাস ম্যানেজারে নিবন্ধিত হতে হবে। অতিরিক্তভাবে, এটি অবশ্যই প্রকৃত নেস্টেড ট্রিগুলিকে ফিরিয়ে দিতে হবে কারণ একটি নেস্টেড ট্রি বাদ দিলে ফোকাস কীভাবে একটি নির্দিষ্ট নোড এবং এর গাছে মানচিত্র পরিবর্তন করে তা প্রভাবিত করবে, যা ব্যবহারকারীর বিভ্রান্তির কারণ হতে পারে।

GetRestoredFocusableNode(পূর্ববর্তী নোড)

এই গাছের IFocusableNode ফেরত দেয় যেটি সক্রিয় ফোকাস গ্রহণ করা উচিত যখন ট্রি নিজেই ফোকাস ফিরে আসে।

এই পদ্ধতির একটি সংস্করণ প্রয়োগ করার সময় একটি গাছের ফোকাস লাইফসাইকেল সম্পর্কে কিছু অত্যন্ত গুরুত্বপূর্ণ নোট রয়েছে যা নাল ফেরত দেয় না: 1. একটি নাল পূর্ববর্তী নোড প্রথমবারের ফোকাস অবস্থার গ্যারান্টি দেয় না কারণ নোডগুলি মুছে ফেলা যেতে পারে। 2. এই পদ্ধতিটি শুধুমাত্র তখনই ব্যবহৃত হয় যখন ট্রি নিজেই ফোকাস করা হয়, হয় ট্যাব নেভিগেশন বা FocusManager.focusTree() এর মাধ্যমে। অনেক ক্ষেত্রে, পূর্বে ফোকাস করা নোডের পরিবর্তে সরাসরি ফোকাস করা হবে যা এই পদ্ধতিটিকে বাইপাস করবে। 3. ডিফল্ট আচরণ (অর্থাৎ এখানে নাল রিটার্ন করা) এর মধ্যে হয় পূর্ববর্তী নোড (previousNode) পুনরুদ্ধার করা বা গাছের মূলে ফোকাস করা জড়িত। 4. প্রদত্ত নোড কখনও কখনও আর বৈধ নাও হতে পারে, যেমন ক্ষেত্রে একটি নোড ফোকাস করার চেষ্টা করা হয় যা সম্প্রতি এর মূল গাছ থেকে সরানো হয়েছে। ইমপ্লিমেন্টেশনগুলি নোডের বৈধতা পরীক্ষা করতে পারে যাতে নোডটিকে বিশেষায়িত করা যায় যেটিতে ফোকাস ফিরে আসা উচিত।

এই পদ্ধতিটি মূলত তাদের রুটের চেয়ে একটি ভাল ডিফল্ট নোড নির্দিষ্ট করার উপায় সহ ট্রি বাস্তবায়ন প্রদানের উদ্দেশ্যে।

getRootFocusableNode()

গাছের শীর্ষ-স্তরের ফোকাসযোগ্য নোড প্রদান করে।

এটি প্রত্যাশিত যে প্রত্যাবর্তিত নোডটি এমন ক্ষেত্রে ফোকাস করা হবে যেখানে FocusManager একটি গাছকে এমন পরিস্থিতিতে ফোকাস করতে চায় যেখানে বর্তমানে এটির একটি ফোকাসড নোড নেই।

LookUpFocusableNode(id)

নির্দিষ্ট এলিমেন্ট আইডির সাথে সম্পর্কিত IFocusableNode ফেরত দেয়, অথবা যদি সেই ID সহ এই ট্রির মধ্যে কোনো সঠিক নোড না থাকে বা যদি IDটি গাছের মূলের সাথে মিলে যায় তাহলে null.

বাসা বাঁধা গাছের সাথে এটি কখনই মিলবে না।

onTreeBlur(পরবর্তী গাছ)

যখন এই গাছের পূর্বে সক্রিয়ভাবে ফোকাস করা নোডটি এখন নিষ্ক্রিয়ভাবে ফোকাস করা হয় এবং এই ট্রিটির অন্য কোন সক্রিয় নোড তার স্থান গ্রহণ করে না তখন বলা হয়।

এটি onTreeFocus() হিসাবে একই বাস্তবায়ন সীমাবদ্ধতা এবং বিবেচনা রয়েছে।

অন ​​ট্রিফোকাস (নোড, আগের ট্রি)

যখন এই গাছের একটি নোড সক্রিয় ফোকাস পেয়েছে তখন কল করা হয়।

মনে রাখবেন যে একটি নাল আগের ট্রি অগত্যা নির্দেশ করে না যে ব্লকলি এই প্রথম ফোকাস পাচ্ছে। প্রকৃতপক্ষে, পূর্ববর্তী ফোকাস অবস্থা সম্পর্কে কিছু অনুমান করা যেতে পারে কারণ একটি পূর্ববর্তী নাল ট্রি কেবল ইঙ্গিত করে যে এই ট্রি ফোকাস হওয়ার আগে ব্লকলি সক্রিয় ফোকাস ধরেনি (যা ব্লকলি ইনজেকশন ডিভ থেকে ফোকাস প্রস্থান করার কারণে বা ক্ষণস্থায়ী ফোকাসের মতো অন্যান্য ক্ষেত্রে ঘটতে পারে)।

IFocusableNode.onNodeFocus() দেখুন কারণ বাস্তবায়নে সেই পদ্ধতির মতোই সীমাবদ্ধতা রয়েছে।