একটি উপস্থাপনা মধ্যে আইটেম নির্বাচন

নির্বাচন হল একটি খোলা উপস্থাপনা পৃষ্ঠায় যা নির্বাচন করা হয়েছে, যেমন হাইলাইট করা পাঠ্যের একটি স্প্যান বা একটি টেবিল। এই নির্দেশিকা আপনাকে বলে যে কিভাবে অ্যাপস স্ক্রিপ্ট ব্যবহার করে একটি সক্রিয় উপস্থাপনায় নির্বাচন পেতে এবং সেট করতে হয়।

নির্বাচনটি হল স্ক্রিপ্টটি শুরু হওয়ার সময় কী ছিল তার একটি স্ন্যাপশট৷ স্ক্রিপ্ট চলাকালীন ব্যবহারকারী ক্লিক করলে এবং নির্বাচন পরিবর্তন হলে, সেই পরিবর্তনগুলি প্রতিফলিত হবে না।

নির্বাচন এবং নির্বাচনের ধরন

আপনি নির্বাচন ক্লাস ব্যবহার করে নির্বাচন পড়তে পারেন। নির্বাচিত বস্তুর (গুলি) প্রকারের উপর ভিত্তি করে নির্বাচিত বস্তুগুলি পেতে ক্লাসে বিভিন্ন পদ্ধতি রয়েছে।

SelectionType enum নির্বাচিত বস্তুর নির্দিষ্ট ধরনের প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, যদি ব্যবহারকারী একটি আকারে কিছু পাঠ্য নির্বাচন করে থাকে, নির্বাচনের ধরনটি হবে TEXT । এই ক্ষেত্রে, আপনি selection.getTextRange() পদ্ধতি ব্যবহার করে পাঠ্যের নির্বাচিত পরিসর পুনরুদ্ধার করতে পারেন।

এছাড়াও আপনি নির্বাচন ধারণ করে বস্তুটি পুনরুদ্ধার করতে পারেন; উপরের উদাহরণটি চালিয়ে, আপনি selection.getPageElementRange().getPageElements()[0] ব্যবহার করে নির্বাচিত পাঠ্য ধারণকারী আকৃতিটি পুনরুদ্ধার করতে পারেন। একইভাবে, যে পৃষ্ঠায় আবদ্ধ আকৃতি রয়েছে সেটি হল বর্তমান সক্রিয় পৃষ্ঠা; সেই পৃষ্ঠাটি পুনরুদ্ধার করতে, selection.getCurrentPage() ব্যবহার করুন।

নির্বাচন পড়া

নির্বাচনটি পড়তে, নিম্নলিখিত উদাহরণে দেখানো Presentation.getSelection() পদ্ধতিটি ব্যবহার করুন:

slides/selection/selection.gs
const selection = SlidesApp.getActivePresentation().getSelection();

বর্তমান পৃষ্ঠা পড়া

ব্যবহারকারী যে বর্তমান পৃষ্ঠাটি দেখছেন তা পুনরুদ্ধার করতে, getSelection() এবং getCurrentPage() পদ্ধতিগুলি ব্যবহার করুন:

slides/selection/selection.gs
const currentPage = SlidesApp.getActivePresentation().getSelection().getCurrentPage();

মনে রাখবেন যে বর্তমান পৃষ্ঠাটি নিম্নলিখিত ধরনের যে কোনো একটি হতে পারে:

বর্তমান পৃষ্ঠায় এক বা একাধিক বস্তু নির্বাচন করা থাকতে পারে এবং নির্বাচনের ধরন নির্বাচনের ধরন নির্ধারণ করে।

নির্বাচনের প্রকারের উপর ভিত্তি করে নির্বাচন পড়া

নিম্নলিখিত উদাহরণটি দেখায় যে আপনি বর্তমান নির্বাচনটি টাইপ-উপযুক্ত উপায়ে পড়তে কীভাবে নির্বাচনের ধরনটি ব্যবহার করতে পারেন।

