diff --git a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/annotations/UITest.java b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/annotations/UITest.java index c73130532..a637a52d7 100644 --- a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/annotations/UITest.java +++ b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/annotations/UITest.java @@ -10,12 +10,12 @@ ******************************************************************************/ package org.jboss.tools.intellij.openshift.test.ui.annotations; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; +import org.junit.jupiter.api.Tag; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; - -import org.junit.jupiter.api.Tag; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * @author Ondrej Dockal diff --git a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ImportProjectFromVersionControlFixture.java b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ImportProjectFromVersionControlFixture.java index 4c8f9c5b4..d97babb2b 100644 --- a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ImportProjectFromVersionControlFixture.java +++ b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ImportProjectFromVersionControlFixture.java @@ -18,7 +18,9 @@ import com.intellij.remoterobot.fixtures.FixtureName; import com.intellij.remoterobot.fixtures.JTextFieldFixture; import org.jetbrains.annotations.NotNull; + import java.time.Duration; + import static com.intellij.remoterobot.search.locators.Locators.byXpath; /** diff --git a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ProjectTreeFixture.java b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ProjectTreeFixture.java index 8cc9c8ccc..c1b5cd6a6 100644 --- a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ProjectTreeFixture.java +++ b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/ProjectTreeFixture.java @@ -17,7 +17,9 @@ import com.intellij.remoterobot.fixtures.FixtureName; import com.intellij.remoterobot.fixtures.JTreeFixture; import org.jetbrains.annotations.NotNull; + import java.time.Duration; + import static com.intellij.remoterobot.search.locators.Locators.byXpath; import static com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor; diff --git a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/WelcomeDialogFixture.java b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/WelcomeDialogFixture.java index 5f905d3c9..93cff2b4e 100644 --- a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/WelcomeDialogFixture.java +++ b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/common/WelcomeDialogFixture.java @@ -14,10 +14,12 @@ import com.intellij.remoterobot.data.RemoteComponent; import com.intellij.remoterobot.fixtures.ComponentFixture; import com.intellij.remoterobot.fixtures.ContainerFixture; -import org.jetbrains.annotations.NotNull; import com.intellij.remoterobot.fixtures.DefaultXpath; import com.intellij.remoterobot.fixtures.FixtureName; +import org.jetbrains.annotations.NotNull; + import java.time.Duration; + import static com.intellij.remoterobot.search.locators.Locators.byXpath; /** diff --git a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/views/GettingStartedView.java b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/views/GettingStartedView.java index c60ca3f58..fee9798f9 100644 --- a/src/it/java/org/jboss/tools/intellij/openshift/test/ui/views/GettingStartedView.java +++ b/src/it/java/org/jboss/tools/intellij/openshift/test/ui/views/GettingStartedView.java @@ -12,7 +12,11 @@ import com.intellij.remoterobot.RemoteRobot; import com.intellij.remoterobot.data.RemoteComponent; -import com.intellij.remoterobot.fixtures.*; +import com.intellij.remoterobot.fixtures.ComponentFixture; +import com.intellij.remoterobot.fixtures.ContainerFixture; +import com.intellij.remoterobot.fixtures.DefaultXpath; +import com.intellij.remoterobot.fixtures.FixtureName; +import com.intellij.remoterobot.fixtures.JTreeFixture; import com.intellij.remoterobot.search.locators.Locator; import com.intellij.remoterobot.utils.Keyboard; import com.intellij.remoterobot.utils.WaitForConditionTimeoutException; diff --git a/src/main/java/org/jboss/tools/intellij/openshift/UndecoratedDialog.java b/src/main/java/org/jboss/tools/intellij/openshift/UndecoratedDialog.java new file mode 100644 index 000000000..12dd5ac0a --- /dev/null +++ b/src/main/java/org/jboss/tools/intellij/openshift/UndecoratedDialog.java @@ -0,0 +1,85 @@ +/******************************************************************************* + * Copyright (c) 2023 Red Hat, Inc. + * Distributed under license by Red Hat, Inc. All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v20.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + ******************************************************************************/ +package org.jboss.tools.intellij.openshift; + +import com.intellij.openapi.actionSystem.ActionManager; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.CommonShortcuts; +import com.intellij.openapi.project.DumbAwareAction; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.openapi.wm.impl.IdeGlassPaneEx; +import com.intellij.ui.PopupBorder; +import com.intellij.ui.WindowMoveListener; +import com.intellij.ui.WindowResizeListener; +import com.intellij.util.Consumer; +import com.intellij.util.ui.JBUI; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; +import java.awt.*; +import java.util.stream.Stream; + +abstract public class UndecoratedDialog extends DialogWrapper { + + public UndecoratedDialog(@Nullable Project project, + @Nullable Component parentComponent, + boolean canBeParent, + @NotNull IdeModalityType ideModalityType, + boolean createSouth) { + super(project, parentComponent, canBeParent, ideModalityType, createSouth); + init(); + } + + @Override + protected void init() { + super.init(); + setUndecorated(true); + Window dialogWindow = getPeer().getWindow(); + setBorders(); + } + + protected void closeImmediately() { + if (isVisible()) { + doCancelAction(); + } + } + + protected void registerEscapeShortcut(Consumer onEscape) { + AnAction escape = ActionManager.getInstance().getAction("EditorEscape"); + DumbAwareAction.create(onEscape::accept) + .registerCustomShortcutSet( + escape == null ? CommonShortcuts.ESCAPE : escape.getShortcutSet(), + getRootPane(), + getDisposable()); + } + + protected void setGlassPaneResizable() { + WindowResizeListener resizeListener = new WindowResizeListener(getRootPane(), JBUI.insets(10), null); + IdeGlassPaneEx glassPane = (IdeGlassPaneEx) getRootPane().getGlassPane(); + glassPane.addMousePreprocessor(resizeListener, getDisposable()); + glassPane.addMouseMotionPreprocessor(resizeListener, getDisposable()); + } + + private void setBorders() { + getRootPane().setBorder(PopupBorder.Factory.create(true, true)); + getRootPane().setWindowDecorationStyle(JRootPane.NONE); + } + + protected void setMovableUsing(JComponent... movableComponents) { + WindowMoveListener windowMoveListener = new WindowMoveListener(getRootPane()); + Stream.of(movableComponents).forEach( + component -> component.addMouseListener(windowMoveListener)); + } + +} diff --git a/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/AddHelmRepoAction.java b/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/AddHelmRepoAction.java new file mode 100644 index 000000000..a2e3c9773 --- /dev/null +++ b/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/AddHelmRepoAction.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2023 Red Hat, Inc. + * Distributed under license by Red Hat, Inc. All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v20.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + ******************************************************************************/ +package org.jboss.tools.intellij.openshift.actions.helm; + +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.project.Project; +import org.jboss.tools.intellij.openshift.actions.HelmAction; +import org.jboss.tools.intellij.openshift.actions.NodeUtils; +import org.jboss.tools.intellij.openshift.telemetry.TelemetryService; +import org.jboss.tools.intellij.openshift.tree.application.ApplicationsRootNode; +import org.jboss.tools.intellij.openshift.tree.application.HelmRepositoriesNode; +import org.jboss.tools.intellij.openshift.ui.helm.AddHelmRepoDialog; +import org.jboss.tools.intellij.openshift.utils.helm.Helm; +import org.jetbrains.annotations.NotNull; + +public class AddHelmRepoAction extends HelmAction { + + @Override + public void actionPerformedOnSelectedObject(AnActionEvent anActionEvent, Object selected, @NotNull Helm helm) { + Project project = getEventProject(anActionEvent); + ApplicationsRootNode rootNode = NodeUtils.getRoot(selected); + if (rootNode == null) { + return; + } + AddHelmRepoDialog dialog = new AddHelmRepoDialog(rootNode, helm, project); + sendTelemetryResults(TelemetryService.TelemetryResult.SUCCESS); + dialog.show(); + } + + @Override + public String getTelemetryActionName() { + return "helm-add repo"; + } + + @Override + public boolean isVisible(Object selected) { + return selected instanceof HelmRepositoriesNode; + } +} diff --git a/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/OpenHelmChartsAction.java b/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/OpenHelmChartsAction.java index 97cb2f471..345eb4e16 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/OpenHelmChartsAction.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/actions/helm/OpenHelmChartsAction.java @@ -13,10 +13,10 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.Project; import org.jboss.tools.intellij.openshift.actions.HelmAction; +import org.jboss.tools.intellij.openshift.actions.NodeUtils; import org.jboss.tools.intellij.openshift.telemetry.TelemetryService; import org.jboss.tools.intellij.openshift.tree.application.ApplicationsRootNode; import org.jboss.tools.intellij.openshift.tree.application.NamespaceNode; -import org.jboss.tools.intellij.openshift.tree.application.ParentableNode; import org.jboss.tools.intellij.openshift.ui.helm.ChartsDialog; import org.jboss.tools.intellij.openshift.utils.helm.Helm; import org.jboss.tools.intellij.openshift.utils.odo.Odo; @@ -27,11 +27,10 @@ public class OpenHelmChartsAction extends HelmAction { @Override public void actionPerformedOnSelectedObject(AnActionEvent anActionEvent, Object selected, @NotNull Helm helm) { Project project = getEventProject(anActionEvent); - ParentableNode parentableNode = ((ParentableNode) selected); - if (parentableNode == null) { + ApplicationsRootNode rootNode = NodeUtils.getRoot(selected); + if (rootNode == null) { return; } - ApplicationsRootNode rootNode = parentableNode.getRoot(); Odo odo = rootNode.getOdo().getNow(null); if (odo == null) { return; diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/SwingUtils.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/SwingUtils.java index 33cf1019b..c10c1b4ef 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/ui/SwingUtils.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/SwingUtils.java @@ -10,33 +10,15 @@ ******************************************************************************/ package org.jboss.tools.intellij.openshift.ui; -import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.wm.impl.IdeGlassPaneEx; import com.intellij.ui.JBColor; import com.intellij.ui.SizedIcon; -import com.intellij.ui.WindowMoveListener; -import com.intellij.ui.WindowResizeListener; import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.scale.JBUIScale; import com.intellij.ui.table.JBTable; import com.intellij.util.containers.JBIterable; import com.intellij.util.ui.JBFont; -import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; -import org.jetbrains.annotations.NotNull; - -import javax.swing.AbstractButton; -import javax.swing.DefaultCellEditor; -import javax.swing.Icon; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JLabel; -import javax.swing.JRootPane; -import javax.swing.JTable; -import javax.swing.table.AbstractTableModel; -import javax.swing.table.TableCellEditor; -import javax.swing.text.JTextComponent; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; @@ -47,6 +29,16 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; +import javax.swing.AbstractButton; +import javax.swing.DefaultCellEditor; +import javax.swing.Icon; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.table.AbstractTableModel; +import javax.swing.table.TableCellEditor; +import javax.swing.text.JTextComponent; +import org.jetbrains.annotations.NotNull; public class SwingUtils { @@ -136,19 +128,6 @@ private static JBIterable focusableComponents(@NotNull Component comp .filter(c -> c instanceof JComboBox || c instanceof AbstractButton || c instanceof JTextComponent); } - public static void setGlassPaneResizable(JRootPane rootPane, Disposable disposable) { - WindowResizeListener resizeListener = new WindowResizeListener(rootPane, JBUI.insets(10), null); - IdeGlassPaneEx glassPane = (IdeGlassPaneEx) rootPane.getGlassPane(); - glassPane.addMousePreprocessor(resizeListener, disposable); - glassPane.addMouseMotionPreprocessor(resizeListener, disposable); - } - - public static void setMovable(JRootPane rootPane, JComponent... movableComponents) { - WindowMoveListener windowMoveListener = new WindowMoveListener(rootPane); - Stream.of(movableComponents).forEach( - component -> component.addMouseListener(windowMoveListener)); - } - public static Point locationOrMouseLocation(Point location) { if (location == null) { location = MouseInfo.getPointerInfo().getLocation(); diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/AddHelmRepoDialog.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/AddHelmRepoDialog.java new file mode 100644 index 000000000..d6dcc0cfd --- /dev/null +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/AddHelmRepoDialog.java @@ -0,0 +1,120 @@ +/******************************************************************************* + * Copyright (c) 2023 Red Hat, Inc. + * Distributed under license by Red Hat, Inc. All rights reserved. + * This program is made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v20.html + * + * Contributors: + * Red Hat, Inc. - initial API and implementation + ******************************************************************************/ +package org.jboss.tools.intellij.openshift.ui.helm; + +import com.intellij.icons.AllIcons; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.wm.IdeFocusManager; +import com.intellij.ui.components.JBLabel; +import com.intellij.ui.components.JBPanel; +import com.intellij.ui.components.JBTextField; +import net.miginfocom.swing.MigLayout; +import org.jboss.tools.intellij.openshift.UndecoratedDialog; +import org.jboss.tools.intellij.openshift.tree.application.ApplicationsRootNode; +import org.jboss.tools.intellij.openshift.utils.helm.Helm; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.swing.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.io.IOException; +import java.util.concurrent.CompletableFuture; + +import static org.jboss.tools.intellij.openshift.ui.SwingUtils.EXECUTOR_BACKGROUND; +import static org.jboss.tools.intellij.openshift.ui.SwingUtils.setBold; + +public class AddHelmRepoDialog extends UndecoratedDialog { + + private static final Logger LOGGER = LoggerFactory.getLogger(AddHelmRepoDialog.class); + + private final ApplicationsRootNode rootNode; + private final Helm helm; + private JBLabel title; + + public AddHelmRepoDialog(ApplicationsRootNode rootNode, Helm helm, Project project) { + super(project, null, false, IdeModalityType.MODELESS, true); + this.rootNode = rootNode; + this.helm = helm; + init(); + } + + @Override + protected void init() { + super.init(); + setOKButtonText("Add"); + setGlassPaneResizable(); + setMovableUsing(title); + registerEscapeShortcut(e -> closeImmediately()); + } + + @Override + protected @Nullable JComponent createCenterPanel() { + JBPanel panel = new JBPanel<>(new MigLayout( + "flowx, ins 0, gap 0, fillx, filly, hidemode 3", + "[left][300:pref][right]")); + + this.title = new JBLabel("Add repository"); + setBold(title); + panel.add(title, "spanx 2, gap 0 0 0 16"); + + JBLabel closeIcon = new JBLabel(); + closeIcon.setIcon(AllIcons.Windows.CloseSmall); + closeIcon.addMouseListener(onClose()); + panel.add(closeIcon, "aligny top, wrap"); + + JBLabel name = new JBLabel("Name:"); + panel.add(name); + JBTextField nameText = new JBTextField(); + panel.add(nameText, "growx, spanx 2, wrap"); + + JBLabel url = new JBLabel("URL:"); + panel.add(url); + JBTextField urlText = new JBTextField(); + panel.add(urlText, "growx, spanx 2, wrap"); + + JBLabel flags = new JBLabel("Flags:"); + panel.add(flags); + JBTextField flagsText = new JBTextField(); + panel.add(flagsText, "growx, spanx 2, wrap"); + + IdeFocusManager.getInstance(null).requestFocus(nameText, true); + + return panel; + } + + private CompletableFuture addRepo(String name, String url, Helm helm) { + return CompletableFuture + .runAsync(() -> { + try { + helm.addRepo(name, url); + } catch (IOException e) { + throw new RuntimeException(e.getMessage(), e); + } + }, EXECUTOR_BACKGROUND); + } + + private MouseAdapter onClose() { + return new MouseAdapter() { + @Override + public void mouseReleased(MouseEvent e) { + close(0); + } + }; + } + + @Override + protected void doOKAction() { + super.doOKAction(); + } + +} diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartIcons.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartIcons.java index 43afa2bbb..0a7e38062 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartIcons.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartIcons.java @@ -13,7 +13,7 @@ import com.intellij.ui.IconManager; import org.jboss.tools.intellij.openshift.utils.helm.ChartRelease; -import javax.swing.Icon; +import javax.swing.*; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Optional; diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartPanels.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartPanels.java index e3a510eeb..a297cb568 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartPanels.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartPanels.java @@ -17,8 +17,8 @@ import org.jboss.tools.intellij.openshift.utils.helm.Helm; import org.jboss.tools.intellij.openshift.utils.odo.Odo; -import javax.swing.JComponent; -import java.awt.Component; +import javax.swing.*; +import java.awt.*; import java.util.stream.Stream; public class ChartPanels extends MultiPanel { diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartsDialog.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartsDialog.java index 69fa8ac33..4dc8c6447 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartsDialog.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/ChartsDialog.java @@ -12,12 +12,7 @@ import com.intellij.find.SearchTextArea; import com.intellij.icons.AllIcons; -import com.intellij.openapi.actionSystem.ActionManager; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.CommonShortcuts; -import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.OnePixelDivider; import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.ui.OnePixelSplitter; @@ -30,6 +25,7 @@ import com.intellij.ui.table.JBTable; import com.intellij.util.ui.JBUI; import net.miginfocom.swing.MigLayout; +import org.jboss.tools.intellij.openshift.UndecoratedDialog; import org.jboss.tools.intellij.openshift.tree.application.ApplicationsRootNode; import org.jboss.tools.intellij.openshift.ui.StatusIcon; import org.jboss.tools.intellij.openshift.ui.SwingUtils; @@ -41,16 +37,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.ImageIcon; -import javax.swing.JComponent; -import javax.swing.JRootPane; -import javax.swing.JTable; -import javax.swing.JTextArea; -import javax.swing.RootPaneContainer; +import javax.swing.*; import javax.swing.border.Border; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; -import java.awt.Window; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.IOException; @@ -65,7 +55,7 @@ import static org.jboss.tools.intellij.openshift.ui.SwingUtils.setBold; import static org.jboss.tools.intellij.openshift.ui.helm.ChartVersions.toChartVersions; -public class ChartsDialog extends DialogWrapper { +public class ChartsDialog extends UndecoratedDialog { private static final Logger LOGGER = LoggerFactory.getLogger(ChartsDialog.class); @@ -93,12 +83,9 @@ public ChartsDialog(ApplicationsRootNode rootNode, Helm helm, Odo odo, Project p protected void init() { super.init(); setUndecorated(true); - Window dialogWindow = getPeer().getWindow(); - JRootPane rootPane = ((RootPaneContainer) dialogWindow).getRootPane(); - registerShortcuts(rootPane); - setBorders(rootPane); - SwingUtils.setGlassPaneResizable(getPeer().getRootPane(), getDisposable()); - SwingUtils.setMovable(getRootPane(), title, statusIcon.get()); + registerEscapeShortcut(e -> closeImmediately()); + setGlassPaneResizable(); + setMovableUsing(title, statusIcon.get()); setupTable(chartsTable, chartsTableModel, statusIcon) .thenCompose((Void) -> addDefaultRepo(helm)) @@ -110,15 +97,6 @@ private static void setBorders(JRootPane rootPane) { rootPane.setWindowDecorationStyle(JRootPane.NONE); } - private void registerShortcuts(JRootPane rootPane) { - AnAction escape = ActionManager.getInstance().getAction("EditorEscape"); - DumbAwareAction.create(e -> closeImmediately()) - .registerCustomShortcutSet( - escape == null ? CommonShortcuts.ESCAPE : escape.getShortcutSet(), - rootPane, - myDisposable); - } - @Override protected @Nullable JComponent createCenterPanel() { JBPanel panel = new JBPanel<>(new MigLayout( @@ -242,12 +220,6 @@ private CompletableFuture load( }, EXECUTOR_UI); } - private void closeImmediately() { - if (isVisible()) { - doCancelAction(); - } - } - private static Border createSearchTextBorders() { return JBUI.Borders.compound( JBUI.Borders.customLine(JBUI.CurrentTheme.BigPopup.searchFieldBorderColor(), 1, 0, 1, 0), diff --git a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/DetailsPanel.java b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/DetailsPanel.java index be04e8f46..e5950a199 100644 --- a/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/DetailsPanel.java +++ b/src/main/java/org/jboss/tools/intellij/openshift/ui/helm/DetailsPanel.java @@ -18,8 +18,7 @@ import net.miginfocom.swing.MigLayout; import org.jboss.tools.intellij.openshift.ui.SwingUtils; -import javax.swing.JButton; -import javax.swing.JLabel; +import javax.swing.*; import java.awt.event.ActionEvent; class DetailsPanel extends JBPanel implements ChartPanel, Disposable { diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index bd9b4561a..edcd78ec3 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -334,6 +334,7 @@ +