Subversion Repositories SmartDukaan

Rev

Rev 210 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 210 Rev 213
Line 70... Line 70...
70
	
70
	
71
	private EntityContainer ents;
71
	private EntityContainer ents;
72
	
72
	
73
	private DefinitionsContainer defs;
73
	private DefinitionsContainer defs;
74
	
74
	
75
	private long firstSlideID;
75
	private long firstSlideDefID;
76
	
76
	
77
	private ExpandedSlideDefinition expSlideDef;
77
	private ExpandedSlideDefinition expSlideDef;
78
 
78
 
79
	private ExpandedSlide expSlide;
79
	private ExpandedSlide expSlide;
80
	
80
	
Line 151... Line 151...
151
    	try {
151
    	try {
152
			this.expEntity = ents.getExpandedEntity(entityID);
152
			this.expEntity = ents.getExpandedEntity(entityID);
153
			//log.info("this.expEntity:" + this.expEntity);
153
			//log.info("this.expEntity:" + this.expEntity);
154
			
154
			
155
			long catID = this.expEntity.getCategoryID();
155
			long catID = this.expEntity.getCategoryID();
156
			List<Long> slideIDs = defs.getCategorySlideSequence(catID);
156
			List<Long> slideDefIDs = defs.getCategorySlideSequence(catID);
157
 
157
 
158
			this.firstSlideID = slideIDs.get(0);
158
			this.firstSlideDefID = slideDefIDs.get(0);
159
			
159
			
160
		} catch (Exception e) {
160
		} catch (Exception e) {
161
			log.error(CreationUtils.getStackTrace(e));
161
			log.error(CreationUtils.getStackTrace(e));
162
			this.setErrorString(CreationUtils.getStackTrace(e));
162
			this.setErrorString(CreationUtils.getStackTrace(e));
163
			return "fatal";
163
			return "fatal";
Line 190... Line 190...
190
    	
190
    	
191
    	try {
191
    	try {
192
			this.expEntity = ents.getExpandedEntity(entityID);
192
			this.expEntity = ents.getExpandedEntity(entityID);
193
			//log.info("this.expEntity:" + this.expEntity);
193
			//log.info("this.expEntity:" + this.expEntity);
194
			
194
			
195
			long currentSlideID = 0L;
195
			long currentSlideDefID = 0L;
196
			long nextSlideID = 0L;
196
			long nextSlideDefID = 0L;
197
			long prevSlideID = 0L;
197
			long prevSlideDefID = 0L;
198
			
198
			
199
			String[] currentslideIDStrings = 
199
			String[] currentslideDefIDStrings = 
200
				this.reqparams.get("currentslideID");
200
				this.reqparams.get("currentslideDefID");
201
			
201
			
-
 
202
			String[] nextslideDefIDStrings = 
202
			String[] nextslideIDStrings = this.reqparams.get("nextslideID");
203
				this.reqparams.get("nextslideDefID");
203
			
204
			
-
 
205
			String[] prevslideDefIDStrings = 
204
			String[] prevslideIDStrings = this.reqparams.get("prevslideID");
206
				this.reqparams.get("prevslideDefID");
205
			
207
			
206
			// Current Slide ID
208
			// Current Slide ID
207
			if(currentslideIDStrings != null && 
209
			if(currentslideDefIDStrings != null && 
208
					currentslideIDStrings.length > 0) {
210
					currentslideDefIDStrings.length > 0) {
209
				try {
211
				try {
210
					currentSlideID = Long.parseLong(currentslideIDStrings[0]);
212
					currentSlideDefID = Long.parseLong(
-
 
213
							currentslideDefIDStrings[0]);
211
				}
214
				}
212
				catch (NumberFormatException nfe) {}
215
				catch (NumberFormatException nfe) {}
213
			}
216
			}
214
			
217
			
215
			// Next Slide ID
218
			// Next Slide ID
216
			if(nextslideIDStrings != null && 
219
			if(nextslideDefIDStrings != null && 
217
					nextslideIDStrings.length > 0) {
220
					nextslideDefIDStrings.length > 0) {
218
				try {
221
				try {
219
					nextSlideID = Long.parseLong(nextslideIDStrings[0]);
222
					nextSlideDefID = Long.parseLong(nextslideDefIDStrings[0]);
220
				}
223
				}
221
				catch (NumberFormatException nfe) {}
224
				catch (NumberFormatException nfe) {}
222
			}
225
			}
223
			
226
			
224
			// Prev Slide ID
227
			// Prev Slide ID
225
			if(prevslideIDStrings != null && 
228
			if(prevslideDefIDStrings != null && 
226
					prevslideIDStrings.length > 0) {
229
					prevslideDefIDStrings.length > 0) {
227
				try {
230
				try {
228
					prevSlideID = Long.parseLong(prevslideIDStrings[0]);
231
					prevSlideDefID = Long.parseLong(prevslideDefIDStrings[0]);
229
				}
232
				}
230
				catch (NumberFormatException nfe) {}
233
				catch (NumberFormatException nfe) {}
231
			}
234
			}
232
			log.info("currentSlideID:" + currentSlideID);
235
			log.info("currentSlideDefID:" + currentSlideDefID);
233
			log.info("nextSlideID:" + nextSlideID);
236
			log.info("nextSlideDefID:" + nextSlideDefID);
234
			log.info("prevSlideID:" + prevSlideID);
237
			log.info("prevSlideDefID:" + prevSlideDefID);
235
			
238
			
236
			// Save on basic info page
239
			// Save on basic info page
237
			if (this.reqparams.containsKey("save") && currentSlideID == 0L) {
240
			if (this.reqparams.containsKey("save") && currentSlideDefID == 0L) {
238
				log.info("Save");
241
				log.info("Save");
239
				
242
				
240
				Entity entity = this.expEntity.getEntity();
243
				Entity entity = this.expEntity.getEntity();
241
 
244
 
242
				String categoryID = this.reqparams.get("category")[0];
245
				String categoryID = this.reqparams.get("category")[0];
Line 268... Line 271...
268
			this.reqparams.containsKey("prev");
271
			this.reqparams.containsKey("prev");
269
 
272
 
270
			
273
			
271
			// Save or Next or Prev - When editing a slide
274
			// Save or Next or Prev - When editing a slide
272
			int currentSlideIndex = 0;
275
			int currentSlideIndex = 0;
273
			currentSlideIndex = slideIDs.indexOf(new Long(currentSlideID));
276
			currentSlideIndex = slideIDs.indexOf(new Long(currentSlideDefID));
274
			log.info("currentSlideIndex:" + currentSlideIndex);
277
			log.info("currentSlideIndex:" + currentSlideIndex);
275
 
278
 
276
			if(!skip && currentSlideID != 0L) {
279
			if(!skip && currentSlideDefID != 0L) {
277
				Entity entity = this.expEntity.getEntity();
280
				Entity entity = this.expEntity.getEntity();
278
				
281
				
279
				// Update Entity Record
282
				// Create new instance and override existing
280
				Slide currentSlide = entity.getSlide(currentSlideID);
283
				Slide currentSlide = this.createSlide(currentSlideDefID);
281
				
-
 
282
				// Slide free-form content
-
 
283
				FreeformContent slideFFC = this.getFreeformContent("slide");
-
 
284
				log.info("slideFFC:" + slideFFC);
-
 
285
				
-
 
286
				currentSlide.setFreeformContent(slideFFC);
-
 
287
				//log.info("currentSlide:" + currentSlide);
-
 
288
				
-
 
289
				// Collect Feature bullets
-
 
290
				List<Feature> features = this.createFeatures(currentSlide);
-
 
291
				log.info("features:" + features);
-
 
292
				
284
				
293
				currentSlide.setFeatures(features);
285
				entity.addSlide(currentSlide);
294
				
286
				
295
				// Store
287
				// Store
296
				this.updateEntity(entity);
288
				this.updateEntity(entity);
297
				//log.info("entity:" + entity);
289
				//log.info("entity:" + entity);
298
			}
290
			}
Line 304... Line 296...
304
			int newCurrentIndex = -2;  
296
			int newCurrentIndex = -2;  
305
			int newNextIndex = -2;
297
			int newNextIndex = -2;
306
			int newPrevIndex = -2;
298
			int newPrevIndex = -2;
307
				
299
				
308
			// Next
300
			// Next
309
			if(next && nextSlideID != 0L) {
301
			if(next && nextSlideDefID != 0L) {
310
				log.info("Next");
302
				log.info("Next");
311
				
303
				
312
				// Decide on next slide ID
304
				// Decide on next slide ID
313
				int nextSlideIndex = slideIDs.indexOf(new Long(nextSlideID));
305
				int nextSlideIndex = slideIDs.indexOf(new Long(nextSlideDefID));
314
				log.info("nextSlideIndex:"+nextSlideIndex);
306
				log.info("nextSlideIndex:"+nextSlideIndex);
315
				
307
				
316
				// New Current
308
				// New Current
317
				if (nextSlideIndex == -1) {
309
				if (nextSlideIndex == -1) {
318
					this.setErrorString("Invalid Next slide ID " + nextSlideID);
310
					this.setErrorString("Invalid Next slide ID " + 
-
 
311
							nextSlideDefID);
319
					return "fatal";
312
					return "fatal";
320
				}
313
				}
321
				
314
				
322
				newCurrentIndex = nextSlideIndex;
315
				newCurrentIndex = nextSlideIndex;
323
				
316
				
Line 325... Line 318...
325
				if (newCurrentIndex != slideIDs.size()-1) {
318
				if (newCurrentIndex != slideIDs.size()-1) {
326
					newNextIndex = newCurrentIndex + 1;
319
					newNextIndex = newCurrentIndex + 1;
327
				}
320
				}
328
				
321
				
329
				// New Prev.
322
				// New Prev.
330
				if(currentSlideID != 0L) {
323
				if(currentSlideDefID != 0L) {
331
					newPrevIndex = currentSlideIndex;
324
					newPrevIndex = currentSlideIndex;
332
				}
325
				}
333
				
326
				
334
				showAnotherSlide = true;
327
				showAnotherSlide = true;
335
			}
328
			}
336
			
329
			
337
			// Prev
330
			// Prev
338
			if(prev && prevSlideID != 0L) {
331
			if(prev && prevSlideDefID != 0L) {
339
				log.info("Prev");
332
				log.info("Prev");
340
				
333
				
341
				// Decide on prev slide ID
334
				// Decide on prev slide ID
342
				int prevSlideIndex = slideIDs.indexOf(new Long(prevSlideID));
335
				int prevSlideIndex = slideIDs.indexOf(new Long(prevSlideDefID));
343
				log.info("prevSlideIndex:" + prevSlideIndex);
336
				log.info("prevSlideIndex:" + prevSlideIndex);
344
				
337
				
345
				if (prevSlideIndex == -1) {
338
				if (prevSlideIndex == -1) {
346
					this.setErrorString("Invalid Prev slide ID " + prevSlideID);
339
					this.setErrorString("Invalid Prev slide ID " + 
-
 
340
							prevSlideDefID);
347
					return "fatal";
341
					return "fatal";
348
				}
342
				}
349
				
343
				
350
				// New Next
344
				// New Next
351
				if(currentSlideID != 0L) {
345
				if(currentSlideDefID != 0L) {
352
					newNextIndex = currentSlideIndex;
346
					newNextIndex = currentSlideIndex;
353
				}
347
				}
354
 
348
 
355
				// New Current
349
				// New Current
356
				newCurrentIndex = prevSlideIndex;
350
				newCurrentIndex = prevSlideIndex;
Line 362... Line 356...
362
				
356
				
363
				showAnotherSlide = true;
357
				showAnotherSlide = true;
364
			}
358
			}
365
			
359
			
366
			if(showAnotherSlide) {
360
			if(showAnotherSlide) {
367
 				log.info("newCurrentIndex:"+newCurrentIndex);
361
 				log.info("newCurrentIndex:" + newCurrentIndex);
368
				log.info("newNextIndex:"+newNextIndex);
362
				log.info("newNextIndex:" + newNextIndex);
369
				log.info("newPrevIndex:"+newPrevIndex);
363
				log.info("newPrevIndex:" + newPrevIndex);
370
 
364
 
371
				if(newCurrentIndex != -2) {
365
				if(newCurrentIndex != -2) {
372
					this.setNewCurrentSlideDefinitionID(
366
					this.setNewCurrentSlideDefinitionID(
373
							slideIDs.get(newCurrentIndex).longValue());
367
							slideIDs.get(newCurrentIndex).longValue());
374
				}
368
				}
Line 401... Line 395...
401
			return "fatal";
395
			return "fatal";
402
    	}
396
    	}
403
    	
397
    	
404
        return "success";
398
        return "success";
405
    }
399
    }
-
 
400
	
-
 
401
    /**
-
 
402
     * 
-
 
403
     * @param slideDefID
-
 
404
     * @return
-
 
405
     * @throws Exception
-
 
406
     */
-
 
407
    private Slide createSlide(long slideDefID) throws Exception {
-
 
408
		Slide slide = new Slide(slideDefID);
-
 
409
		
-
 
410
		// Slide free-form content
-
 
411
		FreeformContent slideFFC = this.getFreeformContent(
-
 
412
				"slide_" + slideDefID);
-
 
413
		
-
 
414
		log.info("slideFFC:" + slideFFC);
-
 
415
		
-
 
416
		slide.setFreeformContent(slideFFC);
-
 
417
		//log.info("currentSlide:" + currentSlide);
-
 
418
		
-
 
419
		// Collect Feature bullets
-
 
420
		List<Feature> features = this.createFeatures(slide);
-
 
421
		log.info("features:" + features);
-
 
422
		
-
 
423
		slide.setFeatures(features);
-
 
424
		
-
 
425
		// Collect children slides
-
 
426
		SlideDefinition slideDef = 
-
 
427
			this.getDefinitionsContainer().getSlideDefinition(slideDefID);
-
 
428
 
-
 
429
		List<Long> childrenSlideIDs = slideDef.getChildrenSlideDefinitionIDs();
-
 
430
		if(childrenSlideIDs != null) {
-
 
431
			List<Slide> childrenSlides = new ArrayList<Slide>();
-
 
432
			for (Long childSlideID : childrenSlideIDs) {
-
 
433
				Slide childSlide = this.createSlide(childSlideID.longValue());
-
 
434
				if(childSlide != null) {
-
 
435
					childrenSlides.add(childSlide);
-
 
436
				}
-
 
437
			}
-
 
438
			
-
 
439
			slide.setChildrenSlides(childrenSlides);
-
 
440
		}
-
 
441
		
-
 
442
		return slide;
406
    
443
    }
-
 
444
 
407
    /**
445
    /**
408
     * 
446
     * 
409
     * @param slide
447
     * @param slide
410
     * @return
448
     * @return
411
     * @throws Exception
449
     * @throws Exception
Line 568... Line 606...
568
		}
606
		}
569
		
607
		
570
		log.info("ffc:" + ffc);
608
		log.info("ffc:" + ffc);
571
		return ffc;
609
		return ffc;
572
	}
610
	}
-
 
611
    
-
 
612
    
-
 
613
    /**
-
 
614
     * 
-
 
615
     * @param slideDefinitionID
-
 
616
     * @return
-
 
617
     */
-
 
618
	public ExpandedSlide getChildSlide(long slideDefinitionID) {
-
 
619
		return this.getChildSlide(this.expSlide, slideDefinitionID);
-
 
620
	}
-
 
621
	
-
 
622
	
-
 
623
    /**
-
 
624
     * 
-
 
625
     * @param expSlide
-
 
626
     * @param slideDefinitionID
-
 
627
     * @return
-
 
628
     */
-
 
629
	public ExpandedSlide getChildSlide(ExpandedSlide expSlide, 
-
 
630
			long slideDefinitionID) {
-
 
631
		
-
 
632
		List<ExpandedSlide> childrenSlides = 
-
 
633
			expSlide.getExpandedChildrenSlides();
-
 
634
		
-
 
635
		ExpandedSlide resultSlide = null;
-
 
636
		
-
 
637
		if(childrenSlides != null) {
-
 
638
			for(ExpandedSlide childSlide : childrenSlides) {
-
 
639
				if(childSlide.getSlideDefinitionID() == slideDefinitionID) {
-
 
640
					return childSlide;
-
 
641
				}
-
 
642
				
-
 
643
				resultSlide = this.getChildSlide(childSlide, slideDefinitionID);
-
 
644
				if(resultSlide == null) {
-
 
645
					continue;
-
 
646
				}
-
 
647
				else {
-
 
648
					break;
-
 
649
				}
-
 
650
			}
-
 
651
		}
-
 
652
		
-
 
653
		return resultSlide;
-
 
654
	}
573
 
655
 
574
	/**
656
	/**
575
	 * @return the entities
657
	 * @return the entities
576
	 */
658
	 */
577
	public Collection<Entity> getEntities() {
659
	public Collection<Entity> getEntities() {
Line 589... Line 671...
589
	 * @return the current slide to edit
671
	 * @return the current slide to edit
590
	 */
672
	 */
591
	public ExpandedSlideDefinition getExpandedSlideDefinition() {
673
	public ExpandedSlideDefinition getExpandedSlideDefinition() {
592
		return expSlideDef;
674
		return expSlideDef;
593
	}
675
	}
-
 
676
 
-
 
677
	/**
-
 
678
	 * 
-
 
679
	 * @param slideDefID
-
 
680
	 * @return
-
 
681
	 */
-
 
682
	public ExpandedSlideDefinition getExpandedSlideDefinition(long slideDefID) {
-
 
683
		DefinitionsContainer defs = this.getDefinitionsContainer();
-
 
684
		
-
 
685
		try {
-
 
686
			return defs.getExpandedSlideDefinition(slideDefID);
-
 
687
		} catch (Exception e) {
-
 
688
			return null;
-
 
689
		}
-
 
690
	}
594
	
691
	
595
	/**
692
	/**
596
     * 
693
     * 
597
     * @param id
694
     * @param id
598
     */
695
     */
Line 608... Line 705...
608
    }
705
    }
609
 
706
 
610
	/**
707
	/**
611
	 * @return the firstSlideID
708
	 * @return the firstSlideID
612
	 */
709
	 */
613
	public long getFirstSlideID() {
710
	public long getFirstSlideDefID() {
614
		return firstSlideID;
711
		return firstSlideDefID;
615
	}
712
	}
616
 
713
 
617
	@Override
714
	@Override
618
	public void setParameters(Map<String, String[]> reqmap) {
715
	public void setParameters(Map<String, String[]> reqmap) {
619
		log.info("setParameters:" + reqmap);
716
		log.info("setParameters:" + reqmap);