I am trying to add a tab to the editor window so it sits alongside content, scheduling, settings , shortcut , categories. I seem to be able to add a tab/plugin to almost any other area of episerver. Can someone give me some guidance on how best to do this?
Allan made a nice post about this that you could read.
In short the attribute your looking for is:
[GuiPlugIn(Area = PlugInArea.EditPanel)]
An edit panel plugin puts a tab alongside View, Edit, Version List etc. The Content, Scheduling,... tabs are below the Edit tab and are simply visible or not depending on whether the page type has a property defined to use that tab. When you edit page type properties in admin mode you can select the tab they end up on. There's also a funciton in admin mode to edit the tabs and add new ones.
If you want to put something on a tab there which isn't a property I'm not sure it's a good idea. It might confuse the editors and probably interfers with the general work flow in EPiServer (page leave check, populating properties...). But there isn't really anything stopping you from developing a custom property type which doesn't read or save any data, but only acts as an agent to get your control into your tab by letting it be part of the custom property's edit control. Then just add that property to the page types where you want the tab and control visible.
That can be done, but I tend to agree with Magnus here.
But you could either make a control adaptor, or add a property that is in new tab, and add your user contron in the CreateEditControls()