java - DHXScheduler Save/Get Custom Lightbox Fields -


i using dhxscheduler in jsp application exam timetabling. added custom lightbox own fields information exams.

this eventsmanager class saves, creates , gets events. extends class dhxeventsmanager.

public class eventsmanager extends dhxeventsmanager {  public eventsmanager(httpservletrequest request) {               super(request); }  public iterable getevents() {      connection conn = null;     dhxeventsmanager.date_format = "yyyy-mm-dd hh:mm:ss";     list<event> events = new arraylist<event>();      try {          conn = sqlhelper.getconnection();         statement statement = conn.createstatement();          stringbuffer query = new stringbuffer();         query.append("select * ");         query.append(timetableevent.tbl_events);         query.append(" e join ");         query.append(studyunit.tbl_studyunits);         query.append(" s on e.");         query.append(timetableevent.fld_unitcode);         query.append(" = s.");         query.append(studyunit.fld_unitcode);          resultset rs = statement.executequery(query.tostring());          while (rs.next()) {              event e = new event(); // extends dhxevent , contains additional fields              e.setid(integer.parseint(rs.getstring(timetableevent.fld_id)));             e.settext(rs.getstring(timetableevent.fld_unitcode));             e.setstart_date(rs.getstring(timetableevent.fld_startdate));             e.setend_date(rs.getstring(timetableevent.fld_enddate));             e.setunitcode(rs.getstring(studyunit.fld_unitcode));             e.settitle(rs.getstring(studyunit.fld_title));             e.setyear(rs.getstring(studyunit.fld_year));             e.setsemester(rs.getshort(studyunit.fld_semester));             e.setexamlength(rs.getfloat(studyunit.fld_examlength));             e.setnoofstudents(rs.getshort(studyunit.fld_noofstudents));             e.setdepartment(rs.getstring(studyunit.fld_department));             e.setcredits(rs.getshort(studyunit.fld_credits));             e.setevening(rs.getboolean(studyunit.fld_evening));              events.add(e);             }          } catch (sqlexception e) {             system.out.println("[eventsmanager.getevents()]: " + e.getmessage());          } {             sqlhelper.closeconnection(conn);         }          dhxeventsmanager.date_format = "mm/dd/yyyy hh:mm";         return events;     }      @override     public dhxstatus saveevent(dhxev event, dhxstatus status) {     connection conn = sqlhelper.getconnection();     preparedstatement pstmt = null;     resultset rs = null;      event ev = (event) event;      try {          if (status == dhxstatus.update) {             pstmt = timetableevent.updateevent(conn, ev);          } else if (status == dhxstatus.insert) {             system.out.println("save");             pstmt = timetableevent.insertevent(conn, ev);          } else if (status == dhxstatus.delete) {             pstmt = timetableevent.deleteevent(conn, event);         }          if (pstmt != null) {             pstmt.executeupdate();             rs = pstmt.getgeneratedkeys();              if (rs.next()) {                 event.setid(rs.getint(1));                 ev.setid(rs.getint(1));             }         }      } catch (sqlexception e) {         system.out.println("[eventsmanager.saveevent() - " + status.name() + "]: " + e.getmessage());         e.printstacktrace();      } {          if (rs != null) sqlhelper.closeresultset(rs);         if (pstmt != null) sqlhelper.closepreparedstatement(pstmt);         if (conn != null) sqlhelper.closeconnection(conn);     }      return status; }      @override public dhxev createevent(string id, dhxstatus status) {     return new event(); } } 

the event class extends dhxevent , contains getters , setters additional fields. problem when casting dhxev event, losing additional fields null saveevent method accepts dhxev parameter.

this events.jsp file getevents() method eventsmanager called json objects events.

<%@ page contenttype="application/json"           import="com.dhtmlx.planner.*,servlets.*,events.eventsmanager" %>  <%= getevents(request) %> <%!     string getevents(httpservletrequest request) throws exception {         eventsmanager evs = new eventsmanager(request);         return evs.run();     } %> 

this sample of returning. can see returns fields dhxev object i.e. id, start_date, end_date , text.

{id:7, text:cis3087, end_date:03/27/2014 13:00, start_date:03/27/2014 10:00} 

how can add additional fields json object i.e. have object studyunit title, department, etc?

this relevant client-side code scheduler.. configuration , save_form() , show_lightbox methods:

scheduler.config.api_date = "%y-%m-%d %h:%i"; scheduler.config.details_on_dblclick = true; scheduler.config.details_on_create = true; scheduler.config.first_hour = "8";   scheduler.config.last_hour = "22"; scheduler.config.drag_lightbox = true; scheduler.config.show_loading = true; scheduler.config.mark_now = true;  scheduler.init('scheduler_here', new date(), "week"); scheduler.load("events.jsp", "json");  var dp = new dataprocessor("events.jsp"); dp.init(scheduler);  function save_form() {       var ev = scheduler.getevent(scheduler.getstate().lightbox_id);        ev.text = html("studyunit_code").value;       ev.start_date = setdate("start_date", "starttime");       ev.end_date = setdate("start_date", "endtime");        scheduler.endlightbox(true, html("custom_form"));        $("#form1").submit(); // submits other fields , saves them db table }  scheduler.showlightbox = function(id) {      var ev = scheduler.getevent(id);     scheduler.startlightbox(id, html("custom_form"));      html("studyunit_code").value = ev.text;     html("studyunit_code").focus();     html("studyunit_title").value = ev.studyunit_title;      var startdate = ev.start_date;     getdate(startdate, "start_date", "starttime");      var enddate = ev.end_date;     getdate(enddate, "start_date", "endtime");               }; 

i'm guessing small modification have make fields in json object , show them in lightbox.

do have idea of how can solve this? thanks!

please, make sure additional fields in event class public. dhxeventsmanager uses class.getfields() event properties. if property private it's not available in generated json.


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -