MIP plugin "Setup" property customization with variable values

I’m trying to develop a MIP plugin integration for Smart Client and it appears I need to add some configuration items as Plugins properties (check the screenshot provided)

Considering I want to use some URLs inside my plugin, I should be able to Add/Edit/Save them using this “Setup” Properties option. Those customizable items should be listed under this as editable text boxes.

Is it possible to do this? if so, any suggestions on a recommended way to do this?

Yes. I am glad you ask because, as you describe it, I think you have found the perfect spot for your data.

What you need to implement is PropertiesWpfUserControl.

Read about it here..

https://doc.developer.milestonesys.com/html/index.html?base=reference/architecture/user_controls.html&tree=tree_search.html?search=propertieswpfusercontrol

https://doc.developer.milestonesys.com/html/index.html?base=miphelp/class_video_o_s_1_1_platform_1_1_client_1_1_view_item_manager.html&tree=tree_search.html?search=propertieswpfusercontrol

https://doc.developer.milestonesys.com/html/index.html?base=reference/architecture/class_overview_and_function.html&tree=tree_1.html

https://doc.developer.milestonesys.com/html/index.html?base=reference/architecture/configuration_choises.html&tree=tree_1.html

https://doc.developer.milestonesys.com/html/index.html?base=reference/architecture/class_life_cycle.html&tree=tree_1.html

There are a number of plugin samples you can explore to see the use..

The Property plugin samples uses this, here the user can type in a text to be saved. Don’t be confused by the sample as it the same time shows a lot of other options for storing data.

https://doc.developer.milestonesys.com/html/index.html?base=samples/pluginsamples/property/readme.html&tree=tree_1.html

The RGBVideoEnhancemment plugin sample uses the properties control for choosing a camera for the view item control.

https://doc.developer.milestonesys.com/html/index.html?base=samples/pluginsamples/rgbvideoenhancement/readme.html&tree=tree_1.html

The ServerSideCaroussel plugin sample uses the properties control for choosing between setups that have first been configured in the Management Client.

https://doc.developer.milestonesys.com/html/index.html?base=samples/pluginsamples/serversidecarrousel/readme.html&tree=tree_1.html

It is probably sufficient if you look at the first of the samples I mention, but I thought I might give ideas for you if I mention more examples. All the samples are found here..

https://github.com/milestonesys

@Bo Ellegård Andersen (Milestone Systems)​

Thank you so much for these resource links. a little concern, I tried to play around with the “Property” example and also with my plugin sample, as far as I noticed when we make a change on a “Global property” text box either in Smart Client or “Management Server” it doesn’t update in real-time, as an example if I move to “Management client” and then update a global property variable under the “Property” plugin tab in Options it doesn’t directly change that property in Smart client. We need to restart the Smart client to apply those changes. the same thing goes for Management clients we need to restart one application or both to apply the changes.

Is this the expected behavior? or am I missing something?

The Smart Client plugin in this sample isn’t ideal in many ways. Whenever you navigate the Smart Client you are closing something and the plugin saves whatever properties it has on screen.

Please test this way:

You have the Smart Client already open.

In the Management Client open the Tools- Options- Property, write a new value and click OK to save and close .

Now make sure you do not navigate the Smart Client, do not change view or change workspace or anything, instead make sure you go directly to the upper right corner and click the three dots (burger menu icon) and pick Settings, then pick the Property Settings tab. You should be able to notice that the value you just gave in Management Client is present!

So if you decide to use this you shouldn’t imitate the sample but be careful not to save a property on top before reading it.

Can you confirm it works in the Smart Client if you test this way?

Yes @Bo Ellegård Andersen (Milestone Systems)​

Thank you for the insights I can confirm that this works as you mentioned.