What are the IHeader, IStauts, and IDocking controls and how do I add them?

Sep 13, 2013 at 4:13 AM
So, I keep seeing people refer to the IDockManager, IStatusControl, and IHeaderControl, but, what are they, what do they do, and (most importantly), how to I add them to my project?

I've been trying to find answers in the documentation and discussions but so far no luck.

I really want to add the geostatisticaltool but because it uses the .extension dll it throws error messages about not having those three... whatever they are...(?)
Sep 17, 2013 at 10:37 AM
A thought about this question and found this article:

http://mudnug.wordpress.com/2012/01/31/how-to-load-dotspatial-extensions-into-my-toolbar/

But I still cannot understand it. If you will get some results please write about it.
Sep 18, 2013 at 8:40 AM
I'm facing this problem too.

I've seen the hiont that there are some missing assemblies available on the "feed" http://www.myget.org/F/dotspatial/Packages()?$filter=(IsLatestVersion%20eq%20true)%20and%20substringof(%27HideReleaseFromEndUser%27,Tags), but whatever I try to access the feed I never get a usable URL which results in something like a download or so.

Is there anybody out there who can provide us with working URLs for these downloads? (I'm searching for DotSpatial.Plugins.Ribbon and DotSpatial.Plugins.DockManager).

And will there be any source code for these assemblies be available?

Thanks for your response
Sep 18, 2013 at 9:07 AM
look at this post, it might be helpful

https://dotspatial.codeplex.com/discussions/395940

Oscar
Sep 18, 2013 at 12:08 PM
Edited Sep 19, 2013 at 9:25 AM
So I figured it out.

Simply put they are just classes you need to add them, copy the code, and it should work.

Go to project > Add > Class > you can call it whatever - just change the name in the class script.

Edit: I forgot to say - add this to your form under Public Form1()

Shell = this;

and add:
    [Export("Shell", typeof(ContainerControl))]
    private static ContainerControl Shell;
above Public Form1()

In the class just copy paste the code and you'll be fine. At least that's what I did and it works. Here are the files I use - just change the name spaces etc (simple docking is IDockManager - I couldn't call the class IDockManager so I stuck with SimpleDocking)
http://www.4shared.com/folder/wBD9Hui7/DotSpatial_Classes.html

(remove these lines - just me trying something):
this.toolStripContainer1.TopToolStripPanel.AutoSize = false;
this.toolStripContainer1.TopToolStripPanel.ActiveControl.Size = new Size(24, 24);

I don't have the ribbon in there though - I think the extension manager plugin will cause your project to try and download that at startup..

For the dev. team, it may be useful to include a brief description of the Iheader ect in the start up guide - I found the documentation around these to be disjunct and not suitable for a direct answer (so it got confusing really fast)- maybe a step by step guide or the .cs/.vb files could be included when you download the package?
Sep 19, 2013 at 3:03 PM
Thank you very much BenWiseman.

I have eliminated the message of IHeadControl, but I get now that :
"You may only inlude one IDockManager Extension. 2 were found"
Do you have any idea that what happens?
I have reviewed the code but I only have one class like this:

    public class SimpleDocking : IDockManager
    {

        [Import("Shell")]
        private ContainerControl Shell { get; set; }
        private List<Form> forms = new List<Form>();

        #region IDockManager Members

....
Sep 20, 2013 at 11:33 AM
Hi Sannavtar -

Yes I have come across that too; try looking in your project's directories - if you've added a .dll which includes that (probably called simpledocking.dll or something in an application extensions or plugins folder) then you'll see that error. I think it's because you can add the IDock etc in as plugins too (though that hasn't worked out well when I tried it). There is a plugin called DotSpatial.Plugins.SimpleDocking.dll that you may have added. Either that or could there be a copy of an idockmanager class in your project?

Otherwise your code is identical to mine..

Ben
Sep 24, 2013 at 9:08 AM
Edited Sep 24, 2013 at 9:08 AM
Solved!

I have spent much time searching some docking.dll on my code or my project directory. But I'm using "DotSpatial 1.4 Extended" and there not have any "DotSpatial.Plugins.SimpleDocking.dll". What is it?
dotSpatial if don't find this interfaces, it download the "DotSpatial.Plugins.DockManager.dll" and put it on
"C:\Users\MyUser\AppData\Roaming\Aplication.exe\Extensions\Packages"
and for this reason when I put my class with IDockManager, it load two.
I deleted this folder "DotSpatial.Plugins.DockManager.0.12.5.14" and run fine.

Thanks Ben.