Omid Mottaghi | 7 Oct 22:48

Using qooxdoo as an external library for a web application

Hi all,

I'm new to qooxdoo and sorry for the subject!
I tried to use qooxdoo for a dynamic PHP project. But after running "dynamic JS rendering engine" in PHP, it should run generate.py script.

Is there any way to include needed JS libraries?
For example instead of generating JS files, simply write:
========================
qx.include('required.library.1');
qx.include('required.library.2');
qx.include('required.library.3');

// do something related to 1st, 2nd and 3rd libraries!
========================

Thanks.
-------------------------------------------------------------------------
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
qooxdoo-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Gaetan de Menten | 7 Oct 17:49

Class instances in statics not supported in 0.8?

Are class instances in statics not supported in 0.8 anymore?

qx.locale.Manager is undefined    DateFormat.js (line 47)
    this.__locale = qx.locale.Manager.getInstance().getLocale();

See attached test script (which worked fine in 0.7).

PS: Since I don't know whether this is a bug or simply a pattern which
is not supported anymore, I'm posting here and not in the bugtracker
directly.

--

-- 
Gaëtan de Menten
http://openhex.org
Attachment (Application.js): application/x-javascript, 465 bytes
-------------------------------------------------------------------------
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
qooxdoo-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
Gaetan de Menten | 7 Oct 17:32

Cache not invalidated/emptied automatically on 0.8 to trunk upgrade

I'm regularly switching from the 0.8 release to trunk (I have both
versions on my disk), hence my earlier complaint about the path being
specified at several places.

There is another issue to it I forgot to mention: when upgrading from
0.8, to trunk, I have the following error:

Traceback (most recent call last):
  File "/home/ged/devel/qooxdoo/trunk/tool/bin/generator.py", line
133, in <module>
    main()
  File "/home/ged/devel/qooxdoo/trunk/tool/bin/generator.py", line 128, in main
    Generator(config, job, console).run()
  File "/home/ged/devel/qooxdoo/trunk/tool/pylib/generator/Generator.py",
line 413, in run
    classList = self._depLoader.getClassList(smartInclude,
smartExclude, explicitInclude, explicitExclude, variants)
  File "/home/ged/devel/qooxdoo/trunk/tool/pylib/generator/code/DependencyLoader.py",
line 64, in getClassList
    result = self.resolveDependencies(include, block, variants)
  File "/home/ged/devel/qooxdoo/trunk/tool/pylib/generator/code/DependencyLoader.py",
line 103, in resolveDependencies
    self._resolveDependenciesRecurser(item, block, variants, result)
  File "/home/ged/devel/qooxdoo/trunk/tool/pylib/generator/code/DependencyLoader.py",
line 127, in _resolveDependenciesRecurser
    deps = self.getCombinedDeps(item, variants)
  File "/home/ged/devel/qooxdoo/trunk/tool/pylib/generator/code/DependencyLoader.py",
line 175, in getCombinedDeps
    'undef' : static['undef']
KeyError: 'undef'

rm -rf cache fixes the problem, but shouldn't this be done
automatically? I can understand a failure on the "trunk to 0.8"
transition (though it would be nice if it worked too), but 0.8 to
trunk ought to work without having to empty the cache manually.

--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 17:02

How to get the currently focused widget?

When saving a form, I need to make sure my local datastore is updated
with the on-screen value of the fields of the form. This happens
automatically when the user saves the form through the "save" button
on the toolbar, since the current field loose focus. But if the
current fields doesn't loose focus (if the user saves through the
Ctrl-S keyboard shortcut), I have to do it manually.

In 0.7, I used to do:
    var focusRoot = containerWidget.getFocusRoot();
    if (focusRoot) {
        var child = focusRoot.getFocusedChild();
        if (child) {
            child.blur();
            child.focus();
        }
    }

I couldn't find a way to get to the currently focused widget in 0.8.
Anyone knows the way to do it?

PS: I know I could just force an update of *all* widgets value, but
I'd rather avoid it since it's totally unnecessary.

--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 16:49

Decoration: repeat-x and 1px wide images

I noticed that (among others):
* decoration/form/input.png
* decoration/form/input-focused.png
are larger than 1pixel but are just the same vertical gradient across
the whole width, and their decoration use a "repeat-x" property. Is
there a reason for those images to be larger than 1px or is it just an
oversight?

--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 16:45

Decoration inheritance

Hi again,

I see there is a lot of repetition in decorations. For example, the
"input-focused" and "input-disabled" decorations only differ from the
"input" decoration for a few keys each. It would certainly make
decorations declarations shorter to have some kind of inheritance
system in place.

Does something like this already exist for decorations? If so, why
isn't it used? Is it a run-time lookup (which would slow things down
obviously but make the JS files shorter to download), or is it a
compile-time expansion? Is such a system planned?

--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 16:28

Custom 0.8 theme "not available"?

I'm using an "extended" modern theme for my application, that is I'm
inheriting from the theme and adding some states ("invalid", ...) to
some widgets. It works fine in source form, but I systematically get
the following exception as the first message in my console:

The theme to use is not available: pinte.theme.Common     Meta.js (line 108)

While my theme seem to work flawlessly (except from this error
message) in source form, the error seem fatal in "build" form. Any
idea what might be causing this?

My config.json does contain those lines:
...
"QXTHEME"      : "pinte.theme.Common",
...

 "include" :
      [
        "${APPLICATION}.Application",
        "${QXTHEME}"
      ],

and pinte/theme/Common.js looks like this:

qx.Theme.define("pinte.theme.Common", {
    title: "Common theme",

    meta: {
        appearance : pinte.theme.Appearance,
        color: pinte.theme.Color,
        decoration: pinte.theme.Decoration,
        font : qx.theme.modern.Font,
        icon : qx.theme.icon.Tango
    }
});

Thanks for any pointer...
--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 15:49

Path to Qx lib in 0.8 (config.json & generate.py issue)

Here is one regression in 0.8: moving the qooxdoo lib around is a pain:

In 0.7.x you only had to change the path to where Qooxdoo is installed
in one place. Now you have to change it in 3 places: twice in
config.json and one in generate.py, which is especially ugly IMO.

This is problematic for writing installation instructions of my App (I
can't force people to install qooxdoo in the exact same folder as I
did).

Couldn't the "userland" generate.py get the path to qooxdoo from config.json?
Also I tried to eliminate the extra one in config.json, by having
something like this:

  "let" :
  {
    "QOOXDOO_ROOT" : "../qooxdoo/0.8/",
    "QOOXDOO_PATH" : "${QOOXDOO_ROOT}/framework",
  },

  "include" :
  [
    {
      "path" : "${QOOXDOO_ROOT}/tool/data/config/application.json",
      "as"   : "appconf"
    }
  ],

But apparently the macro system doesn't work for the "path" key (it's
not expanded)...

--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Gaetan de Menten | 7 Oct 15:37

0.8 migration report

Hi all,

Here is my experience with migrating my code to 0.8. It was quite a
painful experience for me...

In the hope you can make it a more pleasant experience for others,
here are my comments about the migration itself. I also had many
issues in 0.8 which made the migration painful, but since those are
not specific to migrating from an earlier version, I'll post those
which are not fixed yet in trunk in separate messages.

These comments are after an attempt to follow the guidelines at:
http://qooxdoo.org/documentation/0.8/migration_guide_from_07

* I abandoned trying to go through the advertised "legacy" route (way
"1" in the guide). It just didn't work for me and made me loose much
time instead of saving some... The problem is that when you want to go
through "route 2", there are apparently no automated script to help
you: you have lots of "legacy" references that you need to get rid of.
It would be nice if there was a migration path for those who would
like to go straight to non-legacy crippled 0.8, as the migration
script could have done automatically much of the ".legacy" stripping I
had to do.

* I had to add #asset hints to my code, while it previously worked without.

* I had to add these lines (copied from the skeleton) to my
Application.js, to have debugging output. Couldn't find this mentioned
anywhere, and the migration script could have added that
automatically...

            if (qx.core.Variant.isSet("qx.debug", "on")) {
                qx.log.appender.Native;
                qx.log.appender.Console;
            }

* Also not mentioned in the doc, I had to change all occurences of
adding several items to a menu at once to one item per call:
-            file_menu.add(new_mb, open_mb, save_mb);
+            file_menu.add(new_mb);
+            file_menu.add(open_mb);
+            file_menu.add(save_mb);

* This was mentioned in the doc but could have easily been done automatically:
 qx.util.Mime.XML -> "application/xml"

* table.model.Simple: _rowArr was renamed to __rowArr and wasn't
mentioned in the doc. This is a private variable but should be
mentioned in the "migration notes" anyway as people using a custom
table model usually inherit from it, so it does matter. Btw,
treevirtual/SimpleTreeDataModel.js still use _rowArr, but since it
inherits from table.model.Simple, it has both.
Same comment for _sortMethods and _sortColumnIndex.

Hope it helps,
--

-- 
Gaëtan de Menten
http://openhex.org

-------------------------------------------------------------------------
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=/
Jenec | 6 Oct 13:39

Composite: "There is already a widget in this cell"


I am positioning widgets using qx.ui.container.Composite() and need to
replace content of certain rows in it, but of course I always get a message:
Error: There is already a widget in this cell (7, 1). 
So all I need to know is how to remove content of cell (7,1) before
inserting another widget.
I tried to insert widgets into Composite using addAt() method and remove
them using removeAt(), but it doesn't work.
Thanks for your ideas.
--

-- 
View this message in context: http://www.nabble.com/Composite%3A-%22There-is-already-a-widget-in-this-cell%22-tp19836283p19836283.html
Sent from the qooxdoo-devel mailing list archive at Nabble.com.

-------------------------------------------------------------------------
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=/
burak | 6 Oct 16:26

caldav, or webdav in general

dear list,

has anyone tried to implement an application similar to google calendar?

i did some research myself and i think a server implementing caldav[1] 
is the best backend choice, as it is already supported in many other 
clients.  however, there's no webdav library in qooxdoo, and a quick 
googling turns out only this [2] library.

the other way is to implement a custom remote procedure set that will 
have zero interoperability, not the way to go, imo.

a webdav backend would also be quite useful when implementing solutions 
like file managers (as in jt-os) as well. there's even a kernel module 
for linux that lets you mount webdav shares :)

so, i think webdav support could be considered for some future qooxdoo 
release. looking at the wide popularity that the webdav protocol has 
enjoyed, and surprisingly little support it managed to get from the 
javascript world, adding it to qooxdoo may be a big plus.

what do you think?

best regards,
burak

ps.
is there a roadmap document anywhere in qooxdoo.org? i could not find 
it, but it could be me.

ref:
[1]: caldav is rfc 4791, it's an extension to webdav, which is rfc 2518 
and 3744. see caldav.org for more.
[2]: http://johnnydebris.net/projects/davclient.js

-------------------------------------------------------------------------
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=/

Gmane