{"id":27255522,"url":"https://github.com/bric3/intellij-platform-swing-components","last_synced_at":"2026-03-17T11:33:45.971Z","repository":{"id":205890422,"uuid":"691775583","full_name":"bric3/intellij-platform-swing-components","owner":"bric3","description":"Small library of Swing components destined to be used on the IntelliJ platform (for plugins)","archived":false,"fork":false,"pushed_at":"2025-06-25T07:20:12.000Z","size":2789,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-25T08:29:28.380Z","etag":null,"topics":["intellij-platform","intellij-plugin","swing"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bric3.png","metadata":{"files":{"readme":"README.adoc","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,"zenodo":null}},"created_at":"2023-09-14T21:36:35.000Z","updated_at":"2025-06-25T07:19:26.000Z","dependencies_parsed_at":"2023-11-18T15:05:05.743Z","dependency_job_id":"bbdc9c10-6721-4f11-b754-2646e825dbaa","html_url":"https://github.com/bric3/intellij-platform-swing-components","commit_stats":null,"previous_names":["bric3/intellij-platform-swing-components"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bric3/intellij-platform-swing-components","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fintellij-platform-swing-components","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fintellij-platform-swing-components/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fintellij-platform-swing-components/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fintellij-platform-swing-components/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bric3","download_url":"https://codeload.github.com/bric3/intellij-platform-swing-components/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bric3%2Fintellij-platform-swing-components/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30622750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T11:26:08.186Z","status":"ssl_error","status_checked_at":"2026-03-17T11:24:37.311Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["intellij-platform","intellij-plugin","swing"],"created_at":"2025-04-11T02:20:00.703Z","updated_at":"2026-03-17T11:33:45.946Z","avatar_url":"https://github.com/bric3.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"= IntelliJ Platform Swing Components\n\n⚠️ WORK IN PROGRESS ⚠️\n\n[link=https://github.com/bric3/intellij-platform-swing-components/actions/workflows/build.yaml]\nimage::https://github.com/bric3/intellij-platform-swing-components/actions/workflows/build.yaml/badge.svg[Build Workflow]\n\n\nThe goal of this project is to build a library of UI components\nfor the IntelliJ Platform, since IntelliJ is based on Swing, these\ncomponents are pure Swing but may use IntelliJ specific APIs.\n\nThe primary language is Kotlin, but using these components from Java\nshould be supported, if not then it's an API bug.\n\n== Demo of these components is provided via the demo plugin.\n\nRun the `:components-demo-plugin:runIde` task to launch the demo plugin.\n\n[source,bash]\n----\n./gradlew :components-demo-plugin:runIde\n----\n\nOr the shipped run configuration _demo-plugin [runIde]_ for IntelliJ IDEA.\n\n== Components\n\n* `ScaledJBTable` and `ScaledTableView` fix an issue regarding the row height\nwhen using custom renderer and switching back and forth between presentation mode.\n+\nNote a fix is coming in https://github.com/JetBrains/intellij-community/commit/f861bdb0e69a9af16b777e1e29cc3131e8e58987[2023.3],\nsee https://youtrack.jetbrains.com/issue/IDEA-320501/Zooming-in-tables-in-Profiler-TW[IDEA-320501] and https://youtrack.jetbrains.com/issue/IDEA-289745/JBTable.updateUI-does-not-recompute-the-row-height-which-breaks-when-switching-presentation-mode[IDEA-289745].\n+\n+ Compare without and with the fix:\n+\n.Presentation mode *before* fix\nimage::.github/images/ScalableJTable-presentation-mode-nofix.png[Without fix]\n+\n.Presentation mode *after* fix\nimage::.github/images/ScalableJTable-presentation-mode-withfix.png[After fix]\n+\n.Zoom at 150% *before* fix\nimage::.github/images/ScalableJTable-zoom-150-nofix.png[Without fix]\n+\n.Zoom at 150% *after* fix\nimage::.github/images/ScalableJTable-zoom-150-withfix.png[Without fix]\n\n\n* `ColoredProgressBar`, it allows using a custom color for the progress bar,\nthe `JProgressBar` with the regular DarculaUI does not allow that.\n+\nimage::.github/images/ColoredProgressBar.png[ColoredProgressBar]\n\n* `HoveringToolbar` allows showing a toolbar when hovering a table row.\n+\nimage::.github/images/HoveringToolbar.gif[HoveringToolbar]\n\n* `SvgIcon` allows using SVG icons, it is based on the `SvgDocument` from https://github.com/weisJ/jsvg[JSVG]\n+\nimage::.github/images/SvgIcon.png[SvgIcon]\n\n* `ExpandableSplitter` allows expanding/collapsing a component in a similar way as the IntelliJ's\nGit Toolwindow to show branches.\n+\nimage::.github/images/ExpandableSplitter.gif[ExpandableSplitter]\n\n* `DialogWrapper2` extends `DialogWrapper` with methods to convert `com.intellij.openapi.actionSystem.AnAction` to\n`javax.swing.Action`, multiple choice buttons are supported as well.\n+\nimage::.github/images/DialogWrapper2.png[DialogWrapper2]\n\n== Tests\n\nI don't exactly know how to test Swing components at this time,\nso this part is skipped for now. This is definitely an area that\nneeds help.\n\n== License\n\nThis work is licensed under *Mozilla Public License 2.0* unless mentioned otherwise\nin specific classes or packages. Basically MPL 2 allows commercial use and\ndistribution under a proprietary license, but it is required:\n\n. to mention the origin and the associated license somewhere.\n. to disclose any modifications under the same license.\n\nFor more details, it is encouraged to read the https://www.mozilla.org/en-US/MPL/2.0/[license itself].\n\n\u003e IntelliJ Platform Swing Components\n\u003e\n\u003e Copyright (c) 2023 - Brice Dutheil\n\u003e\n\u003e This Source Code Form is subject to the terms of the Mozilla Public\n\u003e License, v. 2.0. If a copy of the MPL was not distributed with this\n\u003e file, You can obtain one at https://mozilla.org/MPL/2.0/.\n\u003e\n\u003e SPDX-License-Identifier: MPL-2.0","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbric3%2Fintellij-platform-swing-components","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbric3%2Fintellij-platform-swing-components","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbric3%2Fintellij-platform-swing-components/lists"}