Class Diagrams - UML
Posted: Sat Jul 15, 2006 5:56 pm
Code updated for 5.20+
A few helper functions for creating UML class diagrams for DIA. Not a
beautiful, but easy XML writer.
You can get DIA here:
http://dia-installer.de/
It was a side-product, after loading the .DIA file, you have to arrange
the diagrams yourself, but the rest is done. Perhaps somebody can use it.
Would that be interesting for jaPBdoc? I don't think so... or what do you think?
A few helper functions for creating UML class diagrams for DIA. Not a
beautiful, but easy XML writer.
You can get DIA here:
http://dia-installer.de/
It was a side-product, after loading the .DIA file, you have to arrange
the diagrams yourself, but the rest is done. Perhaps somebody can use it.
Code: Select all
EnableExplicit
Global IDCounter
Procedure.s String(s.s)
ProcedureReturn ReplaceString(s, "\dq", #DQUOTE$)
EndProcedure
Procedure UMLWriteFileStart(File)
Protected s.s
s = String("<xml>") + #CRLF$
s + String("<dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteFileEnd(File)
Protected s.s
s = String(" </dia>") + #CRLF$
s + String("</dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteClassStart(File, ClassName.s, Comment.s)
Protected s.s
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+ClassName+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+Comment+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
IDCounter + 1
ProcedureReturn IDCounter - 1
EndProcedure
Procedure UMLWriteClassEnd(File)
Protected s.s
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteAttributesStart(File)
Protected s.s
s = String(" <dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteAttributesEnd(File)
Protected s.s
s = String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteAttribute(File, name.s, type.s, Comment.s)
Protected s.s
s = String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+name+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+type+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+Comment+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteOperationsStart(File)
Protected s.s
s = String(" <dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteOperationsEnd(File)
Protected s.s
s = String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteOperationStart(File, name.s, type.s, Comment.s)
Protected s.s
s = String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+name+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+type+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+Comment+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteOperationEnd(File)
Protected s.s
s = String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteParametersStart(File)
Protected s.s
s = String(" <dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteParametersEnd(File)
Protected s.s
s = String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteParameter(File, name.s, type.s, Comment.s)
Protected s.s
s = String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+name+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+type+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+Comment+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
EndProcedure
Procedure UMLWriteConnection(File, name.s, FromID, ToID)
Protected s.s
s = String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>#"+name+"#</dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" <dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
s + String(" </dia>") + #CRLF$
WriteStringN(File, s, #PB_UTF8)
IDCounter + 1
ProcedureReturn IDCounter - 1
EndProcedure
;
; If CreateFile(0, "test.dia")
; UMLWriteFileStart(0) ;>
;
; UMLWriteClassStart(0, "Klasse1", "Classcomment") ;>
; UMLWriteAttributesStart(0) ;>
; UMLWriteAttribute(0, "Var1", "long", "Attributecomment")
; UMLWriteAttributesEnd(0) ;<UMLWriteOperationsStart>
; UMLWriteOperationStart(0, "func1", "long", "Operationcomment") ;>
; UMLWriteParametersStart(0) ;>
; UMLWriteParameter(0, "param1", "string", "Parametercomment")
; UMLWriteParametersEnd(0) ;<
; UMLWriteOperationEnd(0) ;<
; UMLWriteOperationsEnd(0) ;<
; UMLWriteClassEnd(0) ;<UMLWriteClassStart>
;
; UMLWriteOperationsStart(0) ;>
; UMLWriteOperationStart(0, "func1", "long", "") ;>
; UMLWriteOperationEnd(0) ;<
; UMLWriteOperationsEnd(0) ;<
; UMLWriteClassEnd(0) ;<UMLWriteClassStart>
;
; UMLWriteOperationsStart(0) ;>
; UMLWriteOperationStart(0, "func1", "long", "") ;>
; UMLWriteOperationEnd(0) ;<
; UMLWriteOperationsEnd(0) ;<
; UMLWriteClassEnd(0) ;<
;
; UMLWriteConnection(0, "is", 1, 0)
; UMLWriteConnection(0, "is", 1, 2)
; UMLWriteConnection(0, "is", 2, 0)
; UMLWriteFileEnd(0) ;<
;
;
;
; CloseFile(0)
; Else
; MessageRequester("Error","Couldn't create file.")
; EndIf