KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > bluecubs > xinco > server > XincoAdminServlet


1 /**
2  *Copyright 2006 blueCubs.com
3  *
4  *Licensed under the Apache License, Version 2.0 (the "License");
5  *you may not use this file except in compliance with the License.
6  *You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *Unless required by applicable law or agreed to in writing, software
11  *distributed under the License is distributed on an "AS IS" BASIS,
12  *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *See the License for the specific language governing permissions and
14  *limitations under the License.
15  *
16  *************************************************************
17  * This project supports the blueCubs vision of giving back
18  * to the community in exchange for free software!
19  * More information on: http://www.bluecubs.org
20  *************************************************************
21  *
22  * Name: XincoAdminServlet
23  *
24  * Description: administration servlet
25  *
26  * Original Author: Alexander Manes
27  * Date: 2004
28  *
29  * Modifications:
30  *
31  * Who? When? What?
32  * - - -
33  *
34  *************************************************************
35  */

36
37 package com.bluecubs.xinco.server;
38
39 import java.sql.*;
40 import java.io.*;
41 import java.util.Vector JavaDoc;
42
43 import javax.servlet.*;
44 import javax.servlet.http.*;
45
46 import com.bluecubs.xinco.core.*;
47 import com.bluecubs.xinco.core.server.*;
48 import com.bluecubs.xinco.index.XincoIndexer;
49
50 public class XincoAdminServlet extends HttpServlet {
51     
52     /** Initializes the servlet.
53      */

54     public void init(ServletConfig config) throws ServletException {
55         super.init(config);
56     }
57     
58     /** Destroys the servlet.
59      */

60     public void destroy() {
61     }
62     
63     /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
64      * @param request servlet request
65      * @param response servlet response
66      */

67     protected synchronized void processRequest(HttpServletRequest request, HttpServletResponse response)
68     throws ServletException, IOException {
69         
70         XincoDBManager dbm;
71         String JavaDoc global_error_message = "";
72         
73         int i = 0, j = 0;
74 // XincoCoreUserServer user;
75
XincoCoreUserServer temp_user;
76         XincoCoreGroupServer temp_group;
77         XincoCoreLanguageServer temp_language;
78         XincoCoreDataTypeAttributeServer temp_attribute;
79         String JavaDoc current_location = "";
80         String JavaDoc current_location_desc = "";
81         int current_user_selection = 0;
82         int current_group_selection = 0;
83         int current_datatype_selection = 0;
84         int status = 0;
85         String JavaDoc error_message = "";
86
87         HttpSession session = request.getSession(true);
88         
89         //start output
90
response.setContentType("text/html");
91         PrintWriter out = response.getWriter();
92         
93         //connect to db
94
try {
95             dbm = new XincoDBManager();
96         } catch (Exception JavaDoc e) {
97             global_error_message = "" + e.toString() + " | NOTE: Check whether the web application's configuration file (e.g. context.xml/xinco.xml) has been deployed correctly!";
98             out.println(global_error_message);
99             return;
100         }
101
102         //do processing of requests
103

104         //check login status
105
if (session.getAttribute("XincoAdminServlet.status") == null) {
106             status = 0;
107             session.setAttribute("XincoAdminServlet.status", new Integer JavaDoc(status));
108             current_location = "MainLogin";
109             session.setAttribute("XincoAdminServlet.current_location", current_location);
110             current_location_desc = "Login Dialog";
111             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
112             current_user_selection = 0;
113             session.setAttribute("XincoAdminServlet.current_user_selection", new Integer JavaDoc(current_user_selection));
114             current_group_selection = 0;
115             session.setAttribute("XincoAdminServlet.current_group_selection", new Integer JavaDoc(current_group_selection));
116             current_datatype_selection = 0;
117             session.setAttribute("XincoAdminServlet.current_datatype_selection", new Integer JavaDoc(current_datatype_selection));
118         } else {
119             status = ((Integer JavaDoc)session.getAttribute("XincoAdminServlet.status")).intValue();
120             current_location = ((String JavaDoc)session.getAttribute("XincoAdminServlet.current_location"));
121             current_location_desc = ((String JavaDoc)session.getAttribute("XincoAdminServlet.current_location_desc"));
122             current_user_selection = ((Integer JavaDoc)session.getAttribute("XincoAdminServlet.current_user_selection")).intValue();
123             current_group_selection = ((Integer JavaDoc)session.getAttribute("XincoAdminServlet.current_group_selection")).intValue();
124             current_datatype_selection = ((Integer JavaDoc)session.getAttribute("XincoAdminServlet.current_datatype_selection")).intValue();
125             if (status == 0) {
126                 current_location = "MainLogin";
127                 session.setAttribute("XincoAdminServlet.current_location", current_location);
128                 current_location_desc = "Login Dialog";
129                 session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
130                 current_user_selection = 0;
131                 session.setAttribute("XincoAdminServlet.current_user_selection", new Integer JavaDoc(current_user_selection));
132                 current_group_selection = 0;
133                 session.setAttribute("XincoAdminServlet.current_group_selection", new Integer JavaDoc(current_group_selection));
134                 current_datatype_selection = 0;
135                 session.setAttribute("XincoAdminServlet.current_datatype_selection", new Integer JavaDoc(current_datatype_selection));
136             }
137         }
138
139         //do login
140
if (request.getParameter("DialogLoginSubmit") != null) {
141             try {
142                 try {
143                     temp_user = new XincoCoreUserServer(request.getParameter("DialogLoginUsername"), request.getParameter("DialogLoginPassword"), dbm);
144                 } catch (Exception JavaDoc loginex) {
145                     throw new XincoException("Login failed! Username and/or Password may be incorrect!");
146                 }
147                 //check for admin group
148
for (i=0;i<temp_user.getXinco_core_groups().size();i++) {
149                     if (((XincoCoreGroup)temp_user.getXinco_core_groups().elementAt(i)).getId() == 1) {
150                         break;
151                     }
152                 }
153                 if (i == temp_user.getXinco_core_groups().size()) {
154                     throw new XincoException("You are not a member of the Main Admin Group (ID = 1)!");
155                 }
156                 current_user_selection = temp_user.getId();
157                 session.setAttribute("XincoAdminServlet.current_user_selection", new Integer JavaDoc(current_user_selection));
158                 status = 1;
159                 session.setAttribute("XincoAdminServlet.status", new Integer JavaDoc(status));
160                 current_location = "MainMenu";
161                 session.setAttribute("XincoAdminServlet.current_location", current_location);
162                 current_location_desc = "Main Menu";
163                 session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
164             } catch (Exception JavaDoc e) {
165                 error_message = "[" + global_error_message + " | " + e.toString() + "]";
166                 status = 0;
167                 session.setAttribute("XincoAdminServlet.status", new Integer JavaDoc(status));
168             }
169         }
170         //switch to overview
171
if (request.getParameter("MenuMainOverview") != null) {
172             current_location = "MainMenu";
173             session.setAttribute("XincoAdminServlet.current_location", current_location);
174             current_location_desc = "Main Menu";
175             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
176         }
177         //switch to user admin
178
if (request.getParameter("MenuMainAdminUsers") != null) {
179             current_location = "UserAdmin";
180             session.setAttribute("XincoAdminServlet.current_location", current_location);
181             current_location_desc = "User Administration";
182             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
183         }
184         //switch to group admin
185
if (request.getParameter("MenuMainAdminGroups") != null) {
186             current_location = "GroupAdmin";
187             session.setAttribute("XincoAdminServlet.current_location", current_location);
188             current_location_desc = "Group Administration";
189             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
190         }
191         //switch to user profile modification
192
if (request.getParameter("MenuMainEditUserProfile") != null) {
193             current_location = "UserProfileEdit";
194             session.setAttribute("XincoAdminServlet.current_location", current_location);
195             current_location_desc = "User Profile";
196             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
197         }
198         //switch to language admin
199
if (request.getParameter("MenuMainAdminLanguages") != null) {
200             current_location = "LanguageAdmin";
201             session.setAttribute("XincoAdminServlet.current_location", current_location);
202             current_location_desc = "Language Administration";
203             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
204         }
205         //switch to atrributes admin
206
if (request.getParameter("MenuMainAdminAttributes") != null) {
207             current_location = "AttributesAdmin";
208             session.setAttribute("XincoAdminServlet.current_location", current_location);
209             current_location_desc = "Attributes Administration";
210             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
211         }
212         //switch to empty trash
213
if (request.getParameter("MenuMainEmptyTrash") != null) {
214             current_location = "MainMenu";
215             session.setAttribute("XincoAdminServlet.current_location", current_location);
216             current_location_desc = "Main Menu";
217             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
218         }
219         //switch to index rebuilt
220
if (request.getParameter("MenuMainRebuildIndex") != null) {
221             current_location = "RebuildIndex";
222             session.setAttribute("XincoAdminServlet.current_location", current_location);
223             current_location_desc = "Rebuild Index";
224             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
225         }
226         //lock user
227
if (request.getParameter("DialogAdminUsersLock") != null) {
228             //main admin cannot be locked
229
if (!(Integer.parseInt(request.getParameter("DialogAdminUsersLock")) == 1)) {
230                 try {
231                     i = Integer.parseInt(request.getParameter("DialogAdminUsersLock"));
232                     temp_user = new XincoCoreUserServer(i, dbm);
233                     temp_user.setStatus_number(2);
234                     temp_user.write2DB(dbm);
235                 } catch (Exception JavaDoc e) {
236                 }
237             } else {
238                 error_message = "This User cannot be locked!";
239             }
240         }
241         //unlock user
242
if (request.getParameter("DialogAdminUsersUnlock") != null) {
243             try {
244                 i = Integer.parseInt(request.getParameter("DialogAdminUsersUnlock"));
245                 temp_user = new XincoCoreUserServer(i, dbm);
246                 temp_user.setStatus_number(1);
247                 temp_user.write2DB(dbm);
248             } catch (Exception JavaDoc e) {
249             }
250         }
251         //reset user's password
252
if (request.getParameter("DialogAdminUsersResetPW") != null) {
253             try {
254                 i = Integer.parseInt(request.getParameter("DialogAdminUsersResetPW"));
255                 temp_user = new XincoCoreUserServer(i, dbm);
256                 temp_user.setUserpassword("123456");
257                 temp_user.write2DB(dbm);
258             } catch (Exception JavaDoc e) {
259             }
260         }
261         //create new user
262
if (request.getParameter("DialogNewUserSubmit") != null) {
263             try {
264                 temp_user = new XincoCoreUserServer(0, request.getParameter("DialogNewUserUsername"), request.getParameter("DialogNewUserPassword"), request.getParameter("DialogNewUserLastname"), request.getParameter("DialogNewUserFirstname"), request.getParameter("DialogNewUserEmail"), 1, dbm);
265                 temp_group = new XincoCoreGroupServer(2, dbm);
266                 temp_user.getXinco_core_groups().addElement(temp_group);
267                 temp_user.write2DB(dbm);
268             } catch (Exception JavaDoc e) {
269             }
270         }
271         //create new group
272
if (request.getParameter("DialogNewGroupSubmit") != null) {
273             try {
274                 temp_group = new XincoCoreGroupServer(0, request.getParameter("DialogNewGroupName"), 1);
275                 temp_group.write2DB(dbm);
276             } catch (Exception JavaDoc e) {
277             }
278         }
279         //switch to group modification
280
if (request.getParameter("DialogAdminGroupsSelect") != null) {
281             current_group_selection = Integer.parseInt(request.getParameter("DialogAdminGroupsSelect"));
282             session.setAttribute("XincoAdminServlet.current_group_selection", new Integer JavaDoc(current_group_selection));
283             current_location = "GroupAdminSingle";
284             session.setAttribute("XincoAdminServlet.current_location", current_location);
285             current_location_desc = "Specific Group Administration";
286             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
287         }
288         //modify group
289
if (request.getParameter("DialogEditGroupSubmit") != null) {
290             try {
291                 temp_group = new XincoCoreGroupServer(current_group_selection, dbm);
292                 temp_group.setDesignation(request.getParameter("DialogEditGroupName"));
293                 temp_group.write2DB(dbm);
294             } catch (Exception JavaDoc e) {
295             }
296         }
297         //remove user from group
298
if (request.getParameter("DialogEditGroupRemoveUser") != null) {
299             //main admin always is admin and everyone is a regular user
300
if (!(((current_group_selection == 1) && (Integer.parseInt(request.getParameter("DialogEditGroupRemoveUser")) == 1)) || (current_group_selection == 2))) {
301                 try {
302                     Statement stmt = dbm.con.createStatement();
303                     stmt.executeUpdate("DELETE FROM xinco_core_user_has_xinco_core_group WHERE xinco_core_user_id=" + Integer.parseInt(request.getParameter("DialogEditGroupRemoveUser")));
304                     stmt.close();
305                     dbm.con.commit();
306                 } catch (Exception JavaDoc e) {
307                     try {
308                         dbm.con.rollback();
309                     } catch (Exception JavaDoc rbe) {
310                     }
311                 }
312             } else {
313                 error_message = "You cannot remove this User from the Group! e.g. ALL Users belong to Main User Group (ID = 2)";
314             }
315         }
316         //add user to group
317
if (request.getParameter("DialogEditGroupAddUser") != null) {
318             try {
319                 Statement stmt = dbm.con.createStatement();
320                 stmt.executeUpdate("INSERT INTO xinco_core_user_has_xinco_core_group VALUES (" + Integer.parseInt(request.getParameter("DialogEditGroupAddUser")) + ", " + current_group_selection + ", " + "1)");
321                 stmt.close();
322                 dbm.con.commit();
323             } catch (Exception JavaDoc e) {
324                 try {
325                     dbm.con.rollback();
326                 } catch (Exception JavaDoc rbe) {
327                 }
328             }
329         }
330         //modify user profile
331
if (request.getParameter("DialogEditUserProfileSubmit") != null) {
332             try {
333                 temp_user = new XincoCoreUserServer(Integer.parseInt(request.getParameter("DialogEditUserProfileID")), dbm);
334                 temp_user.setUsername(request.getParameter("DialogEditUserProfileUsername"));
335                 temp_user.setUserpassword(request.getParameter("DialogEditUserProfilePassword"));
336                 temp_user.setName(request.getParameter("DialogEditUserProfileLastname"));
337                 temp_user.setFirstname(request.getParameter("DialogEditUserProfileFirstname"));
338                 temp_user.setEmail(request.getParameter("DialogEditUserProfileEmail"));
339                 temp_user.write2DB(dbm);
340             } catch (Exception JavaDoc e) {
341             }
342         }
343         //create new language
344
if (request.getParameter("DialogNewLanguageSubmit") != null) {
345             try {
346                 temp_language = new XincoCoreLanguageServer(0, request.getParameter("DialogNewLanguageSign"), request.getParameter("DialogNewLanguageDesignation"));
347                 temp_language.write2DB(dbm);
348             } catch (Exception JavaDoc e) {
349             }
350         }
351         //delete language
352
if (request.getParameter("DialogAdminLanguagesDelete") != null) {
353             try {
354                 temp_language = new XincoCoreLanguageServer(Integer.parseInt(request.getParameter("DialogAdminLanguagesDelete")), dbm);
355                 XincoCoreLanguageServer.deleteFromDB(temp_language, dbm);
356             } catch (Exception JavaDoc e) {
357             }
358         }
359         //switch to attributes modification
360
if (request.getParameter("DialogAdminDataTypeSelect") != null) {
361             current_datatype_selection = Integer.parseInt(request.getParameter("DialogAdminDataTypeSelect"));
362             session.setAttribute("XincoAdminServlet.current_datatype_selection", new Integer JavaDoc(current_datatype_selection));
363             current_location = "AttributesAdminSingle";
364             session.setAttribute("XincoAdminServlet.current_location", current_location);
365             current_location_desc = "Specific Attributes Administration";
366             session.setAttribute("XincoAdminServlet.current_location_desc", current_location_desc);
367         }
368         //create new attribute
369
if (request.getParameter("DialogNewAttributeSubmit") != null) {
370             try {
371                 temp_attribute = new XincoCoreDataTypeAttributeServer(current_datatype_selection, Integer.parseInt(request.getParameter("DialogNewAttributeAttributeId")), request.getParameter("DialogNewAttributeDesignation"), request.getParameter("DialogNewAttributeDataType"), Integer.parseInt(request.getParameter("DialogNewAttributeSize")));
372                 temp_attribute.write2DB(dbm);
373             } catch (Exception JavaDoc e) {
374             }
375         }
376         //delete attribute and attribute values
377
if (request.getParameter("DialogEditAttributesRemoveAttributeId") != null) {
378             try {
379                 temp_attribute = new XincoCoreDataTypeAttributeServer(current_datatype_selection, Integer.parseInt(request.getParameter("DialogEditAttributesRemoveAttributeId")), dbm);
380                 XincoCoreDataTypeAttributeServer.deleteFromDB(temp_attribute, dbm);
381             } catch (Exception JavaDoc e) {
382             }
383         }
384         //empty trash
385
if (request.getParameter("MenuMainEmptyTrash") != null) {
386             try {
387                 (new XincoCoreNodeServer(2, dbm)).deleteFromDB(false, dbm);
388             } catch (Exception JavaDoc e) {
389             }
390         }
391         //do logout
392
if (request.getParameter("MenuMainLogout") != null) {
393             try {
394                 session.removeAttribute("XincoAdminServlet.user");
395                 status = 0;
396                 session.setAttribute("XincoAdminServlet.status", new Integer JavaDoc(status));
397             } catch (Exception JavaDoc e) {
398                 status = 0;
399                 session.setAttribute("XincoAdminServlet.status", new Integer JavaDoc(status));
400             }
401         }
402
403         //show header
404
out.println("<html>");
405         out.println("<head>");
406         out.println("<title>XincoAdmin</title>");
407         out.println("<link rel=\"stylesheet\" HREF=\"xincostyle.css\" type=\"text/css\"/>");
408         out.println("</head>");
409         out.println("<body>");
410         out.println("<center>");
411         out.println("<span class=\"text\">");
412                 
413         out.println("");
414
415         //if not logged in
416
if (status == 0) {
417         
418             //show welcome message
419
out.println("<br><img SRC=\"blueCubs.gif\" border=\"0\"/>");
420             out.println("<br><span class=\"bigtext\">XincoAdmin</span><br><br>");
421             
422             //show login dialog
423
out.println("<form action=\"XincoAdmin\" method=\"post\">");
424             out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
425             out.println("<tr>");
426             out.println("<td class=\"text\">User:</td>");
427             out.println("<td class=\"text\"><input type=\"text\" name=\"DialogLoginUsername\" size=\"40\"/></td>");
428             out.println("</tr>");
429             out.println("<tr>");
430             out.println("<td class=\"text\">Password:</td>");
431             out.println("<td class=\"text\"><input type=\"password\" name=\"DialogLoginPassword\" size=\"40\"/></td>");
432             out.println("</tr>");
433             if (error_message.compareTo("") != 0) {
434                 out.println("<tr>");
435                 out.println("<td class=\"text\">&nbsp;</td>");
436                 out.println("<td class=\"text\">" + error_message + "</td>");
437                 out.println("</tr>");
438             }
439             out.println("<tr>");
440             out.println("<td class=\"text\">&nbsp;</td>");
441             out.println("<td class=\"text\"><input type=\"submit\" name=\"DialogLoginSubmit\" value=\"Login\"/></td>");
442             out.println("</tr>");
443             out.println("</table>");
444             out.println("</form>");
445         
446         } else {
447             
448             //show main menu
449
out.println("<br>");
450             out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
451             out.println("<tr>");
452             out.println("<td class=\"text\" rowspan=\"3\"><img SRC=\"blueCubsSmall.gif\" border=\"0\"/></td>");
453             out.println("<td class=\"bigtext\" colspan=\"5\">XincoAdmin</td>");
454             out.println("</tr>");
455             out.println("<tr>");
456             out.println("<td class=\"text\" colspan=\"5\">Location: " + current_location_desc + "</td>");
457             out.println("</tr>");
458             out.println("<tr>");
459             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainOverview=Overview\" class=\"link\">Overview</a></td>");
460             out.println("<td class=\"text\">|</td>");
461             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainAdminUsers=AdminUsers\" class=\"link\">Edit&nbsp;Users</a></td>");
462             out.println("<td class=\"text\">|</td>");
463             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainAdminGroups=AdminGroups\" class=\"link\">Edit&nbsp;Groups</a></td>");
464             out.println("<td class=\"text\">|</td>");
465             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainEditUserProfile=EditProfile\" class=\"link\">Edit&nbsp;Profile</a></td>");
466             out.println("<td class=\"text\">|</td>");
467             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainAdminLanguages=AdminLanguages\" class=\"link\">Edit&nbsp;Languages</a></td>");
468             out.println("<td class=\"text\">|</td>");
469             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainAdminAttributes=AdminAttributes\" class=\"link\">Edit&nbsp;Attributes</a></td>");
470             out.println("<td class=\"text\">|</td>");
471             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainEmptyTrash=EmptyTrash\" class=\"link\">Empty&nbsp;Trash</a></td>");
472             out.println("<td class=\"text\">|</td>");
473             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainRebuildIndex=RebuildIndex\" class=\"link\">Rebuild&nbsp;Index</a></td>");
474             out.println("<td class=\"text\">|</td>");
475             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?MenuMainLogout=Logout\" class=\"link\">Logout</a></td>");
476             out.println("</tr>");
477             out.println("</table>");
478             out.println("<br><br>");
479         
480             if (current_location.compareTo("MainMenu") == 0) {
481
482                 //show overview
483
out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
484                 out.println("<tr>");
485                 out.println("<td class=\"bigtext\">Overview</td>");
486                 out.println("<td class=\"text\">While the xinco Document Management System is usually accessed via XincoExplorer, this tool is meant for administrating users' and groups' access rights to the system.</td>");
487                 out.println("</tr>");
488                 out.println("<tr>");
489                 out.println("<td class=\"bigtext\">User Administration</td>");
490                 out.println("<td class=\"text\">View a list of all users, lock/unlock them and add new users to the system.</td>");
491                 out.println("</tr>");
492                 out.println("<tr>");
493                 out.println("<td class=\"bigtext\">Group Administration</td>");
494                 out.println("<td class=\"text\">View a list of all groups and assign/remove users to/from these groups.</td>");
495                 out.println("</tr>");
496                 out.println("<tr>");
497                 out.println("<td class=\"bigtext\">User Profile</td>");
498                 out.println("<td class=\"text\">Keep your User Profile up-to-date and change your password periodically to prevent abuse.</td>");
499                 out.println("</tr>");
500                 out.println("<tr>");
501                 out.println("<td class=\"bigtext\">Edit Languages</td>");
502                 out.println("<td class=\"text\">Add new languages or delete unused ones.</td>");
503                 out.println("</tr>");
504                 out.println("<tr>");
505                 out.println("<td class=\"bigtext\">Edit Attributes</td>");
506                 out.println("<td class=\"text\">Add new attributes to data types or remove existing ones.</td>");
507                 out.println("</tr>");
508                 out.println("<tr>");
509                 out.println("<td class=\"bigtext\">Empty Trash</td>");
510                 out.println("<td class=\"text\">Permanently deletes all data and subfolders in folder Trash (ID=2).</td>");
511                 out.println("</tr>");
512                 out.println("<tr>");
513                 out.println("<td class=\"bigtext\">Rebuild Index</td>");
514                 out.println("<td class=\"text\">You must rebuild the index after upgrading xinco DMS, after executing one of the database translation scripts or after editing data type attributes!<br>Periodically rebuilding the index will increase performance and stability.<br>(NOT recommended while users can access the xinco DMS server!)</td>");
515                 out.println("</tr>");
516                 out.println("</table>");
517
518             }
519             
520             if (current_location.compareTo("UserAdmin") == 0) {
521
522                 //show new user dialog
523
out.println("<form action=\"XincoAdmin\" method=\"post\">");
524                 out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
525                 out.println("<tr>");
526                 out.println("<td class=\"text\">Username:</td>");
527                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewUserUsername\" size=\"40\"/></td>");
528                 out.println("</tr>");
529                 out.println("<tr>");
530                 out.println("<td class=\"text\">Password:</td>");
531                 out.println("<td class=\"text\"><input type=\"password\" name=\"DialogNewUserPassword\" size=\"40\"/></td>");
532                 out.println("</tr>");
533                 out.println("<tr>");
534                 out.println("<td class=\"text\">Firstname:</td>");
535                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewUserFirstname\" size=\"40\"/></td>");
536                 out.println("</tr>");
537                 out.println("<tr>");
538                 out.println("<td class=\"text\">Lastname:</td>");
539                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewUserLastname\" size=\"40\"/></td>");
540                 out.println("</tr>");
541                 out.println("<tr>");
542                 out.println("<td class=\"text\">Email:</td>");
543                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewUserEmail\" size=\"40\"/></td>");
544                 out.println("</tr>");
545                 out.println("<tr>");
546                 out.println("<td class=\"text\">&nbsp;</td>");
547                 out.println("<td class=\"text\"><input type=\"submit\" name=\"DialogNewUserSubmit\" value=\"Add User\"/></td>");
548                 out.println("</tr>");
549                 out.println("</table>");
550                 out.println("</form>");
551
552                 //show user list
553
out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
554                 if (error_message.compareTo("") != 0) {
555                     out.println("<tr>");
556                     out.println("<td class=\"text\" colspan=\"6\">" + error_message + "</td>");
557                     out.println("</tr>");
558                 }
559                 out.println("<tr>");
560                 out.println("<td class=\"bigtext\">ID:</td>");
561                 out.println("<td class=\"bigtext\">Username:</td>");
562                 out.println("<td class=\"bigtext\">Firstname:</td>");
563                 out.println("<td class=\"bigtext\">Lastname:</td>");
564                 out.println("<td class=\"bigtext\">EMail:</td>");
565                 out.println("<td class=\"bigtext\">&nbsp;</td>");
566                 out.println("</tr>");
567
568                 Vector JavaDoc allusers = XincoCoreUserServer.getXincoCoreUsers(dbm);
569                 for (i=0;i<allusers.size();i++) {
570                     out.println("<tr>");
571                     out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "</td>");
572                     out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getUsername() + "</td>");
573                     out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getFirstname() + "</td>");
574                     out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getName() + "</td>");
575                     out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getEmail() + "</td>");
576                     if (((XincoCoreUserServer)allusers.elementAt(i)).getStatus_number() == 1) {
577                         out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogAdminUsersLock=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Lock]</a>&nbsp;<a HREF=\"XincoAdmin?DialogAdminUsersResetPW=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Reset Password*]</a></td>");
578                     }
579                     if (((XincoCoreUserServer)allusers.elementAt(i)).getStatus_number() == 2) {
580                         out.println("<td class=\"text\"><b>Locked!</b> <a HREF=\"XincoAdmin?DialogAdminUsersUnlock=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Unlock]</a>&nbsp;<a HREF=\"XincoAdmin?DialogAdminUsersResetPW=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Reset Password*]</a></td>");
581                     }
582                     out.println("</tr>");
583                 }
584             
585                 out.println("<tr>");
586                 out.println("<td colspan=\"6\" class=\"text\">&nbsp;</td>");
587                 out.println("</tr>");
588                 out.println("<tr>");
589                 out.println("<td colspan=\"6\" class=\"text\">* The user's password will be reset to \"123456\"!</td>");
590                 out.println("</tr>");
591                 out.println("</table>");
592
593             }
594             
595             if (current_location.compareTo("GroupAdmin") == 0) {
596
597                 //show new group dialog
598
out.println("<form action=\"XincoAdmin\" method=\"post\">");
599                 out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
600                 out.println("<tr>");
601                 out.println("<td class=\"text\">Name:</td>");
602                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewGroupName\" size=\"40\"/></td>");
603                 out.println("</tr>");
604                 out.println("<tr>");
605                 out.println("<td class=\"text\">&nbsp;</td>");
606                 out.println("<td class=\"text\"><input type=\"submit\" name=\"DialogNewGroupSubmit\" value=\"Add Group\"/></td>");
607                 out.println("</tr>");
608                 out.println("</table>");
609                 out.println("</form>");
610
611                 //show group list
612
out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
613                 out.println("<tr>");
614                 out.println("<td class=\"bigtext\">ID:</td>");
615                 out.println("<td class=\"bigtext\">Name:</td>");
616                 out.println("<td class=\"bigtext\">&nbsp;</td>");
617                 out.println("</tr>");
618
619                 Vector JavaDoc allgroups = XincoCoreGroupServer.getXincoCoreGroups(dbm);
620                 for (i=0;i<allgroups.size();i++) {
621                     out.println("<tr>");
622                     out.println("<td class=\"text\">" + ((XincoCoreGroupServer)allgroups.elementAt(i)).getId() + "</td>");
623                     out.println("<td class=\"text\">" + ((XincoCoreGroupServer)allgroups.elementAt(i)).getDesignation() + "</td>");
624                     out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogAdminGroupsSelect=" + ((XincoCoreGroupServer)allgroups.elementAt(i)).getId() + "\" class=\"link\">[Edit]</a></td>");
625                     out.println("</tr>");
626                 }
627             
628                 out.println("</table>");
629
630             }
631             
632             if (current_location.compareTo("GroupAdminSingle") == 0) {
633
634                 //show group modification dialog
635
try {
636                     temp_group = new XincoCoreGroupServer(current_group_selection, dbm);
637                     out.println("<form action=\"XincoAdmin\" method=\"post\">");
638                     out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
639                     out.println("<tr>");
640                     out.println("<td class=\"text\">Name:</td>");
641                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogEditGroupName\" size=\"40\" value=\"" + temp_group.getDesignation() + "\"/></td>");
642                     out.println("</tr>");
643                     out.println("<tr>");
644                     out.println("<td class=\"text\">&nbsp;</td>");
645                     out.println("<td class=\"text\"><input type=\"hidden\" name=\"DialogEditGroupID\" value=\"" + current_group_selection + "\"/><input type=\"submit\" name=\"DialogEditGroupSubmit\" value=\"Save!\"/></td>");
646                     out.println("</tr>");
647                     out.println("</table>");
648                     out.println("</form>");
649                 } catch (Exception JavaDoc e) {
650                 }
651
652                 //show user list
653
Vector JavaDoc allusers = XincoCoreUserServer.getXincoCoreUsers(dbm);
654                 boolean member_of_group = false;
655
656                 out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
657
658                 if (error_message.compareTo("") != 0) {
659                     out.println("<tr>");
660                     out.println("<td class=\"text\" colspan=\"6\">" + error_message + "</td>");
661                     out.println("</tr>");
662                 }
663                 out.println("<tr>");
664                 out.println("<td class=\"bigtext\" colspan=\"6\">Members of this Group:</td>");
665                 out.println("</tr>");
666                 out.println("<tr>");
667                 out.println("<td class=\"bigtext\">ID:</td>");
668                 out.println("<td class=\"bigtext\">Username:</td>");
669                 out.println("<td class=\"bigtext\">Firstname:</td>");
670                 out.println("<td class=\"bigtext\">Lastname:</td>");
671                 out.println("<td class=\"bigtext\">EMail:</td>");
672                 out.println("<td class=\"bigtext\">&nbsp;</td>");
673                 out.println("</tr>");
674                 for (i=0;i<allusers.size();i++) {
675                     member_of_group = false;
676                     for (j=0;j<((XincoCoreUserServer)allusers.elementAt(i)).getXinco_core_groups().size();j++) {
677                         if (((XincoCoreGroupServer)((XincoCoreUserServer)allusers.elementAt(i)).getXinco_core_groups().elementAt(j)).getId() == current_group_selection) {
678                             member_of_group = true;
679                             break;
680                         }
681                     }
682                     if (member_of_group) {
683                         out.println("<tr>");
684                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "</td>");
685                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getUsername() + "</td>");
686                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getFirstname() + "</td>");
687                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getName() + "</td>");
688                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getEmail() + "</td>");
689                         out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogEditGroupRemoveUser=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Remove from Group]</a></td>");
690                         out.println("</tr>");
691                     }
692                 }
693             
694                 out.println("<tr>");
695                 out.println("<td class=\"bigtext\" colspan=\"6\">&nbsp;</td>");
696                 out.println("</tr>");
697                 out.println("<tr>");
698                 out.println("<td class=\"bigtext\" colspan=\"6\">Users who are NOT member of this Group:</td>");
699                 out.println("</tr>");
700                 out.println("<tr>");
701                 out.println("<td class=\"bigtext\">ID:</td>");
702                 out.println("<td class=\"bigtext\">Username:</td>");
703                 out.println("<td class=\"bigtext\">Firstname:</td>");
704                 out.println("<td class=\"bigtext\">Lastname:</td>");
705                 out.println("<td class=\"bigtext\">EMail:</td>");
706                 out.println("<td class=\"bigtext\">&nbsp;</td>");
707                 out.println("</tr>");
708                 for (i=0;i<allusers.size();i++) {
709                     member_of_group = false;
710                     for (j=0;j<((XincoCoreUserServer)allusers.elementAt(i)).getXinco_core_groups().size();j++) {
711                         if (((XincoCoreGroupServer)((XincoCoreUserServer)allusers.elementAt(i)).getXinco_core_groups().elementAt(j)).getId() == current_group_selection) {
712                             member_of_group = true;
713                             break;
714                         }
715                     }
716                     if (!member_of_group) {
717                         out.println("<tr>");
718                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "</td>");
719                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getUsername() + "</td>");
720                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getFirstname() + "</td>");
721                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getName() + "</td>");
722                         out.println("<td class=\"text\">" + ((XincoCoreUserServer)allusers.elementAt(i)).getEmail() + "</td>");
723                         out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogEditGroupAddUser=" + ((XincoCoreUserServer)allusers.elementAt(i)).getId() + "\" class=\"link\">[Add to Group]</a></td>");
724                         out.println("</tr>");
725                     }
726                 }
727             
728                 out.println("</table>");
729
730             }
731             
732             if (current_location.compareTo("UserProfileEdit") == 0) {
733
734                 //show user profile modification dialog
735
try {
736                     temp_user = new XincoCoreUserServer(current_user_selection, dbm);
737                     out.println("<form action=\"XincoAdmin\" method=\"post\">");
738                     out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
739                     out.println("<tr>");
740                     out.println("<td class=\"text\">Username:</td>");
741                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogEditUserProfileUsername\" value=\"" + temp_user.getUsername() + "\" size=\"40\"/></td>");
742                     out.println("</tr>");
743                     out.println("<tr>");
744                     out.println("<td class=\"text\">Password:</td>");
745                     //out.println("<td class=\"text\"><input type=\"password\" name=\"DialogEditUserProfilePassword\" value=\"" + temp_user.getUserpassword() + "\" size=\"40\"/></td>");
746
out.println("<td class=\"text\"><input type=\"password\" name=\"DialogEditUserProfilePassword\" value=\"\" size=\"40\"/></td>");
747                     out.println("</tr>");
748                     out.println("<tr>");
749                     out.println("<td class=\"text\">Firstname:</td>");
750                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogEditUserProfileFirstname\" value=\"" + temp_user.getFirstname() + "\" size=\"40\"/></td>");
751                     out.println("</tr>");
752                     out.println("<tr>");
753                     out.println("<td class=\"text\">Lastname:</td>");
754                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogEditUserProfileLastname\" value=\"" + temp_user.getName() + "\" size=\"40\"/></td>");
755                     out.println("</tr>");
756                     out.println("<tr>");
757                     out.println("<td class=\"text\">Email:</td>");
758                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogEditUserProfileEmail\" value=\"" + temp_user.getEmail() + "\" size=\"40\"/></td>");
759                     out.println("</tr>");
760                     out.println("<tr>");
761                     out.println("<td class=\"text\">&nbsp;</td>");
762                     out.println("<td class=\"text\"><input type=\"hidden\" name=\"DialogEditUserProfileID\" value=\"" + current_user_selection + "\"/><input type=\"submit\" name=\"DialogEditUserProfileSubmit\" value=\"Save!\"/></td>");
763                     out.println("</tr>");
764                     out.println("</table>");
765                     out.println("</form>");
766                 } catch (Exception JavaDoc e) {
767                 }
768                 
769             }
770
771             if (current_location.compareTo("LanguageAdmin") == 0) {
772
773                 //show new language dialog
774
out.println("<form action=\"XincoAdmin\" method=\"post\">");
775                 out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
776                 out.println("<tr>");
777                 out.println("<td class=\"text\">Designation:</td>");
778                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewLanguageDesignation\" size=\"40\"/></td>");
779                 out.println("</tr>");
780                 out.println("<tr>");
781                 out.println("<td class=\"text\">Sign (ISO 639):</td>");
782                 out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewLanguageSign\" size=\"5\"/></td>");
783                 out.println("</tr>");
784                 out.println("<tr>");
785                 out.println("<td class=\"text\">&nbsp;</td>");
786                 out.println("<td class=\"text\"><input type=\"submit\" name=\"DialogNewLanguageSubmit\" value=\"Add Language\"/></td>");
787                 out.println("</tr>");
788                 out.println("</table>");
789                 out.println("</form>");
790
791                 //show language list
792
out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
793                 if (error_message.compareTo("") != 0) {
794                     out.println("<tr>");
795                     out.println("<td class=\"text\" colspan=\"4\">" + error_message + "</td>");
796                     out.println("</tr>");
797                 }
798                 out.println("<tr>");
799                 out.println("<td class=\"bigtext\">ID:</td>");
800                 out.println("<td class=\"bigtext\">Sign (ISO 639):</td>");
801                 out.println("<td class=\"bigtext\">Designation:</td>");
802                 out.println("<td class=\"bigtext\">&nbsp;</td>");
803                 out.println("</tr>");
804
805                 Vector JavaDoc alllanguages = XincoCoreLanguageServer.getXincoCoreLanguages(dbm);
806                 boolean is_used = true;
807                 for (i=0;i<alllanguages.size();i++) {
808                     out.println("<tr>");
809                     out.println("<td class=\"text\">" + ((XincoCoreLanguageServer)alllanguages.elementAt(i)).getId() + "</td>");
810                     out.println("<td class=\"text\">" + ((XincoCoreLanguageServer)alllanguages.elementAt(i)).getSign() + "</td>");
811                     out.println("<td class=\"text\">" + ((XincoCoreLanguageServer)alllanguages.elementAt(i)).getDesignation() + "</td>");
812                     is_used = XincoCoreLanguageServer.isLanguageUsed((XincoCoreLanguageServer)alllanguages.elementAt(i), dbm);
813                     if (!is_used) {
814                         out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogAdminLanguagesDelete=" + ((XincoCoreLanguageServer)alllanguages.elementAt(i)).getId() + "\" class=\"link\">[Delete]</a></td>");
815                     } else {
816                         out.println("<td class=\"text\">&nbsp;</td>");
817                     }
818                     out.println("</tr>");
819                 }
820             
821                 out.println("<tr>");
822                 out.println("<td colspan=\"4\" class=\"text\">&nbsp;</td>");
823                 out.println("</tr>");
824                 out.println("<tr>");
825                 out.println("<td colspan=\"4\" class=\"text\">Languages can only be deleted if they are not referenced by other objects (e.g. folders, data)!</td>");
826                 out.println("</tr>");
827                 out.println("</table>");
828
829             }
830             
831             if (current_location.compareTo("AttributesAdmin") == 0) {
832
833                 //show group list
834
out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
835                 out.println("<tr>");
836                 out.println("<td class=\"bigtext\">ID:</td>");
837                 out.println("<td class=\"bigtext\">Designation:</td>");
838                 out.println("<td class=\"bigtext\">Description:</td>");
839                 out.println("<td class=\"bigtext\">&nbsp;</td>");
840                 out.println("</tr>");
841
842                 Vector JavaDoc alldatatypes = XincoCoreDataTypeServer.getXincoCoreDataTypes(dbm);
843                 for (i=0;i<alldatatypes.size();i++) {
844                     out.println("<tr>");
845                     out.println("<td class=\"text\">" + ((XincoCoreDataTypeServer)alldatatypes.elementAt(i)).getId() + "</td>");
846                     out.println("<td class=\"text\">" + ((XincoCoreDataTypeServer)alldatatypes.elementAt(i)).getDesignation() + "</td>");
847                     out.println("<td class=\"text\">" + ((XincoCoreDataTypeServer)alldatatypes.elementAt(i)).getDescription() + "</td>");
848                     out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogAdminDataTypeSelect=" + ((XincoCoreDataTypeServer)alldatatypes.elementAt(i)).getId() + "\" class=\"link\">[Edit]</a></td>");
849                     out.println("</tr>");
850                 }
851             
852                 out.println("</table>");
853
854             }
855             
856             if (current_location.compareTo("AttributesAdminSingle") == 0) {
857
858                 //show add attribute dialog
859
try {
860                     out.println("<form action=\"XincoAdmin\" method=\"post\">");
861                     out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
862                     out.println("<tr>");
863                     out.println("<td class=\"text\">Position:</td>");
864                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewAttributeAttributeId\" size=\"5\" value=\"1\"/></td>");
865                     out.println("</tr>");
866                     out.println("<tr>");
867                     out.println("<td class=\"text\">Designation:</td>");
868                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewAttributeDesignation\" size=\"40\" value=\"\"/></td>");
869                     out.println("</tr>");
870                     out.println("<tr>");
871                     out.println("<td class=\"text\">Data Type:</td>");
872                     out.println("<td class=\"text\"><select name=\"DialogNewAttributeDataType\" size=\"1\"><option value=\"int\">int (Integer)</option><option value=\"unsignedint\">unsignedint (Unsigned Integer)</option><option value=\"double\">double (Floating Point Number)</option><option value=\"varchar\">varchar (String)</option><option value=\"text\">text (Text)</option><option value=\"datetime\">datetime (Date + Time)</option></select></td>");
873                     out.println("</tr>");
874                     out.println("<tr>");
875                     out.println("<td class=\"text\">Size:</td>");
876                     out.println("<td class=\"text\"><input type=\"text\" name=\"DialogNewAttributeSize\" size=\"5\" value=\"0\"/> (required for String/varchar)</td>");
877                     out.println("</tr>");
878                     out.println("<tr>");
879                     out.println("<td class=\"text\">&nbsp;</td>");
880                     out.println("<td class=\"text\"><input type=\"hidden\" name=\"DialogNewAttributeDataTypeID\" value=\"" + current_datatype_selection + "\"/><input type=\"submit\" name=\"DialogNewAttributeSubmit\" value=\"Add Attribute\"/></td>");
881                     out.println("</tr>");
882                     out.println("</table>");
883                     out.println("</form>");
884                 } catch (Exception JavaDoc e) {
885                 }
886
887                 //show attributes list
888
try {
889                     XincoCoreDataTypeServer temp_datatype = new XincoCoreDataTypeServer(current_datatype_selection, dbm);
890     
891                     out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
892     
893                     if (error_message.compareTo("") != 0) {
894                         out.println("<tr>");
895                         out.println("<td class=\"text\" colspan=\"5\">" + error_message + "</td>");
896                         out.println("</tr>");
897                     }
898                     out.println("<tr>");
899                     out.println("<td class=\"bigtext\" colspan=\"5\">Attributes of this Data Type:</td>");
900                     out.println("</tr>");
901                     out.println("<tr>");
902                     out.println("<td class=\"bigtext\">Position:</td>");
903                     out.println("<td class=\"bigtext\">Designation:</td>");
904                     out.println("<td class=\"bigtext\">Data Type:</td>");
905                     out.println("<td class=\"bigtext\">Size:</td>");
906                     out.println("<td class=\"bigtext\">&nbsp;</td>");
907                     out.println("</tr>");
908                     for (i=0;i<temp_datatype.getXinco_core_data_type_attributes().size();i++) {
909                         out.println("<tr>");
910                         out.println("<td class=\"text\">" + ((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getAttribute_id() + "</td>");
911                         out.println("<td class=\"text\">" + ((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getDesignation() + "</td>");
912                         out.println("<td class=\"text\">" + ((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getData_type() + "</td>");
913                         out.println("<td class=\"text\">" + ((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getSize() + "</td>");
914                         if (((current_datatype_selection == 1) && (((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getAttribute_id() <= 8))
915                                 || ((current_datatype_selection == 2) && (((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getAttribute_id() <= 1))
916                                 || ((current_datatype_selection == 3) && (((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getAttribute_id() <= 1))
917                                 ) {
918                             out.println("<td class=\"text\">&nbsp;</td>");
919                         } else {
920                             out.println("<td class=\"text\"><a HREF=\"XincoAdmin?DialogEditAttributesRemoveAttributeId=" + ((XincoCoreDataTypeAttributeServer)temp_datatype.getXinco_core_data_type_attributes().elementAt(i)).getAttribute_id() + "\" class=\"link\">[Remove*]</a></td>");
921                         }
922                         out.println("</tr>");
923                     }
924                 
925                     out.println("<tr>");
926                     out.println("<td class=\"text\" colspan=\"5\">&nbsp;</td>");
927                     out.println("</tr>");
928                     out.println("<tr>");
929                     out.println("<td class=\"text\" colspan=\"5\">* IMPORTANT: When removing attributes, all of their attribute values stored with data will be DELETED!</td>");
930                     out.println("</tr>");
931
932                     out.println("</table>");
933                 } catch (Exception JavaDoc e) {
934                 }
935
936             }
937             
938             if (current_location.compareTo("RebuildIndex") == 0) {
939
940                 //rebuild index and list status
941
try {
942                     out.println("<table border=\"0\" width=\"750\" cellspacing=\"10\" cellpadding=\"0\">");
943                     out.println("<tr>");
944                     out.println("<td class=\"bigtext\" colspan=\"2\">Rebuilding Index...</td>");
945                     out.println("</tr>");
946                     out.println("<tr>");
947                     out.println("<td class=\"text\" colspan=\"2\">Rebuilding the index will take quite some time, please be patient.</td>");
948                     out.println("</tr>");
949                     out.println("<tr>");
950                     out.println("<td class=\"text\" colspan=\"2\">&nbsp;</td>");
951                     out.println("</tr>");
952
953                     //delete existing index
954
File indexDirectory = null;
955                     File indexDirectoryFile = null;
956                     String JavaDoc[] indexDirectoryFileList = null;
957                     boolean index_directory_deleted = false;
958                     indexDirectory = new File(dbm.config.FileIndexPath);
959                     if (indexDirectory.exists()) {
960                         indexDirectoryFileList = indexDirectory.list();
961                         for (i=0;i<indexDirectoryFileList.length;i++) {
962                             indexDirectoryFile = new File(dbm.config.FileIndexPath + indexDirectoryFileList[i]);
963                             indexDirectoryFile.delete();
964                         }
965                         index_directory_deleted = indexDirectory.delete();
966                         out.println("<tr>");
967                         out.println("<td class=\"text\"><b>Deleting existing Index...</b></td>");
968                         if (index_directory_deleted) {
969                             out.println("<td class=\"text\">OK!</td>");
970                         } else {
971                             out.println("<td class=\"text\">Failed!</td>");
972                         }
973                         out.println("</tr>");
974                     }
975                     out.println("<tr>");
976                     out.println("<td class=\"text\">&nbsp;</td>");
977                     out.println("<td class=\"text\">&nbsp;</td>");
978                     out.println("</tr>");
979                     
980                     //select all data
981
out.println("<tr>");
982                     out.println("<td class=\"text\"><b>Data (by Designation)</b></td>");
983                     out.println("<td class=\"text\"><b>Indexing Status</b></td>");
984                     out.println("</tr>");
985                     XincoCoreDataServer xdata_temp = null;
986                     boolean index_result = false;
987                     Statement stmt = dbm.con.createStatement();
988                     ResultSet rs = stmt.executeQuery("SELECT id FROM xinco_core_data ORDER BY designation");
989                     while (rs.next()) {
990                         xdata_temp = new XincoCoreDataServer(rs.getInt("id"), dbm);
991                         index_result = XincoIndexer.indexXincoCoreData(xdata_temp, true, dbm);
992                         out.println("<tr>");
993                         out.println("<td class=\"text\">" + xdata_temp.getDesignation() + "</td>");
994                         if (index_result) {
995                             out.println("<td class=\"text\">OK!</td>");
996                         } else {
997                             out.println("<td class=\"text\">Failed!</td>");
998                         }
999                         out.println("</tr>");
1000                        out.flush();
1001                    }
1002                    stmt.close();
1003                    
1004                    //optimize index
1005
index_result = XincoIndexer.optimizeIndex(dbm);
1006                    out.println("<tr>");
1007                    out.println("<td class=\"text\">Optimizing index...</td>");
1008                    if (index_result) {
1009                        out.println("<td class=\"text\">OK!</td>");
1010                    } else {
1011                        out.println("<td class=\"text\">Failed!</td>");
1012                    }
1013                    out.println("</tr>");
1014                    out.flush();
1015
1016                    out.println("</table>");
1017
1018                } catch (Exception JavaDoc e) {
1019                    out.println("</table>");
1020                }
1021                
1022            }
1023
1024        }
1025
1026        //show footer
1027
out.println("<br><br><br>");
1028        out.println("<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">");
1029        out.println("<tr>");
1030        out.println("<td class=\"text\">&nbsp;</td>");
1031        out.println("<td class=\"text\">&copy; 2004-2006, <a HREF=\"http://www.bluecubs.com\" target=\"_blank\" class=\"link\">blueCubs.com</a> and <a HREF=\"http://www.xinco.org\" target=\"_blank\" class=\"link\">xinco.org</a></td>");
1032        out.println("</tr>");
1033        out.println("</table>");
1034
1035        out.println("</span>");
1036        out.println("</center>");
1037        out.println("</body>");
1038        out.println("</html>");
1039
1040        out.close();
1041
1042        //close db connection
1043
try {
1044            dbm.con.close();
1045        } catch (Exception JavaDoc e) {
1046            global_error_message = global_error_message + e.toString();
1047        }
1048        
1049    }
1050    
1051    /** Handles the HTTP <code>GET</code> method.
1052     * @param request servlet request
1053     * @param response servlet response
1054     */

1055    protected void doGet(HttpServletRequest request, HttpServletResponse response)
1056    throws ServletException, IOException {
1057        processRequest(request, response);
1058    }
1059    
1060    /** Handles the HTTP <code>POST</code> method.
1061     * @param request servlet request
1062     * @param response servlet response
1063     */

1064    protected void doPost(HttpServletRequest request, HttpServletResponse response)
1065    throws ServletException, IOException {
1066        processRequest(request, response);
1067    }
1068    
1069    /** Returns a short description of the servlet.
1070     */

1071    public String JavaDoc getServletInfo() {
1072        return "Servlet of xinco";
1073    }
1074    
1075}
1076
Popular Tags