KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > template > eventhandler > TEDeleteHandler


1 package de.webman.template.eventhandler;
2
3 import com.teamkonzept.db.*;
4 import com.teamkonzept.webman.mainint.db.queries.*;
5 import com.teamkonzept.webman.mainint.events.*;
6 import com.teamkonzept.webman.mainint.*;
7 import com.teamkonzept.webman.*;
8 import com.teamkonzept.web.*;
9 import com.teamkonzept.lib.*;
10 import com.teamkonzept.international.LanguageManager;
11 import java.io.*;
12 import java.sql.*;
13 /**
14  * Loeschen eines Templates
15  *
16  * @author $Author: alex $
17  * @version $Revision: 1.4 $
18  */

19 public class TEDeleteHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants
20 {
21     private TEDeleteHandler()
22     {}
23     
24     private static TEDeleteHandler instance = new TEDeleteHandler();
25     
26     public static TEDeleteHandler getInstance()
27     {
28         return instance;
29     }
30     public void handleEvent(TKEvent evt) throws TKException
31     {
32         try
33         {
34             String JavaDoc tmplId = evt.getParameter( PARAMETER, "TEMPLATE_ID" );
35             String JavaDoc tmplName = evt.getParameter( PARAMETER, "TEMPLATE_NAME" );
36             TKVector references = TEUtils.getDependencies(new Integer JavaDoc(tmplId));
37             // Checken, ob das Template noch in Documenttypen benutzt wird
38
if (references.size() > 0)
39             {
40                 TKHTMLTemplate error = evt.getPrepHTMLTemplate( "error_message.tmpl" );
41                 Object JavaDoc[] tmp = new Object JavaDoc[1];
42                 tmp[0] = tmplName;
43                 String JavaDoc errorText = LanguageManager.getText("templates", "DELETE_DEPENDENCY", tmp);
44                 
45                 error.set("ERROR_TEXT", errorText);
46                 error.setListIterator( new TKStandardPluginIterator
47                     ("REFERENCES", null, references, false, error.getListIterator()));
48                 evt.finishTemplate(error);
49                 return;
50             }
51             // löschen des Templates in der DB
52
TKQuery q = TKDBManager.newQuery(TKDBTmplDelete.class);
53             q.setQueryParams( "TEMPLATE_ID", new Integer JavaDoc( tmplId ) );
54             q.execute();
55             q.fetchResultSet();
56
57             // löschen des Temp. im Filesystem
58
// TODO: fileNotFound abfangen
59
File datei = new File(evt.getHttpInterface().getDocumentRoot() +File.separator + TemplateUtils.getGenerationDirectory() + tmplName );
60             datei.delete();
61
62             TKHTMLTemplate frame = evt.getPrepHTMLTemplate( "f_te.tmpl" );
63             HTMLUtils.fillFrameSet( frame, LEFT_FRAME_WIDTH_SMALL, "TE_SHOWLIST", "EMPTY" );
64             WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), frame, ContextConstants.TEMPLATES);
65             evt.finishTemplate(frame);
66         }
67         catch (TKSQLError error)
68         {
69             // entweder allgemeine Probleme, oder aber das Template wird noch gebraucht
70
TKException e = WebmanExceptionHandler.getException(error);
71             if (e.getErrorCode() == FK_CONSTRAINT_VIOLATION)
72                 throw new TKUserException("Template wird benutzt", OBJECT_IN_USE, USER_SEVERITY, false, error.getSQLException());
73             throw e;
74         }
75         catch (Throwable JavaDoc t)
76         {
77             throw WebmanExceptionHandler.getException(t);
78         }
79     }
80     public boolean isHandler(TKEvent evt)
81     {
82         return evt.getName().equalsIgnoreCase("TE_DELETE");
83     }
84 }
85
Popular Tags