Subversion Repositories SmartDukaan

Rev

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

Rev 310 Rev 480
Line 2... Line 2...
2
 * 
2
 * 
3
 */
3
 */
4
package in.shop2020.creation.controllers;
4
package in.shop2020.creation.controllers;
5
 
5
 
6
import in.shop2020.creation.util.ContentValidator;
6
import in.shop2020.creation.util.ContentValidator;
7
import in.shop2020.creation.util.CreationUtils;
7
import in.shop2020.metamodel.util.CreationUtils;
8
import in.shop2020.metamodel.core.Entity;
8
import in.shop2020.metamodel.core.Entity;
9
import in.shop2020.metamodel.core.Slide;
9
import in.shop2020.metamodel.core.Slide;
-
 
10
import in.shop2020.metamodel.definitions.Catalog;
10
import in.shop2020.metamodel.definitions.Category;
11
import in.shop2020.metamodel.definitions.Category;
11
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
12
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
12
import in.shop2020.metamodel.definitions.DefinitionsContainer;
13
import in.shop2020.metamodel.definitions.DefinitionsContainer;
13
import in.shop2020.metamodel.definitions.EntityContainer;
14
import in.shop2020.metamodel.definitions.EntityContainer;
14
 
15
 
Line 108... Line 109...
108
     * 
109
     * 
109
     * @return
110
     * @return
110
     */
111
     */
