diff --git a/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/RadPropertyTable.java b/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/RadPropertyTable.java index bf6946148740..a0f96c41f87b 100644 --- a/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/RadPropertyTable.java +++ b/plugins/ui-designer-core/src/com/intellij/designer/propertyTable/RadPropertyTable.java @@ -54,15 +54,6 @@ public class RadPropertyTable extends PropertyTable implements DataProvider, Com myProject = project; - getSelectionModel().addListSelectionListener(new ListSelectionListener() { - @Override - public void valueChanged(ListSelectionEvent e) { - if (myDesigner != null) { - myDesigner.setSelectionProperty(getCurrentKey(), getSelectionProperty()); - } - } - }); - getModel().addTableModelListener(new TableModelListener() { @Override public void tableChanged(TableModelEvent e) { @@ -73,6 +64,23 @@ public class RadPropertyTable extends PropertyTable implements DataProvider, Com }); } + private final ListSelectionListener myListener = new ListSelectionListener() { + @Override + public void valueChanged(ListSelectionEvent e) { + if (myDesigner != null) { + myDesigner.setSelectionProperty(getCurrentKey(), getSelectionProperty()); + } + } + }; + + private void addSelectionListener() { + getSelectionModel().addListSelectionListener(myListener); + } + + private void removeSelectionListener() { + getSelectionModel().removeListSelectionListener(myListener); + } + public void initQuickFixManager(JViewport viewPort) { myQuickFixManager = new QuickFixManager(this, viewPort); } @@ -133,11 +141,18 @@ public class RadPropertyTable extends PropertyTable implements DataProvider, Com @Override public void update() { - if (myArea == null) { - update(Collections.emptyList(), null); + try { + removeSelectionListener(); + + if (myArea == null) { + update(Collections.emptyList(), null); + } + else { + update(myArea.getSelection(), myDesigner.getSelectionProperty(getCurrentKey())); + } } - else { - update(myArea.getSelection(), myDesigner.getSelectionProperty(getCurrentKey())); + finally { + addSelectionListener(); } }