fluid-work IRC Logs-2012-02-15

[08:33:13 CST(-0600)] <michelled> alexn1: I'm having some trouble with merging my branch with master so I don't have a branch for you to work off yet

[08:33:26 CST(-0600)] <michelled> alexn1: you can start your exploration using cindyli's branch: https://github.com/cindyli/videoPlayer/tree/FLUID-4587-4546

[08:33:39 CST(-0600)] <michelled> alexn1: I'll let you know as soon as I have my branch ready

[08:34:06 CST(-0600)] <alexn1> ok

[08:47:51 CST(-0600)] <jessm> http://www.contactnorth.ca/?q=node/165

[09:32:26 CST(-0600)] <anastasiac> colinclark, maybe you might recognize this: on the Mac, clicking on an HTML button does not actually cause a focus event on that button: focus moves to the body element. I've researched for any mention of this but found nothing. On windows (at least in FF and IE), clicking does cause a focus event

[09:32:42 CST(-0600)] <anastasiac> this issue is causing me some problems, and I'm not sure what to do about it

[09:33:04 CST(-0600)] <colinclark> why is it causing problems?

[09:33:32 CST(-0600)] <anastasiac> I'd like to use deadmansblur to hide the caption menu in the video player, but since it doesn't get focus, it never gets a blur

[09:33:59 CST(-0600)] <colinclark> hide the caption menu in what circumstance?

[09:34:12 CST(-0600)] <anastasiac> in the case the the user clicks anywhere else

[09:35:07 CST(-0600)] <colinclark> Can you create a very, very simple test page using our focus/blur testing tools from the old days that illustrates this problem, anastasiac?

[09:35:34 CST(-0600)] <anastasiac> certainly - I've been using the DebugFocus tool already

[09:35:58 CST(-0600)] <anastasiac> so this doesn't sound familiar to you, colinclark? You haven't encountered it anywhere else?

[09:36:13 CST(-0600)] <colinclark> No, it doesn't sound familiar to me

[09:37:22 CST(-0600)] <colinclark> But I'd love to see a completely simplified test page

[09:37:25 CST(-0600)] <colinclark> that'll be interesting

[09:39:26 CST(-0600)] <anastasiac> yeah, I was already putting one together

[10:23:55 CST(-0600)] <Justin_o> yura: do you have a second for an IoC question?

[10:24:39 CST(-0600)] <yura> Justin_o: yep

[10:25:37 CST(-0600)] <Justin_o> yura: so i'm trying to do event boiling. The event is getting triggered and and listener is handling it, but the added argument i'm trying to pass in isn't coming out correctly

[10:26:02 CST(-0600)] <Justin_o> yura: here is the demands i'm using

[10:26:03 CST(-0600)]

