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

Workspaces #14

Open
gluon-bot opened this issue Jul 14, 2015 · 9 comments
Open

Workspaces #14

gluon-bot opened this issue Jul 14, 2015 · 9 comments

Comments

@gluon-bot
Copy link

Originally reported by: Alexander Casall (Bitbucket: acasall, GitHub: Unknown)


I often have to do the same steps for multiple FXML files in one project. This steps should be saved in a workspace and should by applied to all FXML files of the workspace

For:

  • workspace specific Custom-Control lib folder
  • workspace specific Scene Style Sheets
  • Overview over all FXML Files in the Project --> Better fx:include integration
    ...

@gluon-bot
Copy link
Author

Original comment by Alexander Casall (Bitbucket: acasall, GitHub: Unknown):


From Saxonia Systems AG

@gluon-bot
Copy link
Author

Original comment by Luca Domenichini (Bitbucket: mimmoz81, GitHub: mimmoz81):


Following from #34, I would add that in workspace it could be useful to set the "classpath" from which SB loads custom components (both jars and directories), similar to that other tools already do (e.g. iReport)

@gluon-bot
Copy link
Author

Original comment by Michael Paus (Bitbucket: mipastgt, GitHub: mipastgt):


Here 57 is another issue which could make use of such a workspace feature.

@luca-domenichini
Copy link
Contributor

I think PR #236 addresses some of the points in this issue.
Please share your thoughts about (unfortunately seems that alexander casall is not a github user..)

@Oliver-Loeffler
Copy link
Collaborator

Oliver-Loeffler commented Aug 30, 2021

Okay, let's revive this issue here.

Concept Questions:

Shall Scene Builder offer workspaces as an option parallel to the current mode of operation (working with single, isolated files, having a shared libs folder)?

What is needed to develop the concept of workspaces in Scene Builder?

  • Configuration handling and application preferences must be updated accordingly so that serialisation to config files is possible.
  • Option to import different configurations (separated by general application, repositories, lib folder) is needed.
  • New controls in the UI are needed to create a workspace overview/summary.

What is expected from a Scene Builder workspace?

  • A workspace shall have its own custom controls lib folder.
  • Scene style sheets shall be specific to a workspace
  • Workspace shall keep track of all available FXMLs inside to improve fx:include integration
  • All configurations in a workspace are stored at a single location (might be an individual file, or '.' directory with configuration inside)
  • Workspaces should be isolated against each other, no shared settings with other workspaces.
  • A classpath/modulepath specific to the workspace can be defined to load custom components (both jars and directories)

Inspirations

  • Intellij IDEA embedded Scene Builder treats the project as workspace - review functionality and how it works

@daniel-shuy
Copy link

For this purpose, I've resorted to use Intellij IDEA's embedded JavaFX Scene Builder, which treats the project as a workspace. Maybe the standalone Scene Builder application can use that as a reference/inspiration?

@Oliver-Loeffler
Copy link
Collaborator

Thanks for the hint, yes, very good idea to use this as inspiration. I never used the embedded version so didn't know about this feature.

@abhinayagarwal
Copy link
Collaborator

Scene Builder workspace is obviously a good idea but we need to have enough use-cases before we move forward with it.

Scene Builder can be used across multiple JavaFX projects which can have their own set of custom controls. Apart from custom controls, is their anything else which we would like to isolate in Scene Builder?

One thing that comes to my mind is the JavaFX version used to create the FXML namespace. For example, if you use Scene Builder 16 to create FXML. it will contain the following entry in the xlmns tag:

xmlns="http://javafx.com/javafx/16

This FXML when used in a project running with JavaFX 11 will throw:

WARNING: Loading FXML document with JavaFX API of version 16 by JavaFX runtime of version 11

This is because there is a check in FXMLLoader which throws the warning if the major version of JavaFX doesn't match FXML namespace version.

Instead of blindly creating FXML using the JavaFX bundled version, Scene Builder could creates FXMLs with different JavaFX namespace. This version can have a one to one relationship with the JavaFX version used in the project.

@Oliver-Loeffler
Copy link
Collaborator

The namespace preference is a very good idea, this is indeed something which is missing.
Is it currently only the namespace element or does FXML indeed provide already different elements/attributes as per JavaFX version?

@abhinayagarwal This feels like enhancing the FXOM so, that we can once create JavaFX version specific FXML.

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

No branches or pull requests

5 participants