Subversion Repositories SmartDukaan

Rev

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

Rev 206 Rev 208
Line 1... Line 1...
1
package in.shop2020.creation.controllers;
1
package in.shop2020.creation.controllers;
2
 
2
 
3
import java.io.PrintWriter;
-
 
4
import java.io.StringWriter;
-
 
5
import java.io.Writer;
-
 
6
import java.util.ArrayList;
-
 
7
import java.util.Arrays;
-
 
8
import java.util.Collection;
3
import in.shop2020.creation.util.CreationUtils;
9
import java.util.HashMap;
-
 
10
import java.util.List;
-
 
11
import java.util.Map;
-
 
12
 
-
 
13
import in.shop2020.metamodel.core.Bullet;
4
import in.shop2020.metamodel.core.Bullet;
14
import in.shop2020.metamodel.core.CompositeDataObject;
5
import in.shop2020.metamodel.core.CompositeDataObject;
15
import in.shop2020.metamodel.core.Entity;
6
import in.shop2020.metamodel.core.Entity;
16
import in.shop2020.metamodel.core.EnumDataObject;
7
import in.shop2020.metamodel.core.EnumDataObject;
17
import in.shop2020.metamodel.core.Feature;
8
import in.shop2020.metamodel.core.Feature;
18
import in.shop2020.metamodel.core.FreeformContent;
9
import in.shop2020.metamodel.core.FreeformContent;
19
import in.shop2020.metamodel.core.PrimitiveDataObject;
10
import in.shop2020.metamodel.core.PrimitiveDataObject;
20
import in.shop2020.metamodel.core.Slide;
11
import in.shop2020.metamodel.core.Slide;
21
import in.shop2020.metamodel.definitions.Category;
12
import in.shop2020.metamodel.definitions.Category;
-
 
13
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
22
import in.shop2020.metamodel.definitions.CompositeDefinition;
14
import in.shop2020.metamodel.definitions.CompositeDefinition;
23
import in.shop2020.metamodel.definitions.CompositePartDefinition;
15
import in.shop2020.metamodel.definitions.CompositePartDefinition;
24
import in.shop2020.metamodel.definitions.DefinitionsContainer;
16
import in.shop2020.metamodel.definitions.DefinitionsContainer;
25
import in.shop2020.metamodel.definitions.EntityContainer;
17
import in.shop2020.metamodel.definitions.EntityContainer;
26
import in.shop2020.metamodel.definitions.FeatureDefinition;
18
import in.shop2020.metamodel.definitions.FeatureDefinition;
Line 35... Line 27...
35
import in.shop2020.metamodel.util.ExpandedSlideDefinition;
27
import in.shop2020.metamodel.util.ExpandedSlideDefinition;
36
import in.shop2020.metamodel.util.SequenceGenerator;
28
import in.shop2020.metamodel.util.SequenceGenerator;
37
import in.shop2020.util.DBUtils;
29
import in.shop2020.util.DBUtils;
38
import in.shop2020.util.Utils;
30
import in.shop2020.util.Utils;
39
 
31
 
-
 
32
import java.util.ArrayList;
-
 
33
import java.util.Arrays;
-
 
34
import java.util.Collection;
-
 
35
import java.util.HashMap;
-
 
36
import java.util.List;
-
 
37
import java.util.Map;
-
 
38
 
-
 
39
import org.apache.commons.lang.StringUtils;
40
import org.apache.juli.logging.Log;
40
import org.apache.juli.logging.Log;
41
import org.apache.juli.logging.LogFactory;
41
import org.apache.juli.logging.LogFactory;
42
import org.apache.struts2.rest.DefaultHttpHeaders;
-
 
43
import org.apache.struts2.rest.HttpHeaders;
-
 
44
 
-
 
45
import org.apache.struts2.convention.annotation.Result;
42
import org.apache.struts2.convention.annotation.Result;
46
import org.apache.struts2.convention.annotation.Results;
43
import org.apache.struts2.convention.annotation.Results;
47
import org.apache.struts2.interceptor.ParameterAware;
44
import org.apache.struts2.interceptor.ParameterAware;
48
 
-
 
-
 
45
import org.apache.struts2.rest.DefaultHttpHeaders;
49
import org.apache.commons.lang.StringUtils;
46
import org.apache.struts2.rest.HttpHeaders;
50
 
47
 
