private boolean openRow;
@Override
public int processLineContent(String line,int offset) {
if (blockLineCount++ == 0) {
TableAttributes attributes = new TableAttributes();
// first line opens table
String options = matcher.group(1);
if (options != null) {
Matcher optionsMatcher = optionsPattern.matcher(options);
while (optionsMatcher.find()) {
String optionName = optionsMatcher.group(1);
String optionValue = optionsMatcher.group(2);
if (optionName.equalsIgnoreCase("id")) {
attributes.setId(optionValue);
} else if (optionName.equalsIgnoreCase("style")) {
attributes.setCssStyle(optionValue);
} else if (optionName.equalsIgnoreCase("class")) {
attributes.setCssClass(optionValue);
} else if (optionName.equalsIgnoreCase("title")) {
attributes.setTitle(optionValue);
} else if (optionName.equalsIgnoreCase("border")) {
attributes.setBorder(optionValue);
} else if (optionName.equalsIgnoreCase("summary")) {
attributes.setSummary(optionValue);
} else if (optionName.equalsIgnoreCase("width")) {
attributes.setWidth(optionValue);
} else if (optionName.equalsIgnoreCase("frame")) {
attributes.setFrame(optionValue);
} else if (optionName.equalsIgnoreCase("rules")) {
attributes.setRules(optionValue);
} else if (optionName.equalsIgnoreCase("cellspacing")) {
attributes.setCellspacing(optionValue);
} else if (optionName.equalsIgnoreCase("cellpadding")) {
attributes.setCellpadding(optionValue);
} else if (optionName.equalsIgnoreCase("bgcolor")) {
attributes.setBgcolor(optionValue);
}
}
}
builder.beginBlock(BlockType.TABLE, attributes);
// table open line never has cells
return -1;
} else {
Matcher newRowMatcher = newRowPattern.matcher(line);
if (newRowMatcher.matches()) {
TableRowAttributes attributes = new TableRowAttributes();
String newRowOptions = newRowMatcher.group(1);
if (newRowOptions != null) {
Matcher optionsMatcher = optionsPattern.matcher(newRowOptions);
while (optionsMatcher.find()) {
String optionName = optionsMatcher.group(1);
String optionValue = optionsMatcher.group(2);
if (optionName.equalsIgnoreCase("id")) {
attributes.setId(optionValue);
} else if (optionName.equalsIgnoreCase("style")) {
attributes.setCssStyle(optionValue);
} else if (optionName.equalsIgnoreCase("class")) {
attributes.setCssClass(optionValue);
} else if (optionName.equalsIgnoreCase("title")) {
attributes.setTitle(optionValue);
} else if (optionName.equalsIgnoreCase("align")) {
attributes.setAlign(optionValue);
} else if (optionName.equalsIgnoreCase("valign")) {
attributes.setValign(optionValue);
} else if (optionName.equalsIgnoreCase("bgcolor")) {
attributes.setBgcolor(optionValue);
}
}
}
openRow(newRowMatcher.start(),attributes);
return -1;