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 14 20 public class COPropUpdateHandler extends DefaultEventHandler implements ParameterTypes, DatabaseDefaults, FrameConstants 21 { 22 23 private COPropUpdateHandler() {} 24 25 private static COPropUpdateHandler instance = new COPropUpdateHandler(); 26 27 public static COPropUpdateHandler getInstance() 28 { 29 return instance; 30 } 31 32 public void handleEvent(TKEvent evt) throws TKException 33 { 34 try { 35 WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.CUSTOMIZE_PROPERTIES); String propId = evt.getParameter(PARAMETER, "PROP_ID"); 37 String propName = evt.getParameter(PARAMETER, "PROP_NAME"); 38 String propValue = evt.getParameter(PARAMETER, "PROP_VALUE"); 39 String propGroupId = evt.getParameter(PARAMETER, "PROPGROUP_ID"); 40 String propGroupName = evt.getParameter(PARAMETER, "PROPGROUP_NAME"); 41 boolean newProp = false; 42 boolean noDuplicateExists = true; 43 boolean nameGiven = true; 44 TKQuery q = null; 45 ResultSet rs = null; 46 47 propId = (propId != null ? propId : "-1"); 49 if ( propId.equals("-1") ) 50 { 51 newProp = true; 52 } 53 54 if ( propName == null || propName.equals("") ) 56 { 57 nameGiven = false; 58 } 59 60 65 propGroupId = (propGroupId != null ? propGroupId : "-1"); 66 67 if ( nameGiven ) 69 { 70 q = TKDBManager.newQuery(TKDBPropGroupGetGroupProps.class); 72 q.setQueryParams("PROPGROUP_ID", new Integer (propGroupId)); 73 q.execute(); 74 rs = q.fetchResultSet(); 75 76 if (rs != null) 78 { 79 while (rs != null && rs.next()) 80 { 81 if ( propName.equals(rs.getString("PROP_NAME")) && !propId.equals(rs.getString("PROP_ID")) ) 82 { 83 noDuplicateExists = false; 84 break; 85 } 86 } 87 } 88 } 89 90 if ( noDuplicateExists && nameGiven ) 92 { 93 if ( newProp ) 95 { 96 q = TKDBManager.newQuery(TKDBPropNew.class); 97 q.setQueryParams( "PROP_NAME", propName ); 98 q.setQueryParams( "PROP_VALUE", propValue ); 99 q.execute(); 100 rs = q.fetchResultSet(); 101 if (rs != null && rs.next()) 102 { 103 propId = rs.getString("PROP_ID"); 104 } 105 propId = (propId != null ? propId : "-1"); 106 107 if ( ! propGroupId.equals("-1") && ! propId.equals("-1") ) 109 { 110 q = TKDBManager.newQuery(TKDBPropGroupAddMember.class); 111 q.setQueryParams( "PROP_ID", new Integer (propId) ); 112 q.setQueryParams( "PROP_GROUP_ID", new Integer (propGroupId) ); 113 q.execute(); 114 } 115 } 116 117 else 119 { 120 q = TKDBManager.newQuery(TKDBPropUpdate.class); 121 q.setQueryParams( "PROP_ID", new Integer (propId) ); 122 q.setQueryParams( "PROP_NAME", propName ); 123 q.setQueryParams( "PROP_VALUE", propValue ); 124 q.execute(); 125 } 126 127 ConfigurationManager.getInstance().notifyListeners(propGroupName); 129 } 130 131 if ( noDuplicateExists && nameGiven ) 133 { 134 evt.getParams().put(PARAMETER, "PROPGROUP_ID", propGroupId); 135 evt.getParams().put(PARAMETER, "PROPGROUP_NAME", propGroupName); 136 evt.getParams().put(PARAMETER, "LIST_PROPS", "1"); 137 COPropGroupEditHandler.getInstance().handleEvent(evt); 138 } 139 else 141 { 142 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "co_error.tmpl" ); 143 144 if ( ! newProp ) 146 { 147 t.set("EDIT", "1"); 148 } 149 150 if ( ! nameGiven ) 152 { 153 t.set("NONAME", "1"); 154 } 155 156 evt.finishTemplate( t ); 157 } 158 159 160 } catch (Throwable ex) { 161 throw WebmanExceptionHandler.getException(ex); 162 163 } 164 } 165 166 public boolean isHandler(TKEvent evt) 167 { 168 return evt.getName().equalsIgnoreCase( "CO_PROP_UPDATE" ); 169 } 170 171 } 172 | Popular Tags |