/**
* Copyright 2012 Universitat Pompeu Fabra.
*
* 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 org.onexus.website.api.pages.browser.layouts;
import org.apache.commons.collections.CollectionUtils;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.string.StringValue;
import org.onexus.website.api.pages.PageConfig;
import org.onexus.website.api.pages.browser.BrowserPageStatus;
import org.onexus.website.api.pages.browser.ViewConfig;
import org.onexus.website.api.utils.visible.VisiblePredicate;
import org.onexus.website.api.widgets.WidgetConfig;
import java.util.ArrayList;
import java.util.List;
public class AbstractLayout extends Panel {
public AbstractLayout(String panelId, IModel<BrowserPageStatus> statusModel) {
super(panelId, statusModel);
}
public PageConfig getPageConfig() {
BrowserPageStatus status = getPageStatus();
return status == null ? null : status.getConfig();
}
public BrowserPageStatus getPageStatus() {
return (BrowserPageStatus) getDefaultModelObject();
}
public List<WidgetConfig> filterWidgets(String selectedWidgets) {
List<WidgetConfig> widgets = ViewConfig.getSelectedWidgetConfigs(getPageConfig(), selectedWidgets);
VisiblePredicate predicate = new VisiblePredicate(getPageStatus().getORI(), getPageStatus().getEntitySelections());
List<WidgetConfig> visibleWidgets = new ArrayList<WidgetConfig>();
CollectionUtils.select(widgets, predicate, visibleWidgets);
return visibleWidgets;
}
protected boolean isEmbed() {
StringValue embed = getPage().getPageParameters().get("embed");
return embed.toBoolean(false);
}
}