KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > webapps > addressbook > AddbookHandler


1 package org.jahia.webapps.addressbook;
2
3 import java.io.*;
4 import java.util.*;
5 import java.sql.*;
6 import javax.servlet.*;
7 import javax.servlet.http.*;
8
9 // the OJB stuff...
10
import org.apache.ojb.broker.PersistenceBroker;
11 //import org.apache.ojb.broker.query.Query;
12
//import org.apache.ojb.broker.query.QueryByCriteria;
13
import org.apache.ojb.broker.*;
14 import org.apache.ojb.broker.query.*;
15 import org.apache.ojb.broker.accesslayer.*;
16
17
18 import org.jahia.tools.*;
19 import org.jahia.tools.db.*;
20 import org.jahia.tools.files.*;
21
22
23 /**
24  * Class AddbookHandler: handle the current action
25  *
26  * @author Jerome Tamiotti <a HREF="mailto:tamiotti@xo3.com">tamiotti@xo3.com</a>
27  * @version %I%, %G%
28  */

29 public class AddbookHandler {
30
31
32   /** the reference to the database pooling service **/
33   protected AddressBookDBServices m_DBServices;
34
35
36   /**
37    * Method to handle application initialization in case of standalone mode: check only user id
38    *
39    * @param request the http request send to this servlet
40    */

41   public static void init(HttpServletRequest request) throws IOException, ServletException {
42
43     Tools.toConsole("AddbookHandler: init","begin: mode standalone");
44     String JavaDoc login= request.getRemoteUser();
45     int user_id = AdbApplicationDB.findUser(login);
46     //( "select user_id FROM user WHERE login='" + request.getRemoteUser() + "'");
47
try{
48
49       if (user_id==-1) {
50         Tools.toConsole("AddbookHandler: init","Unknown user !");
51         request.setAttribute("nextPage","error.jsp");
52
53       }
54       else {
55
56         Tools.toConsole("AddbookHandler: init","user_id = " + user_id);
57         // read matching addbook id
58
//rs = AdbApplicationDB.executeQuery( "SELECT addbook_id FROM addbook WHERE owner_id='" + user_id + "'");
59
AddressBook book= AdbApplicationDB.selectAddBook(user_id);
60         if (!book.equals(null)) {
61           int addbook_id = book.getId();
62           Tools.toConsole("AddbookHandler: init","addbook_id = "+ addbook_id);
63           AddressBook mybook = new AddressBook(addbook_id,user_id);
64           Tools.toConsole("AddbookHandler: login","Login succeeded !");
65           request.getSession().setAttribute("myBook",mybook);
66           request.getSession().setAttribute("sortOrder","asc");
67           request.getSession().setAttribute("searchWord","");
68           request.getSession().setAttribute("field","");
69           request.getSession().setAttribute("begin",new Integer JavaDoc(0));
70           request.setAttribute("nextPage","display.jsp");
71           return;
72         } else{
73         Tools.toConsole("AddbookHandler: init","Can't find an address book for this user !");
74         request.setAttribute("nextPage","error.jsp");}
75       }
76       request.setAttribute("nextPage","error.jsp");
77     }
78     catch (Exception JavaDoc e) {
79       Tools.toConsole("AddbookHandler: init",e.toString());
80       request.setAttribute("nextPage","error.jsp");
81     }
82   }
83
84
85   /**
86    * Method to handle application initialization
87    *
88    * @param request the http request send to this servlet
89    * @param contextId the id of the portal context: matches an address book id in our case
90    */

91   public static void init(HttpServletRequest request, String JavaDoc contextId) throws IOException, ServletException {
92
93     Tools.toConsole("AddbookHandler: init","begin: mode in-portal");
94     // try to check if there's an address book whise id is the context id
95
String JavaDoc useMode = (String JavaDoc)request.getSession().getAttribute("useMode");
96     Integer JavaDoc i= new Integer JavaDoc(contextId);
97     int context = i.intValue();
98     int userId;
99     int nextId=0;
100     AddressBook book;
101
102     if (useMode.equals("user")) {
103       userId = getUserId(request.getRemoteUser());
104     } else {
105       userId = -1;
106     }
107     try {
108       //else que context dans la requete
109
if (useMode.equals("user")) {
110        book = AdbApplicationDB.selectAddBookContext(context, userId);
111       //StringBuffer sql = new StringBuffer("SELECT addbook_id FROM addbook WHERE context_id='" + contextId + "'");
112

113     }
114     else {
115       book = AdbApplicationDB.selectAddBookContext(context);
116     }
117     if (book != null) {
118       int max = -1;
119       max = book.getId();
120     }
121
122     else {
123       Tools.toConsole("AddbookHandler: init",
124           "No address book found for this context: create a new one");
125       //rs = AdbApplicationDB.executeQuery("select max(addbook_id) as maxId from addbook");
126
//if (rs.next()) {
127
nextId = AdbApplicationDB.getNextId("addbook_id", "addbook");
128       Tools.toConsole("AddbookHandler: init",
129                       "insert into addbook values (" + nextId + "," +
130                       contextId + "," + userId + ")");
131       //AdbApplicationDB.executeQuery("insert into addbook values (" + max + "," + contextId + "," + userId + ")");
132
book = AdbApplicationDB.insertAddBook(nextId, context, userId);
133       //}
134
}
135
136     int addBookId = book.getId();
137     DbAddBook databook = null;
138     databook = new DbAddBook(book);
139     book.setContacts(AdbApplicationDB.loadContacts(addBookId));
140     book.setCategories(AdbApplicationDB.loadCategories(addBookId));
141     book.setComms(AdbApplicationDB.loadCommunications());
142     Tools.toConsole("AddressBook: constructor", "End");
143
144     Tools.toConsole("AddbookHandler: init",
145                     "Address book initialized : context id = " + contextId);
146     Tools.toConsole("AddbookHandler: init",
147                     "addbook id = " + nextId + ", user_id = " + userId);
148     request.getSession().setAttribute("myBook", book);
149     request.getSession().setAttribute("sortOrder", "asc");
150     request.getSession().setAttribute("searchWord", "");
151     request.getSession().setAttribute("field", "");
152     request.getSession().setAttribute("begin", new Integer JavaDoc(0));
153     request.setAttribute("nextPage", "display.jsp");
154     return;
155
156   }
157   catch (Exception JavaDoc e) {
158     Tools.toConsole("AddbookHandler: init", e.toString());
159   }
160 }
161
162
163         /**
164          * Method to handle login
165          *
166          * @param username the username
167          * @return the user id or a new id
168          */

169         public static int getUserId ( String JavaDoc username ) {
170
171           Tools.toConsole("AddbookHandler: getUserId","Begin");
172           try {
173             int userId= AdbApplicationDB.findUser(username);
174             //ResultSet rs = AdbApplicationDB.executeQuery( "SELECT user_id FROM user WHERE login='" + username + "'");
175
//if (rs.next()) {
176
//return rs.getInt("user_id");
177
if(userId==-1) {
178               int nextId= AdbApplicationDB.getNextId("user_id","user" );
179               //rs = AdbApplicationDB.executeQuery( "SELECT max(user_id) as maxId FROM user");
180
// if (rs.next()) {
181
// int max = rs.getInt("maxId") + 1;
182
// AdbApplicationDB.executeQuery( "insert into user values (" + max + ",'" + username + "','','','','')");
183
AdbApplicationDB.insertUser(nextId, username);
184               Tools.toConsole("AddbookHandler: getUserId","User " + username + " created with id " + nextId);
185               return nextId;
186             } else {
187               return userId;
188             }
189
190           } catch (Exception JavaDoc sqle) {
191             Tools.toConsole("AddbookHandler: getUserId","Can't get user id : " + sqle.toString());
192             return -1;
193           }
194
195         }
196
197
198     /**
199      * Method to handle login
200      *
201      * @param request the http request send to this servlet
202      */

203     public static void login(HttpServletRequest request)
204         throws IOException, ServletException {
205
206       String JavaDoc username = request.getParameter("username");
207       String JavaDoc passwd = request.getParameter("password");
208       User user = null;
209       int user_id;
210       int addbook_id;
211       AddressBook book=null;
212       if (!username.equals("")) {// an username is specified: check it
213

214         try {
215           user = AdbApplicationDB.selectUser(username, passwd);
216           // ResultSet rs = AdbApplicationDB.executeQuery( "SELECT user_id,last_name,first_name,password FROM user WHERE login='" + username + "' and password='" + passwd + "'");
217
if (!user.equals(null)) {
218
219             user_id = user.getId();
220             // rs = AdbApplicationDB.executeQuery( "SELECT addbook_id FROM addbook WHERE owner_id='" + user_id + "'");
221
book = AdbApplicationDB.selectAddBook(user_id);
222             if (!book.equals(null)) {
223               addbook_id = book.getId();
224               AddressBook mybook = new AddressBook(addbook_id,user_id);
225               request.getSession().setAttribute("myBook",mybook);
226               request.setAttribute("nextPage","display.jsp");
227               Tools.toConsole("AddbookHandler: login","Login succeeded !");
228             } else { // Adressbook not find
229
request.getSession().invalidate();
230               request.setAttribute("nextPage","error.jsp");
231             }
232           } else { // wrong password
233
request.setAttribute("nextPage","error.jsp");
234           }
235         } catch (Exception JavaDoc e) {
236           request.setAttribute("nextPage","error.jsp");
237         }
238       }
239       else {
240         request.setAttribute("nextPage","error.jsp");
241       }
242     }
243
244
245     /**
246      * Method invoked to set the mode of use for the application :
247      * it's used only on the first use of the application; for the
248      * the next times, useMode is read from file
249      *
250      * @param request the http request send to this servlet
251      */

252     public static void setUseMode(HttpServletRequest request) throws IOException, ServletException {
253
254       Tools.toConsole("AddbookHandler: setUseMode","begin");
255       HttpSession session = request.getSession(true);
256       String JavaDoc contextId = (String JavaDoc)request.getSession().getAttribute("contextId");
257       String JavaDoc useModePath = (String JavaDoc)request.getSession().getAttribute("useModePath");
258       String JavaDoc useMode = request.getParameter("useMode");
259       session.setAttribute("useMode",useMode);
260
261       // store the useMode for the current context in a flat file
262
Properties Prop_useMode = new Properties();
263       Prop_useMode.setProperty("useMode"+ contextId,useMode);
264       FileOutputStream fis = new FileOutputStream(useModePath, true);
265       Prop_useMode.store(fis, "");
266       fis.close();
267       request.setAttribute("nextPage","display.jsp");
268     }
269
270
271     /**
272      * Method invoked when calling search form
273      *
274      * @param request the http request
275      */

276     public static void searchForm(HttpServletRequest request) {
277
278       request.setAttribute("nextPage","search.jsp");
279               }
280
281
282      /**
283      * Method invoked when searching for contacts
284      *
285      * @param request the http request which contains form data, so search criteria
286      */

287     public static void search(HttpServletRequest request) {
288
289       AddressBook mybook = (AddressBook) request.getSession().getAttribute(
290           "myBook");
291       Vector fields = new Vector();
292       Vector values = new Vector();
293       String JavaDoc sortField = request.getParameter("sort_field");
294       String JavaDoc sortOrder = request.getParameter("sort_order");
295       String JavaDoc word = request.getParameter("word");
296       request.setAttribute("word",word);
297       String JavaDoc field = request.getParameter("field");
298       request.getSession().setAttribute("begin", new Integer JavaDoc(0));
299       String JavaDoc nextAction = request.getParameter("next_action");
300       if (nextAction.equals("display_search_results")) {
301         fields.add(field);
302         values.add(word);
303
304         Vector results = mybook.search(field, word, sortField, sortOrder,
305                                       mybook.getId());
306         request.getSession().setAttribute("results", results);
307
308       }
309       else {
310
311         field = "";
312         word = "";
313         fields.add(new String JavaDoc(""));
314         values.add(new String JavaDoc(""));
315         mybook.setContacts(mybook.search(field, word, sortField, sortOrder,
316                                          mybook.getId()));
317       }
318       request.getSession().setAttribute("field", field);
319       request.getSession().setAttribute("sortOrder", sortOrder);
320       request.getSession().setAttribute("searchWord", word);
321       request.setAttribute("currentAction", nextAction);
322       request.setAttribute("nextPage", "display.jsp");
323     }
324
325
326     /**
327      * Method to handle display search results
328      *
329      * @param request the http request send to this servlet
330      */

331     public static void displaySearchResults(HttpServletRequest request) {
332
333       String JavaDoc tmp = request.getParameter("begin");
334       Integer JavaDoc begin = (tmp == null) ? new Integer JavaDoc(0) : new Integer JavaDoc(tmp);
335       request.getSession().setAttribute("begin",begin);
336       request.setAttribute("currentAction", "display_search_results");
337       request.setAttribute("nextPage","display.jsp");
338     }
339
340
341     /**
342      * Method to handle display
343      *
344      * @param request the http request send to this servlet
345      */

346     public static void display(HttpServletRequest request) throws IOException, ServletException {
347
348       request.getSession().removeAttribute("word");
349       request.getSession().removeAttribute("results");
350       String JavaDoc tmp = request.getParameter("begin");
351       Integer JavaDoc begin = (tmp == null) ? new Integer JavaDoc(0) : new Integer JavaDoc(tmp);
352       request.getSession().setAttribute("begin",begin);
353       request.setAttribute("currentAction", "display_content");
354       request.setAttribute("nextPage","display.jsp");
355     }
356
357
358     /**
359      * Method to change role
360      *
361      * @param request the http request send to this servlet
362      */

363     public static void changeRole(HttpServletRequest request) throws IOException, ServletException {
364
365       request.getSession().setAttribute("role",request.getParameter("role"));
366       request.setAttribute("nextPage","display.jsp");
367     }
368
369
370     /**
371      * Method to handle 'add contact form' action
372      *
373      * @param request the http request send to this servlet
374      */

375     public static void addContactForm(HttpServletRequest request) throws IOException, ServletException {
376
377       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
378       request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId()));
379       request.getSession().setAttribute("contact", new Contact());
380       request.setAttribute("incorrectForm", new Boolean JavaDoc(false));
381       request.setAttribute("currentAction", request.getParameter("current_action"));
382       request.setAttribute("nextPage","edit_form.jsp");
383       request.setAttribute("bottomPage","edit_form_bottom.jsp");
384       Enumeration paramNameEnum = request.getParameterNames();
385       while (paramNameEnum.hasMoreElements()) {
386         String JavaDoc curParamName = (String JavaDoc) paramNameEnum.nextElement();
387
388       }
389
390     }
391
392
393     /**
394      * Method to handle 'change contact form' action
395      *
396      * @param request the http request send to this servlet
397      */

