=== modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/screen/DefaultDataEntryScreenManager.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/screen/DefaultDataEntryScreenManager.java 2009-05-04 12:51:33 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/screen/DefaultDataEntryScreenManager.java 2009-09-27 19:55:48 +0000 @@ -326,35 +326,36 @@ // Pattern to match data elements in the HTML code. // --------------------------------------------------------------------- - Pattern patDataElement = Pattern.compile( "(", Pattern.DOTALL ); - Matcher matDataElement = patDataElement.matcher( dataEntryFormCode ); - + Pattern dataElementPattern = Pattern.compile( "(", Pattern.DOTALL ); + Matcher dataElementMatcher = dataElementPattern.matcher( dataEntryFormCode ); + + // --------------------------------------------------------------------- + // Pattern to extract data element ID from data element field + // --------------------------------------------------------------------- + + Pattern identifierPattern = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); + // --------------------------------------------------------------------- // Iterate through all matching data element fields. // --------------------------------------------------------------------- - boolean result = matDataElement.find(); - - while ( result ) + while ( dataElementMatcher.find() ) { // Get input HTML code (HTML input field code). - String dataElementCode = matDataElement.group( 1 ); - - // Pattern to extract data element ID from data element field - Pattern patDataElementId = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); - - Matcher matDataElementId = patDataElementId.matcher( dataElementCode ); - - if ( matDataElementId.find() && matDataElementId.groupCount() > 0 ) + String dataElementCode = dataElementMatcher.group( 1 ); + + Matcher identifierMatcher = identifierPattern.matcher( dataElementCode ); + + if ( identifierMatcher.find() && identifierMatcher.groupCount() > 0 ) { // ------------------------------------------------------------- // Get data element ID of data element. // ------------------------------------------------------------- - int dataElementId = Integer.parseInt( matDataElementId.group( 1 ) ); + int dataElementId = Integer.parseInt( identifierMatcher.group( 1 ) ); DataElement dataElement = dataElementService.getDataElement( dataElementId ); - int optionComboId = Integer.parseInt( matDataElementId.group( 2 ) ); + int optionComboId = Integer.parseInt( identifierMatcher.group( 2 ) ); // ------------------------------------------------------------- // Find type of data element @@ -405,10 +406,10 @@ // ------------------------------------------------------------- int count = 0; + for ( CustomValue customValue : customValues ) { - if ( dataElementId == customValue.getDataElement().getId() - && optionComboId == customValue.getOptionCombo().getId() ) + if ( dataElementId == customValue.getDataElement().getId() && optionComboId == customValue.getOptionCombo().getId() ) { count += 1; } @@ -571,15 +572,12 @@ appendCode = appendCode.replace( "$MAX", String.valueOf( minMaxDataElement.getMax() ) ); } - matDataElement.appendReplacement( sb, appendCode ); + dataElementMatcher.appendReplacement( sb, appendCode ); } - - // Go to next data entry field - result = matDataElement.find(); } // Add remaining code (after the last match), and return formatted code. - matDataElement.appendTail( sb ); + dataElementMatcher.appendTail( sb ); return sb.toString(); @@ -619,34 +617,35 @@ // Pattern to match data elements in the HTML code. // --------------------------------------------------------------------- - Pattern patDataElement = Pattern.compile( "(", Pattern.DOTALL ); - Matcher matDataElement = patDataElement.matcher( dataEntryFormCode ); + Pattern dataElementPattern = Pattern.compile( "(", Pattern.DOTALL ); + Matcher dataElementMatcher = dataElementPattern.matcher( dataEntryFormCode ); + + // --------------------------------------------------------------------- + // Pattern to extract data element ID from data element field + // --------------------------------------------------------------------- + + Pattern identifierPattern = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); // --------------------------------------------------------------------- // Iterate through all matching data element fields. // --------------------------------------------------------------------- - boolean result = matDataElement.find(); - - while ( result ) + while ( dataElementMatcher.find() ) { // Get input HTML code (HTML input field code). - String dataElementCode = matDataElement.group( 1 ); - - // Pattern to extract data element ID from data element field - Pattern patDataElementId = Pattern.compile( "value\\[(.*)\\].value:value\\[(.*)\\].value" ); - - Matcher matDataElementId = patDataElementId.matcher( dataElementCode ); - - if ( matDataElementId.find() && matDataElementId.groupCount() > 0 ) + String dataElementCode = dataElementMatcher.group( 1 ); + + Matcher identifierMatcher = identifierPattern.matcher( dataElementCode ); + + if ( identifierMatcher.find() && identifierMatcher.groupCount() > 0 ) { // ------------------------------------------------------------- // Get data element ID of data element. // ------------------------------------------------------------- - int dataElementId = Integer.parseInt( matDataElementId.group( 1 ) ); + int dataElementId = Integer.parseInt( identifierMatcher.group( 1 ) ); DataElement dataElement = dataElementService.getDataElement( dataElementId ); - int optionComboId = Integer.parseInt( matDataElementId.group( 2 ) ); + int optionComboId = Integer.parseInt( identifierMatcher.group( 2 ) ); // ------------------------------------------------------------- // Find type of data element @@ -699,10 +698,10 @@ // ------------------------------------------------------------- int count = 0; + for ( CustomValue customValue : customValues ) { - if ( dataElementId == customValue.getDataElement().getId() - && optionComboId == customValue.getOptionCombo().getId() ) + if ( dataElementId == customValue.getDataElement().getId() && optionComboId == customValue.getOptionCombo().getId() ) { count += 1; } @@ -863,15 +862,12 @@ appendCode = appendCode.replace( "$MAX", String.valueOf( minMaxDataElement.getMax() ) ); } - matDataElement.appendReplacement( sb, appendCode ); + dataElementMatcher.appendReplacement( sb, appendCode ); } - - // Go to next data entry field - result = matDataElement.find(); } // Add remaining code (after the last match), and return formatted code. - matDataElement.appendTail( sb ); + dataElementMatcher.appendTail( sb ); return sb.toString(); }