Chris Banford schrieb:
> Hi Matt,
>
> Your TileView looks rather nice! :-)
>
> I'm wondering if the scrolling bug you mention would be that the Flow 
> Layout doesn't support height to width yet?
>
> Andreas (hope vacation was a good one!), any idea when support for 
> this in Layouts will see the light of day?
>
> -Chris

Hi Chris,

Its on my list for 0.8.1 
<http://bugzilla.qooxdoo.org/show_bug.cgi?id=1256> I don't know yet, 
when I get to it but I really want to have it in 0.8.1 which is 
scheduled not too far in the future.

Best Fabian

>
>
>> Suppose I should also give an example of how to use it ;)
>>
>> var list = new custom.ui.comps.TileView();
>> this.add(list); // assuming your layout will size this
>>
>> for (var i = 0; i < 10; i++)
>> {
>>   var item = new custom.ui.comps.TileViewItem("File " + i + ".png", 
>> "custom/icon/48/file.png", "png file", "520k");
>>
>>   list.add(item);
>> }
>>
>> There is also a screenshot attached.
>>
>> Matthew Gregory wrote:
>>> Hi,
>>>
>>> (assumung you're using 0.8)
>>>
>>> I've written something similar to this. My basic idea is to use 
>>> qx.ui.form.list with a few modifications, mainly using a flowlayout 
>>> (you'll have to get this from qooxdoo-contrib).
>>>
>>> Here are a couple of classes for this which are still work in progress.
>>> This is currently a bug with scrolling but this will be fixed in 0.8.1
>>>
>>> Let me know how you get on :)
>>> Matt
>>>
>>> ################# begin TileView.js ###########################
>>> qx.Class.define("custom.ui.comps.TileView",
>>> {
>>>    extend : qx.ui.form.List,
>>>    construct : function()
>>>    {
>>>      this.base(arguments);
>>>      var flow = new flowlayout.FlowLayout();
>>>      this.getChildrenContainer().setLayout(flow);
>>>      this.getChildrenContainer().setHeight(800);
>>>    },
>>>    members :
>>>    {
>>>      _onAddChild : function(e)
>>>      {
>>>        var el = e.getData();
>>>        el.set(
>>>        {
>>>          width    : 250,
>>>          minWidth : 250,
>>>          maxWidth : 250
>>>        });
>>>        this.base(arguments, e);
>>>      }
>>>    }
>>> });
>>>
>>> ################# end TileView.js ###########################
>>>
>>> ################# begin TileViewItem.js ###########################
>>> qx.Class.define("custom.ui.comps.TileViewItem",
>>> {
>>>    extend : qx.ui.container.Composite,
>>>    construct : function(title, icon, description, status)
>>>    {
>>>      this.base(arguments, new qx.ui.layout.HBox(10));
>>>
>>>      var iconLayout = new qx.ui.layout.Canvas();
>>>      var iconCont   = new qx.ui.container.Composite(iconLayout);
>>>      iconCont.add(this._icon = new qx.ui.basic.Image(icon));
>>>
>>>      var labelLayout = new qx.ui.layout.VBox(2);
>>>      var labelCont   = new qx.ui.container.Composite(labelLayout);
>>>
>>>      labelCont.setLayoutProperties({flex:1});
>>>      labelCont.add(this._title       = new qx.ui.basic.Label(title));
>>>      labelCont.add(this._description = new 
>>> qx.ui.basic.Label(description));
>>>      labelCont.add(this._status      = new qx.ui.basic.Label(status));
>>>
>>>      iconCont.setAnonymous(true);
>>>      labelCont.setAnonymous(true);
>>>
>>>      this._icon.setAnonymous(true);
>>>      this._title.setAnonymous(true);
>>>      this._title.setFont("bold");
>>>      this._description.setAnonymous(true);
>>>      this._status.setAnonymous(true);
>>>
>>>      this.add(iconCont);
>>>      this.add(labelCont);
>>>    },
>>>
>>>    events:
>>>    {
>>>      /** (Fired by [EMAIL PROTECTED] qx.ui.form.List}) */
>>>      "action" : "qx.event.type.Event"
>>>    },
>>>    properties :
>>>    {
>>>      appearance :
>>>      {
>>>        refine : true,
>>>        init : "listitem"
>>>      },
>>>
>>>      /** The assigned qx.ui.form.RadioGroup which handles the 
>>> switching between registered buttons */
>>>      manager :
>>>      {
>>>        check  : "qx.ui.form.RadioGroup",
>>>        nullable : true,
>>>        apply : "_applyManager"
>>>      },
>>>
>>>      /** Fires a "changeValue" (qx.event.type.Data) event */
>>>      value :
>>>      {
>>>        nullable : true,
>>>        event : "changeValue"
>>>      },
>>>
>>>      title :
>>>      {
>>>        check : "String",
>>>        apply : "_applyTitle"
>>>      },
>>>
>>>      description :
>>>      {
>>>        check : "String",
>>>        apply : "_applyDescription"
>>>      },
>>>      statusText :
>>>      {
>>>        check : "String",
>>>        apply : "_applyStatusText"
>>>      }
>>>    },
>>>    members :
>>>    {
>>>      _icon        : null,
>>>      _title       : null,
>>>      _description : null,
>>>      _status      : null,
>>>
>>>      _applyTitle : function(value)
>>>      {
>>>        this._description.setContent(value);
>>>      },
>>>
>>>      _applyDescription : function(value)
>>>      {
>>>        this._description.setContent(value);
>>>      },
>>>
>>>      _applyStatusText : function(value)
>>>      {
>>>        this._status.setContent(value);
>>>      },
>>>
>>>      _applyManager : function(value, old)
>>>      {
>>>        if (old)
>>>          old.remove(this);
>>>        if (value)
>>>          value.add(this);
>>>      }
>>>    }
>>> });
>>>
>>> ################# end TileViewItem.js ###########################
>>>
>>> Jean-Baptiste BRIAUD - Novlog wrote:
>>>> Hi,
>>>>
>>>> I'm coding a window that will show files (like Finder of Windows 
>>>> file  system explorer).
>>>>
>>>> The current version use a table, each line is a file and column 
>>>> show  file attributes (could be size, ...).
>>>> This is like the details view on Windows OS.
>>>>
>>>> I would like to have another view with icon instead of table's 
>>>> lines  but I have no idea how to start !
>>>>
>>>> What widget should I use knowing that there could be lots of file  
>>>> eventually ... ?
>>>> I'm already inside qx.ui.window.Window.
>>>> I thought I might use Window without title bar and just one icon  
>>>> inside, but I'm quite sure its probably a bad idea to use Window  
>>>> inside Window...
>>>>
>>>> I don't want that end-user could move file like in real file system 
>>>> to  void storing all positions.
>>>> I would like to allow drag'n drop between opened window (to 
>>>> move/copy  file) and in some cases, allow file to be reordered by 
>>>> drag'n drop.
>>>>
>>>> Any ideas welcome :-)
>>>>
>>>
>>
>> ------------------------------------------------------------------------
>>
>>
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> ------------------------------------------------------------------------
>
> _______________________________________________
> qooxdoo-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>   


-- 
Fabian Jakobs
JavaScript Framework Developer

1&1 Internet AG
Brauerstraße 48
76135 Karlsruhe

Amtsgericht Montabaur HRB 6484

Vorstand: Henning Ahlert, Ralph Dommermuth, Matthias Ehrlich, Thomas 
Gottschlich, Matthias Greve, Robert Hoffmann, Markus Huhn, Oliver Mauss, Achim 
Weiss
Aufsichtsratsvorsitzender: Michael Scheeren


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to