398     public static void changeContactForm(HttpServletRequest request) throws IOException, ServletException {
399
400       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
401       Contact theContact = (Contact)request.getSession().getAttribute("contact");
402       String JavaDoc comp_name = theContact.getCompany();
403       Tools.toConsole("AddBookHandler: changeContactForm","theContact.getCompany = "+comp_name);
404       try {
405         int comp_id = Integer.parseInt(comp_name);
406         Contact company = AdbApplicationDB.SearchContactById(comp_id);
407         request.setAttribute("company_name",company.getLastName());
408       } catch (NumberFormatException JavaDoc nfe) {
409         request.setAttribute("company_name",comp_name);
410       }
411       request.setAttribute("currentAction", request.getParameter("current_action"));
412       request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId()));
413       request.setAttribute("incorrectForm", new Boolean JavaDoc(false));
414       request.setAttribute("nextPage","edit_form.jsp");
415       request.setAttribute("bottomPage","edit_form_bottom.jsp");
416     }
417
418
419     /**
420      * Method to handle 'view contact' action
421      *
422      * @param request the http request send to this servlet
423      */

424     public static void viewContact(HttpServletRequest request) throws IOException, ServletException {
425
426       int id = Integer.parseInt(request.getParameter("contact_id"));
427       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
428       Contact theContact = AdbApplicationDB.SearchContactById(id);
429       Tools.toConsole("AddBookHandler: viewContact","theContact = " + theContact.getLastName());
430       String JavaDoc comp_name = theContact.getCompany();
431       try {
432         int comp_id = Integer.parseInt(comp_name);
433         Contact company = mybook.searchContactById(comp_id);
434         Tools.toConsole("AddbookHandler: viewContact","Company : "+company.getLastName());
435         request.setAttribute("company_name",company.getLastName());
436       } catch (NumberFormatException JavaDoc nfe) {
437       }
438       request.getSession().setAttribute("contact",theContact);
439       request.setAttribute("nextPage","view_contact.jsp");
440     }
441
442
443     /**
444      * Method to handle 'delete contact form' action
445      *
446      * @param request the http request send to this servlet
447      */