slides/selection/selection.gs
const selection = SlidesApp.getActivePresentation().getSelection();
const selectionType = selection.getSelectionType();
let currentPage;
switch (selectionType) {
  case SlidesApp.SelectionType.NONE:
    console.log('Nothing selected');
    break;
  case SlidesApp.SelectionType.CURRENT_PAGE:
    currentPage = selection.getCurrentPage();
    console.log('Selection is a page with ID: ' + currentPage.getObjectId());
    break;
  case SlidesApp.SelectionType.PAGE_ELEMENT:
    const pageElements = selection.getPageElementRange().getPageElements();
    console.log('There are ' + pageElements.length + ' page elements selected.');
    break;
  case SlidesApp.SelectionType.TEXT:
    const tableCellRange = selection.getTableCellRange();
    if (tableCellRange !== null) {
      const tableCell = tableCellRange.getTableCells()[0];
      console.log('Selected text is in a table at row ' +
        tableCell.getRowIndex() + ', column ' +
        tableCell.getColumnIndex());
    }
    const textRange = selection.getTextRange();
    if (textRange.getStartIndex() === textRange.getEndIndex()) {
      console.log('Text cursor position: ' + textRange.getStartIndex());
    } else {
      console.log('Selection is a text range from: ' + textRange.getStartIndex() + ' to: ' +
        textRange.getEndIndex() + ' is selected');
    }
    break;
  case SlidesApp.SelectionType.TABLE_CELL:
    const tableCells = selection.getTableCellRange().getTableCells();
    const table = tableCells[0].getParentTable();
    console.log('There are ' + tableCells.length + ' table cells selected.');
    break;
  case SlidesApp.SelectionType.PAGE:
    const pages = selection.getPageRange().getPages();
    console.log('There are ' + pages.length + ' pages selected.');
    break;
  default:
    break;
}

পাঠ্য নির্বাচন পড়া

আপনি Selection.getTextRange() পদ্ধতি ব্যবহার করে পাঠ্য নির্বাচন পড়তে পারেন। দুই ধরনের পাঠ্য নির্বাচন আছে:

  • পরিসর নির্বাচন : যদি একটি আকারে "হ্যালো" পাঠ্য থাকে এবং "তিনি" নির্বাচন করা হয়, তবে প্রত্যাবর্তিত পরিসরটিতে startIndex=0 এবং endIndex=2 থাকে।
  • কার্সার নির্বাচন : যদি একটি আকৃতিতে "হ্যালো" লেখা থাকে এবং কার্সারটি "H" ("H|ello") এর পরে থাকে, তাহলে প্রত্যাবর্তিত পরিসরটি startIndex=1 এবং endIndex=1 সহ খালি পরিসীমা।

নির্বাচন পরিবর্তন

স্ক্রিপ্ট ব্যবহারকারীর নির্বাচন পরিবর্তন করতে পারে. স্ক্রিপ্ট প্রেজেন্টেশনে যে কোনো নির্বাচন পরিবর্তন করে তা স্ক্রিপ্ট সম্পাদনের সময়কালের জন্য পরবর্তী নির্বাচন অপারেশনগুলিতে প্রতিফলিত হয়।

স্ক্রিপ্ট এক্সিকিউশন সম্পূর্ণ হওয়ার পরে বা Presentation.saveAndClose() কল করা হলেই নির্বাচন পরিবর্তনগুলি ব্যবহারকারীর ব্রাউজারে প্রতিফলিত হয়।

বর্তমান পৃষ্ঠা নির্বাচন করা হচ্ছে

সক্রিয় উপস্থাপনার একটি পৃষ্ঠা নির্বাচন করে বর্তমান পৃষ্ঠা হিসাবে নির্বাচন করা যেতে পারে SelectAsCurrentPage() পদ্ধতিতে কল করে। এই পদ্ধতিটি পূর্ববর্তী পৃষ্ঠার উপাদান, পৃষ্ঠা বা পাঠ্য নির্বাচনকে সরিয়ে দেয়। তাই বর্তমান পৃষ্ঠায় এই পদ্ধতিটি ব্যবহার করে আপনি পৃষ্ঠার বর্তমান নির্বাচনগুলিকে অনির্বাচন করতে পারবেন। যেমন:

