Clone wiki

ControlsFX / Contributing to ControlsFX



Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved.

Do you have a new cool feature that you'd like to contribute? Or a fix for a bug? Great! The ControlsFX project loves code contributions, improvements, and bugfixes, but we require that they follow a set of guidelines and that they are contributed in a specific way.

ControlsFX CLA

Before accepting your pull requests, we ask that you please read and sign our CLA.

Code Rules

Code Style

All code contributed to the ControlsFX project tree should follow Code Conventions for the Java Programming Language, and should be have no tabs. All the tabs should be replaced with spaces.

Code Licensing

ControlsFX is released under the 3-clause BSD license. It is required that all source code files have this license at the top of the file. It is suggested that you copy/paste the license from another source file in the ControlsFX project. Be sure to edit the copyright date at the top. The correct syntax is:

  • If the source file is new, the date should just be the current year.
  • If you are editing an existing source file, the format should be <created year>, <current year>. For example, if the file was created in 2012, and it is currently 2014, it should say '2012, 2014'.

Advice for Contributors

The chance of getting your pull request accepted increases considerably if you adhere to the following rules in addition to the aforementioned formatting standards:

  • Ensure that all contributed files have a valid copyright statement and an open-source license.
  • Do not bundle commits that are unrelated to each other -- create separate pull requests instead.
  • Clean up the commit history. The changeset should be as minimal as possible.
  • Write a descriptive pull request message. Explain the advantages and disadvantages of your proposed changes.
  • Before starting to work on a major contribution, discuss your idea with existing ControlsFX contributors in our mailing list, to avoid wasting time on things that have no chance of getting merged into ControlsFX.

Building ControlsFX

ControlsFX library consists of several projects, which can all be built at once or separately.

  • Building the whole project: execute gradle clean build in the root of the project
  • Each specific project can be built by executing the same command in its respective root
  • Building controlsfx-samples requires cached dependency to controlsfx artifact. In order to see your changes in controlsfx show up in controlsfx-samples, run gradle clean install on controlsfx
  • To execute controlsfx-samples from command line use gradle run inside controlsfx-samples subproject

Importing into IDE


  1. Make sure Gradle IDE is installed
  2. Choose File > Import
  3. In the following Ipport dialog choose Gradle Project
  4. Set root folder to point to yourControlsFx local repository
  5. Press Build Model button to generate Gradle model
  6. In the project list select projects you'd like to import
  7. Choose desired Gradle options below.
  8. Press Finish button.


  1. Make sure Gradle tooling is installed
  2. In Module Settings window select Import module
  3. In following window select build.gradle file in the root of your local ControlsFX repo
  4. Press Finish button


  1. Make sure Gradle Support is installed
  2. Choose File > Open Project and select ControlsFX root directory
  3. Press Open Project button