448     public static void deleteContactForm(HttpServletRequest request) throws IOException, ServletException {
449
450       int contact_id = Integer.parseInt(request.getParameter("contact_id"));
451       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
452       Contact theContact = mybook.searchContactById(contact_id);
453       request.setAttribute("contact_name",theContact.getLastName());
454       request.setAttribute("nextPage","delete_form.jsp");
455       request.setAttribute("bottomPage","delete_form_bottom.jsp");
456     }
457
458
459      /**
460      * Method invoked when submiting the contact creation form
461      *
462      * @param request the http request which contains form data
463      */

464     public static void addContact(HttpServletRequest request) {
465
466       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
467       try {
468
469         // create a contact with the values from the form
470
Contact newContact = readUrl(request);
471         // get a pre-formatted string containing all empty fields
472
if (newContact.isCorrect()) {
473           mybook.addContact(newContact);
474           Tools.toConsole("AddbookHandler: addContact","contact inserted: "+newContact.getId());
475           request.setAttribute("currentAction","display_content");
476           request.setAttribute("nextPage","display.jsp");
477         } else {
478           Tools.toConsole("AddbookHandler: addContact","contact incorrect");
479           request.setAttribute("incorrectForm",new Boolean JavaDoc(true));
480           request.setAttribute("contact", newContact);
481           request.setAttribute("companies",AdbApplicationDB.readCompanies(mybook.getId()));
482           request.setAttribute("nextPage","edit_form.jsp");
483           request.setAttribute("bottomPage","edit_form_bottom.jsp");
484         }
485       } catch (Exception JavaDoc e) {
486         Tools.toConsole("AddbookHandler: addContact", e.toString());
487         request.setAttribute("nextPage","add_problem.html");
488       }
489     }
490
491
492     /**
493      * Method invoked when submiting the contact modification form
494      *
495      * @param request the http request which contains form data
496      */