<Justin_o> fluid.demands("queueError", ["decapod.exporter", "fluid.uploader"], ["

Unknown macro: {arguments}

.0", "

.1", "

Unknown macro: {uploader}

"]);

[10:26:12 CST(-0600)] <Justin_o> so the uploader is coming back as undefined

[10:26:42 CST(-0600)] <yura> hmm Justin_o, us queueError and event ?

[10:27:00 CST(-0600)] <colinclark> I think that was "is queueError an event?"

[10:27:06 CST(-0600)] <Justin_o> yura: yes.. queueError is an event.. so that part is actually working

[10:27:08 CST(-0600)] <Justin_o> colinclark: thanks (smile)

[10:27:36 CST(-0600)]

<Justin_o> if i use "uploader" instead of "

Unknown macro: {uploader}

" i get the string

[10:27:50 CST(-0600)]

<Justin_o> so the "

Unknown macro: {uploader}

" isn't being expanded to anything i think

[10:28:24 CST(-0600)]

<yura> Justin_o: what happens if you put "

Unknown macro: {fluid.uploader}

" in there?

[10:28:27 CST(-0600)] <yura> any difference ?

[10:30:10 CST(-0600)] <Justin_o> yura: same problem

[10:31:40 CST(-0600)] <yura> is there a test case that shows how to use this form of even boiling Justin_o?

[10:32:31 CST(-0600)] <Justin_o> yura: good question.. i'll go take a look for one, that might help

[10:32:59 CST(-0600)] <yura> Justin_o: i m just now sure i understand the demands

[10:33:21 CST(-0600)] <Justin_o> yura: okay

[10:33:30 CST(-0600)] <yura> you have demands for an event, in context, and you specify args, but where does the listener come into play ?

[10:45:56 CST(-0600)] <yura> hmm Justin_o i see what you are saying

[10:45:59 CST(-0600)] <yura> i found this

[10:46:06 CST(-0600)] <yura> https://github.com/fluid-project/infusion/blob/master/src/webapp/tests/framework-tests/core/js/FluidIoCTests.js#L453-474

[10:47:29 CST(-0600)] <yura> Justin_o: do you think you need to specify the event as an object ?

[10:48:11 CST(-0600)] <yura> Justin_o: maybe you just list an event as name: null/preventable/etc rather than doing what the test case describes

[10:48:18 CST(-0600)] <yura> ?

[10:49:58 CST(-0600)] <Justin_o> yura: ah yes.. you are referring to the config in the fluid.tests.child component.. yes.. i did that part already

[10:50:29 CST(-0600)] <Justin_o> yura: it's the part at line 473 that seems to be failing me now

[10:50:35 CST(-0600)] <yura> hmm im going to add this test case to my examples see what i can come up with

[10:51:54 CST(-0600)] <Justin_o> yura: thanks

[10:51:59 CST(-0600)] <Justin_o> i'll keep trying too

[10:52:14 CST(-0600)] <yura> Justin_o: and the event is local right ?

[10:55:04 CST(-0600)] <yura> Justin_o: do you fire localEvent or boiled event?

[11:00:44 CST(-0600)] <Justin_o> yura: localEvent is fired.. and boiledEvent is listened to

[11:01:05 CST(-0600)] <yura> Justin_o: haha i managed to fail one case (smile)

[11:01:32 CST(-0600)] <yura> basically http://pastie.org/3388765

[11:01:58 CST(-0600)] <yura> the last event that i fire fails in the listener for it on llines 90-92

[11:05:10 CST(-0600)] <Justin_o> yura: which test failed? or did they both fail

[11:05:35 CST(-0600)] <yura> Justin_o: you can see all of my event boiling tests https://github.com/yzen/CSPACE-UI-Workshop/blob/master/test.js#L244-342

[11:05:58 CST(-0600)] <yura> if you check the repo out, try running it (uncomment the last event fire and expect statment)

[11:06:38 CST(-0600)] <Justin_o> yura: okay.. let me try that

[11:31:37 CST(-0600)] <jessm> he sounded very harmonic: http://www.bbc.co.uk/news/magazine-16681630

[11:54:19 CST(-0600)] <Justin_o> yura: i think i found the problem with mine, not sure why you have an error in yours though (smile) but it looks like it has something to do with the uploader

[11:55:21 CST(-0600)] <yura> huh

[11:55:26 CST(-0600)] <yura> interesting

[11:55:47 CST(-0600)] <yura> but mine fails for you as well right ? and you would expect it to pass?

[11:57:46 CST(-0600)] <Justin_o> yura: yes.. it did fail for me as well.. let me take another look at it

[12:18:10 CST(-0600)] <Justin_o> yura: i guess it has something to do with the way you are firing the event directly. I wonder if it's not going through the resolution process because of that.. but i would have thought it would be okay

[12:20:37 CST(-0600)] <Justin_o> colinclark: i was trying to get event boiling to work for one of the events from the uploader, so that I could pass the component along in the event. However, it wasn't working because i was passing along "uploader". If i switched this to "multiFileUploader" it works. It seems that "fluid.uploader" isn't in the static environment at all.. rather "fluid.uploader.multiFileUploader" is..

[12:20:42 CST(-0600)] <Justin_o> colinclark: is that expected behaviour?

[12:22:55 CST(-0600)] <colinclark> Justin_o: Yeah, that's true

[12:23:02 CST(-0600)] <colinclark> uploader is sort of just a shadow of a component

[12:23:11 CST(-0600)] <colinclark> the multi guy is the one that is "the uploader" in your mind

[12:23:17 CST(-0600)] <colinclark> it's not a 100% awesome design

[12:23:54 CST(-0600)] <Justin_o> colinclark: okay.. thanks… i guess i just wasn't expecting it

[13:17:58 CST(-0600)] <Bosmon> Justin_o, yura - sorry about the problems with demands block resolution

[13:18:23 CST(-0600)] <Bosmon> "making things work the way people would expect" in the Uploader is one of the primary goals of the framework rewrite that someday will appear....

[13:18:59 CST(-0600)] <Bosmon> Right now there is a lot of jury-rigging and "moon landings" there to make everything work out, and in some situations not all the component names you would expect to be visible are actually visible

[13:19:28 CST(-0600)] <Justin_o> Bosmon: thanks.. glad to know that it's in the forecast

[13:23:38 CST(-0600)] <Bosmon> As it stands. "fluid.uploader" is just an "alias" name.... aliases are stored in a separate table to normal names, and it looks like they are not good for all of the same purposes that real names are, although the original intention was that they would be

[13:24:04 CST(-0600)] <Bosmon> In the "future framework" we will do away with the alias system and put all names on the same footing - that is, one component can have any number of type names

[13:24:57 CST(-0600)] <Bosmon> Right now each component is limited to a maximum of 3 concrete names, which you only really have control over about one and a half of...

[13:27:35 CST(-0600)] <Justin_o> Bosmon: that's something like "fluid.uploader.multiFileUploader" and "multifFileUploader"

[13:27:42 CST(-0600)] <Justin_o> ?

[13:31:41 CST(-0600)] <Bosmon> Yes

[13:31:54 CST(-0600)] <Bosmon> Those are generally the names you can control - the "full type name" and the "nickName"

[13:32:27 CST(-0600)] <Bosmon> The other name is the "member name", the name of that instance of the component inside a container that it might be in

[13:50:30 CST(-0600)] <yura> hi everyone, this is the meeting link http://yura.enterthemeeting.com/

[13:50:41 CST(-0600)] <colinclark> fluid-everyone: Who would like to join over Skype?

[14:35:27 CST(-0600)] <yura> this is the link to the repo: https://github.com/yzen/CSPACE-UI-Workshop

[15:00:42 CST(-0600)] <jhung> justin_o: I pushed up some changes to the Exporter CSS. Minor changes and shouldn't affect your work,.

[15:10:34 CST(-0600)] <Justin_o> jhung: okay, thanks. i'll try to remember to update it tomorrow

[15:17:10 CST(-0600)] <Justin_o> jhung: by the way, i've got most of what I was working on done, i just need to think of how I'll be rendering it on the page

[15:17:22 CST(-0600)] <Justin_o> then how we'll swap between the instructions and the status

[15:17:31 CST(-0600)] <Justin_o> jhung: i'll look into those tomorrow though

[15:17:38 CST(-0600)] <jhung> okay thanks justin_o

[15:33:27 CST(-0600)] <colinclark> anastasiac: I looked at your focus test

[15:33:36 CST(-0600)] <colinclark> I certainly can reproduce

[15:33:44 CST(-0600)] <colinclark> Here's the question, though

[15:33:55 CST(-0600)] <colinclark> the same question that I often end up asking when little details like this come to light

[15:34:22 CST(-0600)] <colinclark> Give me some background: what are you trying to accomplish, such that you hit this bug as a problem?

[15:34:34 CST(-0600)] <colinclark> or something like that

[15:34:41 CST(-0600)] <colinclark> Maybe the question is really...

[15:35:00 CST(-0600)] <colinclark> What are you actually doing, so we can decide if this is actually a bug we need to worry about, or if there is a better approach all around?

[15:35:33 CST(-0600)] <anastasiac> here's the context, colinclark: in the videoPlayer we have the 'captions' button (and the 'transcripts' and 'audio descriptions' buttons)

[15:35:45 CST(-0600)] <anastasiac> when they are activated, the language selection menu pops up

[15:36:21 CST(-0600)] <anastasiac> if the user clicks elsewhere while the menu is up, the menu should disappear (according to jameswy)

[15:36:35 CST(-0600)] <colinclark> So the issue is that you're using <button> elements to make these buttons?

[15:36:52 CST(-0600)] <anastasiac> well, possibly - I

[15:37:02 CST(-0600)] <anastasiac> i'm not sure yet what the issue is

[15:37:07 CST(-0600)] <anastasiac> I am using button elements

[15:37:20 CST(-0600)] <colinclark> What kind of ARIA role does a button like this need?

[15:37:24 CST(-0600)] <anastasiac> it's possible that other elements wouldn't exhibit this inconsistency

[15:38:05 CST(-0600)] <anastasiac> I'm not sure I understand your question

[15:38:07 CST(-0600)] <colinclark> anastasiac: Your test page shows that links don't have this issue, doesn't it?

[15:38:20 CST(-0600)] <anastasiac> correct

[15:38:48 CST(-0600)] <colinclark> Which question don't you understand?

[15:38:59 CST(-0600)] <anastasiac> the one about an aria role on a button

[15:40:01 CST(-0600)] <anastasiac> it is semantically a button (as well as actually), so if I were to attach a role, it would be "button"

[15:45:04 CST(-0600)] <colinclark> anastasiac: But is this really a button, straight up?

[15:45:13 CST(-0600)] <colinclark> End of story, just a plain old button?

[15:45:57 CST(-0600)] <anastasiac> a toggle button, actually, but this is what it seems to be, to my thinking

[15:46:47 CST(-0600)] <anastasiac> the aria spec uses a role of 'button' for "An input that allows for user-triggered actions when clicked or pressed"

[15:47:03 CST(-0600)] <anastasiac> in this case, the action is making the menu available to the user

[15:49:20 CST(-0600)] <colinclark> Should keyboard focus automatically move to the first menu item when it is activated?

[15:49:46 CST(-0600)] <anastasiac> no, only if it is activated through the "up" arrow. If it's activated through click or space or enter, focus does not move to the menu

[15:50:56 CST(-0600)] <colinclark> anastasiac: So this test page is pretty enlightening

[15:51:18 CST(-0600)] <colinclark> focus moves off any previously focused element when a button is clicked

[15:51:28 CST(-0600)] <anastasiac> right, you get a blur

[15:51:29 CST(-0600)] <colinclark> and seems to drift out into nowhere

[15:51:34 CST(-0600)] <colinclark> focus I mean

[15:51:37 CST(-0600)] <colinclark> it just disappears

[15:51:58 CST(-0600)] <anastasiac> if you query "document.activeElement" you get the html body, but you don't seem to get a focus on the body

[15:52:51 CST(-0600)] <colinclark> So, naively, you have two workarounds to this issue:

[15:53:05 CST(-0600)] <colinclark> 1. Programmatically move focus onto the button when it is clicked

[15:53:14 CST(-0600)] <colinclark> 2. Use an anchor and give it an ARIA button role

[15:53:26 CST(-0600)] <colinclark> So are there any other options to consider?

[15:54:15 CST(-0600)] <anastasiac> I experimented with option 1., only to discover that for some inexplicable reason, sometimes, calling focus() on the button triggers the click handler (warning)

[15:54:26 CST(-0600)] <anastasiac> I haven't yet narrowed down just what was going on there

[15:55:06 CST(-0600)] <anastasiac> option 2 would certainly work, though it grates a bit to have to use an anchor and call it a button, when we have buttons (smile)

[16:01:55 CST(-0600)] <colinclark> anastasiac: I imagine you're not the first person to make a menu button

[16:02:01 CST(-0600)] <colinclark> What do other implementations do?

[16:03:22 CST(-0600)] <anastasiac> I haven't researched other implementations yet, colinclark

[16:03:41 CST(-0600)] <colinclark> sounds like a plan

[16:03:48 CST(-0600)] <cindyli> michelled: pushed

[16:04:04 CST(-0600)] <michelled> thx cindyli!

[16:04:10 CST(-0600)] <cindyli> np

[16:05:04 CST(-0600)] <colinclark> anastasiac: Filament Group's initial implementation uses a combination of an anchor and a list

[16:05:09 CST(-0600)] <colinclark> http://filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/

[16:07:17 CST(-0600)] <colinclark> As does the branch in the jQuery UI repository

[16:08:02 CST(-0600)] <colinclark> Looks like they actually give it a role of listbox

[16:09:37 CST(-0600)] <colinclark> I wonder if it's worth considering using this widget rather than rolling our own

[16:09:41 CST(-0600)] <colinclark> though we may have the usual compatibility issues

[16:09:49 CST(-0600)] <colinclark> with contemplating, anyway

[16:11:22 CST(-0600)] <anastasiac> colinclark, I investigated several widgets. The closest was the new menu widget coming out in jQ UI 1.9, but using that would require upgrading jQ and jQ UI. I tried that in infusion, and it broke lots. We'll have to do the upgrade at some time, but I chatted with michelle, and she felt that at this point, we should not do that

[17:05:59 CST(-0600)] <SouvPonk> Hi!

[17:06:29 CST(-0600)] <SouvPonk> I've got a problem with redrawing of widgets

[17:07:12 CST(-0600)] <SouvPonk> I've created a window which reacts to incoming OSC message, and I would like to change the values of several widgets (buttons, sliders) when a certain OSC message incomes

[17:08:00 CST(-0600)] <SouvPonk> I've written the OSC method, and it works fine, I can change the value using button->value(myvalue), but then, the button doesn't redraw until I move my mouse or hit a key;

[17:08:06 CST(-0600)] <SouvPonk> How can I get rid of this?

[17:08:34 CST(-0600)] <SouvPonk> I've been through fltk documentation and examples more and more, but couldn't find anything else that what I'm doing right now;