/*
* #%L
* BroadleafCommerce Open Admin Platform
* %%
* Copyright (C) 2009 - 2013 Broadleaf Commerce
* %%
* 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.
* #L%
*/
package org.broadleafcommerce.openadmin.web.form.entity;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.CompareToBuilder;
import org.broadleafcommerce.openadmin.web.form.component.ListGrid;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Tab {
protected String title;
protected Integer order;
protected String tabClass;
Set<FieldGroup> fieldGroups = new TreeSet<FieldGroup>(new Comparator<FieldGroup>() {
@Override
public int compare(FieldGroup o1, FieldGroup o2) {
return new CompareToBuilder()
.append(o1.getOrder(), o2.getOrder())
.append(o1.getTitle(), o2.getTitle())
.toComparison();
}
});
Set<ListGrid> listGrids = new TreeSet<ListGrid>(new Comparator<ListGrid>() {
@Override
public int compare(ListGrid o1, ListGrid o2) {
return new CompareToBuilder()
.append(o1.getOrder(), o2.getOrder())
.append(o1.getSubCollectionFieldName(), o2.getSubCollectionFieldName())
.toComparison();
}
});
public Boolean getIsVisible() {
if (listGrids.size() > 0) {
return true;
}
for (FieldGroup fg : fieldGroups) {
if (fg.getIsVisible()) {
return true;
}
}
return false;
}
public FieldGroup findGroup(String groupTitle) {
for (FieldGroup fg : fieldGroups) {
if (fg.getTitle() != null && fg.getTitle().equals(groupTitle)) {
return fg;
}
}
return null;
}
public List<Field> getFields() {
List<Field> fields = new ArrayList<Field>();
for (FieldGroup fg : getFieldGroups()) {
fields.addAll(fg.getFields());
}
return fields;
}
public void removeListGrid(ListGrid listGrid) {
listGrids.remove(listGrid);
}
public String getTabClass() {
return StringUtils.isBlank(tabClass) ? "" : " " + tabClass;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
public Set<FieldGroup> getFieldGroups() {
return fieldGroups;
}
public void setFieldGroups(Set<FieldGroup> fieldGroups) {
this.fieldGroups = fieldGroups;
}
public Set<ListGrid> getListGrids() {
return listGrids;
}
public void setListGrids(Set<ListGrid> listGrids) {
this.listGrids = listGrids;
}
public void setTabClass(String tabClass) {
this.tabClass = tabClass;
}
}