[Oberon] WMProperties.StringProperty

Ulrike Glavitsch ulrike.glavitsch at inf.ethz.ch
Tue Nov 22 16:37:42 CET 2005


Dan Parnete wrote:

> Ulrike Glavitsch wrote:
>
>> Hello,
>>
>> the way the empty element is treated in a StringProperty so far is to 
>> have a NIL-pointer in the value-field of the StringProperty. There 
>> are several locations in the code, e.g. PROCEDURE DrawBackground in 
>> WMStandardComponents.Button, that depend on this convention.
>> So we basically have two options:
>> (1) we leave the code as it is with the implication that programmers 
>> need to know that the empty element is represented by a NIL value or
>> (2) we make the proposed change but have to adapt all pieces of code 
>> that are affected by this change.
>> I agree that it is more consistent to represent an empty string in an 
>> existing string object.
>>
>> As the correction requires a bit of work (implementation and tests) 
>> it will not come in the very next release. But thanks for the proposal.
>>
>> Ulla Glavitsch
>>
>> Dan Parnete wrote:
>>
>>> Hello,
>>>
>>> The properties could be set by FromXML method. The StringProperty 
>>> could not be reseted by FormXML because it doesn't treat the empty 
>>> element.
>>> I propose this correction:
>>>
>>>        PROCEDURE FromXML*(xml : XML.Element);
>>>            VAR en : XMLObjects.Enumerator;
>>>            p : PTR;
>>>        BEGIN
>>>            en := xml.GetContents();
>>>            p := en.GetNext();
>>>            IF p # NIL THEN
>>>                IF p IS XML.Chars THEN
>>>                    Set(p(XML.Chars).GetStr())
>>>                END
>>>            ELSE  Set(Utilities.NewString(""))
>>>            END
>>>        END FromXML;
>>>
>>> Thanks,
>>> Dan Parnete
>>> -- 
>>> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related 
>>> systems
>>> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>>
>>
>>
>>
>>
> I agree with the NIL value. But the problem here is the actual code 
> did not set the NIL value. If you want to put:
>    ELSE Set(NIL)
> it's fine. Now ELSE doesn't exist, and that excludes the possibility 
> to reset the string property using en empty element like <strprop/>.
>
> Thanks,
> Dan Parnete
> -- 
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon

Good idea. This correction will come with the next release.

Ulla Glavitsch

-- 
Ulrike Glavitsch Eggler
Institut für Computersysteme
ETH-Zentrum                      
Clausiusstrasse 59
CH-8092 Zürich
Tel.: +41 44 632 70 49
Fax : +41 44 632 13 07




More information about the Oberon mailing list