Archi Forum

Archi => Archi Development => Topic started by: Arslan Qadeer on October 28, 2015, 09:42:10 AM

Title: Archimate developer documentation complete
Post by: Arslan Qadeer on October 28, 2015, 09:42:10 AM
Could anyone please share a complete document on the code, that i want to take a quick start to enhance this tool by adding some features....??
i want to first understand the code completely that which part of the code is doing what, to avoid reading code line by line i need such document. Please guide me, thanks in advance.
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on October 28, 2015, 09:50:27 AM
Hello,

I'm sorry but no such document exists. There are some developer resources on the website here http://www.archimatetool.com/developer

Phil
Title: Re: Archimate developer documentation complete
Post by: Arslan Qadeer on October 29, 2015, 05:31:55 AM
Actually i want to take a start from first...
1) Login Page at the start, Admin and Client Login (Rights restriction for clients)
2) Change in Menu

So how and from where should i take start, Please Guide.
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on October 29, 2015, 09:06:36 AM
How much Eclipse development and Eclipse Rich Client Platform development do you know? This knowledge is pre-requisite.

For (1) you would need to hook into the Workbench startup and present an SWT Dialog which links to business logic, and then for the menu (2) you would need to contribute a menu and command  and action with an Eclipse extension.
Title: Re: Archimate developer documentation complete
Post by: Arslan Qadeer on October 29, 2015, 09:44:39 AM
Sir,
You can say that i am a beginner at eclipse.....
it will definitely help me a lot if you can tell me the exact class in the workbench which is initiating on the start up.
So i could write up my SWT dialog which will link to BL.
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on October 29, 2015, 09:51:42 AM
Take a look in the com.archimatetool.editor.ArchimateEditorWorkbenchWindowAdvisor and com.archimatetool.editor.ArchimateEditorWorkbenchAdvisor classes.

I advise you to learn at least the basics of Eclipse development. Hacking away at someone else's code is not going to be the best course of action... :-)
Title: Re: Archimate developer documentation complete
Post by: Synkrone on November 08, 2017, 09:58:02 AM
Quote from: Phil Beauvoir on October 28, 2015, 09:50:27 AM
Hello,

I'm sorry but no such document exists. There are some developer resources on the website here http://www.archimatetool.com/developer

Phil

Dear,

This was posted quite a while ago, is the answer still valid today? Is the creation of an extended developer documentation something thats on the roadmap?

Best,
Syn
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on November 08, 2017, 10:14:16 AM
I have no plans to do this for specific Archi code for the immediate future. General Eclipse, RCP, EMF and GEF documentation is available however.
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on November 08, 2017, 13:36:33 PM
Actually, I have a better idea. As it is impossible for me to do everything, and as this is an open source project and there are quite a few developers who have engaged with the Archi code and developed add-ons, I thought it would be a good idea for us all to crowd source the documentation in a wiki:

https://github.com/archimatetool/archi/wiki/Developer-Documentation

Title: Re: Archimate developer documentation complete
Post by: Hervé on November 08, 2017, 14:08:01 PM
Hi Phil,

I believe this is a great idea. I will fill in some pages  ;D

Best regards
Hervé
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on November 08, 2017, 14:10:44 PM
Thanks Hervé. As I'm sure you know, it's a steep learning curve getting to grips with Eclipse development, never mind the Archi code. Every line of code I wrote has been the result of much trial and error, blood, sweat, and tears... ;-)
Title: Re: Archimate developer documentation complete
Post by: Hervé on November 08, 2017, 14:32:17 PM
I confirm.

I started with very little Java knowledge and no knowledge at all about the Eclipse framework and now I actively maintain 4 Archi plugins.

In order to work with Archi code, one need first to understand how Eclipse works and setup a working dev environment that is able to compile Archi (and believe me, for someone who never did it before, this takes some time). Then, one need to understand what a plugin is, how to declare it to the framework and how to initialize the plugin. At last, one need to understand the Archi logic, classes and methods, knowing that a lot of them are not directly usable (protected) and thus need to be unprotected using reflection (I know, it's bad  :-[) or replacing Archi's internal code by one's code (what I try to do now when I know how to do it  :P).

Nevertheless, after a lot of trials, errors, blood, sweat and tears, my next big step will be to learn the CDO framework and integrate it to Archi to make it a real collaborative tool .. But this might be a quite very big step  (just thinking aloud) ::)
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on November 08, 2017, 14:37:08 PM
Some of the protected methods might be exposed via other API. But that's not always easy to find....but yeah, it's not easy. As for CDO, I did look at it once. You have to inherit model classes from CDOObject instead of EObject.

Ideally, the next generation Archi would use:

Eclipse e4 workbench (injection, css and so on)
GEF4
CDO or similar

But there are drawbacks to CDO. I think JB knows what they are.
Title: Re: Archimate developer documentation complete
Post by: Phil Beauvoir on November 08, 2017, 14:38:09 PM
Quote from: Hervé on November 08, 2017, 14:32:17 PM
I started with very little Java knowledge

Java is the "easy" part. ;-)

But well done for getting up to speed!
Title: Re: Archimate developer documentation complete
Post by: Hervé on November 08, 2017, 14:39:39 PM
I agree, Java was he easy part ...

Frameworks (and especially the Eclipse framework) are very powerful but very complex ... complicated I would say.