Skip to content

Conversation

Copilot
Copy link

@Copilot Copilot AI commented Oct 10, 2025

Summary

This PR adds a new public API method to ContentProposalAdapter that allows callers to control whether a beep sound is emitted when programmatically opening the proposal popup with no proposals available.

Problem

Currently, ContentProposalAdapter#openProposalPopup() always emits a beep sound when the popup cannot be opened due to no proposals being available. This behavior is hardcoded and cannot be controlled by the caller. In some scenarios, such as programmatically refreshing proposals in response to automated events (e.g., file system changes), this beeping behavior is undesirable.

Solution

As suggested in the issue, this PR makes the existing private openProposalPopup(boolean) method public with a more intuitive parameter name:

// New public API - control beep behavior explicitly
adapter.openProposalPopup(false);  // Suppress beep when no proposals
adapter.openProposalPopup(true);   // Beep when no proposals (explicit)

// Existing API - unchanged behavior
adapter.openProposalPopup();       // Beeps when no proposals (default, backward compatible)

Changes

  1. New public method: openProposalPopup(boolean beep)

    • Parameter beep=true: Beeps if no proposals are available (default behavior)
    • Parameter beep=false: Suppresses the beep even when no proposals exist
    • Documented with Javadoc including @since 3.23
  2. Internal refactoring:

    • Renamed private method from openProposalPopup(boolean autoActivated) to openProposalPopup0(boolean autoActivated) to distinguish it from the new public API
    • Updated all internal calls (4 locations) to use the renamed method
  3. Testing: Added testOpenProposalPopupWithBeepParameter() to verify both beep modes work correctly

Backward Compatibility

Fully backward compatible - All existing code continues to work unchanged:

  • The parameterless openProposalPopup() method maintains its original behavior (beeps by default)
  • All existing callers will see no behavior change
  • No breaking changes to the API

Use Cases

Suppress beep for automated actions:

public void refreshProposals(List<String> newProposals) {
    proposalProvider.setProposals(newProposals);
    adapter.refresh();
    // Don't beep when refreshing programmatically
    adapter.openProposalPopup(false);
}

Keep beep for user-triggered actions:

button.addListener(SWT.Selection, e -> {
    // Beep to provide feedback if no proposals are available
    adapter.openProposalPopup(true);
});

Fixes the issue where callers had no control over the beep behavior when programmatically opening the proposal popup.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • repo.eclipse.org
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/eclipse.platform.ui/eclipse.platform.ui org.codehaus.plexus.classworlds.launcher.Launcher clean compile -Pbuild-individual-bundles (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.11/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.11/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.11 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.11/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/eclipse.platform.ui/eclipse.platform.ui org.codehaus.plexus.classworlds.launcher.Launcher clean test -Pbuild-individual-bundles -Dtest=ContentProposalAdapterTest (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>ContentProposalAdapter should have a way to prevent the beep when programatically open the popup</issue_title>
<issue_description>ContentProposalAdapter#openProposalPopup() currently has (documented) behavior to emit a "beep sound" if it can not open because there are no proposals.

It would be good to let the caller choose to suppress that.

The simplest would be to just make ContentProposalAdapter.openProposalPopup(boolean) public and rename the parameter autoActivated to beep</issue_description>

Comments on the Issue (you are @copilot in this section)

Fixes #3393


💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

@Copilot Copilot AI changed the title [WIP] Add capability to suppress beep sound in ContentProposalAdapter Add openProposalPopup(boolean beep) to allow suppressing beep when no proposals exist Oct 10, 2025
@Copilot Copilot AI requested a review from laeubi October 10, 2025 08:43
Copilot finished work on behalf of laeubi October 10, 2025 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ContentProposalAdapter should have a way to prevent the beep when programatically open the popup

2 participants