Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Geert Bellekens

Pages: 1 ... 12 13 [14] 15

Does anyone have a working C# example of an add-in using the repository.AddWindow() functionality?
I'm having a bit of trouble getting the this functionality to work.


I've added a new feature to the EA Navigator to navigate to the implementation of an operation. It selects the Behavior element in the project browser and opens all diagrams owned by this behavior element.
More details on my blog
or download the EA Navigator 1.2 Windows Installer directly from github.


I've added a new feature to the free and open source addin EA Navigator 1.2. You can now navigate from operations to the CallOperationActions calling this operation.
More details on my blog
or download the EA Navigator 1.2 Windows Installer directly from github.


I'm writing a tool to move operations from one class to another.
The question: what is the best way to do this.
When using the API I can remove the operation from the source.Methods collection, and then add a new operation to the target.Methods collection, but then I need to copy each and every detail of the operation to the new operation (including parameters, tagged values, etc...).
What I really want to do is just overwrite the Method.ParentID with the ID of the target element.
Sadly this property is readonly :(

The more "dirty" way would be to change the parentID directly in the database. This would avoid the whole copy/paste stuff, and it would keep all references I've put into the model (because the id's would stay the same).

Do any of you see any problems with the "dirty" database approach?




I've published a blog post about creating MSI packages to install add-ins for EA.


Automation Interface, Add-Ins and Tools / The complete C# add-in template
« on: February 16, 2011, 06:36:03 pm »
Because I got sick and tired of having to go back and forth to the EA help file, and translate the events from VB to C# I created an abstract add-in class that already defines all events an add-in could possibly use.
I've also copy-pasted the documentation from the EA help file.

You can find more info about it on my blog, or download the whole Enterprise Architect Add-In Framework from GitHub

I of course hereby invite you all to contribute  :)


Automation Interface, Add-Ins and Tools / Open source EA add-ins and tools
« on: February 15, 2011, 07:02:12 pm »
I've just published most of my C# code on GitHub

More about this on my blog:


Automation Interface, Add-Ins and Tools / Testing and Debugging C# add-in
« on: February 08, 2011, 03:50:14 pm »
I've developed a small tool to test and debug your add-ins without having to shut down EA for each build.
See my blog or the Sparx Community Site for more details.


I'm creating an addin to prevent accidental stereotype creation, and the moment the model is loaded I want to create a list of the defined stereotypes.
I thought it would be a good idea to put it in the event EA_OnPostInitialized because it says the model is fully loaded at that moment, but I get an error:
EA_OnPostInitialized: Call OpenFile() or OpenFile2() before accessing other Repository members.
So if I cant use the repository yet, whats the point of this event?
Here's the code I'm using on 8.0.862
Code: [Select]
       public void EA_OnPostInitialized(EA.Repository Repository)
            //make sure the list is empty when connecting
            existingStereotypes = new Dictionary<string, EA.Stereotype>();
            foreach (EA.Stereotype stereotype in Repository.Stereotypes)
                existingStereotypes.Add(stereotype.StereotypeGUID, stereotype);
Anyone who successfully used the EA_OnPostInitialized operation?


I've uploaded an addin to the community site.
With this addin you can navigate between operations and the sequence diagrams that call this operation, and vice versa.

I've also included the source code as a separate package.

Enjoy :)


PS. Any and all comments/insults/compliments are more then welcome.

Automation Interface, Add-Ins and Tools / UML icon set
« on: May 31, 2010, 04:27:58 pm »

For our UmlCanvas project we are looking for a (preferably free) icon set of UML icons like Class, Attribute, Association etc... to be used on toolbox buttons.

Does anybody have an idea where to look?



Following a discussion we (Paolo and me) had in this
topic we decided to start a new topic for this.

Here is what we discussed:

Secondly, some of our customers, especially new ones, don't want anything that isn't "mainstream" EA - and they generally view Add-ins as non-mainstream.  I think they'd view scripts as mainstream (hence my feature request for EXEC_SCRIPT)

I've encountered that sentiment before too, and I think it is wrong from a customer point of view.

It's the same for custom document generators, custom model validation, and I'm pretty sure for custom MDA transforms.

If you want any of those things to work in your environment you are going to spend quite a lot of time writing EA specific templates, scripts etc... I doubt whether the effort to get a decent RTF document template is less then the effort to create a document generator from scratch.

The advantages of a custom tool is that (given that you design it in a proper way )
  • It will work exactly as you want it, for 100%, not more or less OK
  • The effort is not lost when you would decide to switch CASE tools.
  • You do not increase the (already strong) vendor lock-in.

It just seems hard to explain that to people who have "maximum out of the box" as one of their principles  :-[
They should realize that creating templates for document generation, or MDA transforms is no "more" out of the box then creating a whole custom tool.



I agree, but it's hard to convince the customer.

Would it be easier if we had an (open source) modelling tooling framework that you can use to build your tools upon?

I've been thinking about something like that for a while, but I don't have the time (or money) to do something like that on my own.

The tools I'm writing today are all based on the same framework pattern, and they allow both variations in modelling method (style) as variations in the "engine" behind it.

I'm not sure if I could get the permission to open source my current (customer owned) work, but I could certainly replicate it.


So the idea is to build a tooling framework that could be used by different modelling methods and that could be ported to any UML CASE tool.

I've put some of my ideas around tooling into an article here
The pattern I use for my tooling on top of EA is described here
So far this pattern has served me well. It is based on my own experience with different customers that all had their own modelling method, and it even proved usefull in a CASE Tool migration scenario.

So what do you think? Would you use it? Would you contribute?



I'm having a bit of a problem with a little tool I'm writing.
At my client we have an xml like form of structured notes.
Code: [Select]
Description text
... other tags...
I'm writing an editor for these notes so the users don't make mistakes with the tags and stuff.
Since the rich text feature was added EA stores the formatting information also in tags (like <b>bold text</b>). The opening "<" and ">" in the text that are not part of the formatting commands get replaced by "&lt;" and "&gt;".
This is good news because I now have a way to differentiate between our own tags and the tag of the EA formatting allowing me to parse the content of the notes with an xml parser (without taking into account the formatting tags).

The problem is with the notes that have been edited before we upgraded to 7.5. These are all still in plain text with actual "<" and ">" characters.
The moment you touch such a note in EA (UI) the "<" and ">" characters are replaced.
Does anyone have an idea how I could work around this?
I would love to have an option changeToPost7.5Format, but I don't think that is available.



Anyone ever use the Element.Issues collection?
In my experience this is a very very slow collection, much slower then for example the Attributes or Operations and I don't really see why this should be the case.


Pages: 1 ... 12 13 [14] 15