From ea9514aec53d5ce5a9b06c4f1e9ece84c5487071 Mon Sep 17 00:00:00 2001 From: Eugene Vigdorchik Date: Thu, 10 Mar 2005 13:15:32 +0300 Subject: [PATCH] IDEADEV-555 --- .../changeSignature/ChangeSignatureDialog.java | 12 ++++++++---- .../changeSignature/ParameterTableModel.java | 7 +++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/source/com/intellij/refactoring/changeSignature/ChangeSignatureDialog.java b/source/com/intellij/refactoring/changeSignature/ChangeSignatureDialog.java index dccf70e42d76..27edbd442cb0 100644 --- a/source/com/intellij/refactoring/changeSignature/ChangeSignatureDialog.java +++ b/source/com/intellij/refactoring/changeSignature/ChangeSignatureDialog.java @@ -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); } diff --git a/source/com/intellij/refactoring/changeSignature/ParameterTableModel.java b/source/com/intellij/refactoring/changeSignature/ParameterTableModel.java index 8e11caa12ab2..5c49f6e10abf 100644 --- a/source/com/intellij/refactoring/changeSignature/ParameterTableModel.java +++ b/source/com/intellij/refactoring/changeSignature/ParameterTableModel.java @@ -19,6 +19,7 @@ class ParameterTableModel extends AbstractTableModel implements RowEditableTable private List 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;