myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "davy.mailing" <davy.mail...@gmail.com>
Subject Re: Re: Schedule component, mouseListener is not triggered At all
Date Tue, 05 Sep 2006 12:37:41 GMT
thank u very much, Peter Mahoney

Yes, i am using Facelets

Where and How to register the class named ScheduleComponentHandler ?

Is it in the taglib.xml




davy.mailing
2006-09-05



发件人: Peter Mahoney
发送时间: 2006-09-05 15:22:34
收件人: MyFaces Discussion
抄送: 
主题: Re: Schedule component, mouseListener is not triggered At all

Are you using Facelets? If so you will need to have a component handler
registered. It will look something like this:

public class ScheduleComponentHandler extends HtmlComponentHandler {

private static final String RENDER_ZERO_LENGTH_ENTRIES_ATTRIBUTE_NAME =
"renderZeroLengthEntries";
private static final String MOUSE_LISTENER_METHOD_ATTRIBUTE_NAME =
"mouseListener";
private static final String EXPAND_TO_FIT_ENTRIES_ATTRIBUTE_NAME =
"expandToFitEntries";

public ScheduleComponentHandler(ComponentConfig tagConfig) {
super(tagConfig);
}

protected MetaRuleset createMetaRuleset(Class type)
{
MetaRuleset m = super.createMetaRuleset(type);

m.addRule(new MethodRule(MOUSE_LISTENER_METHOD_ATTRIBUTE_NAME, null, new
Class[] {ScheduleMouseEvent.class}));

return m;
}

@Override
protected void onComponentCreated(FaceletContext context, UIComponent
component, UIComponent parent) {
if (getAttribute(RENDER_ZERO_LENGTH_ENTRIES_ATTRIBUTE_NAME) != null) {
component.getAttributes().put(RENDER_ZERO_LENGTH_ENTRIES_ATTRIBUTE_NAME,
getAttribute(RENDER_ZERO_LENGTH_ENTRIES_ATTRIBUTE_NAME).getObject(context));
}
if (getAttribute(EXPAND_TO_FIT_ENTRIES_ATTRIBUTE_NAME) != null) {
component.getAttributes().put(EXPAND_TO_FIT_ENTRIES_ATTRIBUTE_NAME,
getAttribute(EXPAND_TO_FIT_ENTRIES_ATTRIBUTE_NAME).getObject(context));
}
}
}

I hope this helps.

Peter

davy.mailing wrote:
> Thanks in advance .
> I have put it into the form, and when i clicked the schedule, it did
> refresh the page, but the method was not called at all
> ------------------------------------------------------------------------
> davy.mailing
> 2006-09-05
> ------------------------------------------------------------------------
> *发件人:* Jurgen Lust
> *发送时间:* 2006-09-05 08:11:47
> *收件人:* MyFaces Discussion
> *抄送:*
> *主题:* Re: Re: Schedule component, mouseListener is not triggered At all
> Have you put the schedule inside a h:form? Anything that should trigger
> an action should be inside a form, otherwise the page can't be
> submitted.
> Jurgen
> Op di, 05-09-2006 te 00:07 +0800, schreef davy.mailing:
>  > It does not work.
>  >
>  > Nothing happened on the page.
>  >
>  > It seems that it does not call the action at all.
>  >
>  > I have write "a log.debug" at the first line of the method
>  >
>  > Nothing output, why?
>  >
>  >
>  > ______________________________________________________________________
>  > davy.mailing
>  > 2006-09-05
>  >
>  > ______________________________________________________________________
>  > 发件人: Jurgen Lust
>  > 发送时间: 2006-09-04 17:44:09
>  > 收件人: MyFaces Discussion
>  > 抄送:
>  > 主题: Re: Re: Schedule component, mouseListener is not triggered At
>  > all
>  >
>  > Try this code (taken from schedule example 5) in your onMouseClickAction
>  > method:
>  >
>  > public void onMouseClickAction(ScheduleMouseEvent event)
>  > {
>  > StringBuffer buffer = new StringBuffer();
>  > switch (event.getEventType())
>  > {
>  > case ScheduleMouseEvent.SCHEDULE_BODY_CLICKED:
>  > buffer.append("schedule body was clicked: ");
>  > buffer.append(event.getClickedTime());
>  > break;
>  > case ScheduleMouseEvent.SCHEDULE_HEADER_CLICKED:
>  > buffer.append("schedule header was clicked: ");
>  > buffer.append(event.getClickedDate());
>  > break;
>  > case ScheduleMouseEvent.SCHEDULE_ENTRY_CLICKED:
>  > buffer.append("schedule entry was clicked.");
>  > break;
>  > default:
>  > buffer.append("no schedule mouse events registered");
>  > }
>  > mouseActionText = buffer.toString();
>  > }
>  >
>  > And then just put a h:outputText with the mouseActionText in your page
>  > to see what happens.
>  >
>  > Jurgen
>  >
>  > Op ma, 04-09-2006 te 17:08 +0800, schreef davy.mailing:
>  >  > I have correct the mistake, but it still not work?
>  >  >
>  >  >
>  >  > ______________________________________________________________________
>  >  > davy.mailing
>  >  > 2006-09-04
>  >  >
>  >  > ______________________________________________________________________
>  >  > 发件人: Bruno Aranda
>  >  > 发送时间: 2006-09-04 16:20:45
>  >  > 收件人: MyFaces Discussion
>  >  > 抄送:
>  >  > 主题: Re: Schedule component, mouseListener is not triggered At all
>  >  >
>  >  > The method called should be 'onMouseClickAction', from what I read in
>  >  > the mouse listener
>  >  >
>  >  > mouseListener="#{pt_addEntryHandler.onMouseClickAction}"/  >
>  >  >
>  >  > and not 'onMouseClick'...
>  >  >
>  >  > Cheers,
>  >  >
>  >  > Bruno
>  >  >
>  >  > On 9/4/06, davy.mailing  <davy.mailing@gmail.com  > wrote:
>  >  >  >
>  >  >  >
>  >  >  > Dear all
>  >  >  >
>  >  >  > I am using Schedule component like this
>  >  >  >
>  >  >  >  <t:schedule value="#{pt_addEntryHandler.model}"
>  >  >  > id="schedule1"
>  >  >  > rendered="true"
>  >  >  > visibleEndHour="18"
>  >  >  > visibleStartHour="8"
>  >  >  > workingEndHour="17"
>  >  >  > workingStartHour="9"
>  >  >  > readonly="false"
>  >  >  > theme="default"
>  >  >  > tooltip="true"
>  >  >  > submitOnClick="true"
>  >  >  >
>  >  >  > mouseListener="#{pt_addEntryHandler.onMouseClickAction}"/  >
>  >  >  >
>  >  >  > in the bean file
>  >  >  >
>  >  >  > public void onMouseClick(ScheduleMouseEvent event){
>  >  >  > log.debug("select time ="+event.getClickedTime());
>  >  >  > }
>  >  >  >
>  >  >
>  >  > but when i clicked the schedule, the method was not called at all
>  >  >  >
>  >  >  > Does somebody knows why?
>  >  >  >
>  >  >  > ________________________________
>  >  >  >
>  >  >  > davy.mailing
>  >  >  > 2006-09-04
>  >
Mime
View raw message