111
    public String update() {
112
    public String update() {
112
    	log.info("SlidesController.update");
113
    	log.info("SlidesController.update");
-
 
114
    	for(String reqparam: this.reqparams.keySet()){
-
 
115
    		String[] values = this.reqparams.get(reqparam);
-
 
116
    		for(String value: values){
-
 
117
    			System.out.println("Param:   " + reqparam + "Value:   " + value);
-
 
118
    		}
-
 
119
    	}
-
 
120
    	
-
 
121
    	if(this.reqparams.get("slideid") != null){
-
 
122
    		long slideId = Long.parseLong(this.reqparams.get("slideid")[0]);
-
 
123
    		long afterSlideId = Long.parseLong(this.reqparams.get("afterslide")[0]);
-
 
124
    		long entityID = Long.parseLong(this.getId());
-
 
125
    		
-
 
126
//	    	List<Long> slideSequence = CreationUtils.getSlideSequence(entityID);
-
 
127
//	    	List<Long> newSlideSequence = new ArrayList<Long>();
-
 
128
//	    	
-
 
129
//	    	for(Long slide: slideSequence){
-
 
130
//	    		newSlideSequence.add(slide);
-
 
131
//	    		if(slide.equals(new Long(afterSlideId))){
-
 
132
//	    			newSlideSequence.add(new Long(slideId));
-
 
133
//	    		}
-
 
134
//	    	}
-
 
135
    		
-
 
136
    	try{
-
 
137
    		EntityContainer ents = this.getEntityContainer();
-
 
138
	    	Entity entity = this.getEntity(entityID);
-
 
139
	    	Long catId = new Long(entity.getCategoryID());
-
 
140
	    	
-
 
141
	    	
-
 
142
	    	Map<Long, List<Long>> catSlideSequence = CreationUtils.getRawSlideSequence(entityID);
-
 
143
	    	List<Long> allSlideSequence = catSlideSequence.get(new Long(-1));
-
 
144
	    	List<Long> newAllSlideSequence = new ArrayList<Long>();
-
 
145
	    	
-
 
146
	    	catSlideSequence.remove(new Long(-1));
-
 
147
	    	Map<Long, List<Long>> newCatSlideSequence = new HashMap<Long, List<Long>>();
-
 
148
	    	
-
 
149
	    	for(Long slide: allSlideSequence){
-
 
150
	    		newAllSlideSequence.add(slide);
-
 
151
    			if(slide.equals(new Long(afterSlideId))){
-
 
152
	    			newAllSlideSequence.add(new Long(slideId));
-
 
153
	    		}	
-
 
154
	    	}
-
 
155
	    	
-
 
156
	    	DefinitionsContainer defs = Catalog.getInstance().getDefinitionsContainer();
-
 
157
	    	for(Long cat: catSlideSequence.keySet()){
-
 
158
	    		List<Long> newSlideSequence = new ArrayList<Long>();
-
 
159
	    		List<Long> slides =  catSlideSequence.get(cat);
-
 
160
	    		
-
 
161
	    		boolean contains = false;
-
 
162
	    		List<CategorySlideDefinition> catdefs = defs.getCategorySlideDefinitions(cat);
-
 
163
	    		for(CategorySlideDefinition  catdef: catdefs){
-
 
164
	    			if(catdef.getSlideDefintionID()==slideId){
-
 
165
	    				contains = true;
-
 
166
	    			}
-
 
167
	    		}
-
 
168
	    		
-
 
169
	    		
-
 
170
	    		
-
 
171
	    		for(Long slide: slides){
-
 
172
	    			newSlideSequence.add(slide);
-
 
173
	    		}
-
 
174
	    		if(contains){
-
 
175
	    			newSlideSequence.add(new Long(slideId));	
-
 
176
	    		}
-
 
177
	    		
-
 
178
	    		newCatSlideSequence.put(cat, newSlideSequence);
-
 
179
	    	}
-
 
180
	    	
-
 
181
	    	newCatSlideSequence.put(new Long(-1), newAllSlideSequence);
-
 
182
 
-
 
183
	    	CreationUtils.storeSlideSequence(entityID, newCatSlideSequence);
-
 
184
    	}catch(Exception e){
-
 
185
    		e.printStackTrace();
-
 
186
    	}
-
 
187
	    	this.redirectURL = "/slides/" + this.getId() + "/edit";
-
 
188
	    	return "redirect";
-
 
189
    	}
-
 
190
    	
113
    	
191
    	
114
    	try {
192
    	try {
115
    		long entityID = Long.parseLong(this.getId());    		
193
    		long entityID = Long.parseLong(this.getId());    		
116
	    	EntityContainer ents = this.getEntityContainer();
194
	    	EntityContainer ents = this.getEntityContainer();
117
	    	Entity entity = this.getEntity(entityID);
195
	    	Entity entity = this.getEntity(entityID);
118
	    	
196
	    	Long catId = new Long(entity.getCategoryID());
119
	    	// Slides of entity's category
197
	    	// Slides of entity's category
120
	    	String[] strSlideDefIDs = this.reqparams.get(
198
	    	String[] strSlideDefIDs = this.reqparams.get(
121
	    			new Long(entity.getCategoryID()).toString());
199
	    			new Long(entity.getCategoryID()).toString());
122
	    	
200
	    	
123
	    	log.info("strSlideDefIDs:" + Arrays.toString(strSlideDefIDs));
201
	    	log.info("strSlideDefIDs:" + Arrays.toString(strSlideDefIDs));
124
	    	
202
	    	
-
 
203
	    	
-
 
204
	    	List<Long> sequence= CreationUtils.getSlideSequence(entityID);
-
 
205
        	if(sequence == null){
-
 
206
        		sequence = new ArrayList<Long>();
-
 
207
        	}
-
 
208
        	
125
	    	// To restore order of keys
209
	    	// To restore order of keys
126
	    	this.catSlides = new LinkedHashMap<Long, List<Long>>();
210
	    	this.catSlides = new LinkedHashMap<Long, List<Long>>();
127
        	
211
        	
128
	    	List<Long> allSlideDefIDs = new ArrayList<Long>();
212
	    	List<Long> allSlideDefIDs = new ArrayList<Long>();
129
	    	
213
	    	
130
	    	// Add entity's category slides first
214
	    	// Add entity's category slides first
131
    		List<Long> slideDefIDs = new ArrayList<Long>();
215
    		List<Long> slideDefIDs = new ArrayList<Long>();
132
    		for(String strSlideDefID : strSlideDefIDs) {
216
    		for(String strSlideDefID : strSlideDefIDs) {
133
    			slideDefIDs.add(new Long(Long.parseLong(strSlideDefID)));
217
    			slideDefIDs.add(new Long(Long.parseLong(strSlideDefID)));
-
 
218
    			if(!sequence.contains(new Long(Long.parseLong(strSlideDefID)))){
-
 
219
    				sequence.add(new Long(Long.parseLong(strSlideDefID)));
-
 
220
    			}
134
    		}
221
    		}
135
    		this.catSlides.put(new Long(entity.getCategoryID()), slideDefIDs);
222
    		this.catSlides.put(new Long(entity.getCategoryID()), slideDefIDs);
136
    		allSlideDefIDs.addAll(slideDefIDs);
223
    		allSlideDefIDs.addAll(slideDefIDs);
137
    		
224
    		
138
        	DefinitionsContainer defs = this.getDefinitionsContainer();
225
        	DefinitionsContainer defs = this.getDefinitionsContainer();
139
        	List<Category> cats = defs.getChildrenCategories(10001L);
226
        	List<Category> cats = defs.getChildrenCategories(10001L);
140
        	
227
        	
141
        	// Add slides borrowed from other categories
228
        	// Add slides borrowed from other categories
142
        	for(Category cat : cats) {
229
        	for(Category cat : cats) {
143
        		Long lCat = new Long(cat.getID());
230
        		Long lCat = new Long(cat.getID());
-
 
231
        		
144
        		String[] strCatSlideDefIDs = this.reqparams.get(
232
        		String[] strCatSlideDefIDs = this.reqparams.get(
145
        				lCat.toString());
233
        				lCat.toString());
146
 
234
        		
147
        		List<Long> catSlideDefIDs = new ArrayList<Long>();
235
        		List<Long> catSlideDefIDs = new ArrayList<Long>();
148
        		if(strCatSlideDefIDs != null && strCatSlideDefIDs.length > 0) {
236
        		if(strCatSlideDefIDs != null && strCatSlideDefIDs.length > 0) {
149
            		for(String strCatSlideDefID : strCatSlideDefIDs) {
237
            		for(String strCatSlideDefID : strCatSlideDefIDs) {
150
            			catSlideDefIDs.add(new Long(Long.parseLong(
238
            			catSlideDefIDs.add(new Long(Long.parseLong(
151
            					strCatSlideDefID)));
239
            					strCatSlideDefID)));
-
 
240
            			if(!lCat.equals(catId) && !sequence.contains(new Long(Long.parseLong(strCatSlideDefID)))){
-
 
241
            				sequence.add(new Long(Long.parseLong(strCatSlideDefID)));
-
 
242
            			}
152
            		}
243
            		}
153
        		}
244
        		}
154
        		
245
        		
155
        		this.catSlides.put(lCat, catSlideDefIDs);
246
        		this.catSlides.put(lCat, catSlideDefIDs);
156
        		allSlideDefIDs.addAll(catSlideDefIDs);
247
        		
157
        	}
248
        	}
-
 
249
        	this.catSlides.remove(new Long(-1));
-
 
250
        	
-
 
251
        	
-
 
252
        	this.catSlides.put(new Long(-1), sequence);
158
        	log.info("this.catSlides:" + this.catSlides);
253
        	log.info("this.catSlides:" + this.catSlides);
159
        	
254
        	
160
    		// Store for sequence reference
255
    		// Store for sequence reference
161
	    	CreationUtils.storeSlideSequence(entityID, this.catSlides);
256
	    	CreationUtils.storeSlideSequence(entityID, this.catSlides);
162
    		
257
	    	this.catSlides.remove(new Long(-1));
163
	    	// Delete slides no longer present in the list
258
	    	// Delete slides no longer present in the list
164
	    	List<Slide> slides = entity.getSlides();
259
	    	List<Slide> slides = entity.getSlides();
165
	    	if(slides != null) {
260
	    	if(slides != null) {
166
		    	List<Slide> deletedSlides = new ArrayList<Slide>();
261
		    	List<Slide> deletedSlides = new ArrayList<Slide>();
167
		    	for(Slide slide : slides) {
262
		    	for(Slide slide : slides) {