Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update SpreadsheetView code to jfx17 #1376

Closed
wants to merge 36 commits into from

Conversation

Maxoudela
Copy link
Collaborator

@Maxoudela Maxoudela commented Jul 26, 2021

A bit of cleaning of the SpreadsheetView code in order to prepare the ground for OpenJFX 17.

@Maxoudela Maxoudela changed the title Update SpreadsheetView code to jfx17 [On hold] Update SpreadsheetView code to jfx17 Jul 26, 2021
@Maxoudela Maxoudela changed the title [On hold] Update SpreadsheetView code to jfx17 Update SpreadsheetView code to jfx17 Jul 26, 2021
@lgtm-com
Copy link

lgtm-com bot commented Aug 2, 2021

This pull request introduces 2 alerts when merging 246d898 into 7961836 - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

@lgtm-com
Copy link

lgtm-com bot commented Aug 2, 2021

This pull request introduces 2 alerts when merging 2595a4c into 7961836 - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

@Maxoudela Maxoudela marked this pull request as draft August 3, 2021 07:40
@Maxoudela
Copy link
Collaborator Author

Changing this PR to draft as I have another commit coming that will fix another issue regarding the columns resizing. I don't know if I should open several PRs or a big one. Let me know what you prefer.

I have also a bunch of unit test in my own project that I'll try to bring back here when the build will be stable with OpenJFX 16/17

@lgtm-com
Copy link

lgtm-com bot commented Aug 3, 2021

This pull request introduces 2 alerts when merging 8761dee into 7961836 - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

@abhinayagarwal
Copy link
Member

If all changes are related to SpreadsheetView, one PR should be OK.

@Maxoudela Maxoudela marked this pull request as ready for review August 3, 2021 13:57
@lgtm-com
Copy link

lgtm-com bot commented Aug 17, 2021

This pull request introduces 2 alerts when merging 8eaf545 into ae1c76a - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

@lgtm-com
Copy link

lgtm-com bot commented Aug 18, 2021

This pull request introduces 2 alerts when merging c94d7b3 into ae1c76a - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

…ickers when possible between rendering and avoid removing and adding them to the scenegraph.
@lgtm-com
Copy link

lgtm-com bot commented Aug 20, 2021

This pull request introduces 2 alerts when merging 949ad65 into ae1c76a - view on LGTM.com

new alerts:

  • 2 for Container contents are never accessed

@abhinayagarwal
Copy link
Member

It would be nice if #1399 can be taken care in this PR

@abhinayagarwal abhinayagarwal changed the base branch from jfx-13 to master December 8, 2021 14:29
@Groostav
Copy link

@Maxoudela bump, this never made it in and I really need it.

@Maxoudela
Copy link
Collaborator Author

@Maxoudela bump, this never made it in and I really need it.

Hi,

Unfortunately, I am no longer working on the SpreadsheetView anymore.
You can check with @abhinayagarwal if this could be merged but I doubt it since I still have some usages of internal classes.
Otherwise, you could update this branch with the latest commits on ControlsFX and build it manually. I was doing that before in order to have the SpreadsheetView on top of the latest commits of ControlsFX.

@abhinayagarwal
Copy link
Member

Hi @Groostav,

I haven't reviewed this PR in details, but I am OK to merge it. Can you may be do a quick round of testing on the PR to check its status?

@Groostav
Copy link

Groostav commented Sep 15, 2022

Ok, so i pulled this and started trying to build with my java 17:

  • the gradlewrapper.settings was 6.X and java 17 isnt supported until gradle 7.3, i figured you guys were just using your local gradle but it was also using testCompile and runtime dependencies which IIRC was depricated in favour of testImplementation and runtimeOnly a while ago, so i blindly replaced those. How were you guys able to build this on java 17 at all?
  • I've also got a "no such method on super" problem at impl.org.controlsfx.spreadsheet.HorizontalHeaderColumn#createTableColumnHeader, where the spreadsheet seems to want some custom behaviour applied to resizeColumnToFitContent; im guessing this is an edge case and simply commented it out. I'll dig into git history to see if i can figure out whats happening here. But I am really curious to see what you guys can cover with monacle, since its been a goal of mine to do automated testing of UI with monocle for a while.
  • I'm also not sure what a good functional testing procedure is. My hope was to simply run the FX sampler, but apparently it uses a service loader to find samples that somehow wasn't on my classpath. I'm sure I can figure this out (maybe ill add a custom gradle task for "run fx sampler with all samples"?)

lots to do.

I've also got

Execution failed for task ':controlsfx:jar'.
> java.util.ConcurrentModificationException (no error message)

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':controlsfx:jar'.
	at ...
Caused by: java.util.ConcurrentModificationException
	at aQute.bnd.osgi.Jar.putResource(Jar.java:337)

and I have no idea what aQute.bnd is, or does to your build process.

I still struggle with gradle 🙃

@abhinayagarwal
Copy link
Member

@Groostav I just pushed #1460 to the master branch. The main branch now has Gradle 7+ in it. Hopefully, it will help with your Gradle issue.

@Maxoudela
Copy link
Collaborator Author

@Groostav Your error is weird. The method is actually defined : https://openjfx.io/javadoc/17/javafx.controls/javafx/scene/control/skin/NestedTableColumnHeader.html#createTableColumnHeader(javafx.scene.control.TableColumnBase)

So it should not be an issue to compile and run it. Actually, this PR code is compiled and currently running in production environment. Let me know if I can help.

I remembered that I did not managed to build this under Gradle so I moved it entirely to Maven internally. But updating Gradle is a good start and should ease the transition.

@Groostav
Copy link

Groostav commented Sep 20, 2022

@Groostav I just pushed #1460 to the master branch. The main branch now has Gradle 7+ in it. Hopefully, it will help with your Gradle issue.

Thanks, this got things building!

@Groostav Your error is weird. The method is actually defined : https://openjfx.io/javadoc/17/javafx.controls/javafx/scene/control/skin/NestedTableColumnHeader.html#createTableColumnHeader(javafx.scene.control.TableColumnBase)

i misspoke: the problem is not with the method createTableColumnHeader, the implementation of that method attempts to override TableColumnHeader.resizeColumnToFitContent, which is right here but is not available on javafx 13, which is what I had specified in gradle's javafx_version. Silly mistake.

Along those lings @Maxoudela, if this is the only place that makes it incompatible with java 11, is it worth doing something dynamically here to make the next release work for both java 17 and 11?

still getting my CME in aQute.bnd.osgi.Jar.putResource.
edit: fixed by updating id 'biz.aQute.bnd.builder plugin to version 5.3.0

@abhinayagarwal
Copy link
Member

This is superseded with #1463

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants