Tomas Jelinek has uploaded a new change for review.

Change subject: frontend: introduce generics to UICommon
......................................................................

frontend: introduce generics to UICommon

Infrastructure part of the introduction of the generics into UICommon.
Changes:
- changed EntityModel and ListModel to be generic
- adjusted UiCommonEditorDriverGenerator to work with generics
- created a <String> version of the EntityModelTextBox. The widgets
  has to have proper generic types and most of them already does.
  Only the ones editing Strings (e.g. EntityModelTextBox) was set as
  <Object>. This patch introduces a generic version of this widgets
  into the .generic subpackage marking the old as depricated.

Change-Id: Ifaa6185e75adfd9405132fce2782f6c7cbc17f7f
Signed-off-by: Tomas Jelinek <[email protected]>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java
A 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java
14 files changed, 174 insertions(+), 37 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/17604/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java
index f9f2dc4..93990b6 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/binding/UiCommonEditorDriverGenerator.java
@@ -57,8 +57,9 @@
             SourceWriter sw)
             throws UnableToCompleteException {
         TypeOracle typeOracle = context.getTypeOracle();
-        entityModelType = 
typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.EntityModel"); 
//$NON-NLS-1$
-        listModelType = 
typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.ListModel"); 
//$NON-NLS-1$
+        entityModelType = 
eraseType(typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.EntityModel"));
 //$NON-NLS-1$
+        listModelType = 
eraseType(typeOracle.findType("org.ovirt.engine.ui.uicommonweb.models.ListModel"));
 //$NON-NLS-1$
+
         this.logger = logger;
         this.model = model;
         this.sw = sw;
@@ -67,6 +68,7 @@
         writeListenerMap();
         writeEventMap();
         writeOwnerModels();
+
     }
 
     /**
@@ -144,7 +146,7 @@
                 continue;
             }
 
-            JClassType propertyOwnerType = editorData.getPropertyOwnerType();
+            JClassType propertyOwnerType = 
eraseType(editorData.getPropertyOwnerType());
 
             if (propertyOwnerType == entityModelType) {
                 logger.log(Type.DEBUG, "Found EntityModel Field: " + 
editorData); //$NON-NLS-1$
@@ -191,7 +193,7 @@
                 continue;
             }
 
-            JClassType propertyOwnerType = editorData.getPropertyOwnerType();
+            JClassType propertyOwnerType = 
eraseType(editorData.getPropertyOwnerType());
 
             if (propertyOwnerType == listModelType || propertyOwnerType == 
entityModelType) {
                 logger.log(Type.DEBUG, "Found owner Model Field: " + 
editorData); //$NON-NLS-1$
@@ -203,4 +205,8 @@
         sw.println("}"); //$NON-NLS-1$
 
     }
+
+    private JClassType eraseType(JClassType classType) {
+        return classType == null ? null : classType.getErasedType();
+    }
 }
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java
index ddae9b5..c6551e6 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelRenderer.java
@@ -2,6 +2,10 @@
 
 import com.google.gwt.text.shared.AbstractRenderer;
 
+/**
+ * @deprecated use the 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelRenderer instead
+ */
+@Deprecated
 public class EntityModelRenderer extends AbstractRenderer<Object> {
 
     @Override
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java
index c5434f5..2b8ab0b 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBox.java
@@ -8,6 +8,10 @@
 import com.google.gwt.text.shared.Renderer;
 import com.google.gwt.user.client.ui.ValueBox;
 
+/**
+ * @deprecated use the 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBox instead
+ */
+@Deprecated
 public class EntityModelTextBox extends ValueBox<Object> implements 
EditorWidget<Object, ValueBoxEditor<Object>> {
 
     private ObservableValueBoxEditor editor;
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java
index 7a773c8..7e2af14 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/EntityModelTextBoxEditor.java
@@ -7,7 +7,9 @@
 
 /**
  * Composite Editor that uses {@link EntityModelTextBox}.
+ * @deprecated use 
org.ovirt.engine.ui.common.widget.editor.generic.EntityModelTextBoxEditor 
instead
  */
+@Deprecated
 public class EntityModelTextBoxEditor extends 
AbstractValueBoxWithLabelEditor<Object, EntityModelTextBox> {
 
     public EntityModelTextBoxEditor(VisibilityRenderer visibilityRenderer) {
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java
index de08bf6..8b71572 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/ObservableValueBoxEditor.java
@@ -9,7 +9,9 @@
 
 /**
  * A {@link ValueBoxEditor} that adapts to {@link HasValueChangeHandlers} 
interface.
+ * @deprecated use 
org.ovirt.engine.ui.common.widget.editor.generic.ObservableValueBoxEditor
  */
+@Deprecated
 public class ObservableValueBoxEditor extends ValueBoxEditor<Object> 
implements HasValueChangeHandlers<Object> {
     private final ValueBoxBase<Object> peer;
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java
new file mode 100644
index 0000000..fe5aaf8
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelRenderer.java
@@ -0,0 +1,12 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.text.shared.AbstractRenderer;
+
+public class EntityModelRenderer<T> extends AbstractRenderer<T> {
+
+    @Override
+    public String render(T entity) {
+        return entity == null ? null : entity.toString();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java
new file mode 100644
index 0000000..bdf4f0f
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBox.java
@@ -0,0 +1,31 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.dom.client.Document;
+import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor;
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
+import com.google.gwt.user.client.ui.ValueBox;
+import org.ovirt.engine.ui.common.widget.editor.EditorWidget;
+import org.ovirt.engine.ui.common.widget.parser.generic.EntityModelParser;
+
+public class EntityModelTextBox extends ValueBox<String> implements 
EditorWidget<String, ValueBoxEditor<String>> {
+
+    private ObservableValueBoxEditor<String> editor;
+
+    public EntityModelTextBox() {
+        super(Document.get().createTextInputElement(), new 
EntityModelRenderer<String>(), new EntityModelParser());
+    }
+
+    public EntityModelTextBox(Renderer<String> renderer, Parser<String> 
parser) {
+        super(Document.get().createTextInputElement(), renderer, parser);
+    }
+
+    @Override
+    public ValueBoxEditor<String> asEditor() {
+        if (editor == null) {
+            editor = new ObservableValueBoxEditor<String>(this);
+        }
+        return editor;
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java
new file mode 100644
index 0000000..cfd6e8a
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/EntityModelTextBoxEditor.java
@@ -0,0 +1,28 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.text.shared.Parser;
+import com.google.gwt.text.shared.Renderer;
+import org.ovirt.engine.ui.common.widget.VisibilityRenderer;
+import 
org.ovirt.engine.ui.common.widget.editor.AbstractValueBoxWithLabelEditor;
+
+/**
+ * Composite Editor that uses {@link EntityModelTextBox}.
+ */
+public class EntityModelTextBoxEditor extends 
AbstractValueBoxWithLabelEditor<String, EntityModelTextBox> {
+
+    public EntityModelTextBoxEditor(VisibilityRenderer visibilityRenderer) {
+        super(new EntityModelTextBox(), visibilityRenderer);
+    }
+
+    public EntityModelTextBoxEditor() {
+        super(new EntityModelTextBox());
+    }
+
+    public EntityModelTextBoxEditor(Renderer<String> renderer, Parser<String> 
parser) {
+        super(new EntityModelTextBox(renderer, parser));
+    }
+
+    public EntityModelTextBoxEditor(Renderer<String> renderer, Parser<String> 
parser, VisibilityRenderer visibilityRenderer) {
+        super(new EntityModelTextBox(renderer, parser), visibilityRenderer);
+    }
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java
new file mode 100644
index 0000000..b705bb3
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/editor/generic/ObservableValueBoxEditor.java
@@ -0,0 +1,31 @@
+package org.ovirt.engine.ui.common.widget.editor.generic;
+
+import com.google.gwt.editor.ui.client.adapters.ValueBoxEditor;
+import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
+import com.google.gwt.event.logical.shared.ValueChangeHandler;
+import com.google.gwt.event.shared.GwtEvent;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.ValueBoxBase;
+
+/**
+ * A {@link com.google.gwt.editor.ui.client.adapters.ValueBoxEditor} that 
adapts to {@link com.google.gwt.event.logical.shared.HasValueChangeHandlers} 
interface.
+ */
+public class ObservableValueBoxEditor<T> extends ValueBoxEditor<T> implements 
HasValueChangeHandlers<T> {
+    private final ValueBoxBase<T> peer;
+
+    public ObservableValueBoxEditor(ValueBoxBase<T> peer) {
+        super(peer);
+        this.peer = peer;
+    }
+
+    @Override
+    public void fireEvent(GwtEvent<?> event) {
+        peer.fireEvent(event);
+    }
+
+    @Override
+    public HandlerRegistration addValueChangeHandler(ValueChangeHandler<T> 
handler) {
+        return peer.addValueChangeHandler(handler);
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java
index dbf90bc..7ee6a1f 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/EntityModelParser.java
@@ -4,6 +4,10 @@
 
 import com.google.gwt.text.shared.Parser;
 
+/**
+ * @deprecated use 
org.ovirt.engine.ui.common.widget.parser.generic.EntityModelParser
+ */
+@Deprecated
 public class EntityModelParser implements Parser<Object> {
 
     @Override
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java
new file mode 100644
index 0000000..5a736eb
--- /dev/null
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/parser/generic/EntityModelParser.java
@@ -0,0 +1,13 @@
+package org.ovirt.engine.ui.common.widget.parser.generic;
+
+import com.google.gwt.text.shared.Parser;
+import java.text.ParseException;
+
+public class EntityModelParser implements Parser<String> {
+
+    @Override
+    public String parse(CharSequence text) throws ParseException {
+        return text == null ? "" : text.toString();
+    }
+
+}
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java
index e243bf0..6e90692 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/EntityModel.java
@@ -11,7 +11,7 @@
 import org.ovirt.engine.ui.uicompat.ProvidePropertyChangedEvent;
 
 @SuppressWarnings("unused")
-public class EntityModel extends Model
+public class EntityModel<T> extends Model
 {
 
     public static EventDefinition EntityChangedEventDefinition;
@@ -27,14 +27,14 @@
         privateEntityChangedEvent = value;
     }
 
-    private Object entity;
+    private T entity;
 
-    public Object getEntity()
+    public T getEntity()
     {
         return entity;
     }
 
-    public void setEntity(Object value)
+    public void setEntity(T value)
     {
         if (entity != value)
         {
@@ -59,7 +59,7 @@
         return this;
     }
 
-    public void setEntity(Object value, boolean fireEvents) {
+    public void setEntity(T value, boolean fireEvents) {
         if (fireEvents) {
             setEntity(value);
         }
@@ -78,19 +78,19 @@
         setEntityChangedEvent(new Event(EntityChangedEventDefinition));
     }
 
-    public EntityModel(Object entity) {
+    public EntityModel(T entity) {
         this();
 
         setEntity(entity);
     }
 
-    public EntityModel(String title, Object entity) {
+    public EntityModel(String title, T entity) {
         this(entity);
 
         setTitle(title);
     }
 
-    protected void entityChanging(Object newValue, Object oldValue)
+    protected void entityChanging(T newValue, T oldValue)
     {
         IProvidePropertyChangedEvent notifier =
                 (IProvidePropertyChangedEvent) ((oldValue instanceof 
IProvidePropertyChangedEvent) ? oldValue : null);
@@ -161,4 +161,5 @@
     public Convertible asConvertible() {
         return new Convertible(this);
     }
+
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java
index 8b1a4e5..3239d48 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ListModel.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.uicommonweb.models;
 
 import java.util.List;
-
 import org.ovirt.engine.ui.uicommonweb.validation.IValidation;
 import org.ovirt.engine.ui.uicommonweb.validation.ValidationResult;
 import org.ovirt.engine.ui.uicompat.Event;
@@ -14,8 +13,7 @@
 import org.ovirt.engine.ui.uicompat.ProvideCollectionChangedEvent;
 import org.ovirt.engine.ui.uicompat.ProvidePropertyChangedEvent;
 
-@SuppressWarnings("unused")
-public class ListModel extends EntityModel
+public class ListModel<T> extends EntityModel<T>
 {
 
     public static EventDefinition selectedItemChangedEventDefinition;
@@ -57,14 +55,14 @@
         privateItemsChangedEvent = value;
     }
 
-    protected List selectedItems;
+    protected List<T> selectedItems;
 
-    public List getSelectedItems()
+    public List<T> getSelectedItems()
     {
         return selectedItems;
     }
 
-    public void setSelectedItems(List value)
+    public void setSelectedItems(List<T> value)
     {
         if (selectedItems != value)
         {
@@ -76,14 +74,14 @@
         }
     }
 
-    protected Object selectedItem;
+    protected T selectedItem;
 
-    public Object getSelectedItem()
+    public T getSelectedItem()
     {
         return selectedItem;
     }
 
-    public void setSelectedItem(Object value)
+    public void setSelectedItem(T value)
     {
         if (selectedItem != value)
         {
@@ -95,14 +93,14 @@
         }
     }
 
-    protected Iterable items;
+    protected Iterable<T> items;
 
-    public Iterable getItems()
+    public Iterable<T> getItems()
     {
         return items;
     }
 
-    public void setItems(Iterable value)
+    public void setItems(Iterable<T> value)
     {
         if (items != value)
         {
@@ -158,7 +156,7 @@
         setItemsChangedEvent(new Event(ItemsChangedEventDefinition));
     }
 
-    protected void onSelectedItemChanging(Object newValue, Object oldValue)
+    protected void onSelectedItemChanging(T newValue, T oldValue)
     {
     }
 
@@ -170,7 +168,7 @@
     {
     }
 
-    protected void selectedItemsChanging(List newValue, List oldValue)
+    protected void selectedItemsChanging(List<T> newValue, List<T> oldValue)
     {
         // Skip this method when notifying on property change for any
         // item but not only for selected ones is requested.
@@ -198,7 +196,7 @@
                 boolean anyOfSelectedItem = false;
                 if (getSelectedItems() != null)
                 {
-                    for (Object item : getSelectedItems())
+                    for (T item : getSelectedItems())
                     {
                         if (item == sender)
                         {
@@ -225,7 +223,7 @@
         }
         else if 
(ev.matchesDefinition(ProvideCollectionChangedEvent.Definition))
         {
-            itemsCollectionChanged(sender, (NotifyCollectionChangedEventArgs) 
args);
+            itemsCollectionChanged(sender, 
(NotifyCollectionChangedEventArgs<T>) args);
         }
     }
 
@@ -251,7 +249,7 @@
         setSelectedItems(null);
     }
 
-    protected void itemsChanging(Iterable newValue, Iterable oldValue)
+    protected void itemsChanging(Iterable<T> newValue, Iterable<T> oldValue)
     {
         IProvideCollectionChangedEvent notifier =
                 (IProvideCollectionChangedEvent) ((oldValue instanceof 
IProvideCollectionChangedEvent) ? oldValue
@@ -277,7 +275,7 @@
     /**
      * Invoked whenever items collection was changed, i.e. some items was 
added or removed.
      */
-    protected void itemsCollectionChanged(Object sender, 
NotifyCollectionChangedEventArgs e)
+    protected void itemsCollectionChanged(Object sender, 
NotifyCollectionChangedEventArgs<T> e)
     {
         if (!getNotifyPropertyChangeForAnyItem())
         {
@@ -314,14 +312,14 @@
         }
     }
 
-    private void subscribeList(Iterable list)
+    private void subscribeList(Iterable<T> list)
     {
         if (list == null)
         {
             return;
         }
 
-        for (Object a : list)
+        for (T a : list)
         {
             IProvidePropertyChangedEvent notifier =
                     (IProvidePropertyChangedEvent) ((a instanceof 
IProvidePropertyChangedEvent) ? a : null);
@@ -332,14 +330,14 @@
         }
     }
 
-    private void unsubscribeList(Iterable list)
+    private void unsubscribeList(Iterable<T> list)
     {
         if (list == null)
         {
             return;
         }
 
-        for (Object a : list)
+        for (T a : list)
         {
             IProvidePropertyChangedEvent notifier =
                     (IProvidePropertyChangedEvent) ((a instanceof 
IProvidePropertyChangedEvent) ? a : null);
@@ -349,4 +347,5 @@
             }
         }
     }
+
 }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java
index ebd9b6b..e7f36fc 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/NotifyCollectionChangedEventArgs.java
@@ -1,8 +1,8 @@
 package org.ovirt.engine.ui.uicompat;
 
-public class NotifyCollectionChangedEventArgs extends EventArgs {
+public class NotifyCollectionChangedEventArgs<T> extends EventArgs {
 
     public NotifyCollectionChangedAction Action;
-    public Iterable<Object> NewItems;
-    public Iterable<Object> OldItems;
+    public Iterable<T> NewItems;
+    public Iterable<T> OldItems;
 }


-- 
To view, visit http://gerrit.ovirt.org/17604
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifaa6185e75adfd9405132fce2782f6c7cbc17f7f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Tomas Jelinek <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to