সিলেকশন হলো একটি খোলা প্রেজেন্টেশন পৃষ্ঠার ফোকাসে থাকা বিষয়বস্তু, যেমন হাইলাইট করা টেক্সটের একটি অংশ বা একটি টেবিল। এই নির্দেশিকায় অ্যাপস স্ক্রিপ্ট ব্যবহার করে একটি সক্রিয় প্রেজেন্টেশনে কীভাবে সিলেকশন পেতে এবং সেট করতে হয় তা বর্ণনা করা হয়েছে।
একটি স্ক্রিপ্ট শুধুমাত্র স্ক্রিপ্টটি চালনাকারী ব্যবহারকারীর নির্বাচিত অংশগুলোই দেখতে পারে।
এই নির্বাচনটি হলো স্ক্রিপ্ট শুরু হওয়ার সময়ের একটি স্ন্যাপশট। স্ক্রিপ্ট চলার সময় যদি ব্যবহারকারী ক্লিক করেন এবং নির্বাচনটি পরিবর্তিত হয়, তবে সেই পরিবর্তনগুলো প্রতিফলিত হবে না।
নির্বাচন এবং নির্বাচনের ধরণ
Selection ক্লাস ব্যবহার করে নির্বাচনটি পড়ুন। নির্বাচিত অবজেক্টের ধরনের ওপর ভিত্তি করে সেগুলো পাওয়ার জন্য এই ক্লাসে বিভিন্ন মেথড রয়েছে।
SelectionType enum-টি নির্বাচিত অবজেক্টের নির্দিষ্ট ধরনকে বোঝায়। উদাহরণস্বরূপ, যদি ব্যবহারকারী কোনো শেপের মধ্যে কিছু টেক্সট নির্বাচন করে থাকেন, তাহলে নির্বাচনের ধরনটি হবে TEXT । এক্ষেত্রে, আপনি selection.getTextRange() মেথডটি ব্যবহার করে নির্বাচিত টেক্সটের পরিসরটি পেতে পারেন।
আপনি নির্বাচিত অংশ ধারণকারী অবজেক্টটিও পুনরুদ্ধার করতে পারেন। উদাহরণস্বরূপ, আপনি selection.getPageElementRange().getPageElements()[0] ব্যবহার করে নির্বাচিত লেখা ধারণকারী আকৃতিটি পুনরুদ্ধার করতে পারেন। একইভাবে, পরিবেষ্টনকারী আকৃতি ধারণকারী পৃষ্ঠাটিই বর্তমান সক্রিয় পৃষ্ঠা; সেই পৃষ্ঠাটি পুনরুদ্ধার করতে, selection.getCurrentPage() ব্যবহার করুন।
নির্বাচিত অংশটি পড়া
নির্বাচিত অংশটি পড়ার জন্য, নিচের উদাহরণে দেখানো অনুযায়ী Presentation.getSelection() মেথডটি ব্যবহার করুন:
বর্তমান পৃষ্ঠাটি পড়ুন
ব্যবহারকারী বর্তমানে যে পৃষ্ঠাটি দেখছেন তা পেতে, নিম্নলিখিতভাবে getSelection() এবং getCurrentPage() পদ্ধতিগুলি ব্যবহার করুন:
উল্লেখ্য যে, বর্তমান পৃষ্ঠাটি নিম্নলিখিত প্রকারগুলির যেকোনো একটি হতে পারে:
বর্তমান পৃষ্ঠায় এক বা একাধিক অবজেক্ট নির্বাচিত থাকতে পারে এবং SelectionType নির্বাচনের ধরণ নির্ধারণ করে।
নির্বাচনের ধরনের উপর ভিত্তি করে নির্বাচনটি পড়ুন।
নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে আপনি সিলেকশন টাইপ ব্যবহার করে বর্তমান সিলেকশনটিকে টাইপ-উপযোগী উপায়ে পড়তে পারেন।
পাঠ্য অংশগুলি পড়ুন
Selection.getTextRange() মেথড ব্যবহার করে নির্বাচিত টেক্সটটি পড়ুন। টেক্সট সিলেকশন দুই প্রকারের হয়:
- রেঞ্জ নির্বাচন : যদি কোনো শেপে "Hello" লেখাটি থাকে এবং "He" নির্বাচিত হয়, তাহলে ফেরত আসা রেঞ্জটির startIndex=0 এবং endIndex=2 হবে।
- কার্সার নির্বাচন : যদি কোনো শেপে "Hello" লেখাটি থাকে এবং কার্সারটি "H"-এর পরে থাকে ("H|ello"), তাহলে ফেরত আসা রেঞ্জটি startIndex=1 এবং endIndex=1 সহ একটি খালি রেঞ্জ হবে।
নির্বাচন পরিবর্তন করা
স্ক্রিপ্টটি ব্যবহারকারীর নির্বাচন পরিবর্তন করতে পারে। স্ক্রিপ্টটি উপস্থাপনায় যে কোনো নির্বাচন পরিবর্তন করলে, স্ক্রিপ্টটি কার্যকর থাকা অবস্থায় পরবর্তী নির্বাচন প্রক্রিয়াগুলোতে তা প্রতিফলিত হয়।
স্ক্রিপ্ট নির্বাহ সম্পন্ন হওয়ার পর, অথবা Presentation.saveAndClose() কল করা হলেই ব্যবহারকারীর ব্রাউজারে নির্বাচনের পরিবর্তনগুলো প্রতিফলিত হয়।
বর্তমান পৃষ্ঠা নির্বাচন করা
selectAsCurrentPage() মেথডটি কল করার মাধ্যমে সক্রিয় প্রেজেন্টেশনের কোনো একটি পৃষ্ঠাকে বর্তমান পৃষ্ঠা হিসেবে নির্বাচন করা যায়। এই মেথডটি পূর্ববর্তী যেকোনো পৃষ্ঠা উপাদান, পৃষ্ঠা বা টেক্সট নির্বাচন মুছে ফেলে। সুতরাং, বর্তমান পৃষ্ঠায় এই মেথডটি ব্যবহার করে আপনি পৃষ্ঠার যেকোনো বর্তমান নির্বাচন বাতিল করতে পারেন। উদাহরণস্বরূপ:
পৃষ্ঠার একটি উপাদান নির্বাচন করুন
একটি পৃষ্ঠার কোনো উপাদান নির্বাচন করতে PageElement.select() পদ্ধতিটি ব্যবহার করুন। এটি পূর্বে নির্বাচিত যেকোনো উপাদানকে অনির্বাচিত করে দেয়।
select() এবং select(true) মেথড দুটি সমতুল্য।
উদাহরণস্বরূপ:
একাধিক পৃষ্ঠার উপাদান নির্বাচন করুন
নির্বাচিত অংশে অতিরিক্ত পেজ এলিমেন্ট যুক্ত করতে PageElement.select(false) মেথডটি ব্যবহার করুন। সকল পেজ এলিমেন্ট অবশ্যই বর্তমান পেজে থাকতে হবে।
নির্বাচনটি রূপান্তর করুন
আপনার স্ক্রিপ্ট দ্বারা সম্পাদিত সম্পাদনা বর্তমান নির্বাচনকে রূপান্তরিত করতে পারে, ফলে সম্পাদনার ফলস্বরূপ নির্বাচিত বিষয়বস্তু পরিবর্তিত হয়। উদাহরণস্বরূপ:
- ধরা যাক, আপনি A এবং B নামে দুটি আকৃতি নির্বাচন করেছেন।
- এরপর আপনার স্ক্রিপ্টটি A আকৃতিটি সরিয়ে দেয়।
- এর ফলে, সম্পাদনার সাপেক্ষে নির্বাচনটি এমনভাবে রূপান্তরিত হয় যাতে শুধুমাত্র আকৃতি B নির্বাচিত থাকে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে নির্বাচিত পৃষ্ঠার উপাদানগুলি পরিবর্তন করে নির্বাচনকে রূপান্তরিত করা যায়।
টেক্সট নির্বাচন করুন
TextRange.select() মেথড ব্যবহার করে কোনো শেপ বা টেবিল সেলের ভেতরের টেক্সট নির্বাচন করা যায়। যদি টেক্সটটি কোনো শেপের মধ্যে থাকে, তাহলে সেই শেপটিও নির্বাচিত হয়। আর যদি টেক্সটটি কোনো টেবিল সেলের মধ্যে থাকে, তাহলে সেই টেবিল সেল এবং তার ভেতরের টেবিল উভয়ই নির্বাচিত হয়।
এটি প্যারেন্ট পেজকে বর্তমান পেজ হিসেবেও সেট করে।
একটি আকৃতিতে পরিসর নির্বাচন
নিচের উদাহরণটিতে দেখানো হয়েছে, কীভাবে একটি শেপের মধ্যে থাকা টেক্সট থেকে রেঞ্জ সিলেকশন করতে হয়।
একটি আকৃতিতে কার্সার নির্বাচন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি শেপের মধ্যে থাকা টেক্সটের উপর কার্সার দিয়ে নির্বাচন করতে হয়।
টেবিলের একটি সেলে রেঞ্জ নির্বাচন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি টেবিল সেলের মধ্যে থাকা টেক্সট নির্বাচন করতে হয়।
টেবিলসেলে কার্সার নির্বাচন
নিম্নলিখিত উদাহরণে দেখানো হয়েছে কিভাবে একটি টেবিলের সেলের মধ্যে থাকা টেক্সটে কার্সার দিয়ে নির্বাচন করতে হয়।
পাঠ্য সম্পাদনা সহ নির্বাচন রূপান্তর
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে নির্বাচিত টেক্সট সম্পাদনা করে নির্বাচনটিকে পরিবর্তন করা যায়।
নির্বাচন বাতিল করুন
টেক্সট বা পেজ এলিমেন্ট আনসিলেক্ট করার জন্য কোনো সুস্পষ্ট মেথড নেই। তবে, Page.selectAsCurrentPage() অথবা pageElement.select() মেথড ব্যবহার করে এই কাজটি করা যায়।
বর্তমান পৃষ্ঠা নির্বাচন করুন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি পৃষ্ঠাকে বর্তমান পৃষ্ঠা হিসাবে সেট করার মাধ্যমে সেই পৃষ্ঠার যেকোনো বর্তমান নির্বাচনকে অনির্বাচিত করা যায়।
পৃষ্ঠার একটি উপাদান নির্বাচন করুন
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি পৃষ্ঠার একটি উপাদান নির্বাচন করে বর্তমান নির্বাচনগুলি বাতিল করা যায়, যার ফলে নির্বাচন থেকে অন্য সমস্ত আইটেম মুছে যায়।