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. >>> >>> >>> >> >> >