**** BEGIN LOGGING AT Thu Aug 30 03:00:02 2012 Aug 30 14:11:01 morning Aug 30 14:37:24 can someone explain fittable to me? Aug 30 14:37:57 I've had a lot of instances recently where I set something to fit: true (after ensuring that all parent kinds are FittableRows/etc.) and the height goes to 0 Aug 30 14:38:02 I think I'm missing something crucial Aug 30 14:46:40 and did the other kinds have fixed heights? Aug 30 14:47:17 the other kinds are generally inheritiing/re-doing fittable Aug 30 14:47:21 so, I think so Aug 30 14:50:38 swisstomcat: how familiar w/ the fittable code are you? Aug 30 14:51:01 would you be able to give me a walkthrough? or should I just go read it? Aug 30 14:58:37 not that familiar yet Aug 30 14:58:50 but obviously fittable works better if the rest is fixed Aug 30 15:03:22 I thoguht fittable was supposed to make it fixed "in the background" or whatever Aug 30 15:05:19 my understanding was that fittable was supposed to analyze the window size, and set px sizes Aug 30 18:35:21 can anyone explain to me why there's a ton of room at the bottom of my scroller? Aug 30 18:35:33 I'm following the twitter pulldown list example Aug 30 18:35:56 not w/o seeing code first Aug 30 18:41:23 pastie / pastebin Aug 30 18:42:01 http://pastebin.com/P7ZNp4fi Aug 30 18:44:43 your scroller should be outside panels? Aug 30 18:45:19 i don't think you would want to use panels to switch from scroller to scroller.. defeats the purpose of panels Aug 30 18:46:13 uhm but aside from that, can you see your toolbar? Aug 30 18:46:29 and/or where does the toolbar appear Aug 30 18:47:29 toolbar shows in the right place Aug 30 18:48:08 the problem is after the content in the list is rendered, there's a ton of empty space below it Aug 30 18:48:27 i'm sure it's something idiotic Aug 30 18:49:09 wait, am i looking at the top panels or he bottom? Aug 30 18:50:21 for feedview i wouldn't think it would show at all, unless you give it a specific height property Aug 30 18:50:45 wait you've got two panels with the same name..? Aug 30 18:50:56 yea, just saw that...had just moved it all to the left pane Aug 30 18:50:58 no no no you're doing it wrong Aug 30 18:51:01 hahaha Aug 30 18:51:04 YES Aug 30 18:52:29 i want it to fill everything above the toolbar Aug 30 18:52:52 http://pastebin.com/N648kAPU Aug 30 18:52:53 try that Aug 30 18:53:19 then you call this.$.sourcePanels.setIndex(0) or .setIndex(1) Aug 30 18:53:45 it should render correctly i believe Aug 30 18:54:38 man i had to convince my CS guy that he was doing the right thing by signing me off for taking JAVA I this semester Aug 30 18:54:56 >.< how do you explain that you'll be fine, lol.. Aug 30 18:55:44 he looked at my degree audit and was like, "i don't even understand how you got where you are. you don't have any background in anything and you haven't taken any programming courses yet..." Aug 30 18:58:16 thanks man, looks like i'm getting closer...toolbar ran to the top though Aug 30 18:58:31 haha...that is a great statement "you don't have any background in anything" Aug 30 18:58:49 okay so try putting fit true to feedview and storiesview instead of classes enyo fit Aug 30 18:59:40 yeah, he's the guy who i report to for the CS work study, that he created, just for me, too lol Aug 30 19:00:10 the whole conversation was somewhat ironic Aug 30 19:00:17 nice...sounds like you're in good hands Aug 30 19:00:43 but then i go on, like 'oh i write tons of javascript' and he's all "javascript isn't a language i'm a database guy blah blah" Aug 30 19:01:03 haha...yea, little different Aug 30 19:01:59 we used java for OOP and HCI requirements, c/c++ for intro/data structures Aug 30 19:02:15 ya. apparently i wasn't even supposed to take the work study 299 co-op last semester, even tho i killed it.. Aug 30 19:02:32 nice...those are the most valuable (IMO) Aug 30 19:03:10 yeah. but i guess the class i'm taking this semester i should have taken before the co op last semester. so that makes me BENDER Aug 30 19:03:31 ps. toolbar is in the right place, now but scroller is acting funny Aug 30 19:04:12 kinda makes you wonder if you hsould have to go back and take the pre-req after the fact Aug 30 19:04:23 lol Aug 30 19:04:26 shit...gtr...thx for the help...back later for more abuse Aug 30 19:04:36 take enyo fit out of scroller make it fit true Aug 30 19:04:46 cool, later Aug 30 20:45:35 * phil_bw wanders by Aug 30 20:45:45 eyyo.. Aug 30 20:46:23 quick question, when waterfalling an event what is the best way to determine that said event has made it through every child? Aug 30 20:47:23 I don't know of another way without a response callback Aug 30 20:47:25 if you need to do that you might want to look at enyo.Signals Aug 30 20:47:45 and i know that's not the right answer. Aug 30 20:48:04 enyo.Signals is still unidirectional, right? Aug 30 20:48:12 Here's what I am attempting to do, maybe I am going about it wrong Aug 30 20:48:15 yes, it goes everywhere Aug 30 20:48:26 multidirectional* Aug 30 20:48:36 So i've got two different kinds, let's call them "WidgetGroup" and "WidgetPart" Aug 30 20:49:02 each WidgetPart will contain one value which is identified by some string Aug 30 20:49:04 but that still doesn't give the paren't knowledge of the receipt of an event Aug 30 20:49:14 WidgetGroup contains lots of WidgetParts Aug 30 20:49:41 basically WIdgetGroup needs to collect that identifier from each of the WidgetParts then do an Ajax call to get the data for them then turn around and populate each of them Aug 30 20:50:15 I'm quite good at throwing around Ajax data so that's not an issue, it's finding a way to collect each of the WidgetParts identifiers Aug 30 20:51:12 My thought was to have WidgetGroup waterfall an event to all of its children then have the WidgetParts handle that event and send their identifier back, I just don't know how I'd determine that it's done making it's rounds so I can run the Ajax call Aug 30 20:52:26 why not just iterate through them, and store a tmp array of their IDs? Aug 30 20:52:53 that was my other thought, but they won't always neccisarily be direct decendants Aug 30 20:53:01 ah Aug 30 20:53:01 they might be wrapped in other controls Aug 30 20:53:06 hrm Aug 30 20:53:11 that's where a waterfall event works wonderfully Aug 30 20:53:16 it penetrates all the way down Aug 30 20:55:03 well, if your waterfall mechanism is intended to respond anyway, shouldn't you just be able to maintain a count in WidgetGroup, and count how many responses you get back/ Aug 30 20:55:13 s/\//?/ Aug 30 20:55:41 yeah, but I still don't have a means of knowing how many are supposed to come back Aug 30 20:55:57 I guess I could place an "EndWidget" at the very end of the list Aug 30 20:56:08 are you dynamically generating your WidgetParts? Aug 30 20:56:08 but that seems like the wrong way about it Aug 30 20:56:24 no, they are defined in the source Aug 30 20:56:24 they're coming from somewhere right? Aug 30 20:56:36 so... the way you know that is... counting? Aug 30 20:56:43 but as I said they aren't always direct decendants Aug 30 20:57:02 I'd basically have to maintain a seperate "count" property that I would have to remember to change Aug 30 20:57:11 that's what it sounds like to me, yes Aug 30 20:57:39 I mean, I guess you could do something clever and search the whole tree, and set the count that way Aug 30 20:57:48 but if you're doing that, I'd just store the id's as you go Aug 30 20:58:06 exactly Aug 30 20:58:17 how many components are we talking? Aug 30 20:58:28 it'll vary Aug 30 20:58:37 could be as little as one child and as many as 40 or 50 Aug 30 20:58:45 how deep? Aug 30 20:59:02 vs. how wide? Aug 30 20:59:04 that would very too, depending on the complexity of that particular "widget Aug 30 20:59:37 do you have ways of ensuring that some branches won't have WidgetParts? Aug 30 20:59:58 what do you mean? Aug 30 21:00:31 so, your parent node of the tree would be WidgetGroup. Do you have a way of knowing that some components of the WidgetGroup won't have WidgetParts children? Aug 30 21:00:50 not really Aug 30 21:01:30 how many 1st level children components does WidgetGroup have? or will that vary also? Aug 30 21:01:43 that would vary as well Aug 30 21:02:10 and I also should clarify that although these aren't dynamic now, at some point in time they will be so I'd like to make that transition go well Aug 30 21:02:16 if you _need_ an assurance that it's done, I would either depth-first or breadth-first search Aug 30 21:03:14 hm... Aug 30 21:03:30 and, in case you're not familiar with those algorithms, one is better if the tree is deeper than it is wide, and one is better if the tree is wider than it is deep Aug 30 21:03:47 if we're talking about a maximum of 50 descendents, it should still be pretty quick Aug 30 21:04:01 makes sense Aug 30 21:04:34 the non-assured option is just a timeout Aug 30 21:04:46 "if I haven't received an event in X time, call it done" Aug 30 21:05:00 but that doesn't guarantee that you've received all responses Aug 30 21:05:03 yeah I thought of that too, it just seems there should be a way to see if a waterfall is done Aug 30 21:05:10 clearly it's merely looping at a lower level Aug 30 21:05:16 the loop has to finish at some time Aug 30 21:05:32 fxspec06_ has looked at that code Aug 30 21:05:37 I've assumed it was recursive Aug 30 21:06:57 I see Aug 30 21:09:48 you could also log the inEvent parameter, and see if there's something that the docs don't expose that you can use Aug 30 21:09:59 what's up? sorry, busy battling bugs myself Aug 30 21:10:13 I'm going to play with a test one now Aug 30 21:11:49 hrm, i just reread, i haven't thought of anything yet. Aug 30 21:12:17 well that sucks :( Aug 30 21:14:19 you could send a callback fn along w/ a counter, increment the counter, pass it to descendents, and if that control has no more descendants call back Aug 30 21:15:22 so still loop through all controls then? Aug 30 21:15:38 fxspec06_: how does the bubble mechanism work? is it recursive? Aug 30 21:16:19 bubble will move through everything that moves up the chain until return true; Aug 30 21:17:01 I'm using waterfall to work my way down the chain Aug 30 21:17:12 moving up the chain it won't hit more than one component, but waterfall loops through controls i'm pretty sure, let me check Aug 30 21:17:36 that's weird Aug 30 21:18:20 phil: you want waterfallDown Aug 30 21:18:26 well, wait, loops through all the controls at a given level in the tree, and then call waterfall again? Aug 30 21:18:38 that loops through controls.. then in each component you want Aug 30 21:18:40 I don't think he does Aug 30 21:18:57 doesn't waterfallDown go up the tree? Aug 30 21:18:58 yeah, waterfallDown goes through everything including itself Aug 30 21:19:05 ok, well waterfallDown does the same thing only it doesn't include itself, still not sure how I know its done Aug 30 21:19:17 no, waterfallDown includes the object itself, same as waterfall Aug 30 21:19:31 wait, now I'm confused Aug 30 21:19:38 wasterfallDown goes up the tree, right? Aug 30 21:20:20 and bother waterfallDown or waterfall loop through the controls at each level in the tree, right? Aug 30 21:20:37 you know what? just give me a file Aug 30 21:20:45 s/file/path/ Aug 30 21:21:27 phil_bw: you have a control {name: "myobj", dosomething: function(){console.log("a"), components: [{dosomething: function(){console.log("b")}, {dosomething: function(){console.log("c"), components: [{name: "sub", dosomething: function(){console.log("d")}]}]} Aug 30 21:21:51 ?? Aug 30 21:21:53 huh? Aug 30 21:22:05 yeah, ok Aug 30 21:22:27 i konw that's horrible. if you bubbleup("dosomething") from d you'll see D, C, and A in the logs. a bubble("dosomething") would see C and A. a waterfallDown("dosomething") you'd see A, B, C, and D Aug 30 21:23:07 yeah, waterfall is the way I need to go Aug 30 21:23:25 but how does my code know that D is the last item? Aug 30 21:23:44 this.$.myobj.waterfall("dosomething", args); you'd see B only, because B has no descendants Aug 30 21:23:51 is there perhaps a way to override how it creates components? Aug 30 21:24:11 so upon creation of it's children components it can check each one for the identifier? Aug 30 21:24:13 wait, no, sorry i take that back.. Aug 30 21:24:42 you know... you could override waterfall to return a count to it's caller Aug 30 21:24:59 I was trying to think of how to do that Aug 30 21:25:21 waterfall is what calls the message on itself, ** sorry.. waterfallDown just sends it to the components. ohh Aug 30 21:25:47 I'm not sure how overriding works in JS Aug 30 21:25:56 phil_bw: just make your own waterfall function, and do like they do in the source Aug 30 21:26:11 var r = this.inherited(arguments); /* your stuff */ return r; Aug 30 21:26:13 I've been poking around the source Aug 30 21:26:18 it might be easiest for your purposes just to clone/modify the Component waterfall Aug 30 21:26:30 Component.countWaterfall() or some such Aug 30 21:26:38 that works great for me for everything i've ever overridden Aug 30 21:26:47 wait wait wait Aug 30 21:26:50 I got it Aug 30 21:27:05 I think I just figured out how I am going to do this, and it's stupid easy Aug 30 21:27:10 oh? Aug 30 21:28:45 why not just in my "WidgetPart" kind add something to the create handler to register it's identifier with the WidgetGroup kind Aug 30 21:29:16 nice, an enyo.Signals call in create() Aug 30 21:29:18 duh Aug 30 21:30:45 yep Aug 30 21:31:15 * fxspec06_ not gonna say anything. Aug 30 21:31:45 wait, why? is there something wrong with that fxspec06_ ? Aug 30 21:31:51 if you need to do that you might want to look at enyo.Signals Aug 30 21:32:00 oh, yeah, but you didn't say how Aug 30 21:32:03 well i wasn't thinking of using Signals per say Aug 30 21:32:21 I'll clarify in a sec when I am off the phone Aug 30 22:22:08 sorry, that was a long phone call Aug 30 22:26:49 so simply put, on every WidgetPart's create call it will bubble it's id, WidgetGroup will handle the bubble and store the id, once WidgetGroup hits it's own create call the list will be done and it can use that to make it's ajax call then return the values **** ENDING LOGGING AT Fri Aug 31 02:59:59 2012