497     public static void changeContact(HttpServletRequest request) {
498
499       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
500       // check which values changed
501
try {
502         Tools.toConsole("AddbookHandler: changeContact","begin");
503         // read the old contact
504
String JavaDoc id = (String JavaDoc) request.getParameter("contact_id");
505         int contact_id = (int)Integer.parseInt(id);
506         Tools.toConsole("AddbookHandler: changeContact","contact_id = "+contact_id);
507
508              // create a contact with the values from the form
509
Contact newContact = readUrl(request);
510                          newContact.setId(contact_id);
511                          if (newContact.isCorrect()) {
512                            // replace the modified values
513
mybook.changeContact(contact_id, newContact);
514                            request.getSession().setAttribute("contact",newContact);
515                            // if the contact company is the id of another contact,
516
// we have to read the name of this contact
517
String JavaDoc comp_name = newContact.getCompany();
518                            try {
519                              int comp_id = Integer.parseInt(comp_name);
520                              Contact company = mybook.searchContactById(comp_id);
521                              Tools.toConsole("AddbookHandler: viewContact","Company : "+company.getLastName());
522                              request.setAttribute("company_name",company.getLastName());
523                            } catch (NumberFormatException JavaDoc nfe) {
524                            }
525                            request.setAttribute("nextPage","view_contact.jsp");
526                          } else {
527                            request.setAttribute("incorrectForm",new Boolean JavaDoc(true));
528                            request.setAttribute("contact", newContact);
529                            request.setAttribute("contact_id",id);
530                            request.setAttribute("nextPage","edit_form.jsp");
531                            request.setAttribute("bottomPage","edit_form_bottom.jsp");
532                          }
533                          Tools.toConsole("AddbookHandler: changeContact","end");
534                        } catch (Exception JavaDoc e) {
535                          Tools.toConsole("AddbookHandler: changeContact", e.toString());
536                          request.setAttribute("nextPage","change_problem.html");
537                        }
538                      }
539
540
541    /**
542      * Method invoked when submiting the contact deletion form
543      *
544      * @param request the http request which contains form data
545      */

