mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[ui] Update UI for the change signature dialog
#IJPL-157817 GitOrigin-RevId: 7d37adfc97449591d15445910e93595c22239c99
This commit is contained in:
committed by
intellij-monorepo-bot
parent
6bb8dcbbe5
commit
f8b5cf39df
@@ -3,8 +3,8 @@ package com.intellij.refactoring.changeClassSignature;
|
||||
|
||||
import com.intellij.codeInsight.daemon.impl.quickfix.ChangeClassSignatureFromUsageFix;
|
||||
import com.intellij.java.refactoring.JavaRefactoringBundle;
|
||||
import com.intellij.lang.findUsages.DescriptiveNameUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.NlsContexts;
|
||||
import com.intellij.psi.*;
|
||||
@@ -16,7 +16,10 @@ import com.intellij.refactoring.ui.JavaCodeFragmentTableCellEditor;
|
||||
import com.intellij.refactoring.ui.RefactoringDialog;
|
||||
import com.intellij.refactoring.ui.StringTableCellEditor;
|
||||
import com.intellij.refactoring.util.CommonRefactoringUtil;
|
||||
import com.intellij.ui.*;
|
||||
import com.intellij.ui.ColoredTableCellRenderer;
|
||||
import com.intellij.ui.TableColumnAnimator;
|
||||
import com.intellij.ui.TableUtil;
|
||||
import com.intellij.ui.ToolbarDecorator;
|
||||
import com.intellij.ui.table.JBTable;
|
||||
import com.intellij.util.CommonJavaRefactoringUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -94,11 +97,6 @@ public class ChangeClassSignatureDialog extends RefactoringDialog {
|
||||
init();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JComponent createNorthPanel() {
|
||||
return new JLabel(JavaRefactoringBundle.message("changeClassSignature.class.label.text", DescriptiveNameUtil.getDescriptiveName(myClass)));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getHelpId() {
|
||||
return HelpID.CHANGE_CLASS_SIGNATURE;
|
||||
@@ -118,13 +116,13 @@ public class ChangeClassSignatureDialog extends RefactoringDialog {
|
||||
TableColumn valueColumn = myTable.getColumnModel().getColumn(DEFAULT_VALUE_COLUMN);
|
||||
Project project = myClass.getProject();
|
||||
nameColumn.setCellRenderer(new MyCellRenderer());
|
||||
nameColumn.setCellEditor(new StringTableCellEditor(project));
|
||||
nameColumn.setCellEditor(new StringTableCellEditor(project, true));
|
||||
boundColumn.setCellRenderer(new CodeFragmentTableCellRenderer(project));
|
||||
boundColumn.setCellEditor(new JavaCodeFragmentTableCellEditor(project));
|
||||
valueColumn.setCellRenderer(new CodeFragmentTableCellRenderer(project));
|
||||
valueColumn.setCellEditor(new JavaCodeFragmentTableCellEditor(project));
|
||||
|
||||
myTable.setPreferredScrollableViewportSize(JBUI.size(210, -1));
|
||||
myTable.setPreferredScrollableViewportSize(JBUI.size(440, -1));
|
||||
myTable.setVisibleRowCount(4);
|
||||
myTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||
myTable.getSelectionModel().setSelectionInterval(0, 0);
|
||||
@@ -141,6 +139,7 @@ public class ChangeClassSignatureDialog extends RefactoringDialog {
|
||||
if (e.getType() == TableModelEvent.INSERT) {
|
||||
myTable.getModel().removeTableModelListener(this);
|
||||
final TableColumnAnimator animator = new TableColumnAnimator(myTable);
|
||||
animator.setDelay(0);
|
||||
animator.setStep(20);
|
||||
animator.addColumn(defaultValue, myTable.getWidth() / 2);
|
||||
animator.startAndDoWhenDone(() -> myTable.editCellAt(myTable.getRowCount() - 1, 0));
|
||||
@@ -150,10 +149,7 @@ public class ChangeClassSignatureDialog extends RefactoringDialog {
|
||||
});
|
||||
}
|
||||
|
||||
final JPanel panel = new JPanel(new BorderLayout());
|
||||
panel.add(SeparatorFactory.createSeparator(JavaRefactoringBundle.message("changeClassSignature.parameters.panel.border.title"), myTable), BorderLayout.NORTH);
|
||||
panel.add(ToolbarDecorator.createDecorator(myTable).createPanel(), BorderLayout.CENTER);
|
||||
return panel;
|
||||
return new ChangeClassSignatureDialogUI(myClass, ToolbarDecorator.createDecorator(myTable).createPanel()).getPanel();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -309,6 +305,10 @@ public class ChangeClassSignatureDialog extends RefactoringDialog {
|
||||
}
|
||||
|
||||
private static class MyCellRenderer extends ColoredTableCellRenderer {
|
||||
@Override
|
||||
protected @NotNull Font getBaseFont() {
|
||||
return EditorUtil.getEditorFont();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void customizeCellRenderer(@NotNull JTable table, Object value,
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.refactoring.changeClassSignature
|
||||
|
||||
import com.intellij.java.refactoring.JavaRefactoringBundle
|
||||
import com.intellij.lang.findUsages.DescriptiveNameUtil
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.ui.dsl.builder.Align
|
||||
import com.intellij.ui.dsl.builder.LabelPosition
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import java.awt.Dimension
|
||||
import javax.swing.JComponent
|
||||
|
||||
class ChangeClassSignatureDialogUI(val classElement: PsiElement, val table: JComponent) {
|
||||
val panel = panel {
|
||||
row {
|
||||
text(JavaRefactoringBundle.message("changeClassSignature.class.label.text", DescriptiveNameUtil.getDescriptiveName(classElement)))
|
||||
}
|
||||
row {
|
||||
cell(table)
|
||||
.resizableColumn()
|
||||
.applyToComponent { minimumSize = Dimension(210, 100) }
|
||||
.align(Align.FILL)
|
||||
.label(JavaRefactoringBundle.message("changeClassSignature.parameters.panel.border.title"), LabelPosition.TOP)
|
||||
}
|
||||
.resizableRow()
|
||||
}
|
||||
}
|
||||
@@ -69,17 +69,17 @@ change.method.signature.action.name=Change Method Signature
|
||||
change.signature.default.value.missing.warning.message=Default value is missing. Method calls will contain blanks instead of the new parameter value.
|
||||
change.signature.use.any.checkbox=&Use Any Var
|
||||
changeClassSignature.bad.value=Wrong {0} value: ''{1}'' for parameter ''{2}''
|
||||
changeClassSignature.class.label.text=Change signature of {0}
|
||||
changeClassSignature.class.label.text=Change signature of <code>{0}</code>.
|
||||
changeClassSignature.no.type.parameters=Class cannot have type parameters
|
||||
changeClassSignature.parameters.panel.border.title=Parameters
|
||||
changeClassSignature.parameters.panel.border.title=Parameters:
|
||||
changeClassSignature.refactoring.name=Change Class Signature
|
||||
changeClassSignature.already.contains.type.parameter=''{0}'' already contains type parameter ''{1}''
|
||||
changeClassSignature.Type.parameter.can.not.be.primitive=Type parameter can't be primitive
|
||||
changeSignature.validating.title=Validating\u2026
|
||||
changeSignature.processing.changes.title=Processing changes\u2026
|
||||
changeSignature.bound.value.column=Bound Value:
|
||||
changeSignature.bound.value.column=Bound Value
|
||||
changeSignature.cannot.resolve.return.type=Return type ''{0}'' cannot be resolved.\nContinue?
|
||||
changeSignature.default.value.column=Default Value:
|
||||
changeSignature.default.value.column=Default Value
|
||||
changeSignature.exception.caller.chooser=Select Methods To Propagate New Exceptions
|
||||
changeSignature.exceptions.panel.border.title=Exceptions
|
||||
changeSignature.exceptions.wont.propagate=Recursive propagation of exception changes won't be performed
|
||||
|
||||
@@ -21,7 +21,7 @@ error.in.injected.lang.prefix.suffix=Selected {0} is located in the read-only pa
|
||||
error.cannot.be.renamed=This element cannot be renamed
|
||||
to.refactor=to refactor
|
||||
changeSignature.refactoring.name=Change Signature
|
||||
column.name.name=Name:
|
||||
column.name.name=Name
|
||||
changeSignature.default.value.label=Default value:
|
||||
parameters.border.title=Parameters
|
||||
changeSignature.propagate.parameters.title=Propa&gate Parameters\u2026
|
||||
|
||||
Reference in New Issue
Block a user