slides/selection/selection.gs
// Select the first slide as the current page selection and remove any previous selection.
  const selection = SlidesApp.getActivePresentation().getSelection();
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.CURRENT_PAGE
// selection.getCurrentPage() = slide
//

একটি পৃষ্ঠা উপাদান নির্বাচন করা হচ্ছে

একটি পৃষ্ঠায় একটি পৃষ্ঠা উপাদান নির্বাচন করতে, PageElement.select() পদ্ধতি ব্যবহার করুন। এটি পূর্বে নির্বাচিত পৃষ্ঠা উপাদানগুলিকেও অনির্বাচিত করে।

যেমন:

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const pageElement = slide.getPageElements()[0];
  // Only select this page element and remove any previous selection.
  pageElement.select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = pageElement
//

একাধিক পৃষ্ঠা উপাদান নির্বাচন করা হচ্ছে

নির্বাচনের সাথে অতিরিক্ত পৃষ্ঠা উপাদান যুক্ত করতে, PageElement.select(false) পদ্ধতি ব্যবহার করুন। সমস্ত পৃষ্ঠা উপাদান বর্তমান পৃষ্ঠায় থাকতে হবে।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  // First select the slide page, as the current page selection.
  slide.selectAsCurrentPage();
  // Then select all the page elements in the selected slide page.
  const pageElements = slide.getPageElements();
  for (let i = 0; i < pageElements.length; i++) {
    pageElements[i].select(false);
  }
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = pageElements
//

নির্বাচন রূপান্তর

আপনার স্ক্রিপ্ট যে সম্পাদনাগুলি সম্পাদন করে তা বর্তমান নির্বাচনকে রূপান্তরিত করতে পারে, যাতে সম্পাদনার ফলে যা নির্বাচিত হয়েছে তা পরিবর্তিত হয়। যেমন:

  1. ধরুন আপনি A এবং B দুটি আকার নির্বাচন করেছেন।
  2. পরবর্তীতে আপনার স্ক্রিপ্ট A আকৃতি সরিয়ে দেয়।
  3. ফলস্বরূপ, নির্বাচন সম্পাদনার বিপরীতে রূপান্তরিত হয় যাতে শুধুমাত্র আকৃতি B নির্বাচন করা হয়।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে নির্বাচিত পৃষ্ঠা উপাদানগুলিকে ম্যানিপুলেট করে নির্বাচনকে রূপান্তরিত করা যেতে পারে।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape1 = slide.getPageElements()[0].asShape();
  const shape2 = slide.getPageElements()[1].asShape();
  // Select both the shapes.
  shape1.select();
  shape2.select(false);
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements() = [shape1, shape2]
  //
  // Remove one shape.
  shape2.remove();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.PAGE_ELEMENT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements() = [shape1]
//

পাঠ্য নির্বাচন করা হচ্ছে

একটি আকারে বা টেবিলের ঘরে থাকা পাঠ্য TextRange.select() পদ্ধতি ব্যবহার করে নির্বাচন করা যেতে পারে। যদি পাঠ্যটি একটি আকারে থাকে তবে সেই আকারটিও নির্বাচন করা হয়। যদি টেক্সটটি একটি টেবিল কক্ষে থাকে, তাহলে সেই টেবিল সেল এবং এর এনক্লোজিং টেবিল উভয়ই নির্বাচন করা হয়।

এটি মূল পৃষ্ঠাটিকে বর্তমান পৃষ্ঠা হিসাবে সেট করে।

একটি আকারে পরিসীমা নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি আকারে থাকা পাঠ্যের মধ্যে একটি পরিসর নির্বাচন করতে হয়।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  shape.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

একটি আকারে কার্সার নির্বাচন

