Inkpodには、「複数選択可能なカーソル」と「1つだけ選択可能なカーソル」の2種類のカーソルがあります。それぞれ、PMapModelの、selectedObjectsと、singleSelectedObjectプロパティから、取得と変更ができます。
selectedObjectsは、複数選択されているオブジェクトが配列で返ります。何も選択されていなければ、空の配列になります。グループ化されているオブジェクトが選択されている場合、配列にはグループ化オブジェクト(PGroupObject)が入ります。singleSelectedObjectは、selectedObjectsが含むオブジェクトのうちの1つのオブジェクトが入ります。グループ化オブジェクト(PGroupObject)が、singleSelectedObjectに入ることはありません。
この図の場合、selectedObjectsは、「オブジェクト1」と、『「オブジェクト2」と「オブジェクト3」をグループ化したオブジェクト』が入った長さが2の配列になります。また、singleSelectedObjectは、「オブジェクト3」になります。
選択されているオブジェクトを取得するサンプルです。「オブジェクト」メニューに、「複数選択されているオブジェクトの数を表示」と、「選択されているオブジェクトを表示」の2つのメニュー項目を追加します。「複数選択されているオブジェクトの数を表示」を選択すると、複数選択されているオブジェクトの数を表示します。グループ化オブジェクトは1つとして数えられます。「選択されているオブジェクトを表示」を選択すると、「1つだけ選択可能なカーソル」で選択されているオブジェクトのIDやテキストを表示します。
function extendUI(event) { inkpod.ui.actions.addAction({ id : "SAMPLE_SHOW_SELECTION_OBJECT", text : "複数選択されているオブジェクトの数を表示", action : function(frame, event) { var model = frame.model; var objects = model.selectedObjects; frame.showInfo("選択されているオブジェクトの数:" + objects.length); } }); inkpod.ui.actions.addAction({ id : "SAMPLE_SHOW_SINGLE_SELECTION_OBJECT", text : "選択されているオブジェクトを表示", action : function(frame, event) { var model = frame.model; var object = model.singleSelectedObject; frame.showInfo("選択されているオブジェクト: id=" + object.id + ", text=" + object.text); } }); inkpod.ui.menuBar.objectMenu.addMenuItem("SAMPLE_SHOW_SELECTION_OBJECT"); inkpod.ui.menuBar.objectMenu.addMenuItem("SAMPLE_SHOW_SINGLE_SELECTION_OBJECT"); } function init() { inkpod.ui.addUIExtensionListener(extendUI); } function dispose() { } plugin = { init : init, dispose : dispose }