Code::Blocks

Developer forums (C::B DEVELOPMENT STRICTLY!) => Plugins development => Topic started by: ethicalstar on December 16, 2008, 11:05:16 am

Title: UML Plugin
Post by: ethicalstar on December 16, 2008, 11:05:16 am
Hi everyone!
    I just looked the whole site for a  uml plugin development in codeblocks. It is not under development. Is anyone interested to join me and do it?
I am new to codeblocks so i dont know abt plugin development. If anyone could help me with plugin creation docs, it would be nice..

tnx.
Title: Re: UML Plugin
Post by: ethicalstar on December 16, 2008, 11:06:54 am
2 years back somebody has written and suggested the name "UML::Blocks" . May be we can choose this as the name...
What do u think?
Title: Re: UML Plugin
Post by: ethicalstar on December 16, 2008, 11:15:56 am
submitted for registration at Sourceforge.net with unix name "umlblocks"..   :D

So it begins...
Title: Re: UML Plugin
Post by: Biplab on December 16, 2008, 04:42:13 pm
Do you have a working prototype or it's in planning phase? :)
Title: Re: UML Plugin
Post by: stahta01 on December 17, 2008, 04:19:29 am
If you have not started you might see if UMLPad is worth adapting to Code::Blocks.
http://web.tiscali.it/ggbhome/umlpad/umlpad.htm

It uses ANSI(non unicode) wxWidgets 2.6/2.8 written in C++.

Lic GPL

Tim S
Title: Re: UML Plugin
Post by: vri on December 17, 2008, 09:26:37 am
Maybe you can checkout BOUML as well: http://bouml.free.fr/index.html
It's developed under QT, fast, quite complete.
Title: Re: UML Plugin
Post by: ethicalstar on December 17, 2008, 07:32:25 pm
If you have not started you might see if UMLPad is worth adapting to Code::Blocks.
http://web.tiscali.it/ggbhome/umlpad/umlpad.htm

It uses ANSI(non unicode) wxWidgets 2.6/2.8 written in C++.

Lic GPL

Tim S

Its in planning phase! I like to see UML diagrams generation directly from codeblocks.
Title: Re: UML Plugin
Post by: ethicalstar on December 17, 2008, 07:32:58 pm
Maybe you can checkout BOUML as well: http://bouml.free.fr/index.html
It's developed under QT, fast, quite complete.

Tnx. It is very interesting...
Title: Re: UML Plugin
Post by: ethicalstar on December 17, 2008, 07:51:34 pm
Maybe you can checkout BOUML as well: http://bouml.free.fr/index.html
It's developed under QT, fast, quite complete.

But Qt needs its own "qmake ". and also wxWidgets is used in codeblocks development. We have to find something that uses WxWidgets or any other framework that does not depend on Makefile change.
Title: Re: UML Plugin
Post by: rickg22 on December 17, 2008, 09:17:38 pm
ethicalstar:

(cue ancient wizard)
It has been ages since I first asked someone to make an UML plugin for Codeblocks. Aeons passed, and no brave hero volunteered to vanquish the demon of non-uml darkness. May the Great Spirits keep you safe in your dangerous quest! :lol:

Translation: I support your idea 100%! :D
Speaking of which, I've also been looking for a plugin that lists you the include chain for a file, it'd be very useful :) (hint: The command "CPP -M[M] file" does it, but it needs to keep track of include dirs)
Title: Re: UML Plugin
Post by: alb_cb_moon on December 18, 2008, 04:29:30 am
The wxShapeFramework project may be could be util for your UML plugin:

http://sourceforge.net/projects/wxsf/ (http://sourceforge.net/projects/wxsf/)
Title: Re: UML Plugin
Post by: ethicalstar on December 18, 2008, 08:07:24 am
ethicalstar:

(cue ancient wizard)
It has been ages since I first asked someone to make an UML plugin for Codeblocks. Aeons passed, and no brave hero volunteered to vanquish the demon of non-uml darkness. May the Great Spirits keep you safe in your dangerous quest! :lol:

