Skip to content

Fix add-connection dialog layout and add explicit single-bucket support#2

Merged
imggion merged 3 commits intomainfrom
codex/add-single-bucket-management-feature-2026-02-24
Mar 1, 2026
Merged

Fix add-connection dialog layout and add explicit single-bucket support#2
imggion merged 3 commits intomainfrom
codex/add-single-bucket-management-feature-2026-02-24

Conversation

@imggion
Copy link
Copy Markdown
Owner

@imggion imggion commented Feb 24, 2026

Motivation

  • The add-connection dialog had a UI bug where fields compressed when switching to "Single Bucket", so a stable layout was needed to avoid dynamic shrinking.
  • Single-bucket entries are a distinct domain from full accounts and should be represented, persisted and handled separately.
  • The UX should present a clear selector between Account and Single Bucket and keep each form layout stable and readable.

Description

  • Redesigned the add-connection modal: replaced the top combo with a left-hand JList type selector and a CardLayout content area so each type has its own fixed form; implemented in AccountDialog and preserved the ConnectionInput contract.
  • Added explicit single-bucket persistence and types: introduced SingleBucketConfig, SingleBucketDao, and a Flyway migration V2__add_single_bucket_support.sql.
  • Main application updates in MainWindow: added singleBucketConfigs map and singleBucketDao, added connectFromDialog flow to handle ConnectionInput (account vs single-bucket), introduced normalizeSingleBucket and toSessionAccountConfig, split createManager to accept provider/credentials, and fixed loadSavedAccounts() to always load both accounts and single-buckets.
  • Sidebar and context menu changes: extended SidebarTreePanel.AccountNode with a singleBucket flag and bucketName, added addSingleBucket/updateSingleBucket and populateBuckets helper, and adjusted selection/expand/menus to treat single-bucket entries as leaf nodes; AccountContextMenu now conditionally enables Create bucket.
  • Minor UX text changes (e.g. Add AccountAdd Connection) and defensive handling for nulls/empty buckets in tree population.

Testing

  • Ran ./gradlew test which failed during configuration evaluation because publishing.gradle requires the giteaToken property in this environment (build evaluation error).
  • Ran ./gradlew test -PgiteaToken=dummy which failed during dependency resolution due to HTTP 403 from Maven Central (could not download dependencies).
  • Ran ./gradlew compileJava -PgiteaToken=dummy --offline which failed because offline mode has no local cached dependencies.
  • Verified at runtime locally by opening the updated AccountDialog code paths and reviewed UI layout changes in the code; desktop runtime validation is recommended via ./gradlew run in an environment with network/dependency access.

Codex Task

- Add `AppIconManager` for platform-specific app icons and taskbar integration.
- Rebrand project to "OpenBucket" with updated metadata, resource paths, and logos.
- Implement detailed file type icons in `ObjectBrowserPanel`.
- Add macOS-specific `jpackage` tasks for `.app` and `.dmg` packaging.
- Refactor sidebar and dialogs for improved interaction and design.
- Update README and LICENSE files for better documentation.
@imggion imggion merged commit 1eb0910 into main Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant