[Engine-devel] NUMA Support - GUI Technical Session

Vojtech Szocs vszocs at redhat.com
Fri Apr 4 21:03:34 UTC 2014


Hi Gilad,

to my understanding, we already use _HTML5_ Drag'n'Drop support
(exposed by GWT API since 2.4) in "Setup Host Networks" dialog.

To utilize HTML5 Drag'n'Drop support in GWT widget, just extend
FocusPanel and mark your widget's DOM element as "draggable".

For example, in UnassignedNetworksPanel constructor:

  getElement().setDraggable( ... );
  addBitlessDomHandler(new DragEnterHandler() { ... });
  addBitlessDomHandler(new DragOverHandler() { ... });
  addBitlessDomHandler(new DragLeaveHandler() { ... });
  addBitlessDomHandler(new DropHandler() { ... });

In other words, GWT already exposes API for working with HTML5
Drag'n'Drop spec, so you don't need any 3rd party libraries.
The downside is that HTML5 Drag'n'Drop spec is supported only
in recent browsers (but this isn't an issue for us, AFAIK):

  http://caniuse.com/#feat=dragndrop

So in general we have two alternatives:

  1, use standard HTML5 Drag'n'Drop spec

     pros:
     + no need for 3rd party library
     + compliant with existing code, i.e. "Setup Host Networks"

     cons (not too relevant IMHO):
     - requires browser support of HTML5 Drag'n'Drop spec
     - HTML5 Drag'n'Drop spec deals with dragging data, not widgets
       themselves (no HTML DOM re-parenting after drag finish)

  2, use 3rd party gwt-dnd library

     pros (which I don't think we really need):
     + emulate Drag'n'Drop support in older browsers
     + more advanced functionality, i.e. allows dragging widgets
       so that HTML DOM is dynamically updated

     cons:
     - dependency on 3rd party library
     - this would mean we need to revisit existing code
       (we should do Drag'n'Drop in one consistent way)

It's possible that I might be missing something, but I'd
suggest to try using HTML5 Drag'n'Drop via GWT API as the
first approach.

If we find out that HTML5 Drag'n'Drop doesn't work for us
in given browser(s) or if we need extra functionality, we
can always add gwt-dnd dependency.

Few more comments inline, let me know what you think.

Regards,
Vojtech


----- Original Message -----
> From: "Alexander Wels" <awels at redhat.com>
> To: "Gilad Chaplik" <gchaplik at redhat.com>
> Cc: ecohen at redhat.com, "Vojtech Szocs" <vszocs at redhat.com>, dfediuck at redhat.com, engine-devel at ovirt.org, "chegu
> vinod" <chegu_vinod at hp.com>, lvernia at redhat.com
> Sent: Tuesday, April 1, 2014 7:24:12 PM
> Subject: Re: NUMA Support - GUI Technical Session
> 
> On Tuesday, April 01, 2014 11:34:43 AM Gilad Chaplik wrote:
> > Hi all,
> > 
> > Here are the resolutions from the meeting:
> > 
> > * option 1
> > 1) Use gwt-dnd lib for oVirt's dnd (drag and drop) infrastructure.
> > 2) Come up with a very simple POC that covers all of NUMA-support UX
> > requirements. 3) Either do a POC, or get UX maintainers approval, that
> > moving already existing dnd features to new infrastructure (setup-networks
> > and scheduling policy dialogs) is feasible and possible.
> > 
> 
> +1 for option 1. None of the drag and drop in the application now looks
> terribly hard. The gwt-dnd library simply makes things easier to control and
> maintain.

Yeah, but the downside is adding 3rd party dependency which predates GWT's
support for (API exposure of) HTML5 Drag'n'Drop spec.

> 
> > * option 2
> > Extract setup network dnd capabilities to a common general infrastructure
> > and use that as an infrastructure. NOTE that setup-networks will not use it
> > in oVirt-3.5.

GWT's HTML5 Drag'n'Drop API works directly on DOM element level, it's just
a thin API overlay on top of HTML5Drag'n'Drop spec.

