IDEADEV-555

This commit is contained in:
Eugene Vigdorchik
2005-03-10 13:15:32 +03:00
parent 18ad997b25
commit ea9514aec5
2 changed files with 13 additions and 6 deletions
@@ -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;