Merhabalar, prime.ın schedule komponentini ui:composition ve ui:define içeren sayfamda kullandım. Burada yeni bir event eklediğimde komponent güncellenmiyor. Kodları prime.ın showcase.inden direkt kopyalayarak aldım. ManagedBean.de debug yaparak eventModel.in güncellendiğini görüyorum. Ama önyüzde bir türlü eklediğim event görünmüyor. Yardımlarınızı bekliyorum.

Kodlar aşağıdaki gibidir:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.org/seam/faces" xmlns:jstl="http://java.sun.com/jsp/jstl/core" xmlns:m="http://www.ol4jsf.org" xmlns:cb="http://java.sun.com/jsf/composite/compositeBlocks/common" template="/WEB-INF/layout/template.xhtml">
<ui:define name="toolbar">

</ui:define>

<ui:define name="content">

<p:growl id="messages" showDetail="true" />

<p:schedule id="schedule" value="#{workAssignMB.eventModel}" widgetVar="myschedule" locale="tr" >

    <p:ajax event="dateSelect" listener="#{workAssignMB.onDateSelect}" update="eventDetails" oncomplete="eventDialog.show()" />  
    <p:ajax event="eventSelect" listener="#{workAssignMB.onEventSelect}" update="eventDetails" oncomplete="eventDialog.show()" />  
    <p:ajax event="eventMove" listener="#{workAssignMB.onEventMove}" update="messages" />  
    <p:ajax event="eventResize" listener="#{workAssignMB.onEventResize}" update="messages" />

</p:schedule>

<p:dialog widgetVar="eventDialog" header="Event Details" showEffect="clip" hideEffect="clip" id="eventDetailsDialog">  
    <h:panelGrid id="eventDetails" columns="2">  
        <h:outputLabel for="title" value="Title:" />  
        <p:inputText id="title" value="#{workAssignMB.event.title}" required="true"/>

        <h:outputLabel for="from" value="From:" />  
        <p:inputMask id="from" value="#{workAssignMB.event.startDate}" mask="99/99/9999">  
            <f:convertDateTime pattern="dd/MM/yyyy" />  
        </p:inputMask>

        <h:outputLabel for="to" value="To:" />  
        <p:inputMask id="to" value="#{workAssignMB.event.endDate}" mask="99/99/9999">  
            <f:convertDateTime pattern="dd/MM/yyyy" />  
        </p:inputMask>

        <h:outputLabel for="allDay" value="All Day:" />  
        <h:selectBooleanCheckbox id="allDay" value="#{workAssignMB.event.allDay}" />

        <p:commandButton type="reset" value="Reset" />  
        <p:commandButton id="addButton" value="Save" 
        actionListener="#{workAssignMB.addEvent}" oncomplete="myschedule.update();eventDialog.hide();"/>  
    </h:panelGrid>  
</p:dialog>

</ui:define>
</ui:composition>

soruldu: 22 May '13, 04:44

hocak's gravatar image

hocak
6226
cevap kabul oranı: 0%

değiştirildi: 23 May '13, 04:27

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

HTTP Response olarak ne geri geliyor?

