استفاده از انتخاب ها در افزونه ها

استفاده از انتخاب ها در افزونه ها

استفاده از انتخاب ها در افزونه ها
به منظور استفاده از انتخاب‌ها در Model Builder از یک افزونه، هنگام استفاده از یک شیء فرم ورودی انتخاب در زمان ایجاد افزونه، تنظیمات منبع را خالی می‌گذارید. سپس از روشی برای ایجاد یک انتخاب صریح در مدل فعلی و پیوند آن به شی ورودی انتخاب افزونه استفاده می‌کنید.
شکل زیر یک افزونه ساده انتخاب مرزی را نشان می دهد که برای نشان دادن این قابلیت استفاده شده است. این شامل یک فرم با یک شی ورودی انتخاب و یک دکمه است. هنگامی که افزونه در فوکوس است، کاربر می تواند روی یک یا چند مرز در پنجره گرافیکی کلیک کند تا انتخاب را ایجاد کند. با کلیک بر روی دکمه یک هشدار با کادر محاوره ای که در آن مرزهای انتخاب شده لیست شده است، راه اندازی می شود.
شکل زیر شکل افزونه را همانطور که هنگام استفاده در یک مدل ظاهر می شود نشان می دهد:
هنگامی که فرم تنظیمات افزودنی به یک مدل اضافه می‌شود، یک رویداد On load فعال می‌شود که یک متد createSelection را اجرا می‌کند . فرم تنظیمات در شکل زیر نشان داده شده است:
کد متد createSelection در زیر فهرست شده است:
// Create explicit selection in the model.
if (model.selection().index(selectionTag) < 0) {
SelectionFeature selection = model.selection().create(selectionTag, “Explicit”);
selection.geom(2);
selectioninput1.set(“source”, selection);
}
// Activate the selection whenever the settings form is selected
selectioninput1.set(“active”, true);
متغیر selectionTag یک شناسه منحصر به فرد برای ویژگی انتخاب صریح Model Builder ذخیره می کند. این رشته باید به اندازه کافی متفاوت باشد تا به طور تصادفی با ویژگی های انتخاب کاربر که برای مقاصد دیگر در Model Builder استفاده می شود برخورد نکند. شکل زیر اعلان این متغیر String را نشان می دهد.
علاوه بر این، همانطور که در شکل زیر نشان داده شده است، از یک میانبر selectioninput1 برای شی ورودی انتخاب استفاده می شود.
شکل زیر پنجره تنظیمات را برای شیء Selection Input فرم Selectioninput1 نشان می دهد . به انتخاب خالی منبع و گرافیک برای استفاده در هنگام فعال توجه کنید. این تنظیمات با روش createSelection تنظیم می شوند .
شکل زیر پنجره تنظیمات را برای دکمه شیء فرم دکمه 1 نشان می دهد .
هنگامی که این دکمه کلیک می شود، یک روش displaySelection اجرا می شود. کد این روش در زیر نشان داده شده است.
SelectionFeature selection = model.selection(selectionTag);
alert(“Selection boundaries are: “+concat(“, “, toString(selection.entities())));
برای افزودنی خود، می‌توانید این کد را با هر تعداد عملی که یک انتخاب صریح را به عنوان ورودی می‌پذیرد جایگزین کنید. به عنوان مثال، می توانید خطوط کد زیر را به انتهای متد displaySelection اضافه کنید تا یک متغیر a ، محلی به این انتخاب صریح با مقدار 5 اضافه کنید.
model.component(“comp1”).variable().create(“var1”);
model.component(“comp1”).variable(“var1”).selection().geom(“geom1”, 2);
model.component(“comp1”).variable(“var1”).set(“a”, “5”);
model.component(“comp1”).variable(“var1”).selection().named(selectionTag);