1 //==============================================================================
2 // file : ClassCMD.java
3 // project: East Networks News System
4 //
5 // last change: date: $Date: 2003/09/10 09:28:37 $
6 // by: $Author: bitiboy $
7 // revision: $Revision: 1.1 $
8 //------------------------------------------------------------------------------
9 // copyright: GNU GPL Software License (see class documentation)
10 //==============================================================================
11 package net.eastol.news.command;
12
13
14 /*
15 * $Id: ClassCMD.java,v 1.1 2003/09/10 09:28:37 bitiboy Exp $
16 *
17 * Copyright 2003 Acai Software All Rights Reserved.
18 *
19 * This file ClassCMD.java is part of the East Networks News System.
20
21 * The East Networks News System is free software; you can redistribute it and/or modify
22 * it under the terms of the GNU General Public License as published by
23 * the Free Software Foundation; either version 2 of the License, or
24 * (at your option) any later version.
25
26 * East Networks News System is distributed in the hope that it will be useful,
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 * GNU General Public License for more details.
30
31 * You should have received a copy of the GNU General Public License
32 * along with the East Networks News System; if not, write to the Free Software
33 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
34
35 * http://www.justhis.com http://ejb.cn
36 * CONTACT: email = webmaster@justhis.com superaxis@sohu.com
37 */
38 import com.justhis.jdo.JDOUtil;
39
40 import com.justhis.util.exception.LogicException;
41 import com.justhis.util.exception.UtilException;
42
43 import net.eastol.news.common.CommonCommand;
44 import net.eastol.news.jdo.bean.NewsClass;
45 import net.eastol.news.jdo.bean.NewsSys;
46 import net.eastol.news.jibx.bean.NewsCommonXML;
47
48 import java.sql.SQLException;
49
50 import java.util.Date;
51
52 import javax.jdo.Transaction;
53
54 import javax.servlet.ServletException;
55
56
57 /***
58 * TODO DOCUMENT ME!
59 *
60 * @author <a href="http://blog.ejb.cn">acai</a>
61 * @version $Revision $
62 */
63 public class ClassCMD extends CommonCommand {
64 //~ Methods ----------------------------------------------------------------
65
66 /***
67 * TODO DOCUMENT ME!
68 *
69 * @return TODO
70 */
71 public String getName() {
72 return null;
73 }
74
75 /***
76 * TODO DOCUMENT ME!
77 *
78 * @return TODO
79 *
80 * @throws LogicException TODO
81 * @throws SQLException TODO
82 * @throws ServletException TODO
83 * @throws UtilException TODO
84 */
85 public String execute()
86 throws LogicException, SQLException, ServletException,
87 UtilException {
88 if ("AddClass".equals(action)) {
89 this.AddClass();
90 } else if ("AdminClass".equals(action)) {
91 this.showClassList();
92 } else if ("DeleteClass".equals(action)) {
93 this.deleteClass();
94 } else if ("ModifyClass".equals(action)) {
95 this.modifyClass();
96 } else if ("UpdateClass".equals(action)) {
97 this.updateClass();
98 } else if ("UpOrderClass".equals(action)) {
99 this.upOrder();
100 } else if ("DownOrderClass".equals(action)) {
101 this.downOrder();
102 } else if ("AddNClass".equals(action)) {
103 this.addNClass();
104 } else if ("AddNClassForm".equals(action)) {
105 this.showAddNClassForm();
106 } else if ("AdminChildren".equals(action)) {
107 this.adminChildren();
108 }
109
110 return null;
111 }
112
113 /***
114 * TODO DOCUMENT ME!
115 *
116 * @throws ServletException TODO
117 * @throws UtilException TODO
118 * @throws SQLException TODO
119 * @throws LogicException TODO
120 */
121 private void AddClass()
122 throws ServletException, UtilException, SQLException,
123 LogicException {
124 NewsClass nc = new NewsClass();
125 System.out.println("Now add News class");
126 nc.setClassName(xp.getProperty("className"));
127 nc.setNewsClassId(this.getDBSequence());
128 nc.setListStyle(xp.getIntProperty("listStyle"));
129 nc.setStyleId(xp.getIntProperty("styleId"));
130 nc.setLogo(xp.getProperty("logo"));
131 nc.setNewsAd(xp.getProperty("newsAd"));
132 nc.setHeadAd(xp.getProperty("headAd"));
133 nc.setLastUpdate(new Date());
134
135 /* try {
136 JibxUtil.marshallDocument(nc, "asdf.xslt", "asdf.xml");
137 } catch (FileNotFoundException e) {
138
139 e.printStackTrace();
140 } catch (JiBXException e) {
141 throw new LogicException(e);
142 }*/
143 Transaction trans = getTransaction();
144 trans.begin();
145
146 NewsSys ns = (NewsSys) JDOUtil.findObjectById(trans, NewsSys.class,
147 systemOID
148 );
149 ns.addClass(nc);
150 trans.commit();
151 System.out.println("????????class:");
152
153 this.printClassList(ns);
154
155 NewsCommonXML ncx = new NewsCommonXML();
156 ncx.setMsg("Succsessful!");
157
158 this.go(ncx, this.getXsltFileFromUrl());
159 }
160
161 /***
162 * TODO DOCUMENT ME!
163 *
164 * @throws UtilException TODO
165 * @throws SQLException TODO
166 * @throws LogicException TODO
167 * @throws ServletException TODO
168 */
169 private void addNClass()
170 throws UtilException, SQLException, LogicException,
171 ServletException {
172 NewsClass nc = new NewsClass();
173 System.out.println("Now add News class");
174 nc.setClassName(xp.getProperty("className"));
175 nc.setNewsClassId(this.getDBSequence());
176 nc.setListStyle(xp.getIntProperty("listStyle"));
177 nc.setStyleId(xp.getIntProperty("styleId"));
178 nc.setLogo(xp.getProperty("logo"));
179 nc.setNewsAd(xp.getProperty("newsAd"));
180 nc.setHeadAd(xp.getProperty("headAd"));
181 nc.setLastUpdate(new Date());
182
183 //nc.setParentClassId(xp.getLongProperty("parentClassId"));
184 String classId = xp.getProperty("parentClassId");
185 Transaction trans = getTransaction();
186 trans.begin();
187
188 NewsClass parent = (NewsClass) JDOUtil.findObjectById(trans,
189 NewsClass.class,
190 classId
191 );
192 parent.addChild(nc);
193
194 trans.commit();
195
196 this.printClassList();
197
198 this.showSuccessAddNClassForm();
199 }
200
201 /***
202 * TODO DOCUMENT ME!
203 *
204 * @throws UtilException TODO
205 * @throws SQLException TODO
206 * @throws LogicException TODO
207 * @throws ServletException TODO
208 */
209 private void adminChildren()
210 throws UtilException, SQLException, LogicException,
211 ServletException {
212 NewsClass nc = (NewsClass) JDOUtil.findObjectById(getPM(),
213 NewsClass.class,
214 xp.getProperty("objId")
215 );
216 NewsCommonXML ncx = new NewsCommonXML();
217 ncx.setClassCollection(nc.getChildList());
218 this.go(nc);
219 }
220
221 /***
222 * TODO DOCUMENT ME!
223 *
224 * @throws UtilException TODO
225 * @throws SQLException TODO
226 * @throws LogicException TODO
227 * @throws ServletException TODO
228 */
229 private void deleteClass()
230 throws UtilException, SQLException, LogicException,
231 ServletException {
232 Transaction trans = getTransaction();
233
234 trans.begin();
235
236 NewsSys ns = (NewsSys) JDOUtil.findObjectById(trans, NewsSys.class,
237 systemOID
238 );
239
240 NewsClass nc = (NewsClass) JDOUtil.findObjectById(trans,
241 NewsClass.class,
242 xp.getProperty("objId")
243 );
244 ns.deleteClass(nc);
245
246 /*trans.getPersistenceManager().refresh(nc);
247 JDOUtil.deleteObject(trans, NewsClass.class,xp.getProperty("objId"));*/
248 trans.commit();
249
250 this.printClassList();
251
252 showClassList();
253 }
254
255 /***
256 * TODO DOCUMENT ME!
257 *
258 * @throws UtilException TODO
259 * @throws SQLException TODO
260 * @throws LogicException TODO
261 * @throws ServletException TODO
262 */
263 private void downOrder()
264 throws UtilException, SQLException, LogicException,
265 ServletException {
266 Transaction trans = getTransaction();
267
268 try {
269 trans.begin();
270
271 NewsClass nc;
272 nc = (NewsClass) JDOUtil.findObjectById(trans, NewsClass.class,
273 xp.getProperty("objId")
274 );
275 nc.setOrderId(nc.getOrderId() - 1);
276
277 trans.commit();
278 } catch (UtilException e) {
279 try {
280 trans.rollback();
281 } catch (Exception ex) {
282 }
283
284 throw e;
285 } catch (Exception e) {
286 throw new LogicException("happen unkown Exception from transaction",
287 e
288 );
289 }
290
291 this.printClassList();
292
293 showClassList();
294 }
295
296 /***
297 * TODO DOCUMENT ME!
298 *
299 * @throws ServletException TODO
300 * @throws UtilException TODO
301 * @throws SQLException TODO
302 * @throws LogicException TODO
303 */
304 private void modifyClass()
305 throws ServletException, UtilException, SQLException,
306 LogicException {
307 this.go(JDOUtil.findObjectById(getPM(), NewsClass.class,
308 xp.getProperty("objId")
309 ), "AdminClassAdd.xsl"
310 );
311 }
312
313 /***
314 * TODO DOCUMENT ME!
315 *
316 * @throws UtilException TODO
317 * @throws SQLException TODO
318 * @throws LogicException TODO
319 * @throws ServletException TODO
320 */
321 private void showAddNClassForm()
322 throws UtilException, SQLException, LogicException,
323 ServletException {
324 NewsSys ns = (NewsSys) JDOUtil.findObjectById(this.getPM(),
325 NewsSys.class, systemOID
326 );
327 this.getPM().refresh(ns);
328
329 NewsCommonXML ncx = new NewsCommonXML();
330
331 ncx.setClassCollection(ns.getClassList());
332 this.go(ncx, "AdminNclassAdd.xsl");
333 }
334
335 /***
336 * TODO DOCUMENT ME!
337 *
338 * @throws UtilException TODO
339 * @throws SQLException TODO
340 * @throws LogicException TODO
341 * @throws ServletException TODO
342 */
343 private void showClassList()
344 throws UtilException, SQLException, LogicException,
345 ServletException {
346 NewsSys ns = (NewsSys) JDOUtil.findObjectById(this.getPM(),
347 NewsSys.class, systemOID
348 );
349 NewsCommonXML ncx = new NewsCommonXML();
350
351 ncx.setClassCollection(ns.getClassList());
352 this.go(ncx, this.getXsltFileFromUrl());
353
354 /* NewsCommonXML ncx = new NewsCommonXML();
355
356 ncx.setClassCollection(JDOUtil.findObjList(getPM(), NewsClass.class,
357 "orderId descending"));
358 this.go(ncx, this.getXsltFileFromUrl());*/
359 }
360
361 /***
362 * TODO DOCUMENT ME!
363 *
364 * @throws UtilException TODO
365 * @throws SQLException TODO
366 * @throws LogicException TODO
367 * @throws ServletException TODO
368 */
369 private void showSuccessAddNClassForm()
370 throws UtilException, SQLException,
371 LogicException, ServletException {
372 NewsSys ns = (NewsSys) JDOUtil.findObjectById(this.getPM(),
373 NewsSys.class, systemOID
374 );
375 NewsCommonXML ncx = new NewsCommonXML();
376 ncx.setMsg("Successful!");
377 ncx.setClassCollection(ns.getClassList());
378 this.go(ncx, "AdminNclassAdd.xsl");
379 }
380
381 /***
382 * TODO DOCUMENT ME!
383 *
384 * @throws UtilException TODO
385 * @throws SQLException TODO
386 * @throws LogicException TODO
387 * @throws ServletException TODO
388 */
389 private void upOrder()
390 throws UtilException, SQLException, LogicException,
391 ServletException {
392 Transaction trans = getTransaction();
393
394 try {
395 trans.begin();
396
397 NewsClass nc;
398 nc = (NewsClass) JDOUtil.findObjectById(trans, NewsClass.class,
399 xp.getProperty("objId")
400 );
401 nc.setOrderId(nc.getOrderId() + 1);
402
403 trans.commit();
404 } catch (UtilException e) {
405 try {
406 trans.rollback();
407 } catch (Exception ex) {
408 }
409
410 throw e;
411 } catch (Exception e) {
412 throw new LogicException("happen unkown Exception from transaction",
413 e
414 );
415 }
416
417 this.printClassList();
418
419 showClassList();
420 }
421
422 /***
423 * TODO DOCUMENT ME!
424 *
425 * @throws UtilException TODO
426 * @throws SQLException TODO
427 * @throws LogicException TODO
428 * @throws ServletException TODO
429 */
430 private void updateClass()
431 throws UtilException, SQLException, LogicException,
432 ServletException {
433 Transaction trans = getTransaction();
434
435 trans.begin();
436
437 NewsClass nc;
438 nc = (NewsClass) JDOUtil.findObjectById(trans.getPersistenceManager(),
439 NewsClass.class,
440 xp.getProperty("objId")
441 );
442
443 // findObjectById(trans, xp.getProperty("objId"));
444 nc.setClassName(xp.getProperty("className"));
445 nc.setNewsClassId(this.getDBSequence());
446 nc.setListStyle(xp.getIntProperty("listStyle"));
447 nc.setStyleId(xp.getIntProperty("styleId"));
448 nc.setLogo(xp.getProperty("logo"));
449 nc.setNewsAd(xp.getProperty("newsAd"));
450 nc.setHeadAd(xp.getProperty("headAd"));
451
452 trans.commit();
453
454 this.printClassList();
455 showClassList();
456 }
457 }
458
459
460 /*
461 * $Log: ClassCMD.java,v $
462 * Revision 1.1 2003/09/10 09:28:37 bitiboy
463 * *** empty log message ***
464 *
465 *
466 */
This page was automatically generated by Maven