Translation: I support your idea 100%! :D
Speaking of which, I've also been looking for a plugin that lists you the include chain for a file, it'd be very useful :) (hint: The command "CPP -M[M] file" does it, but it needs to keep track of include dirs)

Tnx rickg22!
I hope that We  can do it together this time...
Title: Re: UML Plugin
Post by: ethicalstar on December 18, 2008, 08:19:34 am
The wxShapeFramework project may be could be util for your UML plugin:

http://sourceforge.net/projects/wxsf/ (http://sourceforge.net/projects/wxsf/)


tnx alb_cb_moon ! I will look into it...
Title: Re: UML Plugin
Post by: stahta01 on December 18, 2008, 08:44:01 am
Hi everyone!
    I just looked the whole site for a  uml plugin development in codeblocks. It is not under development. Is anyone interested to join me and do it?
I am new to codeblocks so i dont know abt plugin development. If anyone could help me with plugin creation docs, it would be nice..

tnx.

I am interested in helping out on this project.

I have not created an Plugin myself, but have compiled the default plugin template and Compile Code::Blocks from source on Windows.

Tim S

PS: I am trying once more to get UML Pad to compile and link to Unicode wxWidgets.
Title: Re: UML Plugin
Post by: stahta01 on December 18, 2008, 08:53:29 am
Its in planning phase! I like to see UML diagrams generation directly from codeblocks.

Yes, the generating of UML diagrams from C++ source code would be a very important feature.

Do, you think it is worth it to plan to generate C++ code from UML diagrams?

Tim S

Edit: I think Umbrello an KDE UML program is also worth checking out.

http://en.wikipedia.org/wiki/Umbrello_UML_Modeller
http://uml.sourceforge.net/index.php

Gaphor is written in Python so could be not worth checking out.
http://gaphor.devjavu.com/
http://www.ohloh.net/p/gaphor

Code: [Select]
Software        Licence     Language    Output Format   Widget Toolkit
Umbrello        GPL         C++         XML/XMI         KDE
UML Pad         GPL         C++         XML             wxWidgets
BOUML           GPL         C++         ??              Qt
Gaphor          GPL         Python      ??              GTK+
ClassBuilder    zlib/libpng C++         ??              MFC/AFX
astade          GPL         C++         ??              wxWidgets

Edit: added classbuilder and Links
Edit: added astade.tigris.org

Links
http://sourceforge.net/projects/uml/
http://web.tiscali.it/ggbhome/umlpad/umlpad.htm
http://sourceforge.net/projects/bouml/
http://www.ohloh.net/p/gaphor
http://sourceforge.net/projects/classbuilder
http://astade.tigris.org/


Title: Re: UML Plugin
Post by: Ceniza on December 18, 2008, 06:40:43 pm
Speaking of which, I've also been looking for a plugin that lists you the include chain for a file, it'd be very useful :) (hint: The command "CPP -M[M] file" does it, but it needs to keep track of include dirs)

I was able to produce such output with my preprocessor library, for which I also wrote a plugin. You feed it with g++'s defines and include dirs, and it'll do all the preprocessing stage. From this process you could extract the "include chain". I did it when I was "debugging" it. I even wrote a new string class to speed up the process (I also wrote an article of the whole design and benchmarks and put the link somewhere in the forums). I'm sure the library needs more testing. At least the tests I ran produced the same output as g++.