Do we really need custom DnD infra on top of that? Can't we just use GWT
APIs like Element.setDraggable, Drag*Handler, Drop*Handler?

> > 
> > I will start with option 1, just need UX team approval that [1] will be
> > added to ovirt-3.5, and be used for dnd for now on. In case I fail to
> > deliver option 1 (with the help and guidance of the UX team) in a quick
> > cycle (a week or so), I will peruse option 2, which is trivial.
> > 
> > Moving forward, all new dnd enabled features will use the new
> > infrastructure, and the motivation is to migrate existing ones as well.

I agree, there should be one consistent way to do DnD in oVirt UI.

I'm just saying we should consider existing GWT HTML5 Drag'n'Drop API
before jumping into gwt-dnd 3rd party dependency. If it turns out that
GWT DnD API is too basic (lacks functionality) or has issues with some
browser(s) - we can add gwt-dnd dependency anytime.

> > 
> > Thanks,
> > Gilad.
> > 
> > [1] http://code.google.com/p/gwt-dnd/
> > 
> > ----- Original Message -----
> > 
> > > From: "Gilad Chaplik" <gchaplik at redhat.com>
> > > To: "Einav Cohen" <ecohen at redhat.com>, "Alexander Wels"
> > > <awels at redhat.com>, "Eyal Edri" <eedri at redhat.com>, "Steve Gordon"
> > > <sgordon at redhat.com>, "Eli Mesika" <emesika at redhat.com>, "Otavio Luiz
> > > Ferranti" <otavio.ferranti at eldorado.org.br>, "Sandro Bonazzola"
> > > <sbonazzo at redhat.com>, "Greg Sheremeta" <gshereme at redhat.com>, "Doron
> > > Fediuck" <dfediuck at redhat.com>, "Lior Vernia" <lvernia at redhat.com>,
> > > "engine-devel" <engine-devel at ovirt.org>, "Martin Sivak"
> > > <msivak at redhat.com>, "chuan liao" <chuan.liao at hp.com>, "xiao-lei shi"
> > > <xiao-lei.shi at hp.com>, "chegu vinod" <chegu_vinod at hp.com>, "da-huai tang"
> > > <da-huai.tang at hp.com>
> > > Sent: Sunday, March 30, 2014 2:06:59 AM
> > > Subject: NUMA Support - GUI Technical Session
> > > 
> > > The following meeting has been modified:
> > > 
> > > Subject: NUMA Support - GUI Technical Session [MODIFIED]
> > > Organizer: "Gilad Chaplik" <gchaplik at redhat.com>
> > > 
> > > Time: Tuesday, April 1, 2014, 5:00:00 PM - 6:00:00 PM GMT +02:00
> > > Jerusalem
> > > [MODIFIED]
> > > 
> > > Required: ecohen at redhat.com; awels at redhat.com; eedri at redhat.com;
> > > sgordon at redhat.com; emesika at redhat.com; otavio.ferranti at eldorado.org.br;
> > > sbonazzo at redhat.com; gshereme at redhat.com
> > > Optional: dfediuck at redhat.com; lvernia at redhat.com;
> > > engine-devel at ovirt.org;
> > > msivak at redhat.com; chuan.liao at hp.com; xiao-lei.shi at hp.com;
> > > chegu_vinod at hp.com; da-huai.tang at hp.com
> > > 
> > > *~*~*~*~*~*~*~*~*~*
> > > 
> > > We will discuss on how to implement NUMA support GUI in oVirt for version
> > > 3.5 (see attached sketches).
> > > 
> > > Agenda:
> > > 1) Brainstorming
> > > 2) Resolution
> > > 3) Split work/tasks among volunteers :)
> > > 
> > > GUI maintainers please join-in.
> > > 
> > > Bluejeans (video conference) session to follow [maybe], currently dial
> > > in:
> > > 
> > > https://www.intercallonline.com/listNumbersByCode.action?confCode=71288674
> > > 05
> > > 
> > > conf id: 712 886 7405#
> 
> 



More information about the Engine-devel mailing list