fix cell editor for exact type, create inner class should not check file in the directory

This commit is contained in:
Anna.Kozlova
2016-04-20 19:13:20 +02:00
parent a9a0ab6d40
commit e191bc72dd
2 changed files with 24 additions and 11 deletions
@@ -264,15 +264,17 @@ public class JavaIntroduceParameterObjectDelegate
conflicts.putValue(method, "Created class won't be accessible");
}
final PsiFile containingFile = method.getContainingFile();
final PsiDirectory containingDirectory = containingFile.getContainingDirectory();
PsiDirectory directory = moveDestination.getTargetDirectory(containingDirectory);
if (directory != null) {
PsiFile file = directory.findFile(classDescriptor.getClassName() + ".java");
if (file != null) {
VirtualFile virtualFile = PsiUtilCore.getVirtualFile(file);
if (virtualFile != null) {
conflicts.putValue(method, "File already exits: " + virtualFile.getPresentableUrl());
if (!classDescriptor.isCreateInnerClass()) {
final PsiFile containingFile = method.getContainingFile();
final PsiDirectory containingDirectory = containingFile.getContainingDirectory();
PsiDirectory directory = moveDestination.getTargetDirectory(containingDirectory);
if (directory != null) {
PsiFile file = directory.findFile(classDescriptor.getClassName() + ".java");
if (file != null) {
VirtualFile virtualFile = PsiUtilCore.getVirtualFile(file);
if (virtualFile != null) {
conflicts.putValue(method, "File already exits: " + virtualFile.getPresentableUrl());
}
}
}
}
@@ -84,9 +84,13 @@ public abstract class ParameterTablePanel extends AbstractParameterTablePanel<Va
typeColumn.setCellEditor(new AbstractTableCellEditor() {
TypeSelector myCurrentSelector;
final JBComboBoxTableCellEditorComponent myEditorComponent = new JBComboBoxTableCellEditorComponent();
final JLabel myTypeLabel = new JLabel();
@Nullable
public Object getCellEditorValue() {
if (myCurrentSelector.getComponent() instanceof JLabel) {
return myCurrentSelector.getSelectedType();
}
return myEditorComponent.getEditorValue();
}
@@ -95,12 +99,19 @@ public abstract class ParameterTablePanel extends AbstractParameterTablePanel<Va
final boolean isSelected,
final int row,
final int column) {
myCurrentSelector = myParameterTypeSelectors[row];
if (myParameterTypeSelectors[row].getComponent() instanceof JLabel) {
PsiType selectedType = myCurrentSelector.getSelectedType();
if (selectedType != null) {
myTypeLabel.setText(selectedType.getPresentableText());
}
return myTypeLabel;
}
myEditorComponent.setCell(table, row, column);
myEditorComponent.setOptions(myParameterTypeSelectors[row].getTypes());
myEditorComponent.setOptions(myCurrentSelector.getTypes());
myEditorComponent.setDefaultValue(getVariableData()[row].type);
myEditorComponent.setToString(o -> ((PsiType)o).getPresentableText());
myCurrentSelector = myParameterTypeSelectors[row];
return myEditorComponent;
}
});