Changeset 407
- Timestamp:
- 04/21/06 09:40:26
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/calendar3/webclient/src/org/bedework/webclient/BwCalAbstractAction.java
r24 r407 52 52 to the maximum extent the law permits. 53 53 */ 54 55 54 package org.bedework.webclient; 56 55 56 import org.bedework.appcommon.BedeworkDefs; 57 import org.bedework.appcommon.MyCalendarVO; 58 import org.bedework.appcommon.TimeView; 59 import org.bedework.calfacade.CalFacadeUtil; 57 60 import org.bedework.webcommon.BwAbstractAction; 58 61 import org.bedework.webcommon.BwActionFormBase; 59 62 import org.bedework.webcommon.BwSession; 63 import org.bedework.webcommon.TimeDateComponents; 64 65 import java.util.Date; 66 import java.util.Locale; 60 67 61 68 import javax.servlet.http.HttpServletRequest; … … 75 82 BwActionForm form = (BwActionForm)frm; 76 83 77 /* Set some options from preferences * /78 form.setAutoCreateSponsors(true);79 form.setAutoCreateLocations(true);80 form.setAutoDeleteSponsors(true);81 form.setAutoDeleteLocations(true);82 83 String refreshAction = form.getEnv().getAppOptProperty("app.refresh.action");84 85 if (refreshAction == null) {86 refreshAction = form.getActionPath();87 }88 89 if (refreshAction != null) {90 setRefreshInterval(request, response,91 form.getEnv().getAppIntProperty("app.refresh.interval"),92 refreshAction, form);93 }94 95 if (debug) {96 log.debug("curTimeView=" + form.getCurTimeView());97 }98 99 String reqpar = request.getParameter("cancelled");100 101 if (reqpar != null) {102 /* * Set the objects to null so we get new ones.103 * /104 105 form.getMsg().emit("org.bedework.client.message.cancelled");106 return "cancelled";107 }*/108 109 84 String forward = doAction(request, form); 110 85 … … 121 96 public abstract String doAction(HttpServletRequest request, 122 97 BwActionForm form) throws Throwable; 98 99 100 /** Set the current date and/or view. The date may be null indicating we 101 * should switch to a new view based on the current date. 102 * 103 * <p>newViewTypeI may be less than 0 indicating we stay with the current 104 * view but switch to a new date. 105 * 106 * @param action 107 * @param form UWCalActionForm 108 * @param date String yyyymmdd date or null 109 * @param newViewTypeI new view index or -1 110 * @param debug 111 * @throws Throwable 112 */ 113 protected static void gotoDateView(BwCalAbstractAction action, 114 BwActionForm form, 115 String date, 116 int newViewTypeI, 117 boolean debug) throws Throwable { 118 /* We get a new view if either the date changed or the view changed. 119 */ 120 boolean newView = false; 121 122 if (debug) { 123 action.logIt("ViewTypeI=" + newViewTypeI); 124 } 125 126 MyCalendarVO dt; 127 TimeView tv = form.getCurTimeView(); 128 Locale loc = Locale.getDefault(); // XXX Locale 129 130 if (newViewTypeI == BedeworkDefs.todayView) { 131 // dt = new MyCalendarVO(new Date(System.currentTimeMillis())); 132 Date jdt = new Date(System.currentTimeMillis()); 133 dt = new MyCalendarVO(jdt, loc); 134 newView = true; 135 newViewTypeI = BedeworkDefs.dayView; 136 } else if (date == null) { 137 if (newViewTypeI == BedeworkDefs.dayView) { 138 // selected specific day to display from personal event entry screen. 139 140 Date jdt = CalFacadeUtil.getDate(form.getViewStartDate().getDateTime()); 141 dt = new MyCalendarVO(jdt, loc); 142 newView = true; 143 } else { 144 if (debug) { 145 action.logIt("No date supplied: go with current date"); 146 } 147 148 // Just stay here 149 dt = tv.getCurDay(); 150 } 151 } else { 152 if (debug) { 153 action.logIt("Date=" + date + ": go with that"); 154 } 155 156 Date jdt = CalFacadeUtil.fromISODate(date); 157 dt = new MyCalendarVO(jdt, loc); 158 if (!checkDateInRange(form, dt.getYear())) { 159 // Set it to today 160 jdt = new Date(System.currentTimeMillis()); 161 dt = new MyCalendarVO(jdt, loc); 162 } 163 newView = true; 164 } 165 166 if ((newViewTypeI >= 0) && 167 (newViewTypeI != form.getCurViewPeriod())) { 168 // Change of view 169 newView = true; 170 } 171 172 if (newView && (newViewTypeI < 0)) { 173 newViewTypeI = form.getCurViewPeriod(); 174 if (newViewTypeI < 0) { 175 newViewTypeI = BedeworkDefs.defaultView; 176 } 177 } 178 179 TimeDateComponents viewStart = form.getViewStartDate(); 180 181 if (!newView) { 182 /* See if we were given an explicit date as view start date components. 183 If so we'll set a new view of the same period as the current. 184 */ 185 int year = viewStart.getCalYear(); 186 187 if (checkDateInRange(form, year)) { 188 String vsdate = viewStart.getDateTime().getDtval().substring(0, 8); 189 if (debug) { 190 action.logIt("vsdate=" + vsdate); 191 } 192 193 if (!(vsdate.equals(form.getCurTimeView().getFirstDay().getDateDigits()))) { 194 newView = true; 195 newViewTypeI = form.getCurViewPeriod(); 196 Date jdt = CalFacadeUtil.fromISODate(vsdate); 197 dt = new MyCalendarVO(jdt, loc); 198 } 199 } 200 } 201 202 if (newView) { 203 form.setCurViewPeriod(newViewTypeI); 204 form.setViewMcDate(dt); 205 form.refreshIsNeeded(); 206 } 207 208 tv = form.getCurTimeView(); 209 // dt = tv.getCurDay(); 210 211 /** Set first day, month and year 212 */ 213 214 MyCalendarVO firstDay = tv.getFirstDay(); 215 216 viewStart.setDay(firstDay.getTwoDigitDay()); 217 viewStart.setMonth(firstDay.getTwoDigitMonth()); 218 viewStart.setYear(firstDay.getFourDigitYear()); 219 220 form.getEventStartDate().setDateTime(tv.getCurDay().getTime()); 221 form.getEventEndDate().setDateTime(tv.getCurDay().getTime()); 222 } 223 224 private static boolean checkDateInRange(BwActionForm form, 225 int year) throws Throwable { 226 // XXX make system parameters for allowable start/end year 227 int thisYear = form.getToday().getYear(); 228 229 if ((year < thisYear - 10) || (year > thisYear + 10)) { 230 form.getErr().emit("org.bedework.client.error.baddate"); 231 return false; 232 } 233 234 return true; 235 } 123 236 } trunk/calendar3/webclient/src/org/bedework/webclient/BwFreeBusyAction.java
r406 r407 108 108 BwUser user; 109 109 CalSvcI svci = form.fetchSvci(); 110 111 gotoDateView(this, form, 112 form.getDate(), 113 form.getViewTypeI(), 114 debug); 115 110 116 String userId = getReqPar(request, "userid"); 111 117 trunk/calendar3/webclient/src/org/bedework/webclient/BwGoToAction.java
r257 r407 55 55 package org.bedework.webclient; 56 56 57 import org.bedework.appcommon.MyCalendarVO;58 import org.bedework.appcommon.TimeView;59 import org.bedework.appcommon.BedeworkDefs;60 import org.bedework.calfacade.CalFacadeUtil;61 import org.bedework.webcommon.TimeDateComponents;62 63 import java.util.Date;64 import java.util.Locale;65 66 57 import javax.servlet.http.HttpServletRequest; 67 58 … … 87 78 return "success"; 88 79 } 89 90 /** Set the current date and/or view. The date may be null indicating we91 * should switch to a new view based on the current date.92 *93 * <p>newViewTypeI may be less than 0 indicating we stay with the current94 * view but switch to a new date.95 *96 * @param action97 * @param form UWCalActionForm98 * @param date String yyyymmdd date or null99 * @param newViewTypeI new view index or -1100 * @param debug101 * @throws Throwable102 */103 public static void gotoDateView(BwCalAbstractAction action,104 BwActionForm form,105 String date,106 int newViewTypeI,107 boolean debug) throws Throwable {108 /* We get a new view if either the date changed or the view changed.109 */110 boolean newView = false;111 112 if (debug) {113 action.logIt("ViewTypeI=" + newViewTypeI);114 }115 116 MyCalendarVO dt;117 TimeView tv = form.getCurTimeView();118 Locale loc = Locale.getDefault(); // XXX Locale119 120 if (newViewTypeI == BedeworkDefs.todayView) {121 // dt = new MyCalendarVO(new Date(System.currentTimeMillis()));122 Date jdt = new Date(System.currentTimeMillis());123 dt = new MyCalendarVO(jdt, loc);124 newView = true;125 newViewTypeI = BedeworkDefs.dayView;126 } else if (date == null) {127 if (newViewTypeI == BedeworkDefs.dayView) {128 // selected specific day to display from personal event entry screen.129 130 Date jdt = CalFacadeUtil.getDate(form.getViewStartDate().getDateTime());131 dt = new MyCalendarVO(jdt, loc);132 newView = true;133 } else {134 if (debug) {135 action.logIt("No date supplied: go with current date");136 }137 138 // Just stay here139 dt = tv.getCurDay();140 }141 } else {142 if (debug) {143 action.logIt("Date=" + date + ": go with that");144 }145 146 Date jdt = CalFacadeUtil.fromISODate(date);147 dt = new MyCalendarVO(jdt, loc);148 if (!checkDateInRange(form, dt.getYear())) {149 // Set it to today150 jdt = new Date(System.currentTimeMillis());151 dt = new MyCalendarVO(jdt, loc);152 }153 newView = true;154 }155 156 if ((newViewTypeI >= 0) &&157 (newViewTypeI != form.getCurViewPeriod())) {158 // Change of view159 newView = true;160 }161 162 if (newView && (newViewTypeI < 0)) {163 newViewTypeI = form.getCurViewPeriod();164 if (newViewTypeI < 0) {165 newViewTypeI = BedeworkDefs.defaultView;166 }167 }168 169 TimeDateComponents viewStart = form.getViewStartDate();170 171 if (!newView) {172 /* See if we were given an explicit date as view start date components.173 If so we'll set a new view of the same period as the current.174 */175 int year = viewStart.getCalYear();176 177 if (checkDateInRange(form, year)) {178 String vsdate = viewStart.getDateTime().getDtval().substring(0, 8);179 if (debug) {180 action.logIt("vsdate=" + vsdate);181 }182 183 if (!(vsdate.equals(form.getCurTimeView().getFirstDay().getDateDigits()))) {184 newView = true;185 newViewTypeI = form.getCurViewPeriod();186 Date jdt = CalFacadeUtil.fromISODate(vsdate);187 dt = new MyCalendarVO(jdt, loc);188 }189 }190 }191 192 if (newView) {193 form.setCurViewPeriod(newViewTypeI);194 form.setViewMcDate(dt);195 form.refreshIsNeeded();196 }197 198 tv = form.getCurTimeView();199 // dt = tv.getCurDay();200 201 /** Set first day, month and year202 */203 204 MyCalendarVO firstDay = tv.getFirstDay();205 206 viewStart.setDay(firstDay.getTwoDigitDay());207 viewStart.setMonth(firstDay.getTwoDigitMonth());208 viewStart.setYear(firstDay.getFourDigitYear());209 210 form.getEventStartDate().setDateTime(tv.getCurDay().getTime());211 form.getEventEndDate().setDateTime(tv.getCurDay().getTime());212 }213 214 private static boolean checkDateInRange(BwActionForm form,215 int year) throws Throwable {216 // XXX make system parameters for allowable start/end year217 int thisYear = form.getToday().getYear();218 219 if ((year < thisYear - 10) || (year > thisYear + 10)) {220 form.getErr().emit("org.bedework.client.error.baddate");221 return false;222 }223 224 return true;225 }226 80 }
