All Downloads are FREE. Search and download functionalities are using the official Maven repository.

redora.client.util.Field Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2009-2010 Nanjing RedOrange ltd (http://www.red-orange.cn)
 *
 * Licensed 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 redora.client.util;

import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.TextColumn;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import redora.client.Persistable;

/**
 * Meta data container for attributes of a model.
 * In order to display a field in the GWT client, use this container to get all the
 * necessary info on label and help texts.
* Redora will generate for each model object a PojoFields class located in the * .rdo.gwt.model.fields package. All attributes will be wrapped in this container. *
* For the field labels you must define captions in the object model. One caption for each * language you want to support. If a caption is not defined for a table label, the form label * will be used. If both table and form are not defined, the attribute's name will be used. *
* Help texts are provided through the help tags in the model. If provided, you could use these * for example in the HTML title attribute or add a ?-icon behind the field in the display. * * @author Redora (www.redora.net) */ public class Field { public enum Type { String, Integer, Long, Double, Boolean, Date, Datetime, Enum, Html, Set, Object } @NotNull public final String name; @NotNull public final String displayNameTable; @NotNull public final String displayNameForm; @NotNull public final String inputID; @NotNull public final Type type; public final boolean notNull; @Nullable public final String helpInfo; public final int maxLength; public final Column column; /** * @param name Original name as in the model. No i18n. * @param inputID * @param type Equivalent to the attribute label name. */ public Field(@NotNull String name, @NotNull String inputID, @NotNull Type type, Column column) { this(name, name, name, inputID, type, false, null, -1, column); } /** * @param name Original name as in the model. No i18n. * @param displayNameTable Short display name, used in table view. * Retrieved from the caption tag. If not defined in the caption tag, * this field is the same as displayNameForm. * @param displayNameForm Long display name, used in form view. Retrieved * from the caption tag. If not defined in the caption tag, this * field is the same as name. * @param inputID * @param type Equivalent to the attribute label name. * @param notNull True is this field is mandatory. * @param helpInfo The help tag, if provided. */ public Field(@NotNull String name, @NotNull String displayNameTable, @NotNull String displayNameForm, @NotNull String inputID, @NotNull Type type, boolean notNull, @Nullable String helpInfo, Column column) { this(name, displayNameTable, displayNameForm, inputID, type, notNull, helpInfo, -1, column); } /** * @param name Original name as in the model. No i18n. * @param displayNameTable Short display name, used in table view. * Retrieved from the caption tag. If not defined in the caption tag, * this field is the same as displayNameForm. * @param displayNameForm Long display name, used in form view. Retrieved * from the caption tag. If not defined in the caption tag, this * field is the same as name. * @param inputID * @param type Equivalent to the attribute label name. * @param notNull True is this field is mandatory. * @param helpInfo The help tag, if provided. * @param maxLength Only for string attributes, the max length properties. * For non-strings this is -1. */ public Field(@NotNull String name, @NotNull String displayNameTable, @NotNull String displayNameForm, @NotNull String inputID, @NotNull Type type, boolean notNull, @Nullable String helpInfo, int maxLength, Column column) { this.name = name; this.displayNameTable = displayNameTable; this.displayNameForm = displayNameForm; this.inputID = inputID; this.type = type; this.column = column; this.notNull = notNull; this.helpInfo = helpInfo; this.maxLength = maxLength; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy