| 00:12:09 | *** sprasanna_ has quit IRC |
| 00:20:20 | *** sprasanna has joined #openmrs |
| 00:46:47 | *** njero has joined #openmrs |
| 00:46:47 | *** ChanServ sets mode: +v njero |
| 01:38:37 | *** Keelhaul has quit IRC |
| 02:07:37 | *** sprasanna_ has joined #openmrs |
| 02:07:38 | *** sprasanna has quit IRC |
| 03:49:37 | *** sprasanna_ has quit IRC |
| 03:56:55 | *** sprasanna has joined #openmrs |
| 05:59:19 | *** upul has quit IRC |
| 06:07:45 | *** james_regen has joined #openmrs |
| 06:07:45 | *** ChanServ sets mode: +v james_regen |
| 06:40:55 | *** njero has quit IRC |
| 06:57:46 | *** bwolfe has joined #openmrs |
| 06:57:46 | *** ChanServ sets mode: +o bwolfe |
| 06:58:48 | *** sprasanna_ has joined #openmrs |
| 07:08:01 | *** sprasanna has quit IRC |
| 07:27:23 | *** bmckown has joined #openmrs |
| 07:27:23 | *** ChanServ sets mode: +o bmckown |
| 08:03:25 | *** atomicturtle has joined #openmrs |
| 08:16:19 | *** bwolfe has quit IRC |
| 09:31:07 | <sprasanna_> bmckown: Hi Brian.. |
| 09:31:13 | <sprasanna_> I have a small doubt.. |
| 09:31:25 | <bmckown> yes? |
| 09:32:10 | <sprasanna_> i have some thing like this model.put("layoutTemplate", layoutTemplate); here layoutTemplate is the object of LayoutTemplate and it has the method getLines() |
| 09:32:45 | <sprasanna_> and in the addressLayout jsp page its is called like this ${model.layoutTemplate.lines} |
| 09:33:00 | <bmckown> yes |
| 09:33:07 | <bmckown> it works, no? |
| 09:33:22 | <sprasanna_> its how now in the openmrs core |
| 09:33:53 | <sprasanna_> i just want to put my own stuff in layoutTemplate.lines instead the actual one |
| 09:34:16 | <sprasanna_> so how can i do that in the controller |
| 09:34:29 | <sprasanna_> any suggestion |
| 09:34:32 | <bmckown> let me look... |
| 09:34:41 | <sprasanna_> bmckown: thanks a lot |
| 09:35:51 | *** nribeka has quit IRC |
| 09:40:08 | *** nribeka has joined #openmrs |
| 09:44:22 | <bmckown> hmm. so instead of returning the values from LayoutTemplate.getLines() you want to return some custom values? |
| 09:48:03 | <bmckown> sprasanna_, wait you have your own custom AddressTemplate.java in your module right? |
| 09:48:26 | <bmckown> Then you should be able to override the .getLines() method in your AddressTemplate.java |
| 09:51:42 | <bmckown> Just put this method in your AddressLayout.java: public List<List<Map<String,String>>> getLines() { /* your own code */ } |
| 09:52:52 | *** sprasanna has joined #openmrs |
| 09:53:22 | <sprasanna> bmckown: sorry got disconnected |
| 09:53:24 | *** sprasanna_ has quit IRC |
| 09:54:36 | <sprasanna> bmckown: but the problem is if i use custom AddressTemplate.java then the portlet is not loading |
| 09:54:52 | <sprasanna> bmckown: anyways let me check with it once again and get back to you |
| 09:55:19 | <bmckown> okay. maybe you can make a custom portletController that exends the default portlet controller if necessary. |
| 09:55:45 | <bmckown> AddressLayoutPortletController exends PortletController |
| 09:56:31 | <bmckown> and then your AddressLayoutPortletController would be sure to use your own AddressLayout class instead of the openmrs AddressLayout class |
| 10:01:00 | <bmckown> sprasanna, BTW you have an error here: http://dev.openmrs.org/browser/openmrs-modules/addresshierarchy/web/src/org/openmrs/module/addresshierarchy/web/controller/AddressLayoutPortletControlle.java#L22 |
| 10:01:02 | <OpenMRSBot> <http://ln-s.net/2$1m> (at dev.openmrs.org) |
| 10:01:31 | <bmckown> Which may be why the portlet is not loading. |
| 10:01:45 | <bmckown> Missing "r" on Controller classes |
| 10:02:00 | <sprasanna> bmckown: actually i have named that LayoutPortletController like that |
| 10:02:14 | <bmckown> I see. |
| 10:02:29 | <sprasanna> bmckown: sorry actually i committed that code to show daniel today... it wont work.. sorry for the inconvenience |
| 10:02:39 | <bmckown> no prob |
| 10:04:29 | *** james_regen has quit IRC |
| 10:05:00 | <sprasanna> bmckown: i get this error http://pastebin.com/d22fa9cc4 because of this http://dev.openmrs.org/browser/openmrs/trunk/src/web/org/openmrs/layout/web/address/AddressSupport.java#L35 |
| 10:05:02 | <OpenMRSBot> <http://ln-s.net/2$1p> (at dev.openmrs.org) |
| 10:05:42 | <sprasanna> if i use custom AddressTemplate |
| 10:06:56 | <bmckown> But you already have the AddressTemplate class in your module? You mean you're not using it then? |
| 10:07:28 | <bmckown> I mean, when the module works it's because you're not using your own AddressTemplate? |
| 10:13:36 | <sprasanna> actually i have it in my module but i dunno y that error comes out... then i thought may be a constructor for AddressSupport class would solve the problem so did that but now i get this error http://pastebin.com/d7367bb5c |
| 10:19:00 | <bmckown> Line 50, hmm. |
| 10:20:07 | <bmckown> LayoutPortletControlle.java:88 always returns a String, not a null, so |
| 10:20:47 | <bmckown> line 50 seems to indicate that the NPE is because PortletController is not recognizing your LayoutPortletControlle |
| 10:21:45 | <sprasanna> bmckown: thats y i thought to replace the model.layoutTemplate.lines somehow |
| 10:22:12 | <bmckown> okay... another idea... |
| 10:22:30 | <bmckown> Ben has coded in the PortletController a method called populateModel |
| 10:22:41 | <bmckown> which is a hook for you to put stuff there. |
| 10:23:35 | <sprasanna> populateModel in LayoutPortletController right? |
| 10:24:20 | <bmckown> maybe you make model.put("addressLayout", org.openmrs.module.addresshierarchy.AddressLayout); |
| 10:24:37 | <bmckown> yes in your LayoutPortletControlle |
| 10:24:59 | <bmckown> I'm looking at PortletController.populateModel |
| 10:25:04 | <sprasanna> bmckown: yeah that would be a great idea... |
| 10:26:23 | <bmckown> I love these kind of test cases like you have in LayoutPortletControlle.java:83 |
| 10:26:25 | <bmckown> System.out.println("here is the fucking model"+model); |
| 10:26:29 | <bmckown> hehe |
| 10:26:51 | <bmckown> sorry about that. I feel your pain. |
| 10:29:08 | <sprasanna> bmckown: oh im extremely sorry... i dint notice that |
| 10:29:39 | <bmckown> it's kind of funny actually. |
| 10:30:44 | <sprasanna> hehe |
| 10:33:14 | <bmckown> looking at bean mapping but it seems okay |
| 10:35:30 | <sprasanna> actually if i find a way to insert my own stuff into that model.layouttemplate.lines then i can get everything done easily |
| 10:36:05 | <bmckown> yes. |
| 10:36:23 | <bmckown> you are probably very close... it may just be a little error somewhere |
| 10:36:57 | <bmckown> sprasanna, why do you have AddressLayoutPortletController in your module? Are you using it? |
| 10:37:22 | <bmckown> (the class that has the "r" in the name) |
| 10:37:58 | <sprasanna> hehe... actually i copied in my module to show daniel that how i have implemented it.... |
| 10:38:15 | <sprasanna> actually thats doing nothing there just another copy... |
| 10:39:27 | <sprasanna> AddressLayoutPortletControlle extends LayoutPortletControlle extends PortletController |
| 10:40:05 | <bmckown> yes... just wondering if it is getting in the way of the openmrs AddressLayoutPortletController. probably not i suppose. |
| 10:41:21 | <bmckown> nah, it's not reference anywhere in the module.... nevermind. |
| 10:43:15 | <sprasanna> even if i hook like this model.put("addressLayout", org.openmrs.module.addresshierarchy.AddressLayout); then i have to manipulate this LayoutTemplate layoutTemplate = layoutSupport.getDefaultLayoutTemplate(); |
| 10:44:08 | <sprasanna> but actual layoutSupport from openmrs core will show error because of the difference between two LayoutTemplates |
| 10:45:14 | <sprasanna> i can even make it up by adding the LayoutSupport which is my module but if i do this ultimately i have to call AddressSupport which is in my module... which ultimately shows error |
| 10:46:08 | <bmckown> and the error is always the NPE? |
| 10:46:57 | <bmckown> oh, the Not Yet Instantiated error. |
| 10:48:22 | <sprasanna> yeah if have a constructor like this AddressSupport as = new AddressSupport(); which invokes this singleton = this; but it shows this http://pastebin.com/d7367bb5c |
| 10:49:49 | <bmckown> Hey, where is the order in the addressHierarchyUrlMapping? you took that out? |
| 10:50:05 | <bmckown> <property name="order"><value>2</value></property> |
| 10:50:23 | <sprasanna> oh no... |
| 10:50:36 | <bmckown> in the moduleApplicationContext.xml |
| 10:50:37 | <sprasanna> i forgot to load that... |
| 10:51:55 | <bmckown> Please use it before you go on. It may be the cause of the error. |
| 10:52:20 | <sprasanna> no actually its there... one sec i will commit it now |
| 10:52:32 | <bmckown> Oh, well if it's there nevermind. |
| 10:52:39 | <bmckown> you can commit whenever |
| 10:54:53 | <sprasanna> is there any way to override that getLines() method alone? |
| 10:57:17 | *** sprasanna_ has joined #openmrs |
| 10:57:17 | *** sprasanna has quit IRC |
| 10:57:46 | *** sunbiz has joined #openmrs |
| 10:59:14 | <bmckown> yes there is. |
| 10:59:17 | <bmckown> or there should be. |
| 11:00:23 | <bmckown> I was wondering... why *do* you override LayoutPortletController.java ? It looks like you don't do anythingn different. |
| 11:01:35 | <sprasanna_> actually from LayoutPortletControlle has the method populateModel which ultmately has the object model... |
| 11:03:25 | <bmckown> yea, but it's the same as the openmrs LayoutPortletController. The method doesn't do anything different, right? |
| 11:04:26 | <sprasanna_> yeah actually if i want to modify the layoutTemplate.lines i have to do that there only na... |
| 11:05:33 | <bmckown> you cannot have AddressLayoutControlle.populateModel(...) { super(); /* Then do my own stuff */ } ?? |
| 11:06:07 | *** bwolfe has joined #openmrs |
| 11:06:07 | *** ChanServ sets mode: +o bwolfe |
| 11:07:16 | <sprasanna_> oh yeah |
| 11:07:58 | <bmckown> brb |
| 11:10:25 | <sprasanna_> bwolfe: hi Ben |
| 11:11:03 | <bwolfe> hey sri |
| 11:11:16 | <sprasanna_> bwolfe: do you have any suggestions for overriding the getLines() method in LayoutTemplate ? |
| 11:11:30 | <sprasanna_> bwolfe: actually I and Brian were discussing about it |
| 11:11:47 | <bwolfe> sprasanna_: I already told you how to do it! :-p |
| 11:12:19 | <bmckown> great. |
| 11:12:21 | <bmckown> you mean... |
| 11:13:03 | <bmckown> i've spent an hour and a half on something you already know how to do?? :-O |
| 11:13:49 | <sprasanna_> bmckown: actually bwolfe told me to have the controllers adopted in my module and override it :P |
| 11:14:12 | <bmckown> weren't we saying the same thing? |
| 11:14:51 | *** bwolfe_ has joined #openmrs |
| 11:14:51 | *** ChanServ sets mode: +o bwolfe_ |
| 11:14:56 | <sprasanna_> ok now right from the beginning i start.. |
| 11:14:58 | <sprasanna_> :P |
| 11:15:01 | *** bwolfe has quit IRC |
| 11:15:04 | *** bwolfe_ is now known as bwolfe |
| 11:15:09 | <bwolfe> you should read the logs :-p |
| 11:15:11 | <bwolfe> all the time |
| 11:15:15 | <bwolfe> hehe |
| 11:15:35 | <sprasanna_> i then am i wrong somewhere? |
| 11:16:01 | *** sunbiz has left #openmrs |
| 11:19:34 | <sprasanna_> bwolfe bmckown any suggestions please :( |
| 11:19:41 | <sprasanna_> :( :( |
| 11:24:11 | <bmckown> okay... ben just talked to me about this... |
| 11:24:27 | <bmckown> give me a minute to explain. |
| 11:28:20 | <bmckown> okay 5 minutes.. waiting for trac to load |
| 11:28:54 | <bmckown> sprassana |
| 11:29:05 | <bmckown> Go here in your working copy of openmrs trunk: |
| 11:29:09 | <bmckown> http://dev.openmrs.org/browser/openmrs/trunk/src/web/org/openmrs/layout/web/LayoutSupport.java#L39 |
| 11:29:13 | <bmckown> and change that method to this: |
| 11:29:37 | <bwolfe> !refer bmckown [tabcomplete] :-) |
| 11:29:37 | * OpenMRSBot refers bmckown to "tabcomplete" --- Most IRC clients let you easily write someone's nickname in the channel using tab completion. Just type the first few letters, then <tab>, and voila! :-) |
| 11:29:38 | <bmckown> public void setLayoutTemplates(List<T> layoutTemplates) { |
| 11:29:38 | <bmckown> if (null == this.layoutTemplates) { |
| 11:29:38 | <bmckown> this.layoutTemplates = layoutTemplates; |
| 11:29:40 | <bmckown> } |
| 11:29:40 | <bmckown> else this.layoutTemplates.addAll(layoutTemplates); |
| 11:29:40 | <bmckown> } |
| 11:29:56 | <bmckown> !refer ben pleasedontbotherme |
| 11:29:56 | * OpenMRSBot refers ben to pleasedontbotherme |
| 11:30:08 | <bmckown> hey, that's cool. :-) |
| 11:30:24 | <bmckown> sprasanna_, my tab complete didn't work. ben was right. |
| 11:31:11 | <bmckown> sprasanna_, are you there? |
| 11:31:31 | <sprasanna_> bmckown: yeah Brian I am listening to you |
| 11:31:45 | <bmckown> ah, cool. so you got that change above right? step 1 |
| 11:32:45 | <sprasanna_> bmckown: yeah got it |
| 11:33:05 | <bmckown> Okay.. Step 2: |
| 11:33:45 | <bmckown> In your moduleApplicationContext.xml put this bean: |
| 11:33:47 | <bmckown> <bean id="addressSupport" class="org.openmrs.layout.web.address.AddressSupport"> |
| 11:34:58 | <sprasanna_> yeah got it |
| 11:35:12 | <sprasanna_> now i can invoke my addressSupport right?? |
| 11:35:16 | <bmckown> and add in the property list: |
| 11:35:43 | <bmckown> <ref bean="SriPrasannaTemplate" /> |
| 11:36:05 | <bmckown> following the layout from openmrs-servlet.xml lines 1327 |
| 11:36:09 | <bmckown> lemme link to it... |
| 11:36:34 | <sprasanna_> SriPrasannaTemplate... lol... let me put it as AddressHierarchyTemplate |
| 11:36:59 | <bmckown> http://dev.openmrs.org/browser/openmrs/trunk/web/WEB-INF/openmrs-servlet.xml#L1327 |
| 11:37:13 | <bmckown> okay "AddressHierarchyTemplate" |
| 11:37:56 | <bmckown> Step 3: get rid of AddressTemplate in your module |
| 11:38:51 | <bmckown> Step 4: Create AddressHierarchyTemplate extends org.openmrs.layout.web.address.AddressTemplate in your module |
| 11:38:57 | <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Modules: Logic Web Service 1.1 uploaded to OpenMRS Module Repository <https://dev.openmrs.org/modules/view.jsp?module=logicws&version=&1.1> |
| 11:39:51 | <bmckown> Step 5: AddressHierarchyTemplate has one and only one method: AddressHierarchyTemplate.getLists() { /* do your own stuff here */ } |
| 11:40:58 | <bmckown> sorry I meant .getLines() |
| 11:43:27 | <bmckown> Step 6: Define the bean to your AddressHierarchyTemplate in your moduleApplicationContext.xml kind of like this: <bean id="addressHierarchyTemplate" class="org.openmrs.module.addresshierarchy.layout.web.address.AddressHierarchyTemplate"> |
| 11:45:24 | <bmckown> Step 7: Go back to my step 2 and change <ref bean="AddressHierarchyTemplate"/> to <ref bean="addressHierarchyTemplate"/> |
| 11:45:43 | <bmckown> because i made a mistake with the camel case |
| 11:46:10 | <bmckown> sprasanna_, does that make sense? |
| 11:46:18 | <sprasanna_> yeah actually i entered it like that only |
| 11:46:28 | <sprasanna_> yeah it does bmckown |
| 11:46:33 | <sprasanna_> thanks a lot |
| 11:47:48 | <bmckown> sure. You don't need to override all of those portlet controllers or LayoutTemplate |
| 11:48:50 | <bmckown> !refer ben goaheadandbothermenowplease |
| 11:48:50 | * OpenMRSBot refers ben to goaheadandbothermenowplease |
| 11:49:01 | <bmckown> :-) |
| 11:49:20 | <bmckown> Thanks for the help with that, Ben. |
| 11:50:00 | <bwolfe> in you modApplcationContext, put <bean parent="addressSupport" > |
| 11:50:03 | <bwolfe> isntead of <bean id="addressSupport" class="org.openmrs.layout.web.address.AddressSupport"> |
| 11:50:28 | <sprasanna_> bmckown: in setLayoutTemplates should it be like this if (null == this.layoutTemplates) or if(this.layout.Template == null) |
| 11:50:47 | <bmckown> okay. thx |
| 11:51:13 | <bmckown> oh, i think it should be the former. no? |
| 11:51:18 | *** [mharrison] has quit IRC |
| 11:51:52 | <bwolfe> both work |
| 11:52:03 | <sprasanna_> yeah actually either way it will work |
| 11:52:21 | <bmckown> because wouldn't "if (this.layoutTemplate == null)" throw npe? Oh. I guess that's just for String. |
| 11:53:34 | <bmckown> I just habitually put all of my if statements with the null part first. |
| 11:53:46 | <bmckown> not good convention? |
| 11:55:14 | <bwolfe> doesn't matter at all |
| 11:55:20 | <bmckown> okay. |
| 11:57:24 | <sprasanna_> bmckown: should i really need to add AddressHierarchyTemplate ?? am i not allowed to do to add stuffs in moduleapplicationContext.xml like the other http://dev.openmrs.org/browser/openmrs/trunk/web/WEB-INF/openmrs-servlet.xml#L1355 |
| 12:03:38 | <bmckown> I guess I don't understand. You could/should add properties in addressHierarchyTemplate such as is done with "addressTemplateRwanda" in line 1355, no? |
| 12:06:13 | *** sioraiocht has joined #openmrs |
| 12:06:17 | *** ChanServ sets mode: +v sioraiocht |
| 12:07:53 | <bmckown> sunbiz really did hack the demo sight? |
| 12:09:03 | <sprasanna_> yeah but after adding that wont AddressTemplate work?? |
| 12:11:33 | <bmckown> The change in the core openmrs code will allow you to "add" more templates instead of just "setting" the templates again which would override all previously defined templates. |
| 12:31:51 | *** Echidna has quit IRC |
| 12:52:44 | *** Echidna has joined #openmrs |
| 13:12:23 | <OpenMRSBot> Recent updates in the world of openmrs: OpenMRS Tickets: Ticket #977 (task created): Remove nealreporting from core <http://dev.openmrs.org/ticket/977> |
| 13:46:20 | *** sprasanna has joined #openmrs |
| 13:50:12 | *** sprasanna_ has quit IRC |
| 13:54:12 | *** nribeka is now known as nribeka-away |
| 14:25:21 | *** [mharrison] has joined #openmrs |
| 15:03:20 | <bmckown> reportObjectList uses this kind of Exception handling in the jsp: |
| 15:03:22 | <bmckown> <% try { %> |
| 15:03:22 | <bmckown> ${reportObject.description}</td> |
| 15:03:22 | <bmckown> <% } catch (Exception ex) { %> |
| 15:03:22 | <bmckown> <font color="red">EXCEPTION!</font> |
| 15:03:22 | <bmckown> <% } %> |
| 15:03:27 | <bmckown> However.... |
| 15:03:31 | <bmckown> a better way is |
| 15:03:46 | <bmckown> <c:catchvar="e"> |
| 15:03:46 | <bmckown> <c:iftest="${indicator.description}">${indicator.description}</c:if> |
| 15:03:46 | <bmckown> </c:catch> |
| 15:03:46 | <bmckown> <c:iftest="${e==null}">${indicator.description}</c:if> |
| 15:03:47 | <bmckown> <c:iftest="${e!=null}">EXCEPTION!</c:if> |
| 15:03:47 | <bmckown> |
| 15:04:12 | <bmckown> using the <c:catchvar="e"></c:catch> tags |
| 15:07:14 | <bwolfe> ok |
| 15:07:17 | <bwolfe> sounds good to me |
| 15:07:22 | <bmckown> it was nice |
| 16:04:46 | *** bmckown has quit IRC |
| 16:11:38 | *** [mharrison] has quit IRC |
| 16:14:57 | *** sioraiocht has quit IRC |
| 16:21:37 | *** bwolfe has quit IRC |
| 16:35:03 | *** [mharrison] has joined #openmrs |
| 16:44:35 | *** atomicturtle has left #openmrs |
| 18:34:50 | *** [mharrison] has quit IRC |
| 21:44:34 | *** nribeka-away is now known as nribeka |
| 21:53:14 | *** r0bby|vista has joined #openmrs |
| 21:53:23 | *** r0bby|vista has left #openmrs |
| 23:57:28 | *** njero has joined #openmrs |
| 23:57:28 | *** ChanServ sets mode: +v njero |