| [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:catch var="e"> |
| [15:03:46] |
<bmckown> |
<c:if test="${indicator.description}">${indicator.description}</c:if> |
| [15:03:46] |
<bmckown> |
</c:catch> |
| [15:03:46] |
<bmckown> |
<c:if test="${e==null}">${indicator.description}</c:if> |
| [15:03:47] |
<bmckown> |
<c:if test="${e!=null}">EXCEPTION!</c:if> |
| [15:03:47] |
<bmckown> |
|
| [15:04:12] |
<bmckown> |
using the <c:catch var="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 |