mirror of
https://github.com/zxing/zxing.git
synced 2025-01-12 19:57:27 -08:00
Issue 1177 add title field
git-svn-id: https://zxing.googlecode.com/svn/trunk@2215 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
5287b54bb2
commit
776984bb8f
|
@ -27,6 +27,7 @@ import com.google.gwt.user.client.ui.Widget;
|
||||||
* A Generator for contact informations, output is in MeCard format.
|
* A Generator for contact informations, output is in MeCard format.
|
||||||
*
|
*
|
||||||
* @author Yohann Coppel
|
* @author Yohann Coppel
|
||||||
|
* @author Sean Owen
|
||||||
*/
|
*/
|
||||||
public final class ContactInfoGenerator implements GeneratorSource {
|
public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
|
|
||||||
|
@ -34,6 +35,7 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
private final ListBox encoding = new ListBox();
|
private final ListBox encoding = new ListBox();
|
||||||
private final TextBox name = new TextBox();
|
private final TextBox name = new TextBox();
|
||||||
private final TextBox company = new TextBox();
|
private final TextBox company = new TextBox();
|
||||||
|
private final TextBox title = new TextBox();
|
||||||
private final TextBox tel = new TextBox();
|
private final TextBox tel = new TextBox();
|
||||||
private final TextBox url = new TextBox();
|
private final TextBox url = new TextBox();
|
||||||
private final TextBox email = new TextBox();
|
private final TextBox email = new TextBox();
|
||||||
|
@ -61,6 +63,7 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
public String getText() throws GeneratorException {
|
public String getText() throws GeneratorException {
|
||||||
String name = getNameField();
|
String name = getNameField();
|
||||||
String company = getCompanyField();
|
String company = getCompanyField();
|
||||||
|
String title = getTitleField();
|
||||||
String tel = getTelField();
|
String tel = getTelField();
|
||||||
String url = getUrlField();
|
String url = getUrlField();
|
||||||
String email = getEmailField();
|
String email = getEmailField();
|
||||||
|
@ -71,13 +74,20 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
// Build the output with obtained data.
|
// Build the output with obtained data.
|
||||||
// note that some informations may just be "" if they were not specified.
|
// note that some informations may just be "" if they were not specified.
|
||||||
if ("vCard".equals(encoding.getValue(encoding.getSelectedIndex()))) {
|
if ("vCard".equals(encoding.getValue(encoding.getSelectedIndex()))) {
|
||||||
return getVCard(name, company, tel, url, email, address, address2, memo);
|
return getVCard(name, company, title, tel, url, email, address, address2, memo);
|
||||||
}
|
}
|
||||||
return getMeCard(name, company, tel, url, email, address, address2, memo);
|
return getMeCard(name, company, title, tel, url, email, address, address2, memo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getMeCard(String name, String company, String tel, String url,
|
private static String getMeCard(String name,
|
||||||
String email, String address, String address2, String memo) {
|
String company,
|
||||||
|
String title,
|
||||||
|
String tel,
|
||||||
|
String url,
|
||||||
|
String email,
|
||||||
|
String address,
|
||||||
|
String address2,
|
||||||
|
String memo) {
|
||||||
StringBuilder output = new StringBuilder(100);
|
StringBuilder output = new StringBuilder(100);
|
||||||
output.append("MECARD:");
|
output.append("MECARD:");
|
||||||
maybeAppendMECARD(output, "N", name.replace(",", ""));
|
maybeAppendMECARD(output, "N", name.replace(",", ""));
|
||||||
|
@ -86,38 +96,56 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
maybeAppendMECARD(output, "URL", url);
|
maybeAppendMECARD(output, "URL", url);
|
||||||
maybeAppendMECARD(output, "EMAIL", email);
|
maybeAppendMECARD(output, "EMAIL", email);
|
||||||
maybeAppendMECARD(output, "ADR", buildAddress(address, address2));
|
maybeAppendMECARD(output, "ADR", buildAddress(address, address2));
|
||||||
maybeAppendMECARD(output, "NOTE", memo);
|
StringBuilder memoContents = new StringBuilder();
|
||||||
|
if (memo != null) {
|
||||||
|
memoContents.append(memo);
|
||||||
|
}
|
||||||
|
if (title != null) {
|
||||||
|
if (memoContents.length() > 0) {
|
||||||
|
memoContents.append('\n');
|
||||||
|
}
|
||||||
|
memoContents.append(title);
|
||||||
|
}
|
||||||
|
maybeAppendMECARD(output, "NOTE", memoContents.toString());
|
||||||
output.append(';');
|
output.append(';');
|
||||||
return output.toString();
|
return output.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String buildAddress(String address, String address2) {
|
private static String buildAddress(String address, String address2) {
|
||||||
if (address.length() > 0) {
|
if (!address.isEmpty()) {
|
||||||
if (address2.length() > 0) {
|
if (!address2.isEmpty()) {
|
||||||
return address + ' ' + address2;
|
return address + ' ' + address2;
|
||||||
}
|
}
|
||||||
return address;
|
return address;
|
||||||
}
|
}
|
||||||
if (address2.length() > 0) {
|
if (!address2.isEmpty()) {
|
||||||
return address2;
|
return address2;
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void maybeAppendMECARD(StringBuilder output, String prefix, String value) {
|
private static void maybeAppendMECARD(StringBuilder output, String prefix, String value) {
|
||||||
if (value.length() > 0) {
|
if (!value.isEmpty()) {
|
||||||
value = value.replaceAll("([\\\\:;])", "\\\\$1");
|
value = value.replaceAll("([\\\\:;])", "\\\\$1");
|
||||||
value = value.replaceAll("\\n", "");
|
value = value.replaceAll("\\n", "");
|
||||||
output.append(prefix).append(':').append(value).append(';');
|
output.append(prefix).append(':').append(value).append(';');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getVCard(String name, String company, String tel, String url,
|
private static String getVCard(String name,
|
||||||
String email, String address, String address2, String memo) {
|
String company,
|
||||||
|
String title,
|
||||||
|
String tel,
|
||||||
|
String url,
|
||||||
|
String email,
|
||||||
|
String address,
|
||||||
|
String address2,
|
||||||
|
String memo) {
|
||||||
StringBuilder output = new StringBuilder(100);
|
StringBuilder output = new StringBuilder(100);
|
||||||
output.append("BEGIN:VCARD\n");
|
output.append("BEGIN:VCARD\n");
|
||||||
maybeAppendvCard(output, "N", name);
|
maybeAppendvCard(output, "N", name);
|
||||||
maybeAppendvCard(output, "ORG", company);
|
maybeAppendvCard(output, "ORG", company);
|
||||||
|
maybeAppendvCard(output, "TITLE", title);
|
||||||
maybeAppendvCard(output, "TEL", tel);
|
maybeAppendvCard(output, "TEL", tel);
|
||||||
maybeAppendvCard(output, "URL", url);
|
maybeAppendvCard(output, "URL", url);
|
||||||
maybeAppendvCard(output, "EMAIL", email);
|
maybeAppendvCard(output, "EMAIL", email);
|
||||||
|
@ -128,7 +156,7 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void maybeAppendvCard(StringBuilder output, String prefix, String value) {
|
private static void maybeAppendvCard(StringBuilder output, String prefix, String value) {
|
||||||
if (value.length() > 0) {
|
if (!value.isEmpty()) {
|
||||||
value = value.replaceAll("([\\\\,;])", "\\\\$1");
|
value = value.replaceAll("([\\\\,;])", "\\\\$1");
|
||||||
value = value.replaceAll("\\n", "\\\\n");
|
value = value.replaceAll("\\n", "\\\\n");
|
||||||
output.append(prefix).append(':').append(value).append('\n');
|
output.append(prefix).append(':').append(value).append('\n');
|
||||||
|
@ -147,6 +175,10 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
return company.getText();
|
return company.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getTitleField() {
|
||||||
|
return title.getText();
|
||||||
|
}
|
||||||
|
|
||||||
private String getTelField() throws GeneratorException {
|
private String getTelField() throws GeneratorException {
|
||||||
String input = Validators.filterNumber(tel.getText());
|
String input = Validators.filterNumber(tel.getText());
|
||||||
if (input.length() < 1) {
|
if (input.length() < 1) {
|
||||||
|
@ -161,7 +193,7 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
|
|
||||||
private String getUrlField() throws GeneratorException {
|
private String getUrlField() throws GeneratorException {
|
||||||
String input = url.getText();
|
String input = url.getText();
|
||||||
if (input != null && input.length() > 0) {
|
if (input != null && !input.isEmpty()) {
|
||||||
Validators.validateUrl(input);
|
Validators.validateUrl(input);
|
||||||
}
|
}
|
||||||
return input;
|
return input;
|
||||||
|
@ -197,26 +229,28 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
// early termination if the table has already been constructed
|
// early termination if the table has already been constructed
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
table = new Grid(9, 2);
|
table = new Grid(10, 2);
|
||||||
|
|
||||||
table.setText(0, 0, "Name");
|
table.setText(0, 0, "Name");
|
||||||
table.setWidget(0, 1, name);
|
table.setWidget(0, 1, name);
|
||||||
table.setText(1, 0, "Company");
|
table.setText(1, 0, "Company");
|
||||||
table.setWidget(1, 1, company);
|
table.setWidget(1, 1, company);
|
||||||
table.setText(2, 0, "Phone number");
|
table.setText(2, 0, "Title");
|
||||||
table.setWidget(2, 1, tel);
|
table.setWidget(2, 1, title);
|
||||||
table.setText(3, 0, "Email");
|
table.setText(3, 0, "Phone number");
|
||||||
table.setWidget(3, 1, email);
|
table.setWidget(3, 1, tel);
|
||||||
table.setText(4, 0, "Address");
|
table.setText(4, 0, "Email");
|
||||||
table.setWidget(4, 1, address);
|
table.setWidget(4, 1, email);
|
||||||
table.setText(5, 0, "Address 2");
|
table.setText(5, 0, "Address");
|
||||||
table.setWidget(5, 1, address2);
|
table.setWidget(5, 1, address);
|
||||||
table.setText(6, 0, "Website");
|
table.setText(6, 0, "Address 2");
|
||||||
table.setWidget(6, 1, url);
|
table.setWidget(6, 1, address2);
|
||||||
table.setText(7, 0, "Memo");
|
table.setText(7, 0, "Website");
|
||||||
table.setWidget(7, 1, memo);
|
table.setWidget(7, 1, url);
|
||||||
table.setText(8, 0, "Encoding");
|
table.setText(8, 0, "Memo");
|
||||||
table.setWidget(8, 1, encoding);
|
table.setWidget(8, 1, memo);
|
||||||
|
table.setText(9, 0, "Encoding");
|
||||||
|
table.setWidget(9, 1, encoding);
|
||||||
|
|
||||||
name.addStyleName(StylesDefs.INPUT_FIELD_REQUIRED);
|
name.addStyleName(StylesDefs.INPUT_FIELD_REQUIRED);
|
||||||
return table;
|
return table;
|
||||||
|
@ -230,6 +264,9 @@ public final class ContactInfoGenerator implements GeneratorSource {
|
||||||
if (widget == company) {
|
if (widget == company) {
|
||||||
getCompanyField();
|
getCompanyField();
|
||||||
}
|
}
|
||||||
|
if (widget == title) {
|
||||||
|
getTitleField();
|
||||||
|
}
|
||||||
if (widget == tel) {
|
if (widget == tel) {
|
||||||
getTelField();
|
getTelField();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
|
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
|
||||||
<application>zxing</application>
|
<application>zxing</application>
|
||||||
<version>6</version>
|
<version>7</version>
|
||||||
</appengine-web-app>
|
</appengine-web-app>
|
|
@ -1,5 +1,5 @@
|
||||||
application: zxing
|
application: zxing
|
||||||
version: 6
|
version: 7
|
||||||
runtime: python
|
runtime: python
|
||||||
api_version: 1
|
api_version: 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue