So first things first. How does the new multi-instance Property View looks like? Well, just like the old one except for the two new buttons in the tool bar:
The first button is to toggle the pin property and the second one is to open up a new instance of the property view. Once you click on the second one, you will get another instance of the view. The first instance is pinned to the selection for your convenience (if its not already pinned). You can move around the new instance to other place and change the selection to a different object and you can compare the properties. I've pinned the first instance to MyFile1.txt and the current selection is MyFile2.txt. Now I can compare the properties of these two files side-by-side:
You can create any number of instances and arrange them in any place in your perspective and use them. If you change any preferences like pinning of selection or column widths or hide categories, etc, all those changes are isolated to the particular instance which you are changing. The rest will stay unaffected. You can close any/all of the instances. When the workbench is closed and restarted, all the secondary instances will be gone. You will start only one view.
This is all good, so that the user wants to manipulate. As a plug-in developer how can we manipulate this? Opening a new instance is implemented as a Command. So if you want to create a new instance, then all you need to do is to call the command programmatically:
There is currently no way to get the handle of the newly created instance. It would be very nice if the command returns the newly created view instead of null. Probably a dirty workaround would be to add a IPartListener before executing the command and look for the PropertyView created in the listener. I didn't try, but hope that would work.
Had the command taken a parameter for the secondary id, it would be easier for you to find the newly created instance. But the command neither had option for that. We still can iterate thru the view references in the window and get hold of the views. With the views, you can get/set the pinned property on them:
I don't see any API to get hold of the current selection in the view, but you can trigger a property view to show the properties of an element by firing the selectionChanged method and then calling setPinned(true);
As I mentioned, all these info is subject to change, and I'll add more info to this tip as the bug gets updated.