Skip to content

Conversation

@reckart
Copy link
Member

@reckart reckart commented Jan 1, 2026

What's in the PR

  • Centralize key bindings in a properties class configurable via Spring Boot
  • Inject key bindings into the button tooltips
  • Added a special converter to deal with comma-separated key binding values
  • Added tests

How to test manually

  • Try setting key bindings
  • Check if they work
  • Check if the tooltips on the buttons reflect your settings

Automatic testing

  • PR includes unit tests

Documentation

  • PR updates documentation

@reckart reckart added this to the 40.0 milestone Jan 1, 2026
@reckart reckart self-assigned this Jan 1, 2026
@reckart reckart added this to Kanban Jan 1, 2026
@github-project-automation github-project-automation bot moved this to 🔖 To do in Kanban Jan 1, 2026
@reckart reckart requested a review from Copilot January 1, 2026 01:25
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements customizable key bindings for the annotation editor, allowing users to configure keyboard shortcuts via Spring Boot properties.

  • Centralized key bindings configuration using Spring Boot @ConfigurationProperties
  • Added a custom converter (StringToEnumArrayConverter) to parse comma-separated key binding values from configuration files
  • Updated all UI components to use injected key bindings and display them in tooltips

Reviewed changes

Copilot reviewed 25 out of 26 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
KeyBindingsProperties.java Interface defining keyboard shortcut categories (navigation, editing, anchoring mode, dialog)
KeyBindingsPropertiesImpl.java Implementation with default values matching existing hard-coded shortcuts
StringToEnumArrayConverter.java Spring converter to parse comma-separated enum values into KeyType arrays
KeyBindingsUtil.java Utility for formatting KeyType arrays as human-readable shortcut strings
AnnotationAutoConfiguration.java Registers KeyBindingsPropertiesImpl and StringToEnumArrayConverter as Spring beans
UndoPanel.java Updated to inject key bindings and append shortcuts to tooltips
DocumentNavigator.java Updated to use configurable key bindings for document navigation
CurationDocumentNavigator.java Updated to use configurable key bindings for curation navigation
DefaultPagingNavigator.java Updated to use configurable key bindings for page navigation
AnnotationDetailEditorPanel.java Updated to use configurable key bindings for editing actions
AnchoringModePanel.java Updated to retrieve key bindings from configuration instead of static map
OpenDocumentDialogPanel.java Updated to use configurable key binding for closing dialog
*.utf8.properties Removed hard-coded shortcuts from tooltip text
settings_annotation-editor.adoc Documentation of available key binding configuration options
*Test.java Unit and integration tests for key bindings functionality

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@reckart reckart force-pushed the feature/4872-Customizable-key-bindings branch from 3f31fab to d52dfbf Compare January 1, 2026 01:50
@reckart reckart requested a review from Copilot January 1, 2026 01:51
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 25 out of 26 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@reckart reckart force-pushed the feature/4872-Customizable-key-bindings branch from d52dfbf to 0a8f27c Compare January 1, 2026 02:03
@reckart reckart requested a review from Copilot January 1, 2026 02:04
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 25 out of 26 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@reckart reckart force-pushed the feature/4872-Customizable-key-bindings branch from 0a8f27c to 4a651a0 Compare January 1, 2026 02:17
@reckart reckart requested a review from Copilot January 1, 2026 02:23
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 25 out of 26 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@reckart reckart force-pushed the feature/4872-Customizable-key-bindings branch from 4a651a0 to 9bc881d Compare January 1, 2026 11:05
@reckart reckart requested a review from Copilot January 1, 2026 11:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 26 out of 27 changed files in this pull request and generated 5 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Centralize key bindings in a properties class configurable via Spring Boot
- Inject key bindings into the button tooltips
- Added a special converter to deal with comma-separated key binding values
- Added tests
@reckart reckart force-pushed the feature/4872-Customizable-key-bindings branch from 9bc881d to ba8f194 Compare January 1, 2026 11:45
@reckart reckart merged commit 27b5069 into main Jan 1, 2026
4 of 5 checks passed
@reckart reckart deleted the feature/4872-Customizable-key-bindings branch January 1, 2026 13:01
@github-project-automation github-project-automation bot moved this from 🔖 To do to 🍹 Done in Kanban Jan 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: 🍹 Done

Development

Successfully merging this pull request may close these issues.

2 participants