[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: Re[4]: [cgmo-webcgm] ISSUE: what does 'get..' return? [2 of 2]
Hi Benoit, First of all, I agree that an empty string should be returned. If I then follow your comments, I see the following challenges: > 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. I can not set the previous value it was not "on" or "off", right? Or is an empty string also a legal value for a set call? For an XCF value? If this is the case then I have everything I need. Otherwise we would need a value "inherit" to do this. There are use cases for this, e.g. - Make everything invisible on a layer by setting its visibility to "off" - Make one object on this layer visibible by setting it to "on" - after some other operations, I want to restore the previous state. Reloading the file is not a good option, since you would lose all changes applied by one/multiple XCFs and/or DOM calls. Regards, Dieter > -----Original Message----- > From: Benoit Bezaire [mailto:benoit@itedo.com] > Sent: Thursday, April 28, 2005 3:21 PM > To: cgmo-webcgm@lists.oasis-open.org > 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]