Hi guys this new topic will discuss about my new work : integrate my nifty-editor with SDK extending the current nifty-editor .
The end goal of this project is to make the user experience similar to the integrate swing editor in Netbeans or the XAML editor in Visual Studio . So a final user shouldn’t take long to make great GUI for his game since he will work in a well know context . I have studied Netbeans Api in these days and I have an overall idea how to achieve this goal. Furthermore thanks to @atomix and @normen i have a real good point of start and it makes the whole thing easier. Also i’ve collected some topic around that talks about this plug-in, there they are :
Normen discuss about a further develop of his work
Atomix talks about his first efforts to make it
very precious link where atomix talks with me about a possible implementation
So what i’m going to do now . First I divided the project in three big steps :
Make the foundationsTake the atomix's work clean the code, make it simpler and merge the last changes in Nifty-Editor ( i.e. it doesn't use a canvas now but a jPanel to render the gui) . Not a big deal but it must be done otherwise the next steps will be compromised. The final result of this first part of development is a really simple editor that is like the current github version of mine . So no style editing , no effects, no code binding but resource handling, element editing , manipulation and maybe a simple synchronization with xml.
Build the wallsThis is the most important part . Here i'm going to build a full editor for a nifty gui . First my work will be focused on style editing and deep element editing. What i mean with "deep element editing" is that right now if you have a control in nifty-editor you can edit only the control part and the first element in it for example in a button you can edit the text of the label and the panel . With "deep element editing" you could expand control definition and edit the singles elements that are part of the control . For example in a button you could edit the font of the button, the size of the text , the color etc.. . This is quite powerful because it gives to the final user the complete control to build his gui . Also from deep editing might result a function that iterates of all elements in the current gui and makes a style of it . Then I'm going to work on control editing and adding effects to the elements. This second iteration is quite hard mostly because of deep element editing and style editing but at the end the user will have a real powerful gui editor and he should be able to build all the gui he wants . :-D
Time for the roofThe last part of development it's about coding . Since JME is an IDE it seems fair that nifty-editor should have some level of code interaction . That's why i would add also code binding and even data binding . Code binding it's quite obvious nifty-gui has two ways to handle user interaction controllers and eventbus. For the first nifty-editor should guide the user in adding an interact element and then generate a method in the controller. About the last nifty-editor couldn't do so much but it could provide a simple way to generate the annotation for a particular event and the method ( using netbeans code genartion ) . For data binding is a bit more complex and right now i don't have a clear way to do that . First i think about neatbeans api but it seems it works only with swing, then I found this cool library it realy simple but it doesn't have any license so i don't know if we could use it. The last i could implement a simple framework for this it's quite hard but I could easier embed it in nifty-gui but i should talk with @void.
Well here it is my first draft of development process , any suggestion are welcome! I know this is quite different from what @atomix said but i want be realistic and this is what I can do . Also if you have some tutorial or documentation that i should not do without please tell me here , I want to be more prepared than I can .
Thanks for reading,