@relucri: Iāve been watching your efford in this GUI Editor.
Impressive at first. Keep it up man, this one will ROCK! 
For the future, if you want to go integrate this Editor into the SDK (Netbean Platform) , from my experiences it will be HARD and BIG problem!
But I think youāre far good enough for the challenge. Beat it!
- Integrate with the SDK, which itās Netbean Platform. == Hard one, but there are ready-to-use codes from the Core.
- Use XAM API of Netbean (which has Golden features in XML Editing)== Hard one, Iāve tried but you can use some of my codes.
My experiences in those challenges:
2 Usecases :
- User create XML - View/Edit it - Visual edit it- To XML⦠so on
- User create Control/Style/ ⦠a lot of other things related to an XML, can our Editor link and edit all of them?
From the current NiftyEditor of SDK, we can
Create XML->View it-> Back to XML/ Edit-> Viewit
Now Visual Editing can help a lot, but is this really easy to program, not so easy I thought.
These are some of my opinions, please correct them:
In Netbean RAW architect:
Model : Our Nifty Element
View :
----( Hidden) also our nifty Element
---- Node of Netbean Explorer
Controller :
ā Your Editor component code ( Iāve also looked at the codes of Pgi, so I guess you use them same one), which modify the structure of NiftyElement
---- also though hidden mechanic of Property API of Netbean
====================================================
In this approach:
- Your XML is parsed by Nifty core to a Tree ā then you read that to construct your tree of Node-> Construct Properties
- User edit/ Select Explorer Nodes
> Hidden Netbean mechanic changes Node properties ---> Nifty elements (Model) changes
- User edit/ Select visually
> Your mechanic changes Nifty Elements
- User edit XML
> The tree is re-parsed
===========================================================
This solution is simple, good enough to use... but RAW. We can't use a lot of Golden features of XML API of Netbean, just some of them!
I have finish that kind of Editor but not feel satisfy with that yet. Then I looked at XAM API.
In which:
- We can use XAM API to synchronize the changes in two tree, so no redundant changes are needed.
- We can can expand to support a lot of features like editing separete Style, separate Control. Link all of them together without re-load.
In XAM API architect:
Model : XAM Model - Different from the RAW Approach
View :
----( Hidden) our nifty Element
---- Node of Netbean Explorer
Controller :
---- REWRITEN
Flow:
XAM Model is the main MODEL of MVC, other elements are VIEW.
- User edit/ Select Explorer Nodes
> Hidden Netbean mechanic changes Node properties (View Controller) -> XAM Model changes ---> Nifty elements changes.
- User edit/ Select visually
> Your mechanic know what Nifty Elements is selected -> Find which XAM Element in the same tree structures ---> Nifty elements changes + Netbean Node changes
- User edit XML
> XAM API -> XAM Model changes ---> Other changes
There are two problems:
1) From Nifty Element -> XAM Element: Travel the tree structure: This link method needs improvement
2) XAM API is complicated and sadly not-good documented.
Anyway, I've write the XAM Model and simple View part of this solution. The Controller is not complete yet (and never because I didn't have time and I abandoned it :p).
Sorry for the long post and I don't know what you've already researched but I want to help if I can. Please let me know you opinion or solutions!