This commit is contained in:
anna
2010-01-27 21:56:53 +03:00
parent 837c4c9e74
commit be29e51590
3 changed files with 25 additions and 19 deletions
@@ -22,16 +22,14 @@ import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.help.HelpManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.*;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.ui.DocumentAdapter;
import com.intellij.ui.EditorComboWithBrowseButton;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.RecentsManager;
import com.intellij.ui.*;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NonNls;
@@ -147,13 +145,12 @@ class CopyFilesOrDirectoriesDialog extends DialogWrapper{
if (myShowDirectoryField) {
panel.add(new JLabel(RefactoringBundle.message("copy.files.to.directory.label")), new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(4,8,4,8),0,0));
final ComponentWithBrowseButton.BrowseFolderActionListener browseActionListener =
new ComponentWithBrowseButton.BrowseFolderActionListener<JComboBox>(RefactoringBundle.message("select.target.directory"),
RefactoringBundle.message("the.file.will.be.copied.to.this.directory"),
null, myProject, FileChooserDescriptorFactory.createSingleFolderDescriptor(),
TextComponentAccessor.STRING_COMBOBOX_WHOLE_TEXT);
myTargetDirectoryField = new EditorComboWithBrowseButton(browseActionListener, "", myProject,
myTargetDirectoryField = new EditorComboWithBrowseButton(null, "", myProject,
RECENT_KEYS);
myTargetDirectoryField.addBrowseFolderListener(RefactoringBundle.message("select.target.directory"),
RefactoringBundle.message("the.file.will.be.copied.to.this.directory"),
myProject, FileChooserDescriptorFactory.createSingleFolderDescriptor(),
EditorComboBox.COMPONENT_ACCESSOR);
myTargetDirectoryField.setTextFieldPreferredWidth(60);
panel.add(myTargetDirectoryField, new GridBagConstraints(1,1,1,1,1,0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(4,0,4,8),0,0));
@@ -24,9 +24,7 @@ import com.intellij.openapi.editor.event.DocumentEvent;
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
import com.intellij.openapi.help.HelpManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComponentWithBrowseButton;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.TextComponentAccessor;
import com.intellij.openapi.util.Disposer;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
@@ -34,6 +32,7 @@ import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.refactoring.RefactoringBundle;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.ui.EditorComboBox;
import com.intellij.ui.EditorComboWithBrowseButton;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.RecentsManager;
@@ -90,12 +89,12 @@ public class MoveFilesOrDirectoriesDialog extends DialogWrapper{
panel.add(new JLabel(RefactoringBundle.message("move.files.to.directory.label")),
new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(4,8,4,8),0,0));
final ComponentWithBrowseButton.BrowseFolderActionListener browseActionListener =
new ComponentWithBrowseButton.BrowseFolderActionListener<JComboBox>(RefactoringBundle.message("select.target.directory"),
RefactoringBundle.message("the.file.will.be.moved.to.this.directory"), null,
myProject, FileChooserDescriptorFactory.createSingleFolderDescriptor(),
TextComponentAccessor.STRING_COMBOBOX_WHOLE_TEXT);
myTargetDirectoryField = new EditorComboWithBrowseButton(browseActionListener, "", myProject, RECENT_KEYS);
myTargetDirectoryField = new EditorComboWithBrowseButton(null, "", myProject, RECENT_KEYS);
myTargetDirectoryField.addBrowseFolderListener(RefactoringBundle.message("select.target.directory"),
RefactoringBundle.message("the.file.will.be.moved.to.this.directory"),
myProject,
FileChooserDescriptorFactory.createSingleFolderDescriptor(),
EditorComboBox.COMPONENT_ACCESSOR);
myTargetDirectoryField.setTextFieldPreferredWidth(60);
panel.add(myTargetDirectoryField, new GridBagConstraints(1,1,1,1,1,0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(4,0,4,8),0,0));
@@ -28,6 +28,7 @@ import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.TextComponentAccessor;
import javax.swing.*;
import java.awt.*;
@@ -38,6 +39,15 @@ import java.util.ArrayList;
* @author max
*/
public class EditorComboBox extends JComboBox implements DocumentListener {
public static TextComponentAccessor<EditorComboBox> COMPONENT_ACCESSOR = new TextComponentAccessor<EditorComboBox>() {
public String getText(EditorComboBox component) {
return component.getText();
}
public void setText(EditorComboBox component, String text) {
component.setText(text);
}
};
private static final Logger LOG = Logger.getInstance("#com.intellij.ui.EditorTextField");
private Document myDocument;