blob: 74ef228b97ab89e02e5fd5018cba2f7f87273bfc [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.apache.empire.jsf2.websample.db;
import org.apache.empire.commons.Options;
import org.apache.empire.data.Column;
import org.apache.empire.db.DBContext;
import org.apache.empire.jsf2.controls.TextInputControl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SampleDBwithMeta extends SampleDB
{
// Logger
private static final Logger log = LoggerFactory.getLogger(SampleDBwithMeta.class);
@Override
public void open(DBContext context)
{
super.open(context);
// Hint about metadata
log.info("Basic metadata such as Title has already been set in SampleTable.addColumn()");
// add additional metadata e.g. for JSF-controls
addMeta(EMPLOYEES);
}
private void addMeta(SampleDB.TEmployees T)
{
log.info("Adding additional Metadata for {}", T.getName());
// Set custom style for SALUTATION
T.SALUTATION.setAttribute("styleClass", "eInpShort");
// Create Options for GENDER column
// add the message-keys instead of the enum string value
Options genders = new Options();
genders.set(Gender.M, "!option.employee.gender.male");
genders.set(Gender.F, "!option.employee.gender.female");
T.GENDER.setOptions(genders);
T.GENDER.setControlType("select");
T.GENDER.setAttribute("styleClass", "eInpShort");
// RETIRED column
Options retired = new Options();
retired.set(false, "!option.employee.active");
retired.set(true, "!option.employee.retired");
T.RETIRED.setOptions(retired);
T.RETIRED.setControlType("checkbox");
// Hint for DATE_OF_BIRTH
T.DATE_OF_BIRTH.setAttribute("format:date", "yyyy-MM-dd");
T.DATE_OF_BIRTH.setAttribute("hint", "[yyyy-MM-dd]");
// Salary special
T.SALARY.setAttribute("styleClass", "eInpDecimal")
.setAttribute(TextInputControl.FORMAT_UNIT_ATTRIBUTE, "USD")
.setAttribute(Column.COLATTR_NUMBER_TYPE, "Decimal")
.setAttribute(Column.COLATTR_FRACTION_DIGITS, 2)
.setAttribute(Column.COLATTR_NUMBER_GROUPSEP, true);
// Set special control types
T.DEPARTMENT_ID.setControlType("select");
// T.PHONE_NUMBER .setControlType("phone");
// UPDATE_TIMESTAMP
T.UPDATE_TIMESTAMP.setAttribute("format:date", "full");
// format="date-format:full" readonly="true" rendered="#{page.idParam != null}"
}
}