ThinkGeo.com    |     Blog    |     Wiki    |     Support

Need instructions for embedding Editor into VS2015 Winforms app

We have just recently purchased perpetual licenses for Desktop. Please forgive our newbie questions at this time.

I read elsewhere that it is possible to embed the Editor as a User Control into a Winforms Form and programmatically drive the Editor from that app. I’d appreciate any pointers you have to docs on these subjects please so that I can avoid reinventing the wheel, so to speak.

If there are any technicalities to know about regarding licensing issues or UI issues with this configuration, I’d appreciate some hints about best practices on that subject as well.

Thanks!!

Hi Michael,

GisEditor is a standalone product which is not under DesktopEdition.

In fact after version 10, the GIS Editor is open source: https://github.com/ThinkGeo/MapSuiteGisEditor

You can view it’s code and do any change you want.

I don’t remember our old GisEditor can be integrated as a control into other APP, so I think you should want to show us more detail about your scenario, we can give your some suggestion about that.

You can find more information about our product in: wiki.thinkgeo.com

And you can find more samples in: https://github.com/ThinkGeo/

Regards,

Ethan

I found this in the forums. It’s talking about the new current editor. Our salesman told us that with a Desktop developer license, we could extend and develop on the Editor and rebrand it. So I’m asking again. I found this elsewhere in this forum:

The entire GIS Editor sits on top of a well designed plugin system. Every piece of functionality is actually a MEF loaded plugin. We have different types of plugins such as LayerPlugins, UIPlugins, StylePlugins, and many more. Also underpinning the plugin system is a manager system which are heavy lifting singletons of the GIS Editor framework that are MEF replaceable as well. Below is a link to a hidden page on our wiki that will house all of the developer API information in it. While we haven’t posted them yet we have lots of plugin samples that do all kinds of things.

We wanted to get the GIS Editor out to get feedback and while we were in beta we will be releasing lots of developer focused videos, sample, and guides. I made sure that they system was extremely extensible and used things like XML for transparency. Like I said every piece of functionality is plugin and in fact you could using a MEF plugin replace the MEF loading system for the plugins. Another very cool feature is the ability to embed the editor window into another app. The editor area is actually a user control that go on a form so you can reference the exe and embed the user control directly. This gives you allot of control over things though at this point it is undocumented but more information is on the way.

Early next week I should have a video showing how to write a simple plugin that can get you up and running. It will be rough however I think you will get the idea. There are some special things you need to setup in your plugin project to be able to debug against the released editor. Another thing to note is that when you start developing plugins you might want to switch to the developer branch in the Options / Update / Update Channel. In this way you will get the daily build version of the GIS Editor delivered to you. We are currently working with different customers already building plugins so sometimes we need to make changes to meet certain scenarios. The architecture and extensible potential is my favorite part of the GIS Editor and very soon you will be able to explore it fully.

wiki.thinkgeo.com/wiki/Map_Suite_GIS_Editor

David

So, my question remains. Where is the documentation that shows how to embed the Editor as a user control in another application? Thanks.

Hi Michael,

First, I can tell you that one WPF control can be embed on WinForms application. Our GisEditor is one WPF applicaiton, so it can be embed to WinFroms application. However, we don’t have one document to guide you how to implement that steps by steps.

Then, I can guide you how to implement that:

  1. Our GisEditor is open source, please refer https://github.com/ThinkGeo/MapSuiteGisEditor. You can choice the plugin and control to build one WPF control;
  2. After you built the WPF control, you can refer below two documents to implement your project

I think you can implement that by yourself. If you meet any issue when you implement, you can consider try our professional services. we can help you design and implement that. If you need professional services, please contact our sales.

If you need any more information, please let us know that.

Thanks
Mark

Another very cool feature is the ability to embed the editor
window into another app. The editor area is actually a user control
that go on a form so you can reference the exe and embed the user
control directly. This gives you allot of control over things though at
this point it is undocumented but more information is on the way.

I want to know if you guys will make good on this statement. I can add the exe as a reference to my Winforms project, and set up the elementhost and all that, and import the ThingkGeo.MapSuite.GisEditor.GisEditorUserControl and the project builds, and all the required DLL’s appear in the output folder as expected, BUT the thing won’t run. I’m getting all kinds of XAML parsing errors. I’ve already added the missing WPF assemblies as references so that’s not the problem. So it’s not as simple as stated.

I want to know what it will take for you guys to make good on the statements I found existing in these forums. I want to see how a running Winform with an embedded Editor can be displayed and controlled programmatically as well as in its embedded UI.

Thanks.

Hi Michael,

We created a demo which contains very simple function(all plugins are deleted), it works fine, and it can shows how to start the integrate.

Please download the sample here: https://ap.thinkgeo.com:5001/sharing/uqBtAQRxc

If you want to use any GisEditor plugins in your winfomrs app, you should want to build it by yourself, that’s not our API and in fact we suggest to use GisEiditor directly, but not embedded to any APP. Because the GisEditor contains many different functions, maybe you will met many issues when try to embedded it.

And please notice GisEditor contains many WPF windows, related functions cannot be embedded to WinForms app, you have to removed them.

It maybe complicate for you. So if you really need to implement that, please try to contact our sales about professional service.

Regards,

Ethan

Thanks for the explicit information. Now I can move forward. I have 2 followup questions, then.

  1. Assuming that we leave the Editor as a separate standalone application, is it possible to add a control plugin (not a UI plugin) that would allow me to remotely control the functionalities or add functionalities that could be remotely controlled by another separate application?
  2. If Yes, what in your opinion would be the best mechanism, given the current architecture of the Editor, for doing that?

Thanks. I’m willing to do the work here, just need a little push in the right direction.

Cheers

Hi Michael,

Thanks to let us know your progress,.

We don’t have experience about it, but I think that’s need the GisEditor support related interface and have related API, so it can communication with your mainly application. I think you can modify GisEditor to make it support that, because it’s open source now, that’s should be easier than your previous way.

In fact I am not sure whether you want to use all the functions of GisEditor or just some special functions. If you only need some special functions you can choose integrate them as control, but if you want to use most functions or all the functions, I think directly run the whole application. In fact I don’t think you need to remote control GisEditor from your mainly application, you just need pass some parameters in, and make the GisEditor handle them, and save the result in some place, then your mainly application can handle the result.

Wish that’s helpful.

Regards,

Ethan