[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re[4]: [cgmo-webcgm] ISSUE: what does 'get..' return? [2 of 2]
Hi all, This thread is not using the right terminology and that's confusing me. I don't like the word "undefined", there is no such word in the DOM getAttribute() method. An attribute is either 'specified' (explicitly written in the file, attName="value") or has a default value (from a schema or DTD, ex: version="2.0"). The DOM getAttribute() method returns an empty string if the attribute is not specified or assigned a default value in the DTD. Not "undefined". Question: Is there a big different between returning an empty string or returning the "inherit" string? To me there isn't since they both mean that the attribute is not specified on the object. More inline. Thursday, April 28, 2005, 5:38:04 AM, Dieter wrote: DW> Hi Lofton, DW> we are close. LH>> Here is our conceptual disagreement. Because the 3.2.2.9 model (above) LH>> says "Inherited: yes", you are interpreting that as meaning that the LH>> initial value for an unspecified attribute must be 'inherit'. I don't LH>> think that necessarily follows. IMO, our model currently works LH>> fine this way: LH>> LH>> 1.) if explicitly set value on particular node, that is it for LH>> both display and DOM query (no dispute here); DW> Agreed. LH>> 2.) if no explicitly set value on particular node, including on any LH>> ancestors, then "Initial value" is used for display ("Initial LH>> value: on" rules); DW> Agreed. LH>> 3.) if no explicitly set value on particular node, but explicit on an LH>> ancestor, then that ancestor value used for display ("Inherited: yes" LH>> rules, overrides initial value); DW> see comment below. LH>> 4.) if no explicitly set value on particular node, DOM query returns LH>> "undefined" (standard DOM rule) LH>> DW> agreed. The behavior is inherit then, though. I don't think we should re-invent an inheritance model with 1,2,3,4. It is already defined in the spec, please read: 5.4.1.1 Specified values. That particular wording talks about the CSS style attribute which should be replaced to WebCGM Style attributes (or something equivalent), but the concept is there. DW> I guess my confusion is based on my lack of understanding, what "initial DW> value" means. I have no problem with 4.), a programmer then knows DW> that he has to walk up the tree to compute the actual behavior, if DW> there is any specified on ancestors. DW> Questions: DW> - initial value is used until an explicit value is set using a DOM call, DW> right? Yes but note that initial value will not be used if the attribute value is inherited. DW> - assume the following situation: DW> BEGAPS 'first' DW> 'visibility' on DW> BEGAPS 'second' DW> ENDAPS; DW> ENDAPS; DW> first is visible, second as well. Yes. DW> DOM get call on second returns "undefined" according to 4.) I don't like that, I think it should return an empty string. DW> Now assume a "set" call on "second" set visibility to "off" Ok. DW> DOM get call on second now returns "off". Yes. DW> How do I return to the initial state? DW> I can delete the attribute, no problem. We've made 'visibility' and 'interactivity' WebCGM APS attribute as oppose to style attributes (like stroke, intensity, stroke-width etc...), so the clearStyle() method doesn't work. You have to either: - reload the file. - remove the attribute. - or your script has to remember the previous value. DW> Then there may be one out of two situations: DW> - ancestor has set value and controls visibility of "second" from there on DW> - no ancestor with set value. DW> Does the latter case imply that "initial value" will be used, DW> - after opening the file without modifications Yes. DW> - after deleting a previously set attribute on the APS AND no DW> ancestor has a set value Yes. DW> - after deleting an attribute read from the WebCGM file AND no DW> ancestor has a set value Yes. DW> - how do I set the "undefined" state from within an XCF? DW> BEGAPS 'first' DW> 'visibility' on DW> ENDAPS; You cannot (not at the moment). Is this something you believe users will want to do? DW> I can set visibility="on" or visibility="off". How do I delete the DW> attribute, or in other words, how do I set this APS to inherit its DW> behavior from its ancestors? We would need the "inherit" value for that. -- Benoit mailto:benoit@itedo.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]