blackberry/VSPlugin — pull request #660 by phofman (2014-05-16 11:21:46+00:00)
Title: Moved plugin UI to the next level

Spent some time optimizing probably the most frustrating part of the plugin - the UI (look and freezes).
From the visual point of view it should present itself and work more like a stable product. Please let me know, what do you think.

Change log:
* plugin doesn't warm up for 20 secs now (yes, in PL downloading list of available API Levels took that time; even if this info was not used by developer, he was forced to wait)
* reimplemented calls to BlackBerry native tools - now they are called asynchronously and return parsed info as read-only object - much more data is displayed and VS doesn't hang anymore
* removed hardcoded paths to used QNX toolset (also some cleaning was done to encapsulate access to external things like registry and files, so maintaining this code should be much easier now)
* removed custom 'dialogs' and introduced regular Visual Studio settings pages with support of a [Cancel] button, that reverts all the changes
* added option to add 'custom NDK' based on paths to host/target folders (useful probably only to people using more frequent NDK builds than Gold)
* added support of having 1+ devices and simulators defined and switch them as easy as possible
* added feature to generate and deploy debug-token with 1+ PIN
* added option to remove stored CSK password from registry
* added plugin-dedicated output window (View -> Output -> select [BlackBerry]), to keep track of runtime logs - I want to use it to push GDB logs there too
* improved main-menu (added more sections, links to documentation&samples and about window with references to the project and bug-tracker)
* all changes are backward compatible (that means - at the end of the day, they update the same registry fields etc. as before I did the refactoring)
* and others I've seen useful...

NOTEs:
* During the review - could anybody please verify, if registration and un-registration developer certificate works? On my 2 machines - the 'new' nor the 'old' version don't generate any csk file. Maybe there is a better way of doing this (something from Momentics?), that doesn't still cookies and a silent HTTP-Request etc...
* In next step I will remove the 'old' settings stuff completely (code, UI, menu, tests).
* Downloading API Levels is not done yet. Do you think it's really needed? Especially if the plugin detects installed NDKs.

![Menus & Output Window](https://cloud.githubusercontent.com/assets/475630/2996279/c60eecf4-dceb-11e3-9c36-2afdf8ac3757.jpg)
![Targets](https://cloud.githubusercontent.com/assets/475630/2996280/c61873a0-dceb-11e3-8302-7cb3ec2cb434.jpg)
![Signing](https://cloud.githubusercontent.com/assets/475630/2996281/c6281b16-dceb-11e3-82a2-0c3dbbbe1e14.jpg)
![API Levels](https://cloud.githubusercontent.com/assets/475630/2996282/c6348518-dceb-11e3-9bb5-8d9c1528f0df.jpg)

BR