blob: a5d60fee6498941cff5834d238383a6185123887 [file] [log] [blame]
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
package org.odftoolkit.simple.common.field;
import org.odftoolkit.odfdom.pkg.OdfElement;
import org.odftoolkit.simple.common.field.PageNumberField.DisplayType;
import org.odftoolkit.simple.common.field.VariableField.VariableType;
/**
* This is a tool class to help the user creating all kinds of fields as needed.
*
* @see org.odftoolkit.simple.common.navigation.FieldSelection
* @since 0.5
*/
public class Fields {
/**
* Create an automatically update date field for the specific OdfElement,
* which displays current date.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created date field.
*/
public static DateField createDateField(OdfElement odfElement) {
DateField dateField = new DateField(odfElement);
dateField.setFixed(false);
return dateField;
}
/**
* Create a fixed date field for the specific OdfElement, which displays the
* field created date.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created date field.
*/
public static DateField createFixedDateField(OdfElement odfElement) {
return new DateField(odfElement);
}
/**
* Create an automatically update time field for the specific OdfElement,
* which displays current time.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created time field.
*/
public static TimeField createTimeField(OdfElement odfElement) {
TimeField timeField = new TimeField(odfElement);
timeField.setFixed(false);
return timeField;
}
/**
* Create a fixed time field for the specific OdfElement, which displays the
* field created time.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created time field.
*/
public static TimeField createFixedTimeField(OdfElement odfElement) {
return new TimeField(odfElement);
}
/**
* Create a page number field for the specific OdfElement, which displays
* previous page number.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created page number field.
*/
public static PageNumberField createPreviousPageNumberField(OdfElement odfElement) {
PageNumberField pageNumberField = new PageNumberField(odfElement);
pageNumberField.setDisplayPage(DisplayType.PREVIOUS_PAGE);
return pageNumberField;
}
/**
* Create a page number field for the specific OdfElement, which displays
* current page number.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created page number field.
*/
public static PageNumberField createCurrentPageNumberField(OdfElement odfElement) {
return new PageNumberField(odfElement);
}
/**
* Create a page number field for the specific OdfElement, which displays
* next page number.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created page number field.
*/
public static PageNumberField createNextPageNumberField(OdfElement odfElement) {
PageNumberField pageNumberField = new PageNumberField(odfElement);
pageNumberField.setDisplayPage(DisplayType.NEXT_PAGE);
return pageNumberField;
}
/**
* Create a page count field for the specific OdfElement, which displays
* page total count of this document.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created page count field.
*/
public static PageCountField createPageCountField(OdfElement odfElement) {
return new PageCountField(odfElement);
}
/**
* Create a title field for the specific OdfElement, which displays title
* data of this document.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created title field.
*/
public static TitleField createTitleField(OdfElement odfElement) {
return new TitleField(odfElement);
}
/**
* Create a subject field for the specific OdfElement, which displays the
* subject data of this document.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created author field.
*/
public static SubjectField createSubjectField(OdfElement odfElement) {
return new SubjectField(odfElement);
}
/**
* Create an author field for the specific OdfElement, which displays author
* full name of this document.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created author field.
*/
public static AuthorField createAuthorNameField(OdfElement odfElement) {
return new AuthorField(odfElement, false);
}
/**
* Create an author field for the specific OdfElement, which displays the
* initials of the author of this document.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created author field.
*/
public static AuthorField createAuthorInitialsField(OdfElement odfElement) {
return new AuthorField(odfElement, true);
}
/**
* Create a chapter field for the specific OdfElement.
*
* @param odfElement
* the OdfElement which owns this field.
* @return the created chapter field.
*/
public static ChapterField createChapterField(OdfElement odfElement) {
return new ChapterField(odfElement);
}
/**
* Create a ReferenceField for the specific OdfElement.
*
* @param odfElement
* the OdfElement which owns this field.
* @param referenceName
* the reference field name.
* @return the created reference field.
*/
public static ReferenceField createReferenceField(OdfElement odfElement, String referenceName) {
return new ReferenceField(odfElement, referenceName);
}
/**
* Declare a simple variable field. Simple variables, can take different
* values at different positions throughout a document.
* <p>
* Simple variables can be used to display different text in recurring
* elements, such as headers or footers.
*
* @param container
* the container which this variable field is contained.
* @param name
* the name of this variable field.
* @return the created variable field.
*/
public static VariableField createSimpleVariableField(VariableContainer container, String name) {
return new VariableField(container, name, VariableType.SIMPLE);
}
/**
* Declare a user variable field. User variables have the same value
* throughout a document. If a user variable is set anywhere within the
* document, all fields in the document that display the user variable have
* the same value.
*
* @param container
* the container which this variable field is contained.
* @param name
* the name of this variable field.
* @param value
* the initial value of this variable field.
* @return the created variable field.
*/
public static VariableField createUserVariableField(VariableContainer container, String name, String value) {
VariableField field = new VariableField(container, name, VariableType.USER);
field.updateField(value, (OdfElement) null);
return field;
}
/**
* Declare a condition field, which specifies a condition for display of one
* text string or another. If the condition is true, one of the text strings
* is displayed. If the condition is false, the other text string is
* displayed.
*
* @param odfElement
* the OdfElement which owns this field.
* @param condition
* the condition that determines which of the two text strings is
* displayed.
* @param trueText
* the text string to display if a <code>condition</code> is
* true.
* @param falseText
* the text string to display if a <code>condition</code> is
* false.
* @return the created condition field.
*/
public static ConditionField createConditionField(OdfElement odfElement, String condition, String trueText,
String falseText) {
return new ConditionField(odfElement, condition, trueText, falseText, false);
}
/**
* Declare a hidden text field, which hides the text it contains when a
* specified condition is true.
*
* @param odfElement
* the OdfElement which owns this field.
* @param condition
* the condition that determines whether the text string is
* displayed or not.
* @param text
* the text string to display.
* @return the created condition field.
*/
public static ConditionField createHiddenTextField(OdfElement odfElement, String condition, String text) {
return new ConditionField(odfElement, condition, null, text, true);
}
// private constructor, cannot instantiate.
private Fields() {
};
}