Changeset 7496
- Timestamp:
- Jul 11, 2018, 2:42:30 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/core/net/sf/basedb/core/ClonableProperty.java
r7052 r7496 250 250 super(propertyName, title, description, column, 251 251 valueType, length, nullable, true, true, 252 false, averageMethod, null);252 false, false, averageMethod, null); 253 253 this.isExtendedProperty = false; 254 254 this.isMandatory = isMandatory; … … 263 263 super(p.getName(), p.getTitle(), p.getDescription(), p.getColumn(), 264 264 p.getType(), p.getLength(), p.isNullable(), true, true, 265 false, p.getAverageMethod(), null);265 false, false, p.getAverageMethod(), null); 266 266 this.isExtendedProperty = true; 267 267 this.isMandatory = false; … … 278 278 super(propertyName, d.getTitle(), d.getDescription(), d.getColumn(), 279 279 Type.fromValue(d.getValueType()), d.getLength(), d.isNullable(), true, true, 280 false, AverageMethod.fromValue(d.getAverageMethod()), null);280 false, false, AverageMethod.fromValue(d.getAverageMethod()), null); 281 281 this.isExtendedProperty = d.isExtendedProperty(); 282 282 this.isMandatory = d.isMandatory(); -
trunk/src/core/net/sf/basedb/core/ExtendedProperties.java
r6881 r7496 31 31 import java.util.List; 32 32 import java.util.ArrayList; 33 import java.util.Collections; 33 34 import java.util.Map; 34 35 import java.util.HashMap; … … 73 74 74 75 /** 76 A map from class name --> a list of extended properties of for 77 that class. The list holds {@link ExtendedProperty} objects that 78 are not hidden. 79 @since 3.13 80 */ 81 private static Map<String, List<ExtendedProperty>> visibleProperties = null; 82 83 84 /** 75 85 The DTD which is used to validate the XML file. 76 86 */ … … 89 99 classes = new ArrayList<String>(); 90 100 allProperties = new HashMap<String, List<ExtendedProperty>>(); 101 visibleProperties = new HashMap<String, List<ExtendedProperty>>(); 91 102 loadExtendedPropertiesFile(); 92 103 isInitialised = true; … … 102 113 if (allProperties != null) allProperties.clear(); 103 114 allProperties = null; 115 if (visibleProperties != null) visibleProperties.clear(); 116 visibleProperties = null; 104 117 isInitialised = false; 105 118 } … … 107 120 /** 108 121 Load and parse the file with predefined queries. 109 This method will populate the {@link #classes} and110 {@link #allProperties} variables.122 This method will populate the {@link #classes}, 123 {@link #allProperties} and {@link #visibleProperties} variables. 111 124 */ 112 125 private static synchronized void loadExtendedPropertiesFile() … … 159 172 160 173 /** 161 Get a list of extended properties for the specified class. 174 Get a list of extended properties for the specified class. Hidden 175 properties (introduced in BASE 3.13) are not included. 176 162 177 @param className The name of the class with or without 163 178 the package name … … 168 183 public static List<ExtendedProperty> getProperties(String className) 169 184 { 185 return getProperties(className, false); 186 } 187 188 /** 189 Get a list of extended properties for the specified class. 190 191 @param className The name of the class with or without 192 the package name 193 @param includeHidden A flag to indicate if hidden properties should be included or not 194 @return A <code>List</code> object containing {@link ExtendedProperty} 195 objects, or null if the specified class is not extendable or 196 no extended properties has been defined 197 @since 3.13 198 */ 199 public static List<ExtendedProperty> getProperties(String className, boolean includeHidden) 200 { 170 201 int index = className.lastIndexOf("."); 171 202 if (index >= 0) … … 173 204 className = className.substring(index+1); 174 205 } 175 return allProperties.get(className); 206 List<ExtendedProperty> properties = includeHidden ? allProperties.get(className) : visibleProperties.get(className); 207 return properties == null ? null : Collections.unmodifiableList(properties); 176 208 } 177 209 … … 186 218 public static ExtendedProperty getProperty(String className, String property) 187 219 { 188 List<ExtendedProperty> l = getProperties(className );220 List<ExtendedProperty> l = getProperties(className, true); 189 221 if (l == null) return null; 190 222 for (ExtendedProperty e : l) … … 209 241 classes.add(className); 210 242 allProperties.put(className, new ArrayList<ExtendedProperty>()); 243 visibleProperties.put(className, new ArrayList<ExtendedProperty>()); 211 244 } 212 245 loadProperties(usedNames, el, xmlFile); … … 222 255 String className = classElement.getAttributeValue("name"); 223 256 List<ExtendedProperty> properties = allProperties.get(className); 257 List<ExtendedProperty> visible = visibleProperties.get(className); 224 258 List<Element> children = classElement.getChildren("property"); 225 259 DbEngine engine = HibernateUtil.getDbEngine(); … … 262 296 boolean updateable = XmlUtil2.getBooleanAttribute(property, "update", true); 263 297 boolean restrictedEdit = XmlUtil2.getBooleanAttribute(property, "restricted-edit", false); 298 boolean hidden = XmlUtil2.getBooleanAttribute(property, "hidden", false); 264 299 String avgMethod = property.getAttributeValue("averagemethod"); 265 300 Formula.AverageMethod averageMethod = null; … … 302 337 } 303 338 } 304 properties.add(new ExtendedProperty(name, title, description, column, type, length, nullable, insertable, updateable, restrictedEdit, averageMethod, epLinks)); 339 ExtendedProperty ep = new ExtendedProperty(name, title, description, column, type, length, nullable, insertable, updateable, restrictedEdit, hidden, averageMethod, epLinks); 340 properties.add(ep); 341 if (!hidden) visible.add(ep); 305 342 } 306 343 } -
trunk/src/core/net/sf/basedb/core/ExtendedProperty.java
r6898 r7496 67 67 private final boolean updateable; 68 68 private final boolean restrictedEdit; 69 private final boolean hidden; 69 70 private final Formula.AverageMethod averageMethod; 70 71 private final List<ExtendedPropertyLinker> linkers; … … 76 77 ExtendedProperty(String name, String title, String description, String column, 77 78 Type type, int length, boolean nullable, boolean insertable, boolean updateable, 78 boolean restrictedEdit, 79 boolean restrictedEdit, boolean hidden, 79 80 Formula.AverageMethod averageMethod, List<ExtendedPropertyLinker> linkers) 80 81 { … … 89 90 this.updateable = updateable; 90 91 this.restrictedEdit = restrictedEdit; 92 this.hidden = hidden; 91 93 this.averageMethod = averageMethod; 92 94 this.linkers = linkers; … … 191 193 { 192 194 return restrictedEdit; 195 } 196 197 /** 198 Check if the value of this property is hidden or not. Hidden properties should 199 normally not show up in user interfaces that have not been specifically designed 200 to work with the property. 201 @since 3.13 202 */ 203 public boolean isHidden() 204 { 205 return hidden; 193 206 } 194 207 -
trunk/src/core/net/sf/basedb/core/HibernateUtil.java
r7469 r7496 448 448 { 449 449 log.info("Adding extended properties to class: " + className); 450 List<ExtendedProperty> properties = ExtendedProperties.getProperties(className );450 List<ExtendedProperty> properties = ExtendedProperties.getProperties(className, true); 451 451 452 452 for (ExtendedProperty property : properties) -
trunk/src/core/net/sf/basedb/core/RawDataProperty.java
r6428 r7496 44 44 Type type, int length, boolean nullable, Formula.AverageMethod averageMethod, int channel) 45 45 { 46 super(name, title, description, column, type, length, nullable, true, false, false, averageMethod, null);46 super(name, title, description, column, type, length, nullable, true, false, false, false, averageMethod, null); 47 47 this.channel = channel; 48 48 } -
trunk/src/core/net/sf/basedb/core/ReporterBatcher.java
r7381 r7496 90 90 super(dc.getHibernateSession(), ReporterData.class, null); 91 91 entryDate = new Date(); 92 extendedProperties = ExtendedProperties.getProperties("ReporterData" );92 extendedProperties = ExtendedProperties.getProperties("ReporterData", true); 93 93 batchedExternalIds = HibernateUtil.getDbEngine().caseInsensitiveComparison() ? 94 94 new TreeSet<String>(String.CASE_INSENSITIVE_ORDER) : new HashSet<String>(); -
trunk/src/core/net/sf/basedb/core/SessionControl.java
r7494 r7496 779 779 userData.setDescription(extraInfo.getDescription()); 780 780 781 List<ExtendedProperty> properties = ExtendedProperties.getProperties("UserData" );781 List<ExtendedProperty> properties = ExtendedProperties.getProperties("UserData", true); 782 782 if (properties != null) 783 783 { -
trunk/src/core/net/sf/basedb/core/dtd/extended-properties.dtd
r6428 r7496 43 43 averagemethod (none|arithmetic_mean|geometric_mean|quadratic_mean|min|max) #IMPLIED 44 44 restricted-edit (true|false) "false" 45 hidden (true|false) "false" 45 46 > 46 47 -
trunk/www/admin/users/edit_user.jsp
r7410 r7496 286 286 <input type="hidden" name="cmd" value="UpdateItem"> 287 287 <input type="hidden" name="item_id" value="<%=itemId%>"> 288 288 289 289 <t:tabcontrol id="settings" 290 290 subclass="content dialogtabcontrol" … … 557 557 <table class="fullform input100"> 558 558 <% 559 for (ExtendedProperty ep : ExtendedProperties.getProperties("UserData"))559 for (ExtendedProperty ep : extendedProperties) 560 560 { 561 561 String name = ep.getName(); -
trunk/www/admin/users/index.jsp
r7404 r7496 72 72 import="java.util.ArrayList" 73 73 import="java.util.Collections" 74 import="java.util.Map" 74 75 %> 75 76 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> … … 258 259 259 260 // Extended properties 260 List<ExtendedProperty> extendedProperties = ExtendedProperties.getProperties("UserData" );261 List<ExtendedProperty> extendedProperties = ExtendedProperties.getProperties("UserData", true); 261 262 if (extendedProperties != null) 262 263 { 264 Map<String, String[]> parameters = request.getParameterMap(); 263 265 for (ExtendedProperty ep : extendedProperties) 264 266 { 265 267 String name = ep.getName(); 266 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 267 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 268 user.setExtended(name, value); 268 if (parameters.containsKey("ep."+name)) 269 { 270 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 271 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 272 user.setExtended(name, value); 273 } 269 274 } 270 275 } -
trunk/www/my_base/user/submit_user.jsp
r7410 r7496 50 50 import="java.util.Collections" 51 51 import="java.util.List" 52 import="java.util.Map" 52 53 %> 53 54 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> … … 103 104 104 105 // Extended properties 105 List<ExtendedProperty> extendedProperties = ExtendedProperties.getProperties("UserData" );106 List<ExtendedProperty> extendedProperties = ExtendedProperties.getProperties("UserData", true); 106 107 if (extendedProperties != null) 107 108 { 109 Map<String, String[]> parameters = request.getParameterMap(); 108 110 for (ExtendedProperty ep : extendedProperties) 109 111 { 110 112 if (ep.isRestrictedEdit()) continue; 111 String name = ep.getName(); 112 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 113 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 114 user.setExtended(name, value); 113 if (parameters.containsKey("ep."+name)) 114 { 115 String name = ep.getName(); 116 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 117 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 118 user.setExtended(name, value); 119 } 115 120 } 116 121 } -
trunk/www/views/reporters/edit_reporter.jsp
r6387 r7496 236 236 if (reporterProperties != null) 237 237 { 238 for (ExtendedProperty ep : ExtendedProperties.getProperties("ReporterData"))238 for (ExtendedProperty ep : reporterProperties) 239 239 { 240 240 String name = ep.getName(); -
trunk/www/views/reporters/index.jsp
r6315 r7496 58 58 import="java.util.Enumeration" 59 59 import="java.util.List" 60 import="java.util.Map" 60 61 %> 61 62 <%@ taglib prefix="base" uri="/WEB-INF/base.tld" %> … … 157 158 if (rt != null) cc.setRecent(rt, maxRecent); 158 159 } 159 List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData" );160 List<ExtendedProperty> reporterProperties = ExtendedProperties.getProperties("ReporterData", true); 160 161 if (reporterProperties != null) 161 162 { 163 Map<String, String[]> parameters = request.getParameterMap(); 162 164 for (ExtendedProperty ep : reporterProperties) 163 165 { 164 166 String name = ep.getName(); 165 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 166 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 167 reporter.setExtended(name, value); 167 if (parameters.containsKey("ep."+name)) 168 { 169 Formatter formatter = FormatterFactory.getExtendedPropertyFormatter(sc, ep); 170 Object value = formatter.parseString(Values.getStringOrNull(request.getParameter("ep."+name))); 171 reporter.setExtended(name, value); 172 } 168 173 } 169 174 }
Note: See TracChangeset
for help on using the changeset viewer.