51
@Results({
48
@Results({
52
    @Result(name="success", type="redirectAction", 
49
    @Result(name="success", type="redirectAction", 
53
    		params = {"actionName" , "entity"}),
50
    		params = {"actionName" , "entity"}),
54
    @Result(name="redirect", location="${url}", type="redirect")
51
    @Result(name="redirect", location="${url}", type="redirect")
Line 101... Line 98...
101
    	EntityContainer ents = new EntityContainer();
98
    	EntityContainer ents = new EntityContainer();
102
    	
99
    	
103
    	try {
100
    	try {
104
			this.entities = ents.getEntities().values();
101
			this.entities = ents.getEntities().values();
105
		} catch (Exception e) {
102
		} catch (Exception e) {
106
			log.error(this.getStackTrace(e));
103
			log.error(CreationUtils.getStackTrace(e));
107
			this.setErrorString(this.getStackTrace(e));
104
			this.setErrorString(CreationUtils.getStackTrace(e));
108
			return new DefaultHttpHeaders("fatal");
105
			return new DefaultHttpHeaders("fatal");
109
		}
106
		}
110
    	
107
    	
111
        return new DefaultHttpHeaders("index")
108
        return new DefaultHttpHeaders("index").disableCaching();
112
            .disableCaching();
-
 
113
    }
109
    }
114
 
110
 
115
    // GET /entity
111
    // GET /entity
116
    public String create() {
112
    public String create() {
117
    	log.info("EntityController.create");
113
    	log.info("EntityController.create");
Line 130... Line 126...
130
			
126
			
131
			this.addEntity(entity);
127
			this.addEntity(entity);
132
			
128
			
133
	    	this.setId(new Long(entityID).toString());
129
	    	this.setId(new Long(entityID).toString());
134
		} catch (Exception e) {
130
		} catch (Exception e) {
135
			log.error(this.getStackTrace(e));
131
			log.error(CreationUtils.getStackTrace(e));
136
			this.setErrorString(this.getStackTrace(e));
132
			this.setErrorString(CreationUtils.getStackTrace(e));
137
			return "fatal";
133
			return "fatal";
138
		}
134
		}
139
		
135
		
140
		this.redirectURL = "entity/" + this.getId() + "/edit";
136
		this.redirectURL = "entity/" + this.getId() + "/edit";
141
    	
137
    	
Line 160... Line 156...
160
			List<Long> slideIDs = defs.getCategorySlideSequence(catID);
156
			List<Long> slideIDs = defs.getCategorySlideSequence(catID);
161
 
157
 
162
			this.firstSlideID = slideIDs.get(0);
158
			this.firstSlideID = slideIDs.get(0);
163
			
159
			
164
		} catch (Exception e) {
160
		} catch (Exception e) {
165
			log.error(this.getStackTrace(e));
161
			log.error(CreationUtils.getStackTrace(e));
166
			this.setErrorString(this.getStackTrace(e));
162
			this.setErrorString(CreationUtils.getStackTrace(e));
167
			return "fatal";
163
			return "fatal";
168
		}
164
		}
169
		
165
		
170
        return "edit";
166
        return "edit";
171
    }
167
    }
Line 257... Line 253...
257
			
253
			
258
			long catID = this.expEntity.getCategoryID();
254
			long catID = this.expEntity.getCategoryID();
259
			List<Long> slideIDs = defs.getCategorySlideSequence(catID);
255
			List<Long> slideIDs = defs.getCategorySlideSequence(catID);
260
			log.info("slideIDs:"+slideIDs);
256
			log.info("slideIDs:"+slideIDs);
261
			
257
			
-
 
258
			boolean skip = false;
-
 
259
			if(this.reqparams.containsKey("skipprev") || 
-
 
260
					this.reqparams.containsKey("skipnext")) {
-
 
261
				skip = true;
-
 
262
			}
-
 
263
			
-
 
264
			boolean next = this.reqparams.containsKey("skipnext") || 
-
 
265
				this.reqparams.containsKey("next");
-
 
266
 
-
 
267
			boolean prev = this.reqparams.containsKey("skipprev") || 
-
 
268
			this.reqparams.containsKey("prev");
-
 
269
 
-
 
270
			
262
			// Save or Next or Prev - When editing a slide
271
			// Save or Next or Prev - When editing a slide
263
			int currentSlideIndex = 0;
272
			int currentSlideIndex = 0;
