Files
HRMS/hrmsEjb/jxl/biff/HeaderFooter.java
2025-07-28 13:56:49 +05:30

271 lines
6.4 KiB
Java

package jxl.biff;
import common.Logger;
public abstract class HeaderFooter {
private static Logger logger = Logger.getLogger(HeaderFooter.class);
private static final String BOLD_TOGGLE = "&B";
private static final String UNDERLINE_TOGGLE = "&U";
private static final String ITALICS_TOGGLE = "&I";
private static final String STRIKETHROUGH_TOGGLE = "&S";
private static final String DOUBLE_UNDERLINE_TOGGLE = "&E";
private static final String SUPERSCRIPT_TOGGLE = "&X";
private static final String SUBSCRIPT_TOGGLE = "&Y";
private static final String OUTLINE_TOGGLE = "&O";
private static final String SHADOW_TOGGLE = "&H";
private static final String LEFT_ALIGN = "&L";
private static final String CENTRE = "&C";
private static final String RIGHT_ALIGN = "&R";
private static final String PAGENUM = "&P";
private static final String TOTAL_PAGENUM = "&N";
private static final String DATE = "&D";
private static final String TIME = "&T";
private static final String WORKBOOK_NAME = "&F";
private static final String WORKSHEET_NAME = "&A";
private Contents left;
private Contents right;
private Contents centre;
protected static class Contents {
private StringBuffer contents;
protected Contents() {
this.contents = new StringBuffer();
}
protected Contents(String s) {
this.contents = new StringBuffer(s);
}
protected Contents(Contents copy) {
this.contents = new StringBuffer(copy.getContents());
}
protected String getContents() {
return (this.contents != null) ? this.contents.toString() : "";
}
private void appendInternal(String txt) {
if (this.contents == null)
this.contents = new StringBuffer();
this.contents.append(txt);
}
private void appendInternal(char ch) {
if (this.contents == null)
this.contents = new StringBuffer();
this.contents.append(ch);
}
protected void append(String txt) {
appendInternal(txt);
}
protected void toggleBold() {
appendInternal("&B");
}
protected void toggleUnderline() {
appendInternal("&U");
}
protected void toggleItalics() {
appendInternal("&I");
}
protected void toggleStrikethrough() {
appendInternal("&S");
}
protected void toggleDoubleUnderline() {
appendInternal("&E");
}
protected void toggleSuperScript() {
appendInternal("&X");
}
protected void toggleSubScript() {
appendInternal("&Y");
}
protected void toggleOutline() {
appendInternal("&O");
}
protected void toggleShadow() {
appendInternal("&H");
}
protected void setFontName(String fontName) {
appendInternal("&\"");
appendInternal(fontName);
appendInternal('"');
}
protected boolean setFontSize(int size) {
String fontSize;
if (size < 1 || size > 99)
return false;
if (size < 10) {
fontSize = "0" + size;
} else {
fontSize = Integer.toString(size);
}
appendInternal('&');
appendInternal(fontSize);
return true;
}
protected void appendPageNumber() {
appendInternal("&P");
}
protected void appendTotalPages() {
appendInternal("&N");
}
protected void appendDate() {
appendInternal("&D");
}
protected void appendTime() {
appendInternal("&T");
}
protected void appendWorkbookName() {
appendInternal("&F");
}
protected void appendWorkSheetName() {
appendInternal("&A");
}
protected void clear() {
this.contents = null;
}
protected boolean empty() {
if (this.contents == null || this.contents.length() == 0)
return true;
return false;
}
}
protected HeaderFooter() {
this.left = createContents();
this.right = createContents();
this.centre = createContents();
}
protected HeaderFooter(HeaderFooter hf) {
this.left = createContents(hf.left);
this.right = createContents(hf.right);
this.centre = createContents(hf.centre);
}
protected HeaderFooter(String s) {
if (s == null || s.length() == 0) {
this.left = createContents();
this.right = createContents();
this.centre = createContents();
return;
}
int pos = 0;
int leftPos = s.indexOf("&L");
int rightPos = s.indexOf("&R");
int centrePos = s.indexOf("&C");
if (pos == leftPos)
if (centrePos != -1) {
this.left = createContents(s.substring(pos + 2, centrePos));
pos = centrePos;
} else if (rightPos != -1) {
this.left = createContents(s.substring(pos + 2, rightPos));
pos = rightPos;
} else {
this.left = createContents(s.substring(pos + 2));
pos = s.length();
}
if (pos == centrePos || (leftPos == -1 && rightPos == -1 && centrePos == -1))
if (rightPos != -1) {
this.centre = createContents(s.substring(pos + 2, rightPos));
pos = rightPos;
} else {
this.centre = createContents(s.substring(pos + 2));
pos = s.length();
}
if (pos == rightPos) {
this.right = createContents(s.substring(pos + 2));
pos = s.length();
}
if (this.left == null)
this.left = createContents();
if (this.centre == null)
this.centre = createContents();
if (this.right == null)
this.right = createContents();
}
public String toString() {
StringBuffer hf = new StringBuffer();
if (!this.left.empty()) {
hf.append("&L");
hf.append(this.left.getContents());
}
if (!this.centre.empty()) {
hf.append("&C");
hf.append(this.centre.getContents());
}
if (!this.right.empty()) {
hf.append("&R");
hf.append(this.right.getContents());
}
return hf.toString();
}
protected Contents getRightText() {
return this.right;
}
protected Contents getCentreText() {
return this.centre;
}
protected Contents getLeftText() {
return this.left;
}
protected void clear() {
this.left.clear();
this.right.clear();
this.centre.clear();
}
protected abstract Contents createContents();
protected abstract Contents createContents(String paramString);
protected abstract Contents createContents(Contents paramContents);
}