Skip to content

Commit e951000

Browse files
authored
Merge pull request #1392 from ruudk/fix-browse
Fix browse folder buttons
2 parents e9b61ad + b31d70e commit e951000

File tree

3 files changed

+50
-90
lines changed

3 files changed

+50
-90
lines changed

src/main/java/fr/adrienbrault/idea/symfony2plugin/SettingsForm.java

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.intellij.openapi.options.Configurable;
88
import com.intellij.openapi.options.ConfigurationException;
99
import com.intellij.openapi.project.Project;
10+
import com.intellij.openapi.ui.TextBrowseFolderListener;
1011
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
1112
import com.intellij.openapi.vfs.VfsUtil;
1213
import com.intellij.openapi.vfs.VirtualFile;
@@ -18,6 +19,7 @@
1819
import org.jetbrains.annotations.Nullable;
1920

2021
import javax.swing.*;
22+
import java.awt.event.ActionEvent;
2123
import java.awt.event.MouseAdapter;
2224
import java.awt.event.MouseEvent;
2325
import java.awt.event.MouseListener;
@@ -78,13 +80,13 @@ public String getHelpTopic() {
7880
}
7981

8082
public JComponent createComponent() {
81-
pathToTranslationRootTextField.getButton().addMouseListener(createPathButtonMouseListener(pathToTranslationRootTextField.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
83+
pathToTranslationRootTextField.addBrowseFolderListener(createBrowseFolderListener(pathToTranslationRootTextField.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
8284
pathToTranslationRootTextFieldReset.addMouseListener(createResetPathButtonMouseListener(pathToTranslationRootTextField.getTextField(), Settings.DEFAULT_TRANSLATION_PATH));
8385

84-
directoryToApp.getButton().addMouseListener(createPathButtonMouseListener(directoryToApp.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
86+
directoryToApp.addBrowseFolderListener(createBrowseFolderListener(directoryToApp.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
8587
directoryToAppReset.addMouseListener(createResetPathButtonMouseListener(directoryToApp.getTextField(), Settings.DEFAULT_APP_DIRECTORY));
8688

87-
directoryToWeb.getButton().addMouseListener(createPathButtonMouseListener(directoryToWeb.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
89+
directoryToWeb.addBrowseFolderListener(createBrowseFolderListener(directoryToWeb.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
8890
directoryToWebReset.addMouseListener(createResetPathButtonMouseListener(directoryToWeb.getTextField(), Settings.DEFAULT_WEB_DIRECTORY));
8991

9092
enableSchedulerCheckBox.setEnabled(WebDeploymentUtil.isEnabled(project));
@@ -169,14 +171,10 @@ private void updateUIFromSettings() {
169171
directoryToWeb.setText(getSettings().directoryToWeb);
170172
}
171173

172-
private MouseListener createPathButtonMouseListener(final JTextField textField, final FileChooserDescriptor fileChooserDescriptor) {
173-
return new MouseListener() {
174-
@Override
175-
public void mouseClicked(MouseEvent mouseEvent) {
176-
}
177-
174+
private TextBrowseFolderListener createBrowseFolderListener(final JTextField textField, final FileChooserDescriptor fileChooserDescriptor) {
175+
return new TextBrowseFolderListener(fileChooserDescriptor) {
178176
@Override
179-
public void mousePressed(MouseEvent mouseEvent) {
177+
public void actionPerformed(ActionEvent e) {
180178
VirtualFile projectDirectory = project.getBaseDir();
181179
VirtualFile selectedFile = FileChooser.chooseFile(
182180
fileChooserDescriptor,
@@ -195,18 +193,6 @@ public void mousePressed(MouseEvent mouseEvent) {
195193

196194
textField.setText(path);
197195
}
198-
199-
@Override
200-
public void mouseReleased(MouseEvent mouseEvent) {
201-
}
202-
203-
@Override
204-
public void mouseEntered(MouseEvent mouseEvent) {
205-
}
206-
207-
@Override
208-
public void mouseExited(MouseEvent mouseEvent) {
209-
}
210196
};
211197
}
212198

src/main/java/fr/adrienbrault/idea/symfony2plugin/profiler/ui/ProfilerSettingsDialog.java

Lines changed: 34 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package fr.adrienbrault.idea.symfony2plugin.profiler.ui;
22

33
import com.intellij.openapi.fileChooser.FileChooser;
4+
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
45
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
56
import com.intellij.openapi.options.Configurable;
67
import com.intellij.openapi.options.ConfigurationException;
78
import com.intellij.openapi.project.Project;
9+
import com.intellij.openapi.ui.TextBrowseFolderListener;
810
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
911
import com.intellij.openapi.vfs.VfsUtil;
1012
import com.intellij.openapi.vfs.VirtualFile;
@@ -14,6 +16,7 @@
1416
import org.jetbrains.annotations.Nullable;
1517

1618
import javax.swing.*;
19+
import java.awt.event.ActionEvent;
1720
import java.awt.event.MouseEvent;
1821
import java.awt.event.MouseListener;
1922

@@ -50,7 +53,8 @@ public String getHelpTopic() {
5053
@Nullable
5154
@Override
5255
public JComponent createComponent() {
53-
textLocalProfilerCsvPath.getButton().addMouseListener(new MyMouseListener());
56+
textLocalProfilerCsvPath.addBrowseFolderListener(createBrowseFolderListener(textLocalProfilerCsvPath.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
57+
5458
return mainPanel;
5559
}
5660

@@ -106,49 +110,35 @@ public void disposeUIResources() {
106110

107111
}
108112

109-
private class MyMouseListener implements MouseListener {
110-
@Override
111-
public void mouseClicked(MouseEvent mouseEvent) {
112-
}
113-
114-
@Override
115-
public void mousePressed(MouseEvent mouseEvent) {
116-
VirtualFile projectDirectory = project.getBaseDir();
117-
118-
String text = textLocalProfilerCsvPath.getText();
119-
VirtualFile toSelect = VfsUtil.findRelativeFile(text, projectDirectory);
120-
if(toSelect == null) {
121-
toSelect = projectDirectory;
122-
}
123-
124-
VirtualFile selectedFile = FileChooser.chooseFile(
125-
FileChooserDescriptorFactory.createSingleFileDescriptor("csv"),
126-
project,
127-
toSelect
128-
);
129-
130-
if (null == selectedFile) {
131-
return;
132-
}
133-
134-
String path = VfsUtil.getRelativePath(selectedFile, projectDirectory, '/');
135-
if (null == path) {
136-
path = selectedFile.getPath();
113+
private TextBrowseFolderListener createBrowseFolderListener(final JTextField textField, final FileChooserDescriptor fileChooserDescriptor) {
114+
return new TextBrowseFolderListener(fileChooserDescriptor) {
115+
@Override
116+
public void actionPerformed(ActionEvent e) {
117+
VirtualFile projectDirectory = project.getBaseDir();
118+
119+
String text = textField.getText();
120+
VirtualFile toSelect = VfsUtil.findRelativeFile(text, projectDirectory);
121+
if(toSelect == null) {
122+
toSelect = projectDirectory;
123+
}
124+
125+
VirtualFile selectedFile = FileChooser.chooseFile(
126+
FileChooserDescriptorFactory.createSingleFileDescriptor("csv"),
127+
project,
128+
toSelect
129+
);
130+
131+
if (null == selectedFile) {
132+
return;
133+
}
134+
135+
String path = VfsUtil.getRelativePath(selectedFile, projectDirectory, '/');
136+
if (null == path) {
137+
path = selectedFile.getPath();
138+
}
139+
140+
textField.setText(path);
137141
}
138-
139-
textLocalProfilerCsvPath.setText(path);
140-
}
141-
142-
@Override
143-
public void mouseReleased(MouseEvent mouseEvent) {
144-
}
145-
146-
@Override
147-
public void mouseEntered(MouseEvent mouseEvent) {
148-
}
149-
150-
@Override
151-
public void mouseExited(MouseEvent mouseEvent) {
152-
}
142+
};
153143
}
154144
}

src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.intellij.openapi.fileChooser.FileChooserDescriptor;
55
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
66
import com.intellij.openapi.project.Project;
7+
import com.intellij.openapi.ui.TextBrowseFolderListener;
78
import com.intellij.openapi.ui.TextFieldWithBrowseButton;
89
import com.intellij.openapi.vfs.VfsUtil;
910
import com.intellij.openapi.vfs.VirtualFile;
@@ -58,7 +59,7 @@ public TwigNamespaceDialog(Project project, TableView<TwigPath> tableView) {
5859

5960
buttonCancel.addActionListener(e -> onCancel());
6061

61-
namespacePath.getButton().addMouseListener(createPathButtonMouseListener(namespacePath.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
62+
namespacePath.addBrowseFolderListener(createBrowseFolderListener(namespacePath.getTextField(), FileChooserDescriptorFactory.createSingleFolderDescriptor()));
6263

6364
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
6465
addWindowListener(new WindowAdapter() {
@@ -112,19 +113,15 @@ private void onCancel() {
112113
dispose();
113114
}
114115

115-
private MouseListener createPathButtonMouseListener(final JTextField textField, final FileChooserDescriptor fileChooserDescriptor) {
116-
return new MouseListener() {
116+
private TextBrowseFolderListener createBrowseFolderListener(final JTextField textField, final FileChooserDescriptor fileChooserDescriptor) {
117+
return new TextBrowseFolderListener(fileChooserDescriptor) {
117118
@Override
118-
public void mouseClicked(MouseEvent mouseEvent) {
119-
}
120-
121-
@Override
122-
public void mousePressed(MouseEvent mouseEvent) {
119+
public void actionPerformed(ActionEvent e) {
123120
VirtualFile projectDirectory = project.getBaseDir();
124121
VirtualFile selectedFile = FileChooser.chooseFile(
125-
fileChooserDescriptor,
126-
project,
127-
VfsUtil.findRelativeFile(textField.getText(), projectDirectory)
122+
fileChooserDescriptor,
123+
project,
124+
VfsUtil.findRelativeFile(textField.getText(), projectDirectory)
128125
);
129126

130127
if (null == selectedFile) {
@@ -138,22 +135,9 @@ public void mousePressed(MouseEvent mouseEvent) {
138135

139136
textField.setText(path);
140137
}
141-
142-
@Override
143-
public void mouseReleased(MouseEvent mouseEvent) {
144-
}
145-
146-
@Override
147-
public void mouseEntered(MouseEvent mouseEvent) {
148-
}
149-
150-
@Override
151-
public void mouseExited(MouseEvent mouseEvent) {
152-
}
153138
};
154139
}
155140

156-
157141
private class ChangeDocumentListener implements DocumentListener {
158142
@Override
159143
public void insertUpdate(DocumentEvent e) {

0 commit comments

Comments
 (0)