264
			if(currentSlideID != 0L) {
-
 
265
				currentSlideIndex = slideIDs.indexOf(new Long(currentSlideID));
273
			currentSlideIndex = slideIDs.indexOf(new Long(currentSlideID));
266
				log.info("currentSlideIndex:" + currentSlideIndex);
274
			log.info("currentSlideIndex:" + currentSlideIndex);
267
 
275
 
-
 
276
			if(!skip && currentSlideID != 0L) {
268
				Entity entity = this.expEntity.getEntity();
277
				Entity entity = this.expEntity.getEntity();
269
				
278
				
270
				// Update Entity Record
279
				// Update Entity Record
271
				Slide currentSlide = entity.getSlide(currentSlideID);
280
				Slide currentSlide = entity.getSlide(currentSlideID);
272
				
281
				
Line 295... Line 304...
295
			int newCurrentIndex = -2;  
304
			int newCurrentIndex = -2;  
296
			int newNextIndex = -2;
305
			int newNextIndex = -2;
297
			int newPrevIndex = -2;
306
			int newPrevIndex = -2;
298
				
307
				
299
			// Next
308
			// Next
300
			if(this.reqparams.containsKey("next") && nextSlideID != 0L) {
309
			if(next && nextSlideID != 0L) {
301
				log.info("Next");
310
				log.info("Next");
302
				
311
				
303
				// Decide on next slide ID
312
				// Decide on next slide ID
304
				int nextSlideIndex = slideIDs.indexOf(new Long(nextSlideID));
313
				int nextSlideIndex = slideIDs.indexOf(new Long(nextSlideID));
305
				log.info("nextSlideIndex:"+nextSlideIndex);
314
				log.info("nextSlideIndex:"+nextSlideIndex);
Line 324... Line 333...
324
				
333
				
325
				showAnotherSlide = true;
334
				showAnotherSlide = true;
326
			}
335
			}
327
			
336
			
328
			// Prev
337
			// Prev
329
			if(this.reqparams.containsKey("prev") && prevSlideID != 0L) {
338
			if(prev && prevSlideID != 0L) {
330
				log.info("Prev");
339
				log.info("Prev");
331
				
340
				
332
				// Decide on prev slide ID
341
				// Decide on prev slide ID
333
				int prevSlideIndex = slideIDs.indexOf(new Long(prevSlideID));
342
				int prevSlideIndex = slideIDs.indexOf(new Long(prevSlideID));
334
				log.info("prevSlideIndex:" + prevSlideIndex);
343
				log.info("prevSlideIndex:" + prevSlideIndex);
Line 385... Line 394...
385
				
394
				
386
				return "editSlide";
395
				return "editSlide";
387
			}
396
			}
388
		}
397
		}
389
    	catch (Exception e) {
398
    	catch (Exception e) {
390
			log.error(this.getStackTrace(e));
399
			log.error(CreationUtils.getStackTrace(e));
391
			this.setErrorString(this.getStackTrace(e));
400
			this.setErrorString(CreationUtils.getStackTrace(e));
392
			return "fatal";
401
			return "fatal";
393
    	}
402
    	}
394
    	
403
    	
395
        return "success";
404
        return "success";
396
    }
405
    }
Line 453... Line 462...
453
				List<CompositePartDefinition> compositeParts = 
462
				List<CompositePartDefinition> compositeParts = 
454
					compositeDef.getCompositePartDefinitions();
463
					compositeDef.getCompositePartDefinitions();
455
				
464
				
456
				for(int j=0;j<compositeParts.size();j++) {
465
				for(int j=0;j<compositeParts.size();j++) {
457
					String[] partValues = this.reqparams.get(
466
					String[] partValues = this.reqparams.get(
458
							featureDefIDString + "_" + j);
467
							featureDefIDString + "_" + (j + 1));
459
					
468
					
460
					if(partValues != null && partValues.length > 0) {
469
					if(partValues != null && partValues.length > 0) {
461
						compositeDataObject.addPrimitiveDataObject(
470
						compositeDataObject.addPrimitiveDataObject(
462
							new PrimitiveDataObject(partValues[0]));
471
							new PrimitiveDataObject(partValues[0]));
463
					}
472
					}
Line 844... Line 853...
844
		return new ExpandedFeature(feature);
853
		return new ExpandedFeature(feature);
845
	}
854
	}
846
	
855
	
847
	/**
856
	/**
848
	 * 
857
	 * 
849
	 * @param aThrowable
-
 
850
	 * @return
858
	 * @return
851
	 */
859
	 */
852
	private String getStackTrace(Throwable aThrowable) {
860
	public String getEditorialImportance() {
-
 
861
		long catID = this.expEntity.getCategoryID();
-
 
862
		long slideDefID = this.getNewCurrentSlideDefinitionID();
-
 
863
		
-
 
864
		try {
-
 
865
			List<CategorySlideDefinition> catSlideDefs =
853
	    final Writer result = new StringWriter();
866
				defs.getCategorySlideDefinitions(catID);
854
	    final PrintWriter printWriter = new PrintWriter(result);
867
			for(CategorySlideDefinition catSlideDef : catSlideDefs) {
-
 
868
				if(catSlideDef.getSlideDefintionID() == slideDefID) {
855
	    aThrowable.printStackTrace(printWriter);
869
					return catSlideDef.getEditorialImportance().toString();
-
 
870
				}
-
 
871
			}
-
 
872
		} catch (Exception e) {
856
	    return result.toString();
873
			log.error(CreationUtils.getStackTrace(e));
-
 
874
    	}
-
 
875
		
-
 
876
		return "";
857
	}
877
	}
858
 
-
 
859
}
878
}