Tomas Jelinek has posted comments on this change.

Change subject: webadmin: Introducing AddRemoveRowWidget
......................................................................


Patch Set 1:

(4 comments)

I miss the handling of the element IDs which can be used for selenium testing.

....................................................
File 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/AddRemoveRowWidget.java
Line 84:         addEntry(createGhostValue());
Line 85:     }
Line 86: 
Line 87:     private void addEntry(T value) {
Line 88:         final HorizontalPanel entry = new HorizontalPanel();
Please try to avoid using Horizontal/Vertical panels if it is at least a bit 
possible. They are rendered as tables and unless it is really hard to style the 
content using divs (FlowPanels) than we try to avoid using them.
Line 89:         entry.addStyleName(style.entryStyle());
Line 90:         contentPanel.add(entry);
Line 91: 
Line 92:         final V widget = createWidget(value);


Line 96: 
Line 97:         PushButton button = createButton(item);
Line 98:         entry.add(button);
Line 99: 
Line 100:         final boolean ghost = isGhost(value);
can't you just call the isGhost() inside the valueChangeHandler so get rid of 
this variable?
Line 101:         toggleGhost(value, widget, ghost);
Line 102:         widget.addValueChangeHandler(new ValueChangeHandler<T>() {
Line 103: 
Line 104:             private boolean wasGhost = ghost;


Line 107:             public void onValueChange(ValueChangeEvent<T> event) {
Line 108:                 T value = event.getValue();
Line 109:                 boolean becomingGhost = isGhost(value);
Line 110:                 if (becomingGhost != wasGhost) {
Line 111:                     ((PushButton) 
entry.getWidget(entry.getWidgetCount() - 1)).setEnabled(!becomingGhost);
this "entry.getWidgetCount() - 1" is not really readable and error prone... I 
can see 3 ways how this could be done better:

1 (simple, not much better): rely on the fact that you know on which position 
is the button and make a well named constant with that value (something like 
BUTTON_POSITION = 1) - at least a bit readable

2 (more correct): mark the button you are looking for somehow (e.g. 
getElement().setId()  with a well known prefix or make a subclass of the 
button) and look for that in the entry.

3: (maybe the best): create a custom child of the (in this case 
HorizontalPanel) with a methods for getting the button and the editor.
Line 112:                     toggleGhost(value, widget, becomingGhost);
Line 113:                     wasGhost = becomingGhost;
Line 114:                 }
Line 115:             }


Line 134:         boolean ghostItem = isGhost(item.getFirst());
Line 135:         final PushButton button =
Line 136:                 new PushButton(new Image(ghostItem ? 
resources.increaseIcon() : resources.decreaseIcon()));
Line 137:         button.addStyleName(style.buttonStyle());
Line 138:         button.setEnabled(!ghostItem);
why disable for non-ghost?
Line 139: 
Line 140:         button.addClickHandler(ghostItem ?
Line 141:                 new ClickHandler() {
Line 142: 


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I15958e4b7c1fcf0ec08ea35eb32c690964f2a366
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <lver...@redhat.com>
Gerrit-Reviewer: Lior Vernia <lver...@redhat.com>
Gerrit-Reviewer: Tomas Jelinek <tjeli...@redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to