546     public static void deleteContact(HttpServletRequest request) {
547
548       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
549       // delete selected contact from addressbook
550
try {
551         String JavaDoc id_string = request.getParameter("contact_id");
552         int contact_id = (int)Integer.parseInt(id_string);
553         mybook.removeContact(contact_id);
554         request.setAttribute("currentAction","display_content");
555         request.setAttribute("nextPage","display.jsp");
556       } catch (Exception JavaDoc e) {
557         Tools.toConsole("AddbookHandler: deleteContact", e.toString());
558         request.setAttribute("nextPage","delete_problem.html");
559       }
560     }
561
562
563     /**
564      * Method invoked in order to save database content in a flat file and download it
565      *
566      * @param request the http request which contains form data
567      */

568     public static String JavaDoc save(HttpServletRequest request) {
569       Tools.toConsole("AddbookHandler: save","begin");
570       long time = System.currentTimeMillis();
571       String JavaDoc dir_path = (String JavaDoc)request.getSession().getAttribute("dirPath");
572       String JavaDoc file_path = dir_path + File.separator + time + ".adb";
573       Tools.toConsole("AddbookHandler: save","try to save to file " + file_path);
574       int addbookId = Integer.parseInt(request.getParameter("addbook"));
575       int ownerId = Integer.parseInt(request.getParameter("owner"));
576       AddressBook myBookCopy = new AddressBook(addbookId,ownerId);
577       myBookCopy.save(file_path);
578       Tools.toConsole("AddbookHandler: save","back from save file ");
579       return file_path;
580     }
581
582
583     /**
584      * Method to handle 'manage cat' action
585      *
586      * @param request the http request which contains form data
587      */

