1 package de.webman.config.eventhandler; 2 3 import java.util.*; 4 import java.sql.*; 5 6 import com.teamkonzept.web.*; 7 import com.teamkonzept.lib.*; 8 import com.teamkonzept.db.*; 9 import com.teamkonzept.webman.*; 10 import com.teamkonzept.webman.mainint.*; 11 import com.teamkonzept.webman.mainint.db.queries.*; 12 import com.teamkonzept.webman.mainint.events.*; 13 import de.webman.config.eventhandler.COPropUpdateHandler; 14 15 25 public class COPropGroupUpdateHandler extends DefaultEventHandler implements ParameterTypes, DatabaseDefaults, FrameConstants 26 { 27 28 private COPropGroupUpdateHandler() {} 29 30 private static COPropGroupUpdateHandler instance = new COPropGroupUpdateHandler(); 31 32 public static COPropGroupUpdateHandler getInstance() 33 { 34 return instance; 35 } 36 37 public void handleEvent(TKEvent evt) throws TKException 38 { 39 try 40 { 41 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.CUSTOMIZE_PROPERTIES); String propGroupId = evt.getParameter(PARAMETER, "PROPGROUP_ID"); 43 String propGroupName = evt.getParameter(PARAMETER, "PROPGROUP_NAME"); 44 String propGroupNewName = evt.getParameter(PARAMETER, "PROPGROUP_NEW_NAME"); 45 boolean newGroup = false; 46 boolean noDuplicateExists = true; 47 boolean nameGiven = true; 48 TKQuery q = TKDBManager.newQuery(TKDBPropGroupGetAll.class); 49 50 propGroupId = (propGroupId != null ? propGroupId : "-1"); 52 if ( propGroupId.equals("-1") ) 53 { 54 newGroup = true; 55 } 56 57 if ( propGroupNewName == null || propGroupNewName.equals("") ) 59 { 60 nameGiven = false; 61 } 62 63 if ( nameGiven ) 65 { 66 q.execute(); 68 ResultSet rs = q.fetchResultSet(); 69 70 while (rs != null && rs.next()) 72 { 73 if ( propGroupNewName.equals(rs.getString("PROPGROUP_NAME")) 74 && ! propGroupId.equals(rs.getString("PROPGROUP_ID")) ) 75 { 76 noDuplicateExists = false; 77 break; 78 } 79 } 80 } 81 82 if ( noDuplicateExists && nameGiven ) 84 { 85 if ( newGroup ) 87 { 88 q = TKDBManager.newQuery(TKDBPropGroupNew.class); 89 q.setQueryParams( "PROPGROUP_NAME", propGroupNewName ); 90 q.execute(); 91 } 92 93 else 95 { 96 q = TKDBManager.newQuery(TKDBPropGroupUpdate.class); 97 q.setQueryParams( "PROPGROUP_ID", new Integer (propGroupId) ); 98 q.setQueryParams( "PROPGROUP_NAME", propGroupNewName ); 99 q.execute(); 100 101 ConfigurationManager.getInstance().notifyListeners(propGroupName); 103 } 104 105 ConfigurationManager.getInstance().notifyListeners(propGroupNewName); 107 } 108 109 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "f_co_propgroup.tmpl" ); 111 112 if ( noDuplicateExists && nameGiven ) 114 { 115 HTMLUtils.fillFrameSet( t, LEFT_FRAME_WIDTH, "CO_PROPGROUP_LIST", "EMPTY" ); 116 } 117 else 119 { 120 HTMLUtils.fillFrameSet( t, LEFT_FRAME_WIDTH, "CO_PROPGROUP_LIST", "CO_ERROR" ); 121 122 if ( ! newGroup ) 124 { 125 t.set("EDIT", "1"); 126 } 127 128 if ( ! nameGiven ) 130 { 131 t.set("NONAME", "1"); 132 } 133 } 134 135 136 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, CUSTOMIZE_PROPERTIES); 137 evt.finishTemplate( t ); 138 } catch (Throwable e) { 139 throw WebmanExceptionHandler.getException(e); 140 } 141 } 142 143 public boolean isHandler(TKEvent evt) 144 { 145 return evt.getName().equalsIgnoreCase( "CO_PROPGROUP_UPDATE" ); 146 } 147 148 } 149 | Popular Tags |