Browse Source

DEMO: Tidying up formatting of demo and making region/language code case-insensitive.

pull/567/head
Lara Scheidegger 15 years ago
committed by Mihaela Rosca
parent
commit
66018dbeee
3 changed files with 115 additions and 41 deletions
  1. +86
    -41
      java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java
  2. +3
    -0
      java/demo/war/phonenumberparser.jsp
  3. +26
    -0
      java/demo/war/stylesheets/main.css

+ 86
- 41
java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java View File

@ -68,14 +68,14 @@ public class PhoneNumberParserServlet extends HttpServlet {
if (fieldName.equals("phoneNumber")) {
phoneNumber = Streams.asString(in, "UTF-8");
} else if (fieldName.equals("defaultCountry")) {
defaultCountry = Streams.asString(in);
defaultCountry = Streams.asString(in).toUpperCase();
} else if (fieldName.equals("languageCode")) {
String languageEntered = Streams.asString(in);
String languageEntered = Streams.asString(in).toLowerCase();
if (languageEntered.length() > 0) {
languageCode = languageEntered;
}
} else if (fieldName.equals("regionCode")) {
regionCode = Streams.asString(in);
regionCode = Streams.asString(in).toUpperCase();
}
} else {
try {
@ -92,18 +92,24 @@ public class PhoneNumberParserServlet extends HttpServlet {
StringBuilder output;
if (fileContents.length() == 0) {
output = getOutputForSingleNumber(phoneNumber, defaultCountry, languageCode, regionCode);
resp.setContentType("text/plain");
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().println("Phone Number entered: " + phoneNumber);
resp.getWriter().println("defaultCountry entered: " + defaultCountry);
resp.getWriter().println("<html><head>");
resp.getWriter().println(
"<link type=\"text/css\" rel=\"stylesheet\" href=\"/stylesheets/main.css\" />");
resp.getWriter().println("</head>");
resp.getWriter().println("<body>");
resp.getWriter().println("Phone Number entered: " + phoneNumber + "<br>");
resp.getWriter().println("defaultCountry entered: " + defaultCountry + "<br>");
resp.getWriter().println(
"Language entered: " + languageCode +
(regionCode.length() == 0 ? "" : " (" + regionCode + ")"));
(regionCode.length() == 0 ? "" : " (" + regionCode + ")" + "<br>"));
} else {
output = getOutputForFile(defaultCountry, fileContents);
resp.setContentType("text/html");
}
resp.getWriter().println(output);
resp.getWriter().println("</body></html>");
}
private StringBuilder getOutputForFile(String defaultCountry, String fileContents) {
@ -145,6 +151,13 @@ public class PhoneNumberParserServlet extends HttpServlet {
return output;
}
private void appendLine(String title, String data, StringBuilder output) {
output.append("<TR>");
output.append("<TH>").append(title).append("</TH>");
output.append("<TD>").append(data.length() > 0 ? data : "&nbsp;").append("</TD>");
output.append("</TR>");
}
/**
* The defaultCountry here is used for parsing phoneNumber. The languageCode and regionCode are
* used to specify the language used for displaying the area descriptions generated from phone
@ -155,49 +168,81 @@ public class PhoneNumberParserServlet extends HttpServlet {
StringBuilder output = new StringBuilder();
try {
PhoneNumber number = phoneUtil.parseAndKeepRawInput(phoneNumber, defaultCountry);
output.append("\n\n****Parsing Result:****");
output.append("\ncountry_code: ").append(number.getCountryCode());
output.append("\nnational_number: ").append(number.getNationalNumber());
output.append("\nextension:").append(number.getExtension());
output.append("\ncountry_code_source: ").append(number.getCountryCodeSource());
output.append("\nitalian_leading_zero: ").append(number.isItalianLeadingZero());
output.append("\nraw_input: ").append(number.getRawInput());
output.append("\n\n****Validation Results:****");
output.append("<DIV>");
output.append("<TABLE border=1>");
output.append("<TR><TD colspan=2>Parsing Result</TD></TR>");
appendLine("country_code", Integer.toString(number.getCountryCode()), output);
appendLine("national_number", Long.toString(number.getNationalNumber()), output);
appendLine("extension", number.getExtension(), output);
appendLine("country_code_source", number.getCountryCodeSource().toString(), output);
appendLine("italian_leading_zero", Boolean.toString(number.isItalianLeadingZero()), output);
appendLine("raw_input", number.getRawInput(), output);
output.append("</TABLE>");
output.append("</DIV>");
boolean isNumberValid = phoneUtil.isValidNumber(number);
output.append("\nResult from isValidNumber(): ").append(isNumberValid);
output.append("\nResult from isValidNumberForRegion(): ").append(
phoneUtil.isValidNumberForRegion(number, defaultCountry));
output.append("\nPhone Number region: ").append(phoneUtil.getRegionCodeForNumber(number));
output.append("\nResult from isPossibleNumber(): ").append(
phoneUtil.isPossibleNumber(number));
output.append("\nResult from getNumberType(): ").append(phoneUtil.getNumberType(number));
output.append("\n\n****Formatting Results:**** ");
output.append("\nE164 format: ").append(
isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.E164) : "invalid");
output.append("\nOriginal format: ").append(
phoneUtil.formatInOriginalFormat(number, defaultCountry));
output.append("\nInternational format: ").append(
isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.INTERNATIONAL) : "invalid");
output.append("\nNational format: ").append(
phoneUtil.format(number, PhoneNumberFormat.NATIONAL));
output.append("\nOut-of-country format from US: ").append(
isNumberValid ? phoneUtil.formatOutOfCountryCallingNumber(number, "US") : "invalid");
output.append("\n\n****AsYouTypeFormatter Results****");
output.append("<DIV>");
output.append("<TABLE border=1>");
output.append("<TR><TD colspan=2>Validation Results</TD></TR>");
appendLine("Result from isValidNumber()", Boolean.toString(isNumberValid), output);
appendLine(
"Result from isValidNumberForRegion()",
Boolean.toString(phoneUtil.isValidNumberForRegion(number, defaultCountry)),
output);
appendLine("Phone Number region", phoneUtil.getRegionCodeForNumber(number), output);
appendLine("Result from isPossibleNumber()",
Boolean.toString(phoneUtil.isPossibleNumber(number)), output);
appendLine("Result from getNumberType()", phoneUtil.getNumberType(number).toString(), output);
output.append("</TABLE>");
output.append("</DIV>");
output.append("<DIV>");
output.append("<TABLE border=1>");
output.append("<TR><TD colspan=2>Formatting Results</TD></TR>");
appendLine("E164 format",
isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.E164) : "invalid",
output);
appendLine("Original format",
phoneUtil.formatInOriginalFormat(number, defaultCountry), output);
appendLine(
"International format",
isNumberValid ? phoneUtil.format(number, PhoneNumberFormat.INTERNATIONAL) : "invalid",
output);
appendLine("National format", phoneUtil.format(number, PhoneNumberFormat.NATIONAL), output);
appendLine(
"Out-of-country format from US",
isNumberValid ? phoneUtil.formatOutOfCountryCallingNumber(number, "US") : "invalid",
output);
output.append("</TABLE>");
output.append("</DIV>");
AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter(defaultCountry);
int rawNumberLength = phoneNumber.length();
output.append("<DIV>");
output.append("<TABLE border=1>");
output.append("<TR><TD colspan=2>AsYouTypeFormatter Results</TD></TR>");
for (int i = 0; i < rawNumberLength; i++) {
// Note this doesn't handle supplementary characters, but it shouldn't be a big deal as
// there are no dial-pad characters in the supplementary range.
char inputChar = phoneNumber.charAt(i);
output.append("\nChar entered: ").append(inputChar).append(" Output: ")
.append(formatter.inputDigit(inputChar));
appendLine("Char entered: '" + inputChar + "' Output: ",
formatter.inputDigit(inputChar), output);
}
output.append("\n\n****PhoneNumberOfflineGeocoder Results****");
output.append("\n" +
output.append("</TABLE>");
output.append("</DIV>");
output.append("<DIV>");
output.append("<TABLE border=1>");
output.append("<TR><TD colspan=2>PhoneNumberOfflineGeocoder Results</TD></TR>");
appendLine(
"Location",
PhoneNumberOfflineGeocoder.getInstance().getDescriptionForNumber(
number, new Locale(languageCode, regionCode)));
number, new Locale(languageCode, regionCode)),
output);
output.append("</TABLE>");
output.append("</DIV>");
} catch (NumberParseException e) {
output.append(e.toString());
}


+ 3
- 0
java/demo/war/phonenumberparser.jsp View File

@ -1,5 +1,8 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />
</head>
<body>
<h2>Phone Number Parser Demo</h2>
<form action="/phonenumberparser" method="post" accept-charset="UTF-8"


+ 26
- 0
java/demo/war/stylesheets/main.css View File

@ -0,0 +1,26 @@
body {
font-family: "Trebuchet MS", Arial, sans-serif;
}
table, th, td {
border: 1px solid #D4E0EE;
border-collapse: collapse;
color: #555;
}
td, th {
padding: 4px;
}
thead {
text-align: center;
background: #E6EDF5;
color: #4F76A3
}
th {
text-align: left;
}
div {
padding: 10px;
}

Loading…
Cancel
Save