One my gripes about the Eclipse framework is the general lack of standardized interfaces & inheritance.
For instance: a TreeColumn & TableColumn both have a lot of attributes in common … width, alignment, movability, sortability, resizeability, etc.
But since they don’t share an interface or a common ancestor, you can’t handle them with common code.
Similarly widgets like the ComboBox and a Text field share a lot of attributes … they can hold text, they can be changed, etc, but you can’t access those attributes with a common interface.
Sadly most Eclipse widgets explicitly forbid subclassing … so I can’t subclass the various types and add my own interfaces. The following is a direct quote from the TableColumn javadocs …
IMPORTANT: This class is not intended to be subclassed.
And, unfortunately, they enforce this in code.
I couldn’t agree more. This drives me insane about Eclipse.