I imagine that Greg will have some strong opinions on this :)

I just tried writing a proper reply a couple of times, but couldn't
get the wording right.  I'll try again once I have had some sleep if
the following is still not clear.


Without looking into this in any detail, my gut reaction is that just
having these classes implement a clearly defined interface (for each
common area of functionality such as text operations or selection
handling) would be preferable.  Then a developer could create their
own compatible classes that implement the interface(s) without being
forced to extend a particular Pivot class.

Roger has identified a set of common text operations that are
conceptually the same, but the actual implementation of the methods
defined in the interfaces would not necessarily be the same across the
implementing classes.  If the implementations are different, then
inheritance of the methods themselves doesn't add much value, as the
methods would have to be overridden.  The main value comes from the
common API shared across the classes, and the ability to treat
TextInput, TextArea & TextPane the same for these text operations via
that API.

Chris

On 13 August 2011 07:35, Sandro Martini <sandro.mart...@gmail.com> wrote:
> And probably even a base class for List/Table/Tree View classes ...
>  Il giorno 13/ago/2011 02:16, "DreamTangerine" <dreamtanger...@hotmail.com>
> ha scritto:
>> I think is better to create a common base class TextComponent where
>> TextInput, TextArea and TextPane are children.
>>
>> And I think that maybe it is useful have also these methods setText
>> getText.
>>
>> On vie, 2011-08-12 at 17:48 -0400, Roger L. Whitcomb wrote:
>>> I'm implementing Cut/Copy/Paste, etc. in our UI and it is fairly awkward
>>> to have to check for TextInput, TextArea and TextPane on every operation
>>> and do the casts three times for each. So, I was wondering what
>>> everyone thought of a "TextOperator" interface that these three classes
>>> implement that consists of the relevant methods:
>>>
>>>
>>>
>>> public void cut();
>>>
>>> public void copy();
>>>
>>> public void paste();
>>>
>>> public void undo();
>>>
>>> public void redo();
>>>
>>> public void clearSelection();
>>>
>>> public void selectAll();
>>>
>>> public int getSelectedLength(); // Necessary for
>>> determining enabling of cut/copy
>>>
>>> public String getSelectedText();
>>>
>>>
>>>
>>> This way I could cut my work to 1/3 because I simply have to cast to
>>> "TextOperator" and do the operations (checking for "instanceof" also).
>>>
>>>
>>>
>>> So, what does everyone think? It would be relatively trivial to
>>> implement the change (add the interface file and add "implements..."
>>> clause to the three classes (I think, not having prototyped it yet).
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Roger Whitcomb
>>>
>>> Architect, Engineering
>>>
>>> Ingres Corporation
>>>
>>> roger.whitc...@ingres.com <mailto:roger.whitc...@ingres.com>
>>>
>>>
>>>
>>> PHONE +1 650.587.5596
>>>
>>> FAX +1 650.587.5550
>>>
>>>
>>>
>>> www.ingres.com <http://www.ingres.com/>
>>>
>>>
>>>
>>> This transmission is confidential and intended solely for the use of the
>>> recipient named above. It may contain confidential, proprietary, or
>>> legally privileged information. If you are not the intended recipient,
>>> you are hereby notified that any unauthorized review, use, disclosure or
>>> distribution is strictly prohibited. If you have received this
>>> transmission in error, please contact the sender by reply e-mail and
>>> delete the original transmission and all copies from your system.
>>>
>>>
>>>
>>
>>
>

Reply via email to