/PitchDockFX

Inactive JavaFX docking framework

Primary LanguageJavaGNU Lesser General Public License v2.1LGPL-2.1

Archived

This repository was created as an interim solution until the docking component of TiwulFX was separated from TiwulFX 3.1. Please refer to the following repository for more details:

https://github.com/panemu/tiwulfx-dock


PitchDockFX

PitchDockFX is yet another JavaFX 11 docking framework. Dockable panels provide a way to rearrange major application components.

Code in this repository extracted and simplified from TiwulFX 3.1.

Demo

Run the demo as follows:

  1. Open the project in IntelliJ.
  2. Expand com.keenwrite.dock.demo under src/test.
  3. Open Launcher.
  4. Run main.

The application launches:

Screenshot

Alternatives

This section reviews numerous JavaFX docking solutions. Except for TiwulFX, none of the other libraries could meet the requirements.

Requirements

Hard (must) and soft (should) requirements include:

  • Must work on Linux (X11, Wayland), Windows (7, 10), and OSX, minimally
  • Must support drag-and-drop, tab reordering
  • Must support JavaFX 11
  • Must have demo Java code
  • Must take < 10 minutes to run demo code (including upgrade to JavaFX 11)
  • Must support Gradle 6.6.1 (or greater)
  • Must have license
  • Should have a small footprint (< 100 kb)
  • Should be pane-based, but a tab-based solution is acceptable
  • Should support styling (skins), including dark and light
  • Should have hooks for persistence (coordinates, splitter positions)
  • Should be well-documented
  • Should have a burgeoning following (> 25 stargazers)

Solutions

A number of solutions exist; this section reviews the pros and cons of each library. A ✔ indicates that it may be suitable for integration; a ✘ means the library is unsuitable (the reason for elimination is marked bold in the cons list); no mark means the library has not been put on trial.

PitchDockFX (fork)

Forked from TiwulFX 3 (below) to extract docking functionality.

  • Pros: Small footprint, can be styled, works on Linux, lightweight
  • Cons: < 10 stargazers, tab-based, LGPLv2, forked

DraggableTabs

  • Pros: Small footprint, Apache License, can be styled, works on Linux, lightweight
  • Cons: < 10 stargazers, minor bugs, tab-based, tab rearrangement is finicky at best, no reorder support

fx-docking-9

  • Pros: Potentially works with Linux and does not require tab-panes?
  • Cons: No external documentation, < 10 stargazers, no license

TiwulFX 3

  • Pros: Recently updated, demo video looks good, supports JavaFX 11, works on Linux
  • Cons: Framework, tab-based, LGPLv2.1, spreadsheet support, no small footprint (many dependencies, including POI)
  • Demo

DockFX

  • Pros: Looks great, exact functionality required, clean API, well-documented code, small size, 100+ stargazers
  • Cons: LGPLv3, could be broken on Linux, unresolved issues dating to 2015, no JavaFX 11 support.
  • Screenshot

DockFX (fork)

Fork of DockFX that includes numerous fixes.

  • Cons: No JavaFX 11 support.

DesktopPaneFX

  • Pros: May not suffer from Linux-related issues, updated recently, looks good.
  • Cons: Doesn't appear to be dockable, per se; < 100 stargazers; minimized windows take up screen real-estate; XFCE (X11?) hotkeys could have trouble being passed to the internal windows, no JavaFX 11 support.
  • Screenshot

DndDockFX

  • Pros: Small footprint, MIT license, true cross-platform, excellent summary of issues with other docking APIs
  • Cons: < 50 stargazers, tab-based, no Linux support

DockSystemFX

  • Pros: Well-documented, Apache 2 License, looks great, skinnable, panels can be hidden various ways
  • Cons: < 10 stargazers, fixed-layout, no drag-and-drop support

MiniDockFx

  • Pros: Small footprint, BSD license, true cross-platform, identifies issues with other dockers, updated recently, stores split positions as preferences
  • Cons: < 10 stargazers, tab-based, fixed-layout
  • Screenshot

AnchorFX

  • Pros: Looks good, pane-based, simple API, 100+ stargazers
  • Cons: LGPLv3, no recent activity, no Linux support
  • Screenshot

FxDock

  • Pros: Simple framework, Apache License, recent activity
  • Cons: < 50 stargazers, tab-based, no Linux support
  • Screenshot

Drombler FX

  • Pros: Well-documented, well-organized, OSGi-compliant
  • Cons: < 100 stargazers, Tab-based, duplicate functionality with existing code base, more of an application framework than docking widget, no drag-and-drop support (JDK bug)
  • Example

FxDocking

  • Pros: Very small footprint
  • Cons: Tab-based, < 10 stargazers, incomplete, no Linux support
  • Screenshot

javafx.DndTabPane

  • Pros: Small footprint, skinnable, EPL license, true cross-platform
  • Cons: < 10 stargazers, tab-based, no Java demo code

iroshell

I did not run (or create) a demo for this framework.

  • Pros: Provides multi-document interface (presumably dockable), MIT license, updated recently
  • Cons: < 10 stargazers, UI framework (not a simple widget)