import com.intellij.openapi.keymap.KeymapUtil;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.UIBundle;
import com.intellij.util.ui.UIUtil;
import com.intellij.util.ui.accessibility.ScreenReader;
-import com.intellij.util.ui.update.LazyUiDisposable;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@Nullable Project project,
FileChooserDescriptor fileChooserDescriptor,
TextComponentAccessor<Comp> accessor) {
- addBrowseFolderListener(title, description, project, fileChooserDescriptor, accessor, true);
+ addActionListener(new BrowseFolderActionListener<>(title, description, this, project, fileChooserDescriptor, accessor));
}
+ /**
+ * @deprecated use {@link #addBrowseFolderListener(String, String, Project, FileChooserDescriptor, TextComponentAccessor)} instead
+ */
public void addBrowseFolderListener(@Nullable @Nls(capitalization = Nls.Capitalization.Title) String title,
@Nullable @Nls(capitalization = Nls.Capitalization.Sentence) String description,
@Nullable Project project,
FileChooserDescriptor fileChooserDescriptor,
TextComponentAccessor<Comp> accessor, boolean autoRemoveOnHide) {
- addBrowseFolderListener(project, new BrowseFolderActionListener<>(title, description, this, project, fileChooserDescriptor, accessor), autoRemoveOnHide);
+ addBrowseFolderListener(title, description, project, fileChooserDescriptor, accessor);
}
+ /**
+ * @deprecated use {@link #addActionListener(ActionListener)} instead
+ */
+ @SuppressWarnings("UnusedParameters")
public void addBrowseFolderListener(@Nullable Project project, final BrowseFolderActionListener<Comp> actionListener) {
- addBrowseFolderListener(project, actionListener, true);
+ addActionListener(actionListener);
}
+ /**
+ * @deprecated use {@link #addActionListener(ActionListener)} instead
+ */
+ @SuppressWarnings("UnusedParameters")
public void addBrowseFolderListener(@Nullable Project project, final BrowseFolderActionListener<Comp> actionListener, boolean autoRemoveOnHide) {
- if (autoRemoveOnHide) {
- new LazyUiDisposable<ComponentWithBrowseButton<Comp>>(null, this, this) {
- @Override
- protected void initialize(@NotNull Disposable parent, @NotNull ComponentWithBrowseButton<Comp> child, @Nullable Project project) {
- addActionListener(actionListener);
- Disposer.register(child, new Disposable() {
- @Override
- public void dispose() {
- removeActionListener(actionListener);
- }
- });
- }
- };
- } else {
- addActionListener(actionListener);
- }
+ addActionListener(actionListener);
}
@Override
- public void dispose() { }
+ public void dispose() {
+ ActionListener[] listeners = myBrowseButton.getActionListeners();
+ for (ActionListener listener : listeners) {
+ myBrowseButton.removeActionListener(listener);
+ }
+ }
public FixedSizeButton getButton() {
return myBrowseButton;