(22 May '13, 05:48) mahmut_can ♦ mahmut_can's gravatar image

@mahmut_can Response.ta eventModel.e ilk eklediğim event.ler görünüyor sadece. Yeni eklediğim event görünmüyor.

(22 May '13, 06:13) hocak hocak's gravatar image

Merhaba,

istedigim xml response. Firebug ya da benzeri bir program ile kayitlari göre bilirsin:

Örnegin böyle bir sey: <partial-response>

<changes>

<update id="form:schedule"> {"events" : [{"id": "2aa801cc-372e-46f8-b790-01d47fd7ae45","title": "Champions League Match","start": "2013-05-21T20:00:00.000933Z","end": "2013-05-21T23:00:00.000933Z","allDay":false,"editable":true},{"id": "ac66ed59-d9af-4f54-bacc-538ef77e4c3c","title"... </update>

<update id="javax.faces.ViewState">-6065880078259418858:-1990040708363234789

</update>

</changes>

</partial-response>

(22 May '13, 06:16) mahmut_can ♦ mahmut_can's gravatar image

Response şu şekilde : <update id="formContent:schedule"> <![CDATA[{"events" : [{"id": "753f0460-f590-4579-87c0-4c7ba59b808a","title": "Champions League Match","start": 1369155600297,"end": 1369166400297,"allDay":false,"editable":true},{"id": "e8eecad9-a691-43d3-86e5-4c61dde50e36","title": "Breakfast at Tiffanys","start": 1369288800297,"end": 1369296000297,"allDay":false,"editable":true},{"id": "0f913110-301c-4032-8dfb-fb668a0353d1","title": "Plant the new garden stuff","start": 1369396800297,"end": 1369569600297,"allDay":false,"editable":true}]}]]> </update>

(22 May '13, 06:49) hocak hocak's gravatar image

Bir de bu var devamında, sığmadığı için yazamadım: <update id="javax.faces.ViewState"><![CDATA[-655356743487721282:-4721088013983872548]]></update></changes></partial-response>

(22 May '13, 06:52) hocak hocak's gravatar image

Merhaba,

<p:commandButton id="addButton" value="Save" 
    actionListener="#{workAssignMB.addEvent}" oncomplete="myschedule.update();eventDialog.hide();"/>

yerine

 <p:commandButton id="addButton" value="Save" update="schedule"
    actionListener="#{workAssignMB.addEvent}" oncomplete="eventDialog.hide();"/>

yazarsan olur.

permanent link

cevaplandı: 22 May '13, 06:57

mahmut_can's gravatar image

mahmut_can ♦
2.9k62552
cevap kabul oranı: 67%

Bu şekilde denemiştim, tekrardan denedim ama olmuyor.

(22 May '13, 07:20) hocak hocak's gravatar image

Response XML i yollar misin

(22 May '13, 07:20) mahmut_can ♦ mahmut_can's gravatar image

<update id="formContent:schedule"><![CDATA[{"events" : [{"id": "0f545123-2f60-44bd-b10e-3948982a3995","title": "Champions League Match","start": 1369155600835,"end": 1369166400835,"allDay":false,"editable":true},{"id": "7e2613e4-baf0-4b98-8419-6aba4a0702b6","title": "Breakfast at Tiffanys","start": 1369288800835,"end": 1369296000835,"allDay":false,"editable":true},{"id": "7b92a5c7-b1e8-4229-a458-d8cf4d8c1e7b","title": "Plant the new garden stuff","start": 1369396800835,"end": 1369569600835,"allDay":false,"editable":true}]}]]></update>

(22 May '13, 07:41) hocak hocak's gravatar image

Üc tane event gözüküyor mu? Yoksa hicbiri mi gözükmüyor?

(22 May '13, 07:44) mahmut_can ♦ mahmut_can's gravatar image

Bu üç event sayfa ilk açıldığında default eklenenler. Sonradan eklediğim burada görünmüyor. Eklerken debug yaptığımda managedBean.de eventModel güncelleniyor ama. Sadece response.ta dönmüyor.

(22 May '13, 08:02) hocak hocak's gravatar image

Yazdigin kodu bilmiyorum.

Büyük bir ihtimal ManagedBeanin Request Scope da dir, ya da her defasinda event model tekrar olusturuyordur.

Geriye dönen "Update" eventler dogru bir sekilde gösteriliyor.

ManagedBean in kodunu gösterir misin?

(22 May '13, 08:15) mahmut_can ♦ mahmut_can's gravatar image

ManagedBean şöyle:

@Named @ConversationScoped public class WorkAssignMB{ private ScheduleModel em;
private ScheduleEvent event = new DefaultScheduleEvent(); @PostConstruct public void onPageLoad() { em = new DefaultScheduleModel();
em.addEvent(new DefaultScheduleEvent("event", date1, date2));
...... } public void addEvent(ActionEvent actionEvent) {
if(event.getId() == null)
em.addEvent(event);
else
em.updateEvent(event);

    event = new DefaultScheduleEvent();  
}

...... }

(22 May '13, 10:42) hocak hocak's gravatar image

Tahminim ConversationScoped yanlis kullaniyorsun.

Bir zahmet SessionScope ile dene.

Selamlar

(22 May '13, 12:16) mahmut_can ♦ mahmut_can's gravatar image

Mahmut bey, yardımınız için çok teşekkürler, SessionScope.ta çalıştı. Biz projede conversationScope kullanıyoruz. Sizce bu scope.ta çalışmamasının sebebi ne olabilir?

(23 May '13, 04:20) hocak hocak's gravatar image

Conversation Scope kullandiniz zaman, conversation i injecte edip "conversation.begin()" diye baslatmalisiniz.

(23 May '13, 04:22) mahmut_can ♦ mahmut_can's gravatar image

Conversation başlatma işini ManagedBean.in extend ettiği BaseManagedBean.de şu şekilde başlatıyoruz:

public void initConversation() {
    try {
        if (conversation.isTransient()) {
            conversation.begin();
            conversation.setTimeout(1200000); // 20 mins.
        } else {
            logManager.info("Conversation [" + conversation + "] is already in long running mode.");
        }
    } catch (Exception e) {
        logManager.error("Error begining conversation [" + conversation + "]. ", e);
    }
}
(23 May '13, 05:24) hocak hocak's gravatar image

Verdiğiniz link.te bu konuyla alakalı nereye bakmam gerekiyor?

(23 May '13, 07:21) hocak hocak's gravatar image

Biraz bakınca schedule komponentinin conversation scope.ta çalışmadığı değil de conversation.un bir şekilde başlamadığını farkettim. Bunu yapmak için de xhtml sayfasının en başına managedBean.i referans verme adına aşağıdaki gibi küçük bir kod yazdım, farklı şekillerde de olabilir tabi.

<c:if test="#{&lt;a href=" http:="" workassignmb.conversation.id"="">workAssignMB.conversation.id == 0}"></c:if>"

Bu şekilde schedule komponentini conversationScope.ta da kullanabildim.

(27 May '13, 07:34) hocak hocak's gravatar image
15 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×281
×97

Soruldu: 22 May '13, 04:44

Görüntüleme: 1,200 kez

Son güncelleme: 27 May '13, 07:34

powered by BitNami OSQA