{"id":13798606,"url":"https://github.com/panemu/tiwulfx-dock","last_synced_at":"2025-05-13T06:31:32.072Z","repository":{"id":42429617,"uuid":"308909151","full_name":"panemu/tiwulfx-dock","owner":"panemu","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-06T14:22:50.000Z","size":470,"stargazers_count":39,"open_issues_count":2,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-09-06T17:02:45.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/panemu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-31T15:14:03.000Z","updated_at":"2024-09-06T14:22:54.000Z","dependencies_parsed_at":"2024-02-16T09:48:02.873Z","dependency_job_id":null,"html_url":"https://github.com/panemu/tiwulfx-dock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panemu%2Ftiwulfx-dock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panemu%2Ftiwulfx-dock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panemu%2Ftiwulfx-dock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panemu%2Ftiwulfx-dock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panemu","download_url":"https://codeload.github.com/panemu/tiwulfx-dock/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225183751,"owners_count":17434169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T00:00:46.941Z","updated_at":"2024-11-18T13:31:27.702Z","avatar_url":"https://github.com/panemu.png","language":"Java","funding_links":["https://ko-fi.com/s/83a7708c3b'"],"categories":["Community"],"sub_categories":["Libraries"],"readme":"# TiwulFX Dock\n\n[![JFXCentral](https://img.shields.io/badge/Find_me_on-JFXCentral-blue?logo=googlechrome\u0026logoColor=white)](https://www.jfx-central.com/libraries/tiwulfxdock)\n\nTiwulFX-Dock provides enhanced JavaFX TabPane that supports tab reordering, detaching and docking.\n\n![Demo](media/tiwulfx-dock-demo.gif)\n\n## Usage\n\nCheck latest release version in [maven repo](https://repo1.maven.org/maven2/com/panemu/tiwulfx-dock/). Maven dependency:\n```\n\u003cdependency\u003e\n   \u003cgroupId\u003ecom.panemu\u003c/groupId\u003e\n   \u003cartifactId\u003etiwulfx-dock\u003c/artifactId\u003e\n   \u003cversion\u003e${version.tiwulfx-docx}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nWrap DetachableTabPane inside a SplitPane. Below is an example in FXML file:\n```\n\u003cSplitPane VBox.vgrow=\"ALWAYS\"\u003e\n\t\u003citems\u003e\n\t\t\u003cDetachableTabPane fx:id=\"myTabPane\" /\u003e\n\t\u003c/items\u003e\n\u003c/SplitPane\u003e\n```\n\nThen if the java class file has a variable holding reference to the DetachableTabPane, then add this\n```\nmyTabPane.setOnClosedPassSibling((sibling) -\u003e myTabPane = sibling);\n```\n\n## Customization\n\nAll of the following customization examples are shown in the demo projects.\n\nWhen a tab is detached, a stage is created. Set the owner of the stage with this code:\n```\nmyTabPane.setStageOwnerFactory((stage) -\u003e getScene().getWindow());\n```\n\nTo customize how detached stage looks like, use custom scene factor as follow:\n```\nmyTabPane.setSceneFactory((param) -\u003e {\n\tFrmScope1 frm = new FrmScope1();\n\tSplitPane sp = new SplitPane(param);\n\tVBox.setVgrow(sp, Priority.ALWAYS);\n\tfrm.getChildren().add(sp);\n\tScene scene1 = new Scene(frm);\n\treturn scene1;\n});\n```\n\nTake a look at styles in [tiwulfx-dock.css](https://github.com/panemu/tiwulfx-dock/blob/main/src/main/resources/com/panemu/tiwulfx/control/dock/tiwulfx-dock.css).\nProvide your own version of the styles to override the style of drop guiding path and adjacent drop buttons. For a further customization of the drag-drop indicator, extends [TabDropHint](https://github.com/panemu/tiwulfx-dock/blob/main/src/main/java/com/panemu/tiwulfx/control/dock/TabDropHint.java) class\nand supply the instance of it to the tab pane:\n```\nmyTabPane.setDropHint(new CustomDropHint());\n```\n\nAll these customization examples are shown in the demo projects.\n\n\n## License\n\nMIT\n\n### Support to buy a coffee?\n\n\u003ca href='https://ko-fi.com/s/83a7708c3b' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi1.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanemu%2Ftiwulfx-dock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanemu%2Ftiwulfx-dock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanemu%2Ftiwulfx-dock/lists"}