Package org.fenixedu.academic.ui.renderers

Source Code of org.fenixedu.academic.ui.renderers.ContactTableRenderer

/**
* Copyright © 2002 Instituto Superior Técnico
*
* This file is part of FenixEdu Academic.
*
* FenixEdu Academic is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* FenixEdu Academic is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with FenixEdu Academic.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.fenixedu.academic.ui.renderers;

import java.util.Collection;
import java.util.List;

import org.fenixedu.academic.domain.contacts.PartyContact;

import pt.ist.fenixWebFramework.renderers.components.HtmlComponent;
import pt.ist.fenixWebFramework.renderers.components.HtmlInlineContainer;
import pt.ist.fenixWebFramework.renderers.components.HtmlTableCell;
import pt.ist.fenixWebFramework.renderers.components.HtmlTableCell.CellType;
import pt.ist.fenixWebFramework.renderers.components.HtmlTableRow;
import pt.ist.fenixWebFramework.renderers.components.HtmlText;
import pt.ist.fenixWebFramework.renderers.layouts.Layout;
import pt.ist.fenixWebFramework.renderers.model.MetaObject;
import pt.ist.fenixWebFramework.renderers.utils.RenderUtils;

public class ContactTableRenderer extends AbstractContactRenderer {
    private String label;

    private String rowClasses;

    private String leftColumnClasses;

    private String rightColumnClasses;

    private String leftLineStyle;

    private String rightLineStyle;

    @Override
    protected Layout getLayout(Object unfiltered, Class type) {
        return new Layout() {
            @Override
            public HtmlComponent createComponent(Object unfiltered, Class type) {
                List<MetaObject> contacts = getFilteredContacts((Collection<PartyContact>) unfiltered);
                if (contacts.isEmpty()) {
                    return new HtmlText();
                }
                HtmlInlineContainer span = new HtmlInlineContainer();
                int rowIndex = 0;
                for (MetaObject meta : contacts) {
                    HtmlTableRow row = new HtmlTableRow();
                    row.setClasses(getRowClasses());
                    if (rowIndex == 0) {
                        HtmlTableCell left = row.createCell(CellType.HEADER);
                        left.setClasses(getLeftColumnClasses());
                        left.setStyle(getLeftLineStyle());
                        left.setRowspan(contacts.size());
                        left.setBody(new HtmlText(RenderUtils.getResourceString(getBundle(), getLabel()) + ":"));
                    }
                    HtmlTableCell right = row.createCell();
                    right.setClasses(getRightColumnClasses());
                    right.setStyle(getRightLineStyle());
                    right.setBody(getValue((PartyContact) meta.getObject()));
                    span.addChild(row);
                    rowIndex++;
                }
                return span;
            }
        };
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public String getRowClasses() {
        return rowClasses;
    }

    public void setRowClasses(String rowClasses) {
        this.rowClasses = rowClasses;
    }

    public String getLeftColumnClasses() {
        return leftColumnClasses;
    }

    public void setLeftColumnClasses(String leftColumnClasses) {
        this.leftColumnClasses = leftColumnClasses;
    }

    public String getRightColumnClasses() {
        return rightColumnClasses;
    }

    public void setRightColumnClasses(String rightColumnClasses) {
        this.rightColumnClasses = rightColumnClasses;
    }

    public String getLeftLineStyle() {
        return leftLineStyle;
    }

    public void setLeftLineStyle(String leftLineStyle) {
        this.leftLineStyle = leftLineStyle;
    }

    public String getRightLineStyle() {
        return rightLineStyle;
    }

    public void setRightLineStyle(String rightLineStyle) {
        this.rightLineStyle = rightLineStyle;
    }
}
TOP

Related Classes of org.fenixedu.academic.ui.renderers.ContactTableRenderer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.