lafagnosticuifoundation/clockanim/ddesign/CLOCK.MDL
author hgs
Wed, 23 Jun 2010 05:40:10 +0800
changeset 33 b3425bf29f82
parent 0 2f259fa3e83a
permissions -rw-r--r--
201025


(object Petal
    version    	35)

(object Design "<Top Level>"
    is_unit    	TRUE
    file_name  	"c:\wserv\clock\clock.mdl"
    is_loaded  	TRUE
    defaults   	(object defaults
	rightMargin 	0.25
	leftMargin 	0.25
	topMargin  	0.25
	bottomMargin 	0.5
	pageOverlap 	0.25
	clipIconLabels 	TRUE
	autoResize 	FALSE
	snapToGrid 	TRUE
	gridX      	31
	gridY      	31
	defaultFont 	(object Font
	    size       	10
	    face       	"helvetica"
	    bold       	FALSE
	    italics    	FALSE
	    underline  	FALSE
	    strike     	FALSE
	    color      	0
	    default_color 	TRUE)
	showMessageNum 	3)
    root_category 	(object Class_Category "<Top Level>"
	exportControl 	"Public"
	global     	TRUE
	subsystem  	"<Top Level>"
	logical_models 	(list unit_reference_list
	    (object Class "CClock"
		documentation 	
|This class has the following properties:-

|(i) RWindow * pointing to a window owned elsewhere;

|(ii) CPeriodic * pointing to a periodic timer owned by the class;

|(iii) TPoint storing the position of the centre of the clock;

|(iv) TDateTime storing the date and time;

|(v) TSize iSize;

|(vi) TUint iNumTicksPerUpdate.
		
		fields     	(list has_relationship_list
		    (object Has_Relationship
			supplier   	"CPeriodic"))
		superclasses 	(list inheritance_relationship_list
		    (object Inheritance_Relationship
			supplier   	"CBase"))
		abstract   	TRUE
		operations 	(list Operations
		    (object Operation "SetTime"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "updateDisplay"
			concurrency 	"Sequential"
			opExportControl 	"Private"
			uid        	0)))
	    (object Class "TDigitalClock"
		documentation 	"Not yet considered."
		superclasses 	(list inheritance_relationship_list
		    (object Inheritance_Relationship
			supplier   	"CClock")))
	    (object Class "CAnalogueClock"
		documentation 	"Has no properties of its own. Needs to be constructed, initilised, optionally have child clocks added, and started up. All setting up of the hands is done by its base class. A second hand is optional."
		superclasses 	(list inheritance_relationship_list
		    (object Inheritance_Relationship
			supplier   	"CAnalogueDial"))
		operations 	(list Operations
		    (object Operation "CAnalogueClock"
			parameters 	(list Parameters
			    (object Parameter "aTime"
				type       	"TDateTime")
			    (object Parameter "aCentre"
				type       	"TPoint")
			    (object Parameter "aSize"
				type       	"TSize")
			    (object Parameter "aHandStyle"
				type       	"THandStyle"))
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "Init"
			parameters 	(list Parameters
			    (object Parameter "aBitmap"
				type       	"TDesC"))
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)))
	    (object Class "CBase"
		documentation 	"Provided by E32.")
	    (object Class "CPeriodic"
		documentation 	"Provided by E32.")
	    (object Class "CAnalogueDial"
		documentation 	
|Properties:

|(i) RBitmap iDialFace;

|(iii) a list of CHands.

|(iv) CAnalogueDial *
		
		fields     	(list has_relationship_list
		    (object Has_Relationship
			supplier   	"CAnalogueDialHand"
			supplier_cardinality 	(value cardinality "n")
			client_cardinality 	(value cardinality "1")))
		superclasses 	(list inheritance_relationship_list
		    (object Inheritance_Relationship
			supplier   	"CClock"))
		used_nodes 	(list uses_relationship_list
		    (object Uses_Relationship
			supplier   	"TClockMathsUtils"))
		abstract   	TRUE)
	    (object Class "CAnalogueDialHand"
		documentation 	
|This class models the behaviour of a clock hand, NOT its visual appearance. It has the following properties:-

|(i) TPoint storing the position of the tip of the hand

|(ii) TUint storing how long one revolution of the dial takes;

|(iii) TUint storing how many updates per second are required;

|Appearance and behaviour have been separated out since the former is decided upon by the USER-programmer, whereas the latter is determined by the SUBCLASSER-programmer.
		
		fields     	(list has_relationship_list
		    (object Has_Relationship
			supplier   	"CHandAppearance"
			supplier_cardinality 	(value cardinality "1")
			client_cardinality 	(value cardinality "1")))
		collaborators 	(list association_list
		    (object Association
			supplier   	"CHandAppearance")))
	    (object Class "CHandAppearance"
		documentation 	
|This class is solely concerned with the visual form of the hand on the screen (see documentation on class "CAnalogueDialHand"). It has the following properties:

|(i) TUint storing the length of the hand (i.e the distance from the centre to the furthest point);

|(ii) TUint storing the length backwards (i.e. the distance the hand extends the other way).
		
		superclasses 	(list inheritance_relationship_list
		    (object Inheritance_Relationship
			supplier   	"CVectorDrawing")))
	    (object Class "TClockMathsUtils"
		documentation 	"This class has no properties and consists solely of static functions."
		operations 	(list Operations
		    (object Operation "Hcf"
			documentation 	"Calculates and returns the highest common factor of the input list of TUints."
			parameters 	(list Parameters
			    (object Parameter "numUints"
				type       	"TUint")
			    (object Parameter "aUints"
				type       	"TUint*"))
			result     	"TUint"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "Hcf"
			documentation 	"Finds the highest common factor of the two input parameters."
			parameters 	(list Parameters
			    (object Parameter "aFirstUint"
				type       	"TUint")
			    (object Parameter "aSecondUint"
				type       	"TUint"))
			result     	"TUint"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "Lcm"
			documentation 	"Calculates and returns the highest common factor of the input list of TUints."
			parameters 	(list Parameters
			    (object Parameter "aNumUints"
				type       	"TUint")
			    (object Parameter "aUints"
				type       	"TUint *"))
			result     	"TUint"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)
		    (object Operation "Lcm"
			documentation 	"Calculates and returns the highest common factor of the two TUints."
			parameters 	(list Parameters
			    (object Parameter "aFirstUint"
				type       	"TUint")
			    (object Parameter "aSecondUint"
				type       	"TUint"))
			result     	"TUint"
			concurrency 	"Sequential"
			opExportControl 	"Public"
			uid        	0)))
	    (object Class "TUint"
		nonclass   	TRUE)
	    (object Class "CVectorDrawing"
		fields     	(list has_relationship_list
		    (object Has_Relationship
			supplier   	"CShadow"
			supplier_cardinality 	(value cardinality "1")
			client_cardinality 	(value cardinality "0,1"))))
	    (object Class "CShadow"
		cardinality 	(value Cardinality "1")))
	logical_presentations 	(list unit_reference_list
	    (object ClassDiagram "Main"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list
		    (object ClassView "Class" "CClock" @1
			location   	(775, 403)
			label      	(object ItemLabel
			    location   	(632, 283)
			    nlines     	2
			    max_width  	336
			    justify    	0
			    label      	"CClock")
			compartment 	(object Compartment
			    location   	(301, 349)
			    anchor     	2
			    nlines     	3
			    max_width  	1008
			    justify    	0
			    compartmentItems 	(list Compartment
				"||  updateDisplay( )"
				"SetTime( )"))
			width      	487
			height     	356
			annotation 	8)
		    (object ClassView "Class" "TDigitalClock" @2
			location   	(403, 992)
			label      	(object ItemLabel
			    location   	(258, 872)
			    nlines     	2
			    max_width  	340
			    justify    	0
			    label      	"TDigitalClock")
			width      	494
			height     	356
			annotation 	8)
		    (object ClassView "Class" "CPeriodic" @3
			location   	(1519, 403)
			label      	(object ItemLabel
			    location   	(1376, 283)
			    nlines     	2
			    max_width  	336
			    justify    	0
			    label      	"CPeriodic")
			width      	487
			height     	356
			annotation 	8)
		    (object ClassView "Class" "CAnalogueDial" @4
			location   	(1023, 992)
			label      	(object ItemLabel
			    location   	(877, 872)
			    nlines     	2
			    max_width  	344
			    justify    	0
			    label      	"CAnalogueDial")
			width      	500
			height     	357
			annotation 	8)
		    (object ClassView "Class" "CAnalogueDialHand" @5
			location   	(1736, 992)
			label      	(object ItemLabel
			    location   	(1591, 872)
			    nlines     	2
			    max_width  	340
			    justify    	0
			    label      	"CAnalogueDialHand")
			width      	493
			height     	356
			annotation 	8)
		    (object HasView ""
			client     	@4
			supplier   	@5)
		    (object InheritView ""
			client     	@4
			supplier   	@1)
		    (object InheritView ""
			client     	@2
			supplier   	@1)
		    (object HasView ""
			client     	@1
			supplier   	@3)
		    (object ClassView "Class" "CAnalogueClock" @6
			location   	(1271, 1581)
			label      	(object ItemLabel
			    location   	(1126, 1461)
			    nlines     	2
			    max_width  	340
			    justify    	0
			    label      	"CAnalogueClock")
			width      	494
			height     	356
			annotation 	8)
		    (object InheritView ""
			client     	@6
			supplier   	@4)
		    (object ClassView "Class" "CHandAppearance" @7
			location   	(2480, 992)
			label      	(object ItemLabel
			    location   	(2334, 872)
			    nlines     	2
			    max_width  	344
			    justify    	0
			    label      	"CHandAppearance")
			width      	500
			height     	356
			annotation 	8)
		    (object HasView ""
			client     	@5
			supplier   	@7)
		    (object ClassView "Class" "TClockMathsUtils" @8
			location   	(2108, 651)
			label      	(object ItemLabel
			    location   	(1930, 500)
			    nlines     	2
			    max_width  	422
			    justify    	0
			    label      	"TClockMathsUtils")
			compartment 	(object Compartment
			    location   	(1512, 566)
			    anchor     	2
			    nlines     	5
			    max_width  	1268
			    justify    	0
			    compartmentItems 	(list Compartment
				"Hcf( )"
				"Hcf( )"
				"Lcm( )"
				"Lcm( )"))
			width      	613
			height     	444
			annotation 	8)
		    (object UsesView ""
			client     	@4
			supplier   	@8
			vertices   	(list Points
			    (1182, 858)
			    (1426, 651)
			    (1803, 651)))
		    (object ClassView "Class" "CVectorDrawing" @9
			location   	(2232, 1767)
			label      	(object ItemLabel
			    location   	(2128, 1683)
			    nlines     	2
			    max_width  	240
			    justify    	0
			    label      	"CVectorDrawing")
			annotation 	8)
		    (object ClassView "Class" "CShadow" @10
			location   	(2728, 1767)
			label      	(object ItemLabel
			    location   	(2624, 1683)
			    nlines     	2
			    max_width  	240
			    justify    	0
			    label      	"CShadow")
			annotation 	8)
		    (object InheritView ""
			client     	@7
			supplier   	@9)
		    (object HasView ""
			client     	@9
			supplier   	@10)))))
    root_subsystem 	(object SubSystem "<Top Level>"
	physical_models 	(list unit_reference_list)
	physical_presentations 	(list unit_reference_list
	    (object Module_Diagram "Main"
		title      	"Main"
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    process_structure 	(object Processes
	ProcsNDevs 	(list
	    (object Process_Diagram ""
		title      	""
		zoom       	100
		max_height 	28350
		max_width  	21600
		origin_x   	0
		origin_y   	0
		items      	(list diagram_item_list))))
    properties 	(object Properties))