(Where are you doing the casts? Are you using Actions to provide the functionality?)
I like the idea in principle. While the features of similar Pivot Components have generally been kept in sync as they have evolved, it might be time to start considering things like this to make common/similar functionality easier to use. Selection handling in some Components is also similar. I have my own classes to manage item selections/deletion/reselection transparently across ListViews & TableViews (and soon GridViews too). I create a new instance of my SelectionSnapshot class, passing the relevant Component to the constructor and then have a common set of utility methods for expanding/clearing/querying/reapplying selections, which work on both ListView and TableView. I took this approach because it was quick to develop, easy to maintain outside of the Pivot code base, and didn't require lots of discussion on the mailing lists. The same sort of approach might be possible with the text based methods you mention, but it does sound like it would be cleaner to have the classes implement a common interface as proposed. Is this something that you could quickly hack together a partial prototype for and then post a patch for review? It needn't include all methods, just enough to show the sort of changes to expect. Chris On 13 August 2011 04:48, Roger L. Whitcomb <[email protected]> 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 > > [email protected] <mailto:[email protected]> > > > > 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. > > > >