588     public static void manageCategories(HttpServletRequest request) {
589
590       request.setAttribute("nextPage","manage_cat.jsp");
591     }
592
593
594     /**
595      * Method to handle 'add cat form' action
596      *
597      * @param request the http request which contains form data
598      */

599     public static void addCatForm(HttpServletRequest request) {
600
601       request.setAttribute("currentAction","add_cat");
602       request.setAttribute("nextPage","edit_cat.jsp");
603       request.setAttribute("bottomPage","edit_cat_bottom.jsp");
604
605     }
606
607
608     /**
609      * Method to handle 'edit cat form' action
610      *
611      * @param request the http request which contains form data
612      */

613     public static void editCatForm(HttpServletRequest request) {
614
615       request.setAttribute("currentAction","rename_cat");
616       int cat_id = Integer.parseInt((String JavaDoc)request.getParameter("category"));
617       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
618       request.setAttribute("cat_name",mybook.getCatName(cat_id));
619       request.setAttribute("nextPage","edit_cat.jsp");
620       request.setAttribute("bottomPage","edit_cat_bottom.jsp");
621     }
622
623
624     /**
625      * Method to handle 'delete cat form' action
626      *
627      * @param request the http request which contains form data
628      */

629     public static void deleteCatForm(HttpServletRequest request) {
630
631       int cat_id = Integer.parseInt((String JavaDoc)request.getParameter("cat_id"));
632       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
633       request.setAttribute("cat_name",mybook.getCatName(cat_id));
634       request.setAttribute("nextPage","delete_cat.jsp");
635       request.setAttribute("bottomPage","delete_cat_bottom.jsp");
636     }
637
638
639     /**
640      * Method to handle 'add cat' action
641      *
642      * @param request the http request which contains form data
643      */

