Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8187783

Add singleton access to application instance

    Details

    • Type: Enhancement
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: tbd
    • Component/s: javafx
    • Labels:
      None

      Description

      Currently the application parameters of a JavaFX app are stored in a Parameters instance inside the Application instance. The problem with this approach is that every part of a program that needs access to program parameters need access to either the Application instance or the Parameters instance.
      In a JavaFX app this means you have to write extra code in order for different parts of a program to be able to reach the parameters. Similar for third party JavaFX frameworks.
      There are in practice a ton of reasons why a framework could need access to application parameters and also the application object itself. Our framework reacts to program arguments on the command line, but for that to work, we have to have developers hand us the Application instance, which seems silly, since this could just be a singleton.

      I hereby request the implementation of 1 static getInstance() method in the Application class which would allow all parts of an application and even third party frameworks to write code like

      Application application = Application.getInstance();
      boolean fooEnabled = application.getParameters().getNamed().contains("foo");

      But if application parameters are all we need access to, why turn the whole Application into a singleton? Well, third party frameworks like ours could ask developers to implement an interface in their application, and then our framework could do cool things like

      ((TheFrameworkInterface) Application.getInstance()).doSomething();

        Attachments

          Activity

            People

            • Assignee:
              kcr Kevin Rushforth
              Reporter:
              risaksen Randahl Isaksen
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: