Conversation
There was a problem hiding this comment.
I did try this. Some views don't float correctly. I tried with Attribute editor and Table view since these are in the selection list. After dragging them to a new location they seem to dock even after the change in setting.
I have also noticed that float/dock options available (Netbeans functionality) by right clicking each view tabs. The changes are remembered when opening Constellation next time. (see attached)
So there may be a possibility of having two different settings for a same view ? (e.g. float setting from Netbeans and dock setting from Constellation -> Preferences. Which one take the precedence? )
Also help page is not available for this enhancement. Help button displays a default page.
|
…ermined Code refactored to be easily overridden for custom size and location values for top components.
There was a problem hiding this comment.
Looks like it works with some of the views and they are able to be resized when floating now which is good.
The issue that was occurring when opening the Data Access View seems to be back. I made the DAV float using the preferences and then when I opened the view it did this
It is now continuously throwing that exception. The exception window is blank but this is what I could see in the logs
[2026-06-22 10:15:06.584Z] SEVERE [global]: java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 3 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302) at java.base/java.util.Objects.checkIndex(Objects.java:385) at java.base/java.util.ArrayList.get(ArrayList.java:427) at javafx.base/com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:88) at javafx.base/com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:314) at javafx.graphics/javafx.scene.Parent.updateCachedBounds(Parent.java:1705) at javafx.graphics/javafx.scene.Parent.recomputeBounds(Parent.java:1649) at javafx.graphics/javafx.scene.Parent.doComputeGeomBounds(Parent.java:1502) at javafx.graphics/javafx.scene.Parent at javafx.graphics/com.sun.javafx.scene.ParentHelper.computeGeomBoundsImpl(ParentHelper.java:84) at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBoundsImpl(RegionHelper.java:78) at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.superComputeGeomBounds(RegionHelper.java:62) at javafx.graphics/javafx.scene.layout.Region.doComputeGeomBounds(Region.java:3301) at javafx.graphics/javafx.scene.layout.Region at javafx.graphics/com.sun.javafx.scene.layout.RegionHelper.computeGeomBoundsImpl(RegionHelper.java:89) at javafx.graphics/com.sun.javafx.scene.NodeHelper.computeGeomBounds(NodeHelper.java:117) at javafx.graphics/javafx.scene.Node.updateGeomBounds(Node.java:3812) at javafx.graphics/javafx.scene.Node.getGeomBounds(Node.java:3774) at javafx.graphics/javafx.scene.Node.getLocalBounds(Node.java:3722) at javafx.graphics/javafx.scene.Node.updateTxBounds(Node.java:3876) at javafx.graphics/javafx.scene.Node.getTransformedBounds(Node.java:3668) at javafx.graphics/javafx.scene.Node.updateBounds(Node.java:776) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1836) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1834) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1834) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1834) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1834) at javafx.graphics/javafx.scene.Parent.updateBounds(Parent.java:1834) at javafx.graphics/javafx.scene.Scene at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:400) at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:430) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:592) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:572) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:565) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda at java.base/java.lang.Thread.run(Thread.java:1583)
Added super method call as views were not opening with logic determined by the floating preferences.
Quasar985
left a comment
There was a problem hiding this comment.
Works as intended, just a few finals and possibly unneeded functions
|
I forgot that I also found a bug where if you open the help page for view preferences, it also opens the help page for Data Access View Category Preferences. Not sure if this is a problem with your PR or not though |
antares1470
left a comment
There was a problem hiding this comment.
There's also a number of code blocks starting with a whitespace line. If you're able to remove those, that would be good.
|


Prerequisites
Reviewed the checklist
Reviewed feedback from the "Sonar Cloud" bot. Note that you have to wait
for the "CI / Unit Tests") to complete first. Failed Unit tests can be
debugged by adding the label "verbose logging" to the GitHub PR.
Description of the Change
Added a tab in the options for Constellation preferences to set whether a view is docked or a floating window when opened.
Alternate Designs
N/A
Why Should This Be In Core?
Adds functionality to Core.
Benefits
Allows users to customize their Constellation start up setup.
Possible Drawbacks
N/A
Verification Process
Additionally during Step 2 if the selections are altered the Apply button will enable, then if the selections are returned to how they appeared when the options menu was opened, the Apply button will disable.
Applicable Issues
#1970