mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEADEV-555
This commit is contained in:
@@ -33,6 +33,7 @@ import com.intellij.util.ui.Table;
|
||||
import com.intellij.util.ui.Tree;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.TableColumn;
|
||||
import javax.swing.event.TableModelEvent;
|
||||
import javax.swing.event.TableModelListener;
|
||||
import java.awt.*;
|
||||
@@ -231,7 +232,7 @@ public class ChangeSignatureDialog extends RefactoringDialog {
|
||||
private DelegationPanel createDelegationPanel() {
|
||||
return new DelegationPanel() {
|
||||
protected void stateModified() {
|
||||
myParametersTableModel.fireTableStructureChanged();
|
||||
myParametersTableModel.fireTableDataChanged();
|
||||
configureParameterTableEditors();
|
||||
}
|
||||
};
|
||||
@@ -257,8 +258,8 @@ public class ChangeSignatureDialog extends RefactoringDialog {
|
||||
panel.add(subPanel, BorderLayout.CENTER);
|
||||
|
||||
JPanel subPanel1 = new JPanel(new GridBagLayout());
|
||||
subPanel1.add(createExceptionsPanel(), new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.VERTICAL, new Insets(4,4,4,0), 0, 0));
|
||||
subPanel1.add(createSignaturePanel(), new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(4,0,4,4), 0, 0));
|
||||
subPanel1.add(createExceptionsPanel(), new GridBagConstraints(0, 0, 1, 1, 0.5, 0.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(4,4,4,0), 0, 0));
|
||||
subPanel1.add(createSignaturePanel(), new GridBagConstraints(1, 0, 1, 1, 0.5, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(4,0,4,4), 0, 0));
|
||||
panel.add(subPanel1, BorderLayout.SOUTH);
|
||||
|
||||
return panel;
|
||||
@@ -268,7 +269,10 @@ public class ChangeSignatureDialog extends RefactoringDialog {
|
||||
private JPanel createParametersPanel() {
|
||||
myParametersTable = new Table(myParametersTableModel);
|
||||
myParametersTable.setFocusCycleRoot(true);
|
||||
|
||||
final int minWidth = new JCheckBox().getPreferredSize().width;
|
||||
final TableColumn anyVarColumn = myParametersTable.getColumnModel().getColumn(3);
|
||||
final int headerWidth = myParametersTable.getFontMetrics(myParametersTable.getFont()).stringWidth(ParameterTableModel.ANY_VAR_COLUMN_NAME) + 8;
|
||||
anyVarColumn.setMaxWidth(Math.max(minWidth, headerWidth));
|
||||
configureParameterTableEditors();
|
||||
return createTablePanelImpl(myParametersTable, myParametersTableModel, "Parameters", true);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ class ParameterTableModel extends AbstractTableModel implements RowEditableTable
|
||||
private List<PsiCodeFragment> myDefaultValuesCodeFragments;
|
||||
private final PsiElement myContext;
|
||||
private final ChangeSignatureDialog myDialog;
|
||||
static final String ANY_VAR_COLUMN_NAME = "Any var";
|
||||
|
||||
public ParameterTableModel(PsiElement context, ChangeSignatureDialog dialog) {
|
||||
myContext = context;
|
||||
@@ -75,7 +76,7 @@ class ParameterTableModel extends AbstractTableModel implements RowEditableTable
|
||||
}
|
||||
|
||||
public int getColumnCount() {
|
||||
return myDialog.isGenerateDelegate() ? 3 : 4;
|
||||
return 4;
|
||||
}
|
||||
|
||||
public Object getValueAt(int rowIndex, int columnIndex) {
|
||||
@@ -132,7 +133,7 @@ class ParameterTableModel extends AbstractTableModel implements RowEditableTable
|
||||
case 2:
|
||||
return "Default value";
|
||||
case 3:
|
||||
return "Any var";
|
||||
return ANY_VAR_COLUMN_NAME;
|
||||
default:
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
@@ -154,6 +155,8 @@ class ParameterTableModel extends AbstractTableModel implements RowEditableTable
|
||||
|
||||
case 3:
|
||||
{
|
||||
if (myDialog.isGenerateDelegate()) return false;
|
||||
|
||||
final PsiType typeByRow = getTypeByRow(rowIndex);
|
||||
final boolean isEllipsis = typeByRow instanceof PsiEllipsisType;
|
||||
return !isEllipsis && myParameterInfos.get(rowIndex).oldParameterIndex < 0;
|
||||
|
||||
Reference in New Issue
Block a user