JavaFX and the Missing Interfaces (original) (raw)

Knut Arne Vedaa knut.arne.vedaa at broadpark.no
Mon Nov 5 11:49:05 PST 2012


While you want

 NodeBase implements Node

but would be happy with

 Node implements SceneNode

I'd propose a third alternative (which I prefer to the first):

 Node implements NodeLike

This naming scheme is used a lot in Scala's standard library (but for traits and not interfaces, the former which can have concrete members).

Speaking of - if I understand your blog post correctly, what you want is this:

trait IControl extends Control { def iCommonMethod = "something" }

class ITextField extends TextField with IControl

def fooBar(iControl: IControl) { iControl setTooltip new Tooltip("foo bar") iControl.iCommonMethod }

fooBar(iTextField)

val iTextField = new ITextField

iTextField.iCommonMethod

Which is perfectly valid Scala code. So if you can't convince the powers that be to refactor the API, you have at least another option, hint hint. :)

Knut Arne Vedaa

On 05.11.2012 19:50, Randahl Fink Isaksen wrote:

I have been struggling with a number of problems stemming from the way JavaFX is designed – specifically the lack of interfaces for many of the extension points in the class hierarchy.

It takes some thorough explaining with code examples, so instead of just an unformatted e-mail I posted a more readable explanation of the problem on-line: Please read http://blog.randahl.dk/2012/11/javafx-and-missing-interfaces.html I hope we could have a constructive discussion on this matter on this list before I go ahead and file a Jira, so the Jira issue becomes the best possible basis for solving the design problem. Thanks Randahl



More information about the openjfx-dev mailing list