[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Create new programmed objects



Le Thu, May 06, 2004, à 10:44:27AM +0200, Alexandre Fen-Chong a écrit:
> I'm sorry for my english, it isn't my mothertongue I'm French :)
so is mine. 

> I give an example of what I want to do.
> For instance, with the object router in Network I would like to add a property
> "ip" with a field to fill in.

OK, sounds reasonable.

> In fact, I would add new properties to some objects and create new objects with
> properties in differents tabs (as in the object class of UML objects).
>
>
> In this case, taking the object class of UML as model is it correct ?
	NO!
	
> Or there is an object recommanded to be used as model ?
	plenty. Almost all of them.

> Do you have some pieces of advice in order to not do a object obsolete ?

Yes. Stay clear of "UML - Class". Most other objects are fine, but this
one is a sticking point. 

If I understand correctly your requirements, you would like to:
	i) add properties to existing objects (or to new objects similar
	to existing objects)
		switch (object type) {
		case C_programmed_object:
		
		no brainer, add a field to the object's struct, declare
		the property into the object's StdProp arrays (the
		Properties array, and the PropOffsets array); break;

		case shape:
		much, much more tricky at this point. There were many
		grand proposals of sprinkling Magic Forbes XML Dust(tm)
		to make those shapes way smarter, but so far
		implementation is a bit lacking.
		
		I think a possible way would be to write for the
		specific shape you're interested in, a subclass of
		"Custom - Generic", which provides those extra
		properties and behaviour you want to add.

		Or another possible way would be to first reimplement
		the shape as a C object, making sure that diagrams
		created when it was a shape still reload fine and are
		visually close enough (you'd be amazed how painful the
		.90->.91 transition could have been at some places), and
		then start adding your extra properties.

		Or, as a cop-out to the previous item, start writing a
		new implementation that doesn't pretend to be an evolved
		version of the shape (ie, it has another type name) and
		just make the older shape disappear from the toolbox
		when you're ready to transition (but then you have to
		keep the shape around forever, or provide some
		on-the-fly conversion facility we don't have for now);
		break;
	    }
	    
	ii) create new property types
		e.g: ipv4-validating fields (please check the Received:
   			header for this e-mail, especially as it moves from
			machine "muscat" to machine "traminer" -- when
			you write this property, please consider us
			lowly ipv6 users)
	a little more complicated than i)C), but by all means not unfeasible.
	Please have a look at lib/prop*.[ch]
	
	iii) organise properties in property pages
	please grep for PROP_TYPE_NOTEBOOK_
	
I hope this helps.

	-- Cyrille

-- 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] Mail converted by Mofo Magic and the Flying D

 
All trademarks and copyrights are the property of their respective owners.

Other Directory Sites: SeekWonder | Directory Owners Forum

GuideSMACK