From f3485df867c5e42f1e738b7e00c5cfc23695c375 Mon Sep 17 00:00:00 2001 From: Jordan Ang Date: Tue, 17 Sep 2024 14:57:54 -0700 Subject: [PATCH] Fix checkstyle errors --- .../amazonq/views/AmazonQChatWebview.java | 12 ++-- .../eclipse/amazonq/views/AmazonQView.java | 59 +++++++++++-------- .../amazonq/views/ToolkitLoginWebview.java | 18 +++--- .../views/actions/AmazonQCommonActions.java | 32 ++++++---- .../views/actions/ChangeThemeAction.java | 6 +- .../FeedbackDialogContributionItem.java | 18 +++--- .../amazonq/views/actions/SignoutAction.java | 8 +-- 7 files changed, 92 insertions(+), 61 deletions(-) diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java index 046fa907..39a35163 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQChatWebview.java @@ -6,10 +6,8 @@ import org.eclipse.jface.preference.PreferenceDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.BrowserFunction; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; @@ -21,6 +19,7 @@ import software.aws.toolkits.eclipse.amazonq.util.AuthUtils; import software.aws.toolkits.eclipse.amazonq.util.PluginUtils; import software.aws.toolkits.eclipse.amazonq.util.ThreadingUtils; +import software.aws.toolkits.eclipse.amazonq.views.actions.AmazonQCommonActions; public class AmazonQChatWebview extends AmazonQView { @@ -28,11 +27,16 @@ public class AmazonQChatWebview extends AmazonQView { @Inject private Shell shell; + private Browser browser; + private AmazonQCommonActions amazonQCommonActions; private final ViewCommandParser commandParser; private final ViewActionHandler actionHandler; public AmazonQChatWebview() { + browser = getBrowser(); + amazonQCommonActions = getAmazonQCommonActions(); + this.commandParser = new LoginViewCommandParser(); this.actionHandler = new AmazonQChatViewActionHandler(); } @@ -40,7 +44,7 @@ public AmazonQChatWebview() { @Override public final void createPartControl(final Composite parent) { setupAmazonQView(parent, true); - + AuthUtils.isLoggedIn().thenAcceptAsync(isLoggedIn -> { handleAuthStatusChange(isLoggedIn); }, ThreadingUtils::executeAsyncTask); @@ -139,7 +143,7 @@ public final void selectionChanged(final IWorkbenchPart part, final ISelection s } @Override - protected void handleAuthStatusChange(final boolean isLoggedIn) { + protected final void handleAuthStatusChange(final boolean isLoggedIn) { Display.getDefault().asyncExec(() -> { amazonQCommonActions.updateActionVisibility(isLoggedIn, getViewSite()); if (!isLoggedIn) { diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQView.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQView.java index 3eac7bde..2aaf6bb8 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQView.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/AmazonQView.java @@ -22,21 +22,20 @@ import software.aws.toolkits.eclipse.amazonq.views.actions.AmazonQCommonActions; public abstract class AmazonQView extends ViewPart implements ISelectionListener { - - private static final Set amazonQViews = Set.of( + + private static final Set AMAZON_Q_VIEWS = Set.of( ToolkitLoginWebview.ID, AmazonQChatWebview.ID ); - - protected Browser browser; - protected AmazonQCommonActions amazonQCommonActions; - + private Browser browser; + private AmazonQCommonActions amazonQCommonActions; private AuthStatusChangedListener authStatusChangedListener; - - public static void showView(String viewId) { - if (!amazonQViews.contains(viewId)) { - PluginLogger.error("Failed to show view. You must add the view " + viewId + " to amazonQViews Set"); + + public static void showView(final String viewId) { + if (!AMAZON_Q_VIEWS + .contains(viewId)) { + PluginLogger.error("Failed to show view. You must add the view " + viewId + " to AMAZON_Q_VIEWS Set"); return; } @@ -53,7 +52,7 @@ public static void showView(String viewId) { // Hide all other Amazon Q Views IViewReference[] viewReferences = page.getViewReferences(); for (IViewReference viewRef : viewReferences) { - if (amazonQViews.contains(viewRef.getId()) && !viewRef.getId().equalsIgnoreCase(viewId)) { + if (AMAZON_Q_VIEWS.contains(viewRef.getId()) && !viewRef.getId().equalsIgnoreCase(viewId)) { try { page.hideView(viewRef); } catch (Exception e) { @@ -64,15 +63,23 @@ public static void showView(String viewId) { } } - protected abstract void handleAuthStatusChange(final boolean isLoggedIn); - - protected void setupAmazonQView(final Composite parent, final boolean isLoggedIn) { + public final Browser getBrowser() { + return browser; + } + + public final AmazonQCommonActions getAmazonQCommonActions() { + return amazonQCommonActions; + } + + protected abstract void handleAuthStatusChange(boolean isLoggedIn); + + protected final void setupAmazonQView(final Composite parent, final boolean isLoggedIn) { setupBrowser(parent); setupActions(isLoggedIn); setupAuthStatusListeners(); setupSelectionListener(); } - + private void setupBrowser(final Composite parent) { browser = new Browser(parent, SWT.NATIVE); Display display = Display.getCurrent(); @@ -81,26 +88,32 @@ private void setupBrowser(final Composite parent) { browser.setBackground(black); parent.setBackground(black); } - + private void setupActions(final boolean isLoggedIn) { amazonQCommonActions = new AmazonQCommonActions(isLoggedIn, getViewSite()); } - + private void setupAuthStatusListeners() { authStatusChangedListener = this::handleAuthStatusChange; - AuthUtils.addAuthStatusChangeListener(amazonQCommonActions.signoutAction); - AuthUtils.addAuthStatusChangeListener(amazonQCommonActions.feedbackDialogContributionItem); + AuthUtils.addAuthStatusChangeListener(amazonQCommonActions.getSignoutAction()); + AuthUtils.addAuthStatusChangeListener(amazonQCommonActions.getFeedbackDialogContributionAction()); } - + private void setupSelectionListener() { getSite().getPage().addSelectionListener(this); } - + @Override public final void setFocus() { browser.setFocus(); } - + + /** + * Disposes of the resources associated with this view. + * + * This method is called when the view is closed. It removes the authentication + * status change listener and the selection listener from the page. + */ @Override public void dispose() { AuthUtils.removeAuthStatusChangeListener(authStatusChangedListener); @@ -108,4 +121,4 @@ public void dispose() { super.dispose(); } -} \ No newline at end of file +} diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/ToolkitLoginWebview.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/ToolkitLoginWebview.java index 4ce2e497..fa756477 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/ToolkitLoginWebview.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/ToolkitLoginWebview.java @@ -9,10 +9,8 @@ import org.eclipse.jface.preference.PreferenceDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.BrowserFunction; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; @@ -20,37 +18,41 @@ import org.eclipse.ui.dialogs.PreferencesUtil; import jakarta.inject.Inject; -import software.aws.toolkits.eclipse.amazonq.util.AuthStatusChangedListener; import software.aws.toolkits.eclipse.amazonq.util.AuthUtils; import software.aws.toolkits.eclipse.amazonq.util.PluginUtils; import software.aws.toolkits.eclipse.amazonq.util.ThreadingUtils; +import software.aws.toolkits.eclipse.amazonq.views.actions.AmazonQCommonActions; -public class ToolkitLoginWebview extends AmazonQView { +public final class ToolkitLoginWebview extends AmazonQView { public static final String ID = "software.aws.toolkits.eclipse.amazonq.views.ToolkitLoginWebview"; @Inject private Shell shell; + private Browser browser; + private AmazonQCommonActions amazonQCommonActions; private final ViewCommandParser commandParser; private final ViewActionHandler actionHandler; public ToolkitLoginWebview() { + browser = getBrowser(); + amazonQCommonActions = getAmazonQCommonActions(); this.commandParser = new LoginViewCommandParser(); this.actionHandler = new LoginViewActionHandler(); } @Override - public final void createPartControl(final Composite parent) { + public void createPartControl(final Composite parent) { setupAmazonQView(parent, true); - + AuthUtils.isLoggedIn().thenAcceptAsync(isLoggedIn -> { handleAuthStatusChange(isLoggedIn); }, ThreadingUtils::executeAsyncTask); BrowserFunction prefsFunction = new OpenPreferenceFunction(browser, "openEclipsePreferences", this::openPreferences); browser.addDisposeListener(e -> prefsFunction.dispose()); - + new BrowserFunction(browser, ViewConstants.COMMAND_FUNCTION_NAME) { @Override @@ -124,7 +126,7 @@ private String getContent() { } @Override - public final void selectionChanged(final IWorkbenchPart part, final ISelection selection) { + public void selectionChanged(final IWorkbenchPart part, final ISelection selection) { if (selection.isEmpty()) { return; } diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/AmazonQCommonActions.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/AmazonQCommonActions.java index fd05d79e..b3dd476c 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/AmazonQCommonActions.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/AmazonQCommonActions.java @@ -7,19 +7,31 @@ import org.eclipse.ui.IActionBars; import org.eclipse.ui.IViewSite; -public class AmazonQCommonActions { - - public ChangeThemeAction changeThemeAction; - public SignoutAction signoutAction; - public FeedbackDialogContributionItem feedbackDialogContributionItem; - - public AmazonQCommonActions(final boolean isLoggedIn, IViewSite viewSite) { +public final class AmazonQCommonActions { + + private ChangeThemeAction changeThemeAction; + private SignoutAction signoutAction; + private FeedbackDialogContributionItem feedbackDialogContributionItem; + + public AmazonQCommonActions(final boolean isLoggedIn, final IViewSite viewSite) { createActions(isLoggedIn, viewSite); contributeToActionBars(viewSite); updateActionVisibility(isLoggedIn, viewSite); } - - private void createActions(final boolean isLoggedIn, IViewSite viewSite) { + + public ChangeThemeAction getChangeThemeAction() { + return changeThemeAction; + } + + public SignoutAction getSignoutAction() { + return signoutAction; + } + + public FeedbackDialogContributionItem getFeedbackDialogContributionAction() { + return feedbackDialogContributionItem; + } + + private void createActions(final boolean isLoggedIn, final IViewSite viewSite) { changeThemeAction = new ChangeThemeAction(); signoutAction = new SignoutAction(); feedbackDialogContributionItem = new FeedbackDialogContributionItem(viewSite); @@ -45,5 +57,5 @@ public void updateActionVisibility(final boolean isLoggedIn, final IViewSite vie signoutAction.updateVisibility(isLoggedIn); feedbackDialogContributionItem.updateVisibility(isLoggedIn); } - + } diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/ChangeThemeAction.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/ChangeThemeAction.java index 9bf4292a..e02bc85e 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/ChangeThemeAction.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/ChangeThemeAction.java @@ -6,10 +6,10 @@ import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; -public class ChangeThemeAction extends Action { +public final class ChangeThemeAction extends Action { private Browser browser; private boolean darkMode = Display.isSystemDarkTheme(); - + public ChangeThemeAction() { setText("Change Color"); setToolTipText("Change the color"); @@ -21,5 +21,5 @@ public void run() { darkMode = !darkMode; browser.execute("changeTheme(" + darkMode + ");"); } - + } diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/FeedbackDialogContributionItem.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/FeedbackDialogContributionItem.java index 6f945cda..ac9691fc 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/FeedbackDialogContributionItem.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/FeedbackDialogContributionItem.java @@ -11,16 +11,16 @@ import software.aws.toolkits.eclipse.amazonq.views.DialogContributionItem; import software.aws.toolkits.eclipse.amazonq.views.FeedbackDialog; -public class FeedbackDialogContributionItem implements AuthStatusChangedListener { +public final class FeedbackDialogContributionItem implements AuthStatusChangedListener { private static final String SHARE_FEEDBACK_MENU_ITEM_TEXT = "Share Feedback"; - + @Inject private Shell shell; private IViewSite viewSite; - - DialogContributionItem feedbackDialogContributionItem; - - public FeedbackDialogContributionItem(IViewSite viewSite) { + + private DialogContributionItem feedbackDialogContributionItem; + + public FeedbackDialogContributionItem(final IViewSite viewSite) { this.viewSite = viewSite; feedbackDialogContributionItem = new DialogContributionItem( new FeedbackDialog(shell), @@ -28,7 +28,7 @@ public FeedbackDialogContributionItem(IViewSite viewSite) { PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_LCL_LINKTO_HELP) ); } - + public void updateVisibility(final boolean isLoggedIn) { feedbackDialogContributionItem.setVisible(isLoggedIn); Display.getDefault().asyncExec(() -> { @@ -36,13 +36,13 @@ public void updateVisibility(final boolean isLoggedIn) { viewSite.getActionBars().getMenuManager().update(true); }); } - + public DialogContributionItem getDialogContributionItem() { return feedbackDialogContributionItem; } @Override - public void onAuthStatusChanged(boolean isLoggedIn) { + public void onAuthStatusChanged(final boolean isLoggedIn) { updateVisibility(isLoggedIn); } } diff --git a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/SignoutAction.java b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/SignoutAction.java index dc4327f0..16aa49dd 100644 --- a/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/SignoutAction.java +++ b/plugin/src/software/aws/toolkits/eclipse/amazonq/views/actions/SignoutAction.java @@ -7,7 +7,7 @@ import software.aws.toolkits.eclipse.amazonq.views.AmazonQView; import software.aws.toolkits.eclipse.amazonq.views.ToolkitLoginWebview; -public class SignoutAction extends Action implements AuthStatusChangedListener { +public final class SignoutAction extends Action implements AuthStatusChangedListener { public SignoutAction() { setText("Sign out"); } @@ -17,13 +17,13 @@ public void run() { AuthUtils.invalidateToken(); AmazonQView.showView(ToolkitLoginWebview.ID); } - + public void updateVisibility(final boolean isLoggedIn) { this.setEnabled(isLoggedIn); } @Override - public void onAuthStatusChanged(boolean isLoggedIn) { + public void onAuthStatusChanged(final boolean isLoggedIn) { updateVisibility(isLoggedIn); } -} \ No newline at end of file +}