|
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
}