নিচের উদাহরণটি দেখায় কিভাবে একটি আকৃতিতে থাকা পাঠ্যের মধ্যে একটি কার্সার নির্বাচন করতে হয়।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  shape.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  shape.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

একটি টেবিল কক্ষে ব্যাপ্তি নির্বাচন

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি টেবিলের ঘরে থাকা পাঠ্যের মধ্যে একটি পরিসর নির্বাচন করতে হয়।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Range selection: Select the text range 'He'.
  tableCell.getText().getRange(0, 2).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 2
//

টেবিলসেলে কার্সার নির্বাচন

নীচের উদাহরণটি দেখায় কিভাবে একটি টেবিলের ঘরে থাকা পাঠ্যের মধ্যে একটি কার্সার নির্বাচন করতে হয়।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const table = slide.getPageElements()[0].asTable();
  const tableCell = table.getCell(0, 1);
  tableCell.getText().setText('Hello');
  // Cursor selection: Place the cursor after 'H' like 'H|ello'.
  tableCell.getText().getRange(1, 1).select();
// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = table
// selection.getTableCellRange().getTableCells()[0] = tableCell
// selection.getTextRange().getStartIndex() = 1
// selection.getTextRange().getEndIndex() = 1
//

পাঠ্য সম্পাদনা সহ নির্বাচন রূপান্তর

নিম্নলিখিত উদাহরণ দেখায় কিভাবে নির্বাচিত পাঠ্য সম্পাদনা করে নির্বাচন পরিবর্তন করা যেতে পারে।

slides/selection/selection.gs
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  const shape = slide.getPageElements()[0].asShape();
  const textRange = shape.getText();
  textRange.setText('World');
  // Select all the text 'World'.
  textRange.select();
  // State of selection
  //
  // selection.getSelectionType() = SlidesApp.SelectionType.TEXT
  // selection.getCurrentPage() = slide
  // selection.getPageElementRange().getPageElements()[0] = shape
  // selection.getTextRange().getStartIndex() = 0
  // selection.getTextRange().getEndIndex() = 6
  //
  // Add some text to the shape, and the selection will be transformed.
  textRange.insertText(0, 'Hello ');

// State of selection
//
// selection.getSelectionType() = SlidesApp.SelectionType.TEXT
// selection.getCurrentPage() = slide
// selection.getPageElementRange().getPageElements()[0] = shape
// selection.getTextRange().getStartIndex() = 0
// selection.getTextRange().getEndIndex() = 12
//

অনির্বাচন করা হচ্ছে

পাঠ্য বা পৃষ্ঠার উপাদানগুলি অনির্বাচন করার জন্য কোনও স্পষ্ট পদ্ধতি নেই৷ যাইহোক, এই ফলাফল Page.selectAsCurrentPage() বা pageElement.select() পদ্ধতি ব্যবহার করে অর্জন করা যেতে পারে।

একটি বর্তমান পৃষ্ঠা নির্বাচন করুন

নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে একটি পৃষ্ঠার বর্তমান নির্বাচনগুলিকে বর্তমান পৃষ্ঠা হিসাবে সেট করে পৃষ্ঠাটি অনির্বাচন করা যায়৷

slides/selection/selection.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected, setting the
// same (or any other) slide page as the current page would do the unselect.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.selectAsCurrentPage();

একটি পৃষ্ঠা উপাদান নির্বাচন করুন

নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে একটি পৃষ্ঠার উপাদান নির্বাচন করে একটি পৃষ্ঠার বর্তমান নির্বাচনগুলিকে অনির্বাচন করা যায়, এইভাবে নির্বাচন থেকে অন্য সমস্ত আইটেমগুলিকে সরিয়ে দেওয়া হয়।

slides/selection/selection.gs
// Unselect one or more page elements already selected.
//
// In case one or more page elements in the first slide are selected,
// selecting any pageElement in the first slide (or any other pageElement) would
// do the unselect and select that pageElement.
//
  const slide = SlidesApp.getActivePresentation().getSlides()[0];
  slide.getPageElements()[0].select();