Hi Peter,

although I still not look into the code, that seems very promising. As you
say we need
a component with just one div, and then we could have more of then for
chrome and other things.
in old Flex Group was a container that doesn't have the width of subitems
into account, so maybe
the FlexJS Group should not be the same as the Flex Group...


2017-02-22 22:40 GMT+01:00 Peter Ent <p...@adobe.com>:

> Hi,
>
> I just pushed new layouts: VerticalFlexLayout and HorizontalFlexLayout as
> well as a change to DataBindingExample to use them. I consider these
> temporary and would like to make them be the VerticalLayout and
> HorizontalLayout in the near future.
>
> If you look at their code you will see the COMPILE::JS side is very, very
> short now. All it does it set the display:flex and flow-flow: row|column
> on the contentView of the layout host. The SWF side remains unchanged for
> now. I did not make it possible yet to use Flexbox properties of
> align-items, justify-content, etc.
>
> I spent most of the time coming to terms with the Container. I've left it
> alone for now, but I think it needs work. First, padding is not working
> for the container, so that will not have any affect.
>
> I think the Container needs to be redone. I also think it does too much or
> we need a lighter weight component like Group. Container generates two
> <div>s for the HTML side. This is to allow for "chrome" such as headers
> and footers. More specifically, it was designed to make it possible to
> write Panel (maybe Panel should be a composite component and moved into
> Express).
>
> The JS code generated for Container <div>s provides style information that
> is too much, really, unless you add in a chrome item. I think if there is
> a lighter component that just provides a box that surrounds its children
> it would help clean things up. The JS side should then be easier to style.
>
> If you want scrolling, then you'd have to use a Container and we can make
> the Container use a scrolling viewport by default then, since Group would
> be the default non-scrolling offering.
>
> Regards,
> Peter
>
>
> On 2/22/17, 12:03 PM, "carlos.rov...@gmail.com on behalf of Carlos Rovira"
> <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com>
> wrote:
>
> >Hi Peter, that sound very good :)
> >thanks!
> >
> >2017-02-22 16:53 GMT+01:00 Peter Ent <p...@adobe.com>:
> >
> >> That's a good strategy. My experiments this morning look like Flexbox is
> >> the way to go. Its widely supported now and seems pretty easy to use.
> >>
> >> I'm going to create VerticalFlexLayout and HorizontalFlexLayout and have
> >> them extend the current versions just so the SWF side stays the same for
> >> right now. The JS side will implement Flexbox. Then we can all try it
> >>out
> >> and see how it behaves. If that's good, I can replace the current JS
> >> version with the Flexbox version and then work on the SWF side to make
> >>it
> >> compatible.
> >>
> >> Will keep you all posted.
> >>
> >> —peter
> >>
> >> On 2/22/17, 10:16 AM, "carlos.rov...@gmail.com on behalf of Carlos
> >>Rovira"
> >> <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com>
> >> wrote:
> >>
> >> >That looks very promising Peter. Look forward to see some progress :)
> >> >If flexbox is the future, I think we should always look to go with that
> >> >specs, and in case that still is not in some browsers, search for a
> >> >polyfill that could do the job for not supported browsers for now. At
> >>the
> >> >end browsers will support it, and polyfill will end in no use (and we
> >> >could
> >> >eventually remove)
> >> >
> >> >2017-02-22 14:47 GMT+01:00 Peter Ent <p...@adobe.com>:
> >> >
> >> >> I'm going to try some experiments in my own space. Basically,
> >>figuring
> >> >>out
> >> >> the best way to do simple layouts using CSS - vertical and horizontal
> >> >>with
> >> >> alignment options (center, left, right for vertical, top, middle,
> >>bottom
> >> >> for horizontal). Because alignment will probably require more cycles
> >> >>when
> >> >> implemented in SWF, I will look to making these beads or
> >> >> VerticalLayoutWithAlignment to keep in PAYG. I'll pay attention to
> >> >> percentage sizes as well. A better understanding, on my part, of
> >> >>HTML/CSS
> >> >> capabilities will really help.
> >> >>
> >> >> Once I think the JS side is simple enough, I'll mimic then for the
> >>SWF
> >> >> side. I really don't see why this should be complex. The big issue on
> >> >>the
> >> >> SWF side is not always knowing the size of the item that you want to
> >> >> position and size.
> >> >>
> >> >> I have been reading about CSS Flexbox which seems like it is the
> >>future
> >> >>of
> >> >> layout for HTML/CSS. It seems to be widely supported at this point.
> >>The
> >> >> next generation, Grid, is still in the W3C draft phase, but that
> >>will be
> >> >> handy too once it gets adopted. I'll look into using various
> >>settings of
> >> >> display and position first before resorting to Flexbox.
> >> >>
> >> >> —peter
> >> >>
> >> >> On 2/22/17, 3:29 AM, "Harbs" <harbs.li...@gmail.com> wrote:
> >> >>
> >> >> >
> >> >> >> On Feb 22, 2017, at 9:46 AM, Alex Harui <aha...@adobe.com> wrote:
> >> >> >>
> >> >> >> It is probably time for our annual "revisiting of the layout
> >>code".
> >> >>I
> >> >> >> think if you look at source code history, Peter or I do this
> >>every so
> >> >> >> often as we get more examples to work with.
> >> >> >>
> >> >> >> From memory, there are issues like whether we have to set
> >> >> >> position:relative or not that came out of the MDL swc.  And
> >>when/if
> >> >>we
> >> >> >> need to set the width on a parent for percentage width to work in
> >>the
> >> >> >> children/grandchildren.
> >> >> >>
> >> >> >> It is great to finally have some people actually paying attention
> >> >>that
> >> >> >> know how this stuff is actually normally done in JS.  Peter and I
> >> >>were
> >> >> >> mostly guessing since, if you think about it, we were basically
> >>doing
> >> >> >>Flex
> >> >> >> until we got into FlexJS and are not experienced in HTML/JS.
> >> >> >>
> >> >> >> So, fundamentally, if you have to stack things vertically, should
> >>you
> >> >> >>use
> >> >> >> display:block?  If you have to line up a bunch of divs
> >>horizontally,
> >> >> >> should you use display:inline-block?
> >> >> >
> >> >> >It depends. If everything is position:relative, then theoretically,
> >> >>yes.
> >> >> >The problem with position:relative in my experience is that it’s too
> >> >> >unpredictable. I can’t give examples right now, but I know I spent
> >> >> >countless hours struggling with getting HTML to correctly position
> >> >> >elements using relative positioning. So while theoretically, using
> >>CSS
> >> >> >and built-in browser positioning sounds good, I think there are
> >>enough
> >> >> >edge cases to make it really difficult to be reliable in practice.
> >> >> >
> >> >> >> Is there a better way to do BasicLayout?  We ended up using a
> >> >>completely
> >> >> >> handwritten set of code to essentially make everything use
> >>absolute
> >> >> >> positioning.
> >> >> >>
> >> >> >> Is border-box working as expected?  Do you set the height/width to
> >> >> >>include
> >> >> >> the padding or not?
> >> >> >
> >> >> >Yes. The size includes the padding, but padding only serves a
> >>function
> >> >>if
> >> >> >the children are positioned relative. Currently, that’s not the case
> >> >> >AFAICT.
> >> >> >
> >> >> >
> >> >> >> I think some layouts can use CSS but others have to be written in
> >> >>code
> >> >> >>to
> >> >> >> override default browser behavior.  But I'd love to be wrong about
> >> >>that
> >> >> >> (at least, without relying on latest browsers or polyfills).
> >> >> >>
> >> >> >> And finally, are there ways we can call the layout fewer times
> >>than
> >> >>we
> >> >> >> currently do?
> >> >> >
> >> >> >I don’t understand the current layout lifecycle well enough. I do
> >>know
> >> >> >that we’ve observed layouts consistently happening twice, so I’d
> >>guess
> >> >> >that the answer would be yes.
> >> >> >
> >> >> >Ultimately, it would be great to have a layout which relies
> >>exclusively
> >> >> >on CSS, and if that can be achieved, it would be the most efficient
> >>way
> >> >> >to lay things out in HTML.
> >> >> >
> >> >> >My belief is that it’s unattainable for anything but the simplest
> >> >>layouts
> >> >> >to rely on CSS. If we are not relying on CSS, then I believe the
> >>best
> >> >>way
> >> >> >to go is to calculate the layout almost exclusively in javascript
> >>and
> >> >> >layout pretty much everything with position:absolute. The only
> >> >>exception
> >> >> >for that would be elements which should truly reflow based on the
> >>HTML
> >> >> >layout (i.e. text and inline images, possibly image grids, etc.) The
> >> >>more
> >> >> >reliance we have on CSS, the more we’re opening the layout to bugs.
> >> >> >Additionally, the more the code has to examine the results of
> >>browser
> >> >> >rendering, the less efficient the JS code will be. Javascript alone
> >>is
> >> >> >really fast in modern engines. It’s when there’s DOM interactions
> >>that
> >> >> >Javascript hits a performance wall. The more we can keep the
> >> >>calculations
> >> >> >in pure JS and avoid DOM interaction, the better.
> >> >> >
> >> >> >So I would propose two sets of Layouts:
> >> >> >CSSLayout which might or might not have sub-layouts to do bare-b
> >>ones
> >> >> >layout optimized for as little JS code to run as possible and allow
> >> >> >settings to be set using CSS. (cheap as possible PAYG layout)
> >> >> >FlexLayout which would have vertical,horizontal,absolute,grid, etc.
> >> >> >
> >> >> >FlexLayout would use FlexJS properties to calculate layout, and
> >>support
> >> >> >percentage, left,right,top,bottom properties to do proper
> >>constrained
> >> >> >layout. I think that constrained layout (right,left,top,bottom) is
> >> >>common
> >> >> >enough that it doesn’t warrant a separate layout as long as we have
> >>the
> >> >> >bare-bones CSSLayout for cases that need it.
> >> >> >
> >> >> >> For sure, we need to the the JS side right and then worry about
> >>the
> >> >>SWF
> >> >> >> side.  I think there are way fewer behavior issues on the SWF
> >>side to
> >> >> >>deal
> >> >> >> with.
> >> >> >
> >> >> >Agreed.
> >> >> >
> >> >> >Harbs
> >> >> >
> >> >> >> My 2 cents,
> >> >> >> -Alex
> >> >> >>
> >> >> >> On 2/21/17, 12:35 PM, "Peter Ent" <p...@adobe.com> wrote:
> >> >> >>
> >> >> >>> I think this is generally a good approach.
> >> >> >>>
> >> >> >>> I've been thinking that we have some refactoring to do which
> >>might
> >> >> >>>help.
> >> >> >>> For instance, Core should probably be edited to include
> >>interfaces,
> >> >> >>> events, and whatever else works across all packages. HTML should
> >> >> >>>probably
> >> >> >>> be just the HTML classes (Div, H1, TextNode, etc) so anyone that
> >> >>wants
> >> >> >>> HTML+ActionScript can use that and then use CSS to do all their
> >> >> >>>layouts;
> >> >> >>> HTML would not have a SWF version.
> >> >> >>>
> >> >> >>> Then Basic could be SWF & JS with layouts that are light on the
> >>JS
> >> >>side
> >> >> >>> using CSS and AS code to mimic them on the SWF side. Express
> >>would
> >> >>do
> >> >> >>>what
> >> >> >>> it is doing now and compose components by extending the Basic set
> >> >>and
> >> >> >>> adding common beads.
> >> >> >>>
> >> >> >>> I've been hung up with the JS side having stuck on the display
> >>and
> >> >> >>> position values and deferring them might be the best solution.
> >> >> >>>
> >> >> >>> —peter
> >> >> >>>
> >> >> >>> On 2/21/17, 2:25 PM, "carlos.rov...@gmail.com on behalf of
> Carlos
> >> >> >>>Rovira"
> >> >> >>> <carlos.rov...@gmail.com on behalf of
> >>carlos.rov...@codeoscopic.com
> >> >
> >> >> >>> wrote:
> >> >> >>>
> >> >> >>>> Hi Peter,
> >> >> >>>>
> >> >> >>>> it seems HTML rely for this task heavily on CSS to the point
> >>that
> >> >> >>>>almost
> >> >> >>>> nothing is done in html or js code.
> >> >> >>>> So maybe we are not in the right way for HTML platform and we
> >> >>should
> >> >> >>>>make
> >> >> >>>> our code be mainly CSS.
> >> >> >>>> An example is here:
> >> >> >>>>
> >> >> >>>> https://css-tricks.com/snippets/sass/placing-items-circle/
> >> >> >>>>
> >> >> >>>> Another point is SWF. I'm not focusing in that output and even I
> >> >> >>>>didn't
> >> >> >>>> compile to SWF for long time, so don't know how
> >> >> >>>> is looking, but for what I saw in other discussions seems that
> >> >>Flash
> >> >> >>>> needs
> >> >> >>>> to implement the old Flex architecture of
> >> >> >>>> updateDisplayList to manage refresh to avoid continuous
> >>redrawing
> >> >>of
> >> >> >>>>the
> >> >> >>>> screen.
> >> >> >>>>
> >> >> >>>> So my bet is that our AS3 layout components should do:
> >> >> >>>>
> >> >> >>>> 1.- In JS -> add className to "some-class-layout" (for example
> >>for
> >> >> >>>> circle,
> >> >> >>>> if we have circle-layout, we should have a "circleLayout" css
> >>class
> >> >> >>>> selector, that we could assign to out flexjs "list component"
> >> >> >>>>
> >> >> >>>> 2.- in SWF -> we should stick with the way this was done in
> >>Flex4
> >> >>but
> >> >> >>>> implementing as a bead and with the "updateDisplayList"
> >>performance
> >> >> >>>>
> >> >> >>>> What do you think?
> >> >> >>>>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>> 2017-02-21 20:10 GMT+01:00 Peter Ent <p...@adobe.com>:
> >> >> >>>>
> >> >> >>>>> A lot of this work is mine and it seems to need to be thought
> >> >>through
> >> >> >>>>> once
> >> >> >>>>> again. The dichotomy of SWF & JS has presented problems for me
> >>in
> >> >>the
> >> >> >>>>> past.
> >> >> >>>>>
> >> >> >>>>> Maybe the layouts, for JS platform, should do as little as
> >> >>possible,
> >> >> >>>>> replying on CSS as much as possible. Then make the SWF platform
> >> >>mimic
> >> >> >>>>> that.
> >> >> >>>>>
> >> >> >>>>> One issue that comes up for me is that we automatically set
> >> >>display
> >> >> >>>>>and
> >> >> >>>>> position for every element soon after its created. If you were
> >>to
> >> >> >>>>> hand-write the HTML you probably would not do that.
> >> >> >>>>>
> >> >> >>>>> So perhaps FlexJS should not set these styles at all and
> >>instead
> >> >>let
> >> >> >>>>> the
> >> >> >>>>> layout set them if the layout even needs to do that.
> >> >> >>>>>
> >> >> >>>>> Thoughts?
> >> >> >>>>> ‹peter
> >> >> >>>>>
> >> >> >>>>> On 2/21/17, 1:42 PM, "Harbs" <harbs.li...@gmail.com> wrote:
> >> >> >>>>>
> >> >> >>>>>> We¹re really struggling with layout.
> >> >> >>>>>>
> >> >> >>>>>> Yishay just mentioned the fact that padding is not working,
> >>but
> >> >>the
> >> >> >>>>>> problems seem to go much deeper than that.
> >> >> >>>>>>
> >> >> >>>>>> 1. VerticalLayout has the following code:
> >> >> >>>>>>                              for (i = 0; i < n; i++)
> >> >> >>>>>>                              {
> >> >> >>>>>>                                      var
> >> >>child:WrappedHTMLElement =
> >> >> >>>>> children[i];
> >> >> >>>>>>                                      child.flexjs_wrapper.
> >> >> >>>>> setDisplayStyleForLayout('block');
> >> >> >>>>>>                                      if (child.style.display
> >>===
> >> >> >>>>> 'none')
> >> >> >>>>>>                                      {
> >> >> >>>>>>
> >> >>child.flexjs_wrapper.
> >> >> >>>>> setDisplayStyleForLayout('block');
> >> >> >>>>>>                                      }
> >> >> >>>>>>                                      else
> >> >> >>>>>>                                      {
> >> >> >>>>>>                                              // block elements
> >> >>don't
> >> >> >>>>> measure width correctly so set to inline
> >> >> >>>>>> for a second
> >> >> >>>>>>
> >>child.style.display
> >> >>=
> >> >> >>>>> 'inline-block';
> >> >> >>>>>>                                              maxWidth =
> >> >> >>>>> Math.max(maxWidth, child.offsetLeft + child.offsetWidth);
> >> >> >>>>>>
> >>child.style.display
> >> >>=
> >> >> >>>>> 'block';
> >> >> >>>>>>                                      }
> >> >> >>>>>>                                      child.flexjs_wrapper.
> >> >> >>>>> dispatchEvent('sizeChanged');
> >> >> >>>>>>                              }
> >> >> >>>>>>
> >> >> >>>>>> There is a number of problems that I can see with this.
> >>Firstly,
> >> >> >>>>>>it¹s
> >> >> >>>>>> horribly inefficient:
> >> >> >>>>>>
> >>child.style.display
> >> >>=
> >> >> >>>>> 'inline-block';
> >> >> >>>>>>                                              maxWidth =
> >> >> >>>>> Math.max(maxWidth, child.offsetLeft + child.offsetWidth);
> >> >> >>>>>> The above will force a browser redraw at every step of the
> >>loop.
> >> >>If
> >> >> >>>>> you
> >> >> >>>>>> have hundreds of children, there will be hundreds of redraws
> >> >>just to
> >> >> >>>>>> figure out the children width. If anything, there should
> >> >>probably be
> >> >> >>>>>> three loops: One to set the inline-blocks, The second to
> >>measure
> >> >>all
> >> >> >>>>> the
> >> >> >>>>>> children (the first measure would trigger a redraw, but
> >> >>subsequent
> >> >> >>>>> ones
> >> >> >>>>>> not) The third to set inline-block back.
> >> >> >>>>>>
> >> >> >>>>>> Secondly, there¹s only a need to measure the children if the
> >> >> >>>>>>container
> >> >> >>>>> is
> >> >> >>>>>> sized to content. If the container has a fixed width or a
> >> >>percentage
> >> >> >>>>>> width, I don¹t see why the children should be measured at all.
> >> >>The
> >> >> >>>>> only
> >> >> >>>>>> exception I can see is if there is overflow:auto.
> >> >> >>>>>>
> >> >> >>>>>> Thirdly, I don¹t understand how setting the child to
> >>inline-block
> >> >> >>>>> helps.
> >> >> >>>>>> What about the grandchildren? Don¹t those need to be measured
> >> >>too?
> >> >> >>>>>> Fourthly, Both Horizontal and VerticalLayout have code which
> >> >> >>>>> temporarily
> >> >> >>>>>> sets inline-block. BasicLayout does not, and I don¹t
> >>understand
> >> >>why
> >> >> >>>>>> there¹s a difference. (BasicLayout has the same re-rendering
> >> >>problem
> >> >> >>>>>> though.)
> >> >> >>>>>> 2.
> >> >> >>>>>>                              if (!hasWidth && n > 0 &&
> >> >> >>>>> !isNaN(maxWidth)) {
> >> >> >>>>>>                                      var pl:String =
> >> >> >>>>> scv['padding-left'];
> >> >> >>>>>>                                      var pr:String =
> >> >> >>>>> scv['padding-right'];
> >> >> >>>>>>                                      var npl:int =
> >> >> >>>>> parseInt(pl.substring(0, pl.length - 2), 10);
> >> >> >>>>>>                                      var npr:int =
> >> >> >>>>> parseInt(pr.substring(0, pr.length - 2), 10);
> >> >> >>>>>>                                      maxWidth += npl + npr;
> >> >> >>>>>>                                      contentView.width =
> >> >>maxWidth;
> >> >> >>>>>>                              }
> >> >> >>>>>>
> >> >> >>>>>> This seems totally wrong. Why is the padding being added when
> >> >>we¹re
> >> >> >>>>> using
> >> >> >>>>>> box-sizing: border-box?
> >> >> >>>>>>
> >> >> >>>>>> 3. Percentage size seems to be set based on the children
> >>rather
> >> >>than
> >> >> >>>>> the
> >> >> >>>>>> parents.
> >> >> >>>>>>
> >> >> >>>>>> 4. I¹m not sure I understand the layout lifecycle very well.
> >>We
> >> >>have
> >> >> >>>>> had
> >> >> >>>>>> cases where children did not seem to be layout, and forcing a
> >> >>layout
> >> >> >>>>>> seemed to be very difficult to do.
> >> >> >>>>>>
> >> >> >>>>>> Harbs
> >> >> >>>>>
> >> >> >>>>>
> >> >> >>>>
> >> >> >>>>
> >> >> >>>> --
> >> >> >>>>
> >> >> >>>> Carlos Rovira
> >> >> >>>> Director General
> >> >> >>>> M: +34 607 22 60 05
> >> >> >>>> http://www.codeoscopic.com
> >> >> >>>> http://www.avant2.es
> >> >> >>>>
> >> >> >>>> Este mensaje se dirige exclusivamente a su destinatario y puede
> >> >> >>>>contener
> >> >> >>>> información privilegiada o confidencial. Si ha recibido este
> >> >>mensaje
> >> >> >>>>por
> >> >> >>>> error, le rogamos que nos lo comunique inmediatamente por esta
> >> >>misma
> >> >> >>>>vía
> >> >> >>>> y
> >> >> >>>> proceda a su destrucción.
> >> >> >>>>
> >> >> >>>> De la vigente Ley Orgánica de Protección de Datos (15/1999), le
> >> >> >>>> comunicamos
> >> >> >>>> que sus datos forman parte de un fichero cuyo responsable es
> >> >> >>>>CODEOSCOPIC
> >> >> >>>> S.A. La finalidad de dicho tratamiento es facilitar la
> >>prestación
> >> >>del
> >> >> >>>> servicio o información solicitados, teniendo usted derecho de
> >> >>acceso,
> >> >> >>>> rectificación, cancelación y oposición de sus datos
> >>dirigiéndose a
> >> >> >>>> nuestras
> >> >> >>>> oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la
> >> >> >>>>documentación
> >> >> >>>> necesaria.
> >> >> >>>
> >> >> >>
> >> >> >
> >> >>
> >> >>
> >> >
> >> >
> >> >--
> >> >
> >> >Carlos Rovira
> >> >Director General
> >> >M: +34 607 22 60 05
> >> >http://www.codeoscopic.com
> >> >http://www.avant2.es
> >> >
> >> >Este mensaje se dirige exclusivamente a su destinatario y puede
> >>contener
> >> >información privilegiada o confidencial. Si ha recibido este mensaje
> >>por
> >> >error, le rogamos que nos lo comunique inmediatamente por esta misma
> >>vía y
> >> >proceda a su destrucción.
> >> >
> >> >De la vigente Ley Orgánica de Protección de Datos (15/1999), le
> >> >comunicamos
> >> >que sus datos forman parte de un fichero cuyo responsable es
> >>CODEOSCOPIC
> >> >S.A. La finalidad de dicho tratamiento es facilitar la prestación del
> >> >servicio o información solicitados, teniendo usted derecho de acceso,
> >> >rectificación, cancelación y oposición de sus datos dirigiéndose a
> >> >nuestras
> >> >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
> >> >necesaria.
> >>
> >>
> >
> >
> >--
> >
> >Carlos Rovira
> >Director General
> >M: +34 607 22 60 05
> >http://www.codeoscopic.com
> >http://www.avant2.es
> >
> >Este mensaje se dirige exclusivamente a su destinatario y puede contener
> >información privilegiada o confidencial. Si ha recibido este mensaje por
> >error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
> >proceda a su destrucción.
> >
> >De la vigente Ley Orgánica de Protección de Datos (15/1999), le
> >comunicamos
> >que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
> >S.A. La finalidad de dicho tratamiento es facilitar la prestación del
> >servicio o información solicitados, teniendo usted derecho de acceso,
> >rectificación, cancelación y oposición de sus datos dirigiéndose a
> >nuestras
> >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
> >necesaria.
>
>


-- 

Carlos Rovira
Director General
M: +34 607 22 60 05
http://www.codeoscopic.com
http://www.avant2.es

Este mensaje se dirige exclusivamente a su destinatario y puede contener
información privilegiada o confidencial. Si ha recibido este mensaje por
error, le rogamos que nos lo comunique inmediatamente por esta misma vía y
proceda a su destrucción.

De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos
que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC
S.A. La finalidad de dicho tratamiento es facilitar la prestación del
servicio o información solicitados, teniendo usted derecho de acceso,
rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras
oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación
necesaria.

Reply via email to