I could arrange a source download if you want to check it out. I also have the documentation of the library and a document explaining the design (this one is in Spanish, but that wouldn't be a problem for you :wink:).
Title: Re: UML Plugin
Post by: ethicalstar on December 18, 2008, 09:45:05 pm
Its in planning phase! I like to see UML diagrams generation directly from codeblocks.

Yes, the generating of UML diagrams from C++ source code would be a very important feature.

Do, you think it is worth it to plan to generate C++ code from UML diagrams?

Tim S

Edit: I think Umbrello an KDE UML program is also worth checking out.

http://en.wikipedia.org/wiki/Umbrello_UML_Modeller
http://uml.sourceforge.net/index.php

Gaphor is written in Python so could be not worth checking out.
http://gaphor.devjavu.com/
http://www.ohloh.net/p/gaphor

Code: [Select]
Software    Licence     Language    Output Format   Widget Toolkit
Umbrello    GPL         C++         XML/XMI         KDE
UML Pad     GPL         C++         XML             wxWidgets
BOUML       GPL         C++         ??              Qt
Gaphor      GPL         Python      ??              GTK+


Hi stahta01!
   Nice info.. I also think that Umbrello is great. Similarly BOUML but to be economic with dependencies in codeblocks, i think it is better to use something that uses wxWidgets ( although i actually prefer GTK+) . I will wait for your reply and if we decide,  we can start trying UML Pad...

Title: Re: UML Plugin
Post by: ethicalstar on December 18, 2008, 09:46:18 pm
Hi everyone!
    I just looked the whole site for a  uml plugin development in codeblocks. It is not under development. Is anyone interested to join me and do it?
I am new to codeblocks so i dont know abt plugin development. If anyone could help me with plugin creation docs, it would be nice..

tnx.

I am interested in helping out on this project.

I have not created an Plugin myself, but have compiled the default plugin template and Compile Code::Blocks from source on Windows.

Tim S

PS: I am trying once more to get UML Pad to compile and link to Unicode wxWidgets.


Gr8!!! We can try UML pad...
Title: Re: UML Plugin
Post by: dje on December 18, 2008, 10:18:42 pm
There is also Class Builder:
http://members.lycos.nl/JimmyVenema/ClassBuilder/ClassBuilder.htm (http://members.lycos.nl/JimmyVenema/ClassBuilder/ClassBuilder.htm)
It is developped in C++, targets C++ and is released under the the zlib/libpng License

Look(ed?) quite promising and can reverse C++ project (not perfect but good).

Dje
Title: Re: UML Plugin
Post by: stahta01 on December 19, 2008, 06:23:25 am
Gr8!!! We can try UML pad...

I am still working on Unicode version of UML Pad under wxWidgets 2.8.
I have gotten it to compile with wxWidgets 2.9 Unicode, but 2.8 needs more changes.

Update: The UML Pad uses std::string instead of wxString; I need to convert it to use wxString.

Tried converting for 5 try; it appears that I succeeded, but more testing is needed.

Tim S
Title: Re: UML Plugin
Post by: stahta01 on December 24, 2008, 01:25:24 am
I need added to project https://sourceforge.net/projects/umlblocks/ so I can submit this UMLPad Unicode version for 2.8 wxWidgets.

Edit: It is being complied as a standalone exe seperate from the Code::Blocks exe.
I have no idea how to put it into a C::B plugin and I not sure we should till we know more or at least I know more about Code::Blocks Plugins.

I suggest we start with a small C::B plugin that converts C++ into an XML file that can be displayed inside of our Unicode UML Pad as an class diagram.

I suggest cbUmlPad as the exe name of our Unicode UML Pad. I also suggest that we decide on an standard class name prefix; something like "umlb" short for UmlBlocks.

Tim S
Title: Re: UML Plugin
Post by: stahta01 on December 24, 2008, 07:48:11 am
Info I learned converting UML Pad to Unicode.

std::string does not support UTF16.
So, I assumed ASCII or UTF8; this is NOT really valid, but should mostly be true.

How to convert to wxString from std::string.
string(variableName.mb_str())

How to convert to std::string from wxString.
wxString(variableName.c_str(),wxConvUTF8)

What wxg prefix means on files in UML Pad; means wxGlade the IDE used to create it.

wxWidgets 2.9 defaults to basing wxString on std::string or std::wstring.
To turn this off set wxUSE_STD_STRING to 0 in setup.h; this make wx2.9 more like wx2.8.
Also, makes it harder to get UMLPad to compile, but I was getting better/different compile errors using wx2.9 with wxUSE_STD_STRING=0.

Tim S

Title: Re: UML Plugin
Post by: jfouche on December 25, 2008, 08:13:30 pm
Hi
How to convert to wxString from std::string.
string(variableName.mb_str())
Well, I always use utf8_str() :
Code: [Select]
string(variableName.utf8_str().data());I think it is easier to read, but I don't know if the result is different.
--
Jérémie
Title: Re: UML Plugin
Post by: stahta01 on December 26, 2008, 06:15:28 am
FYI:

I have finished Upgrading UMLPad to Unicode.

I uploaded it to
https://picmicroproject.svn.sourceforge.net/svnroot/picmicroproject/Tools/CASE/cbUmlPad/

Note: The BMP Files were not uploaded, so they are needed from the Original site.

Edit: Will move it to https://sourceforge.net/projects/umlblocks/ in a few days.
I just noticed that I was added to access for umlblocks an hour ago.
I plan to read up about how to do SVN Admin first, I think I might not have done it right on my picmicroproject site.

Tim S
PS: I am upgrading my computer, if all works well will be back tomorrow. But, if I goof up could be days.
Title: Re: UML Plugin
Post by: stahta01 on December 30, 2008, 08:36:58 pm
I am planning on Uploading cbUmlPad to https://sourceforge.net/projects/umlblocks/ today.
Tim S

I have moved it under a branch; since I am guessing the final project will be little or nothing like UmlPad.

http://umlblocks.svn.sourceforge.net/viewvc/umlblocks/branches/cbUmlPad/
Title: Re: UML Plugin
Post by: stahta01 on January 02, 2009, 05:54:43 am
I have looked and the best Open Source project to get "reverse engineering" code to convert C++ to UML; still seems to be Umbrello in my opinion. Note, this is just based on project description. I plan know to look at the code of the Umbrello project. Tim S

http://uml.sourceforge.net/feature.php
Title: Re: UML Plugin
Post by: MortenMacFly on January 02, 2009, 04:37:53 pm
http://uml.sourceforge.net/feature.php
I personally work a lot with BoUML. It's really working very well - including reverse engineering. But: It's QT.

So... I believe making a C::B plugin out of UMLPad will be enough work already... don't worry so much about other "tools" have nicer features etc... An UML tool can be quite simple and already really powerful.
Title: Re: UML Plugin
Post by: stahta01 on January 02, 2009, 08:48:51 pm
http://uml.sourceforge.net/feature.php
I personally work a lot with BoUML. It's really working very well - including reverse engineering. But: It's QT.

So... I believe making a C::B plugin out of UMLPad will be enough work already... don't worry so much about other "tools" have nicer features etc... An UML tool can be quite simple and already really powerful.

While, I agree with what you said.

The project main objective is to convert C++ to an UML diagram; I just hope to use UMLPad for some display code.

I am liking Umbrello better than BoUML because it output is an XML file and the project is in SVN.

My second choice for code to do "C++ to an UML diagram" is the BoUML project.

Once, we figure out how to convert C++ to UML; then, we can start on displaying the UML diagram in Code::Blocks. Last, we can work on Editing the UML diagram and saving the results

Tim S
Title: Re: UML Plugin
Post by: iw2nhl on January 19, 2009, 11:17:06 pm
Hi!
I just want to add another UML software that I used for over a year: ArgoUML.
http://argouml.tigris.org/

It's written in Java (with BSD Open Source License), but may be worthwhile to look at it: it has a lot of features, supports all 9 UML 1.4 Diagrams and it's stable.
A nice feature it has is a dynamic list of "critics": while you draw your diagram, it gives you a list of possible improvements or missing things.
Moreover it supports import/export of XMI files (standard XML file format for UML Tools).
Features list: http://argouml.tigris.org/features.html

Being written in Java, you can also run it from your browser using Java Web Start (see main page for instructions).

Good luck for your plugin!

Alessandro

Title: Re: UML Plugin
Post by: joubertdj on January 24, 2009, 12:23:43 am
I am planning on Uploading cbUmlPad to https://sourceforge.net/projects/umlblocks/ today.
Tim S

I have moved it under a branch; since I am guessing the final project will be little or nothing like UmlPad.

http://umlblocks.svn.sourceforge.net/viewvc/umlblocks/branches/cbUmlPad/

The latest SVN source for those interested is located at: https://umlblocks.svn.sourceforge.net/svnroot/umlblocks
Title: Re: UML Plugin
Post by: LETARTARE on March 15, 2015, 11:33:40 am
@stahta01
An code plugin for 'Code::Blocks' :
https://github.com/LexRudera/UmlBlocks (https://github.com/LexRudera/UmlBlocks)
after some adjustments, it compiles and load under svn10127 (wxWidgets unicode 2.8.12, wxShapeFramework 1.13,  TDM-GCC 4.7.1 ) https://github.com/LETARTARE/UmlBlocks (https://github.com/LETARTARE/UmlBlocks)
wxShapeFramework -> http://sourceforge.net/projects/wxsf/ (http://sourceforge.net/projects/wxsf/)
After ...must be tested.
Title: Re: UML Plugin
Post by: stahta01 on March 15, 2015, 05:48:14 pm
@stahta01
An code plugin for 'Code::Blocks' :
https://github.com/LexRudera/UmlBlocks (https://github.com/LexRudera/UmlBlocks)
after some adjustments, it compiles and load under svn10127 (wxWidgets unicode 2.8.12, wxShapeFramework 1.13,  TDM-GCC 4.7.1 ) https://github.com/LETARTARE/UmlBlocks (https://github.com/LETARTARE/UmlBlocks)
wxShapeFramework -> http://sourceforge.net/projects/wxsf/ (http://sourceforge.net/projects/wxsf/)
After ...must be tested.

@LETARTARE:

I plan to look at both of the Git Projects yours and the LexRudera one.
I gave up on this thread long ago; since, I did NOT know enough C++ to help write it.
I still do NOT know much C++; so; other than testing and Precompiled Header (PCH) type changes not much I will be able to do.

Tim S.
Title: Re: UML Plugin
Post by: stahta01 on March 15, 2015, 08:21:59 pm
@LETARTARE:

I created a git repo forked from LexRudera/UmlBlocks repo.
https://github.com/stahta01/UmlBlocks/tree/cb_svn

The main difference, between your fork and my fork, at this time is I created a new CB project called UmlBlocks_cbsvn which uses an Global Var called cb_svn.
I did NOT like either yours nor LexRudera CB project and decided making another was better than editing either of yours.

I will work on the Precompiled Header (PCH) type changes and then do testing using a recent CB SVN version.

Tim S.
Title: Re: UML Plugin
Post by: stahta01 on March 16, 2015, 12:56:13 am
Is any menu option except for "New UML Diagram" and "New Class" supposed to do anything?

Those are the only two I figured out how to use.

Is it possible to edit an UML Class?
Is it possible to save an UML Diagram?

Possible bugs; after I install the UML Plugin:
1. After restarting CB, the UML menu becomes the first menu (as in before the File menu).
2. The New Class form extends down too far for good display.
(Possible cause of this is I use a fixed Taskbar in Windows 7; several apps have issues with having a default height being to big)

Tim S.

Title: Re: UML Plugin
Post by: LETARTARE on March 16, 2015, 08:39:21 am
I just drop 0.3 to meet
- declaration -> *.hpp
- definitions  -> *.cpp

Unfortunately, the tests are discouraging ! Too few features installed.

Quote
Is it possible to edit an UML Class?
yes, but it is the only feasible action !! you have to capture the elements of the class in a dialog.

Quote
Is it possible to save an UML Diagram?
no, we can not do anything.

Too much work to do, I do not have time.

It's a shame, the basic ideas are good.