Double sets property value for one change

This commit is contained in:
Alexander Lobas
2013-11-20 15:36:43 +04:00
parent ceafea25aa
commit 0bc2bc65ad
3 changed files with 14 additions and 6 deletions
@@ -308,7 +308,13 @@ public abstract class PropertyTable extends JBTable {
}
public void update(@NotNull List<? extends PropertiesContainer> containers, @Nullable Property initialSelection) {
finishEditing();
update(containers, initialSelection, true);
}
private void update(@NotNull List<? extends PropertiesContainer> containers, @Nullable Property initialSelection, boolean finishEditing) {
if (finishEditing) {
finishEditing();
}
if (mySkipUpdate) {
return;
@@ -316,7 +322,7 @@ public abstract class PropertyTable extends JBTable {
mySkipUpdate = true;
try {
if (isEditing()) {
if (finishEditing && isEditing()) {
cellEditor.stopCellEditing();
}
@@ -841,7 +847,7 @@ public abstract class PropertyTable extends JBTable {
if (isSetValue) {
if (property.needRefreshPropertyList() || needRefresh[0]) {
update();
update(myContainers, null, false);
}
else {
myModel.fireTableRowsUpdated(row, row);
@@ -1107,7 +1113,9 @@ public abstract class PropertyTable extends JBTable {
if (setValueAtRow(editingRow, value)) {
if (!continueEditing) {
tableCellEditor.stopCellEditing();
PropertyEditor editor = myProperties.get(editingRow).getEditor();
editor.removePropertyEditorListener(myPropertyEditorListener);
removeEditor();
}
}
else if (closeEditorOnError) {
@@ -40,7 +40,7 @@ public class BooleanEditor extends PropertyEditor {
myCheckBox.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (!myInsideChange) {
fireValueCommitted(true, false);
fireValueCommitted(false, true);
}
}
});
@@ -40,7 +40,7 @@ public class TextEditor extends PropertyEditor {
myTextField.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
fireValueCommitted(true, false);
fireValueCommitted(true, true);
}
});
myTextField.getDocument().addDocumentListener(