[Engine-devel] ui code: possible problem in 'remove' confirmation dialog

Vojtech Szocs vszocs at redhat.com
Mon Oct 21 09:55:05 UTC 2013



----- Original Message -----
> From: "Daniel Erez" <derez at redhat.com>
> To: "Einav Cohen" <ecohen at redhat.com>
> Cc: "Gilad Chaplik" <gchaplik at redhat.com>, "Tomas Jelinek" <tjelinek at redhat.com>, "Vojtech Szocs"
> <vszocs at redhat.com>, "Lior Vernia" <lvernia at redhat.com>, "engine-devel" <engine-devel at ovirt.org>
> Sent: Friday, October 18, 2013 12:06:02 PM
> Subject: Re: ui code: possible problem in 'remove' confirmation dialog
> 
> 
> 
> ----- Original Message -----
> > From: "Einav Cohen" <ecohen at redhat.com>
> > To: "Daniel Erez" <derez at redhat.com>, "Gilad Chaplik"
> > <gchaplik at redhat.com>, "Tomas Jelinek" <tjelinek at redhat.com>,
> > "Vojtech Szocs" <vszocs at redhat.com>, "Lior Vernia" <lvernia at redhat.com>
> > Cc: "engine-devel" <engine-devel at ovirt.org>
> > Sent: Thursday, October 17, 2013 4:24:56 PM
> > Subject: Re: ui code: possible problem in 'remove' confirmation dialog
> > 
> > [apologies - previous e-mail sent prematurely by mistake]
> > 
> > Hi,
> >  
> > Looking at the current code: It seems that we cannot set the message within
> > a
> > 'remove' confirmation dialog if its HashName starts with "remove_" - it is
> > being set "statically" to the "Are you sure you want to remove the
> > following
> > items?" [constants.removeConfirmationPopupMessage] message [1]
> > 
> > I don't have a major problem with relying on the HashName for setting a
> > *default* message [2] - but I think that not allowing to override this
> > message if the developer chooses to do so is an incorrect behavior.
> > 
> > I would like to change the behavior so that the user would be able to
> > override the message displayed in that dialog, even if its hash-name is
> > set to 'remove_'.
> > 
> > thoughts? objections?
> > 
> > ----
> > Thanks,
> > Einav
> >  
> > 
> > [1] From RemoveConfirmationPopupView.java, line 86:
> >  
> >      public void setMessage(String message) {
> >          if (getHashName() != null && getHashName().startsWith("remove_"))
> >          {
> >          //$NON-NLS-1$
> >              super.setMessage(constants.removeConfirmationPopupMessage());
> >          } else {
> >              super.setMessage(message);
> >          }
> >      }
> 
> Not sure why we prevent override in this case,

IIRC the current RemoveConfirmationPopupView.setMessage implementation reflects the assumption that all remove confirm dialogs [hashName=remove_*] have the same message, i.e. "Are you sure you want to remove the following items?".

However, looking at VmListModel#remove (VM main tab / Remove button) it first sets [hashName=remove_virtual_machine] and then sets message like "Virtual Machine(s)". In practice, RemoveConfirmationPopupView.setMessage will still make the dialog message generic, i.e. "Are you sure ... following items?".

> I guess it should probably be as simple as:
> 
>     public void setMessage(String message) {
>         super.setMessage(message != null ? message :
>         constants.removeConfirmationPopupMessage());
>     }

For that, we'd have to analyze and modify existing UiCommon models to call setMessage with appropriate value, i.e. VmListModel#remove currently yields RemoveConfirmationPopupView.setMessage("Virtual Machine(s)")

> 
> Just need to make sure that no one is currently overriding
> it by mistake to avoid possible regressions.

I think the general pattern used in UiCommon models when dealing with remove confirm dialogs is following:
- set wnd hashName to "remove_<entity>" i.e. "remove_virtual_machine"
- set wnd message to "<specific item(s)>" i.e. "Virtual Machine(s)"

Alternative to Daniel's suggestion, following above mentioned pattern:

    if (message != null) {
        // expecting message to be "<specific item(s)>"
        // should yield "Are you sure you want to remove <specific item(s)>?"
        super.setMessage(messages.removeConfirmationPopupMessage(message));
    } else {
        super.setMessage(message);
    }

> 
> > 
> > [2] in fact, I don't mind that this would be the default message for
> > this dialog, even if its hash-name is not set to something that starts
> > with 'remove_'.
> > 
> > ----- Original Message -----
> > > From: "Einav Cohen" <ecohen at redhat.com>
> > > To: "Daniel Erez" <derez at redhat.com>, "Gilad Chaplik"
> > > <gchaplik at redhat.com>, "Tomas Jelinek" <tjelinek at redhat.com>,
> > > "Vojtech Szocs" <vszocs at redhat.com>, "Lior Vernia" <lvernia at redhat.com>
> > > Cc: "engine-devel" <engine-devel at ovirt.org>
> > > Sent: Thursday, October 17, 2013 9:20:07 AM
> > > Subject: ui code: possible problem in 'remove' confirmation dialog
> > > 
> > > Hi,
> > > 
> > > Looking at the current code: It seems that we cannot set the message
> > > within
> > > a
> > > 'remove' confirmation
> > > dialog if its HashName starts with "remove_" - it is being set
> > > "statically[1]
> > > I don't have a major problem with relying on the HashName for setting a
> > > *default* message (in fact,
> > > I don't have a problem
> > > 
> > > [1] From RemoveConfirmationPopupView.java, line 86:
> > > 
> > >     public void setMessage(String message) {
> > >         if (getHashName() != null && getHashName().startsWith("remove_"))
> > >         {
> > >         //$NON-NLS-1$
> > >             super.setMessage(constants.removeConfirmationPopupMessage());
> > >         } else {
> > >             super.setMessage(message);
> > >         }
> > >     }
> > > 
> > > ----
> > > Regards,
> > > Einav Cohen Baum
> > > RHEV-M Engineering - UX Team Manager
> > > Red Hat, Inc.
> > > 314 Littleton Road
> > > Westford, MA 01886
> > > T [internal]: (81) 31046
> > > T [external]: (+1) 978 589 1046
> > > IRC: ecohen @
> > >  - RHAT [internal]: #rhev-dev #boston #westford #tlv
> > >  - OFTC [external]: #ovirt
> > > 
> > 
> 



More information about the Devel mailing list