This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 248889 - Generated controller file is in JavaFX 2 format rather than JavaFX 8 format
Summary: Generated controller file is in JavaFX 2 format rather than JavaFX 8 format
Status: NEW
Alias: None
Product: javafx
Classification: Unclassified
Component: Project (show other bugs)
Version: 8.1
Hardware: All All
: P3 normal (vote)
Assignee: Roman Svitanic
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-25 15:21 UTC by omniprof
Modified: 2014-11-30 18:43 UTC (History)
0 users

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description omniprof 2014-11-25 15:21:46 UTC
When an empty FXML file is requested it is formatted in JavaFX 2 format and implements initializable. JavaFX 8 has done away with this. This makes teaching FXML awkward as the students must be shown how to change the controller.
Comment 1 omniprof 2014-11-25 18:05:51 UTC
Here is what I believe the controller should look like for JavaFX 8:

// package statement here

import java.util.ResourceBundle;
import javafx.fxml.FXML;

/**
 * FXML Controller class
 *
 * @author 
 */
public class ExampleController{

    // Change the pane type if you change the FXML
    @FXML
    private AnchorPane thisLayout;

    @FXML 
    private ResourceBundle rb;

    /**
     * Initializes the controller class.
     */
    @FXML
    public void initialize() {
        // TODO
    }    
    
}

While there may not be a need to have a variable for the AnchorPane it is good practice to have one. The comment remids the programmer to change the pane type if they choose to use another pane such as BorderPane.
Comment 2 omniprof 2014-11-30 02:03:20 UTC
While reviewing the plugins for NetBeans I discovered the the JavaFX plugin is just for version 2. Therefore my issue is likely to resolved once a version 8 plugin is released. Could you give me a time frame for this upgrade?
Comment 3 Lou Dasaro 2014-11-30 18:43:23 UTC
What the Reporter has suggested is not specific to JavaFX 8. It's JavaFX 2.2.
In JavaFX 2.1 and earlier, a controller class was required to implement the Initializable interface so it could be notified when the related FXML document had been completely loaded. This is no longer necessary since JavaFX 2.2., because FXMLLoader will now automatically call any suitably annotated no-arg initialize() method defined by the controller. See https://docs.oracle.com/javafx/2/api/javafx/fxml/Initializable.html

I would recommend the change suggested in this issue's Description. I don't believe it is a requirement (?) for NetBeans IDE to support JavaFX versions 2.1 and older.

The other changes suggested in Comment #1 are nice-to-haves...

However, because the JavaFX 2 plugin would continue to support JavaFX 2.2/JDK 7, I would NOT change the NAME of the plugin (JavaFX 2).

Changing Issue Type to Enhancement, because current implementation doesn't break code - it doesn't even cause warnings during a build AFAICT.