644      public static void addCat(HttpServletRequest request) {
645
646        String JavaDoc cat_name = (String JavaDoc)request.getParameter("cat_name");
647        AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
648        int id=mybook.getId();
649        AdbApplicationDB.createCategory(cat_name, id);
650
651        Vector categories = AdbApplicationDB.loadCategories(id);
652        mybook.setCategories(AdbApplicationDB.loadCategories(id));
653        request.setAttribute("nextPage","manage_cat.jsp");
654
655      }
656
657
658     /**
659      * Method to handle 'rename cat' action
660      *
661      * @param request the http request which contains form data
662      */

663     public static void renameCat(HttpServletRequest request) {
664
665       int cat_id = Integer.parseInt((String JavaDoc)request.getParameter("cat_id"));
666       String JavaDoc cat_name = (String JavaDoc)request.getParameter("cat_name");
667       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
668       mybook.renameCategory(cat_id,cat_name);
669       request.setAttribute("nextPage","manage_cat.jsp");
670     }
671
672
673     /**
674      * Method to handle 'delete cat' action
675      *
676      * @param request the http request which contains form data
677      */

678     public static void deleteCat(HttpServletRequest request) {
679
680       int cat_id = Integer.parseInt((String JavaDoc)request.getParameter("cat_id"));
681       request.setAttribute("cat_id",request.getParameter("cat_id"));
682       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
683       mybook.deleteCategory(cat_id);
684       request.setAttribute("nextPage","manage_cat.jsp");
685     }
686
687
688     /**
689      * Read parameter from form and create a contact with all these values
690      *
691      * @param request the http request which contains form data
692      */

693     private static Contact readUrl(HttpServletRequest request) {
694
695       Contact newContact = new Contact();
696       AddressBook mybook = (AddressBook)request.getSession().getAttribute("myBook");
697       int id = mybook.getId();
698       newContact.setAddBookId(id);
699       newContact.setLastName(request.getParameter("last_name"));
700       String JavaDoc lastname= request.getParameter("last_name");
701       newContact.setFirstName(request.getParameter("first_name"));
702       newContact.setCivilTitle(request.getParameter("civil_title"));
703       newContact.setProfTitle(request.getParameter("prof_title"));
704       String JavaDoc company = request.getParameter("company");
705
706       if (newContact.getCivilTitle().equals("Company")) {
707         if (newContact.getLastName().equals("")) {
708           newContact.setLastName(company);
709         }
710       } else { // the contact is a person; sets his company
711
String JavaDoc company_id = request.getParameter("company_id");
712         Tools.toConsole("company id = "+company_id);
713         newContact.setCompany(company);
714         if (company_id != null) {
715           if (!company_id.equals("-1")) {
716             // a company has been chosen in the list
717
// records the id
718
newContact.setCompany(company_id);
719                 }
720             }
721         }
722         Tools.toConsole("AddbookHandler: readUrl","company = " + newContact.getCompany());
723         newContact.setAddress1(request.getParameter("address1"));
724         newContact.setAddress2(request.getParameter("address2"));
725         newContact.setZip(request.getParameter("zip"));
726         newContact.setCity(request.getParameter("city"));
727         newContact.setState(request.getParameter("state"));
728         newContact.setNotes(request.getParameter("notes"));
729
730         int comm_id;
731         String JavaDoc comm_value;
732         // read contact numbers, if any
733
for(int i = 0; i < 5; i++) {
734             comm_value = request.getParameter("comm_value"+i);
735             if (!comm_value.equals("")) {
736                 try {
737                     comm_id = Integer.parseInt(request.getParameter("comm_id"+i));
738                     newContact.setNumber(i, comm_id, comm_value);
739                 } catch (Exception JavaDoc e) {
740                     newContact.setNumber(i,0,"");
741                 }
742             } else {
743                 newContact.setNumber(i,0,"");
744             }
745         }
746
747         // parameters which can be null, and not only equals to ""
748
String JavaDoc tmp = request.getParameter("country");
749         newContact.setCountry( tmp == null ? "" : tmp);
750         tmp = request.getParameter("category");
751         newContact.setCategory( tmp == null ? -1 : Integer.parseInt(tmp) );
752         return newContact;
753     }
754
755 }
756
Popular Tags