diff options
2 files changed, 87 insertions, 61 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveListPane.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveListPane.java index 40f530e058..65465de16e 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveListPane.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemoveListPane.java @@ -13,7 +13,6 @@ import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jpt.ui.internal.listeners.SWTListChangeListenerWrapper; import org.eclipse.jpt.ui.internal.listeners.SWTPropertyChangeListenerWrapper; import org.eclipse.jpt.ui.internal.swt.ColumnAdapter; import org.eclipse.jpt.ui.internal.swt.TableModelAdapter; @@ -25,7 +24,6 @@ import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionMod import org.eclipse.jpt.utility.model.Model; import org.eclipse.jpt.utility.model.event.ListChangeEvent; import org.eclipse.jpt.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.utility.model.listener.ListChangeListener; import org.eclipse.jpt.utility.model.listener.PropertyChangeListener; import org.eclipse.jpt.utility.model.value.ListValueModel; import org.eclipse.jpt.utility.model.value.PropertyValueModel; @@ -210,48 +208,52 @@ public class AddRemoveListPane<T extends Model> extends AddRemovePane<T> }; } - private ListChangeListener buildListChangeListener() { - return new SWTListChangeListenerWrapper(buildListChangeListener_()); + @Override + protected void itemsAdded(ListChangeEvent e) { + super.itemsAdded(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } } - - private ListChangeListener buildListChangeListener_() { - return new ListChangeListener() { - public void itemsAdded(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - - public void itemsMoved(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - - public void itemsRemoved(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - - public void itemsReplaced(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - - public void listChanged(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - - public void listCleared(ListChangeEvent e) { - if (!table.isDisposed()) { - table.getParent().layout(); - } - } - }; + + @Override + protected void itemsMoved(ListChangeEvent e) { + super.itemsMoved(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } + } + + @Override + protected void itemsRemoved(ListChangeEvent e) { + super.itemsRemoved(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } + } + + @Override + protected void itemsReplaced(ListChangeEvent e) { + super.itemsReplaced(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } + } + + @Override + protected void listChanged(ListChangeEvent e) { + super.listChanged(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } + } + + @Override + protected void listCleared(ListChangeEvent e) { + super.listCleared(e); + if (!this.table.isDisposed()) { + this.table.getParent().layout(); + } } private SimplePropertyValueModel<Object> buildSelectedItemHolder() { @@ -458,11 +460,6 @@ public class AddRemoveListPane<T extends Model> extends AddRemovePane<T> buildSelectedItemPropertyChangeListener() ); - listHolder.addListChangeListener( - ListValueModel.LIST_VALUES, - buildListChangeListener() - ); - initializeTable(table); } diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemovePane.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemovePane.java index 2a1df95058..96ae1cc920 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemovePane.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/AddRemovePane.java @@ -262,38 +262,67 @@ public abstract class AddRemovePane<T extends Model> extends AbstractPane<T> return new ListChangeListener() { public void itemsAdded(ListChangeEvent e) { + AddRemovePane.this.itemsAdded(e); } public void itemsMoved(ListChangeEvent e) { + AddRemovePane.this.itemsMoved(e); } public void itemsRemoved(ListChangeEvent e) { - Object selectedItem = selectedItemHolder.getValue(); - - if (selectedItem == null) { - updateButtons(); - return; - } - - if (CollectionTools.contains(e.items(), selectedItem)) { - selectedItemHolder.setValue(null); - updateButtons(); - } + AddRemovePane.this.itemsRemoved(e); } public void itemsReplaced(ListChangeEvent e) { + AddRemovePane.this.itemsReplaced(e); } public void listChanged(ListChangeEvent e) { + AddRemovePane.this.listChanged(e); } public void listCleared(ListChangeEvent e) { - selectedItemHolder.setValue(null); - updateButtons(); + AddRemovePane.this.listCleared(e); } }; } + protected void itemsAdded(ListChangeEvent e) { + + } + + protected void itemsMoved(ListChangeEvent e) { + + } + + protected void itemsRemoved(ListChangeEvent e) { + Object selectedItem = this.selectedItemHolder.getValue(); + + if (selectedItem == null) { + updateButtons(); + return; + } + + if (CollectionTools.contains(e.items(), selectedItem)) { + this.selectedItemHolder.setValue(null); + updateButtons(); + } + } + + protected void itemsReplaced(ListChangeEvent e) { + + } + + protected void listChanged(ListChangeEvent e) { + + } + + protected void listCleared(ListChangeEvent e) { + this.selectedItemHolder.setValue(null); + updateButtons(); + } + + /** * @category Option */ |