DockFX icon indicating copy to clipboard operation
DockFX copied to clipboard

Create a new undocked DockNode

Open dyrlund opened this issue 9 years ago • 6 comments

Hi

Is there a way to create a new DockNode which is floating? I tried the following:

final DockNode testDock = new DockNode(lineChart,"Example Line Chart 2");
testDock.setFloating(true);

But that returns the following NullPointerException:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at org.dockfx.DockNode.setFloating(DockNode.java:296)
    at org.dockfx.DockNode.setFloating(DockNode.java:340)

I also tried to dock the DockNode first and then undock it but in that case it is not visible (= it seems like nothing is happening). Do I have to set some value to make it show?

final DockNode testDock = new DockNode(lineChart,"Example Line Chart 2");
testDock.dock(mainDockPane, DockPos.RIGHT);
testDock.undock();

dyrlund avatar Sep 11 '15 10:09 dyrlund

I can call testDock.setFloatable(true); without any error, but the window still does not float. Any suggestions?

dyrlund avatar Sep 18 '15 14:09 dyrlund

@dyrlund This is a legitimate bug, thank you for reporting this. It was working in the original release, I know what is causing it and will be able to fix it. For now I have the following temporary work around.

From the demo application, wrap your setFloatable call in a Runnable and make sure you dock the node first so that it gets a preferred size:

    // can be created and docked before or after the scene is created
    // and the stage is shown
    final DockNode treeDock = new DockNode(generateRandomTree(), "Tree Dock", new ImageView(dockImage));
    treeDock.setPrefSize(100, 100);
    treeDock.dock(dockPane, DockPos.LEFT);
    Platform.runLater(new Runnable() {

      @Override
      public void run() {
        treeDock.setFloating(true);
      }

    });

The cause is the use of a local to screen translation in setFloatable returning a null Point2D because the dock node has not yet received a layout pass. It will be very easy to fix.

The intended behavior is exactly as you described, when this is fixed you will not have to dock it first and will be able to simply set it floating.

RobertBColton avatar Sep 22 '15 08:09 RobertBColton

Is the bug fixed ??

arunartzoom avatar Apr 20 '16 21:04 arunartzoom

Hi, First of all thank you for such a great framework. Really docking framework is something I think, should be part of the JavaFx itself. I am following and evaluating your framework for last few weeks. I am seeing the last commited date as aug 2015. I am concerned about this particular bug also. Could anyone please tell me the status of this bug and the dockfx project itself. Is it under active development ? I would really like to use dockfx for a project I am working on.

Thanks & Regards

arunartzoom avatar Apr 24 '16 07:04 arunartzoom

there's a fair bit of development happening on fork https://github.com/hkmoon/DockFX/tree/hkmoon, this is the fork I'm using at the moment.

jasons2000 avatar Apr 24 '16 12:04 jasons2000

Thanks @jasons2000 ..

arunartzoom avatar May 02 '16 07:05 arunartzoom