/**
* 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.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.onexus.website.api.pages.browser.BrowserPageStatus;
import org.onexus.website.api.widgets.IWidgetManager;
import org.onexus.website.api.widgets.Widget;
import org.onexus.website.api.widgets.WidgetConfig;
import org.onexus.website.api.widgets.WidgetModel;
import javax.inject.Inject;
import java.util.Collection;
public class HorizontalWidgetBar extends Panel {
@Inject
private IWidgetManager widgetManager;
public HorizontalWidgetBar(String componentId, Collection<WidgetConfig> widgets, IModel<BrowserPageStatus> pageModel) {
super(componentId);
this.setRenderBodyOnly(true);
RepeatingView widgetsContainer = new RepeatingView("widgets");
// Add all the widgets
if (widgets != null) {
for (WidgetConfig widget : widgets) {
String button = widget.getButton();
if (button == null) {
Widget<?, ?> widgetPanel = widgetManager.create(widgetsContainer.newChildId(), new WidgetModel(widget.getId(), pageModel));
widgetsContainer.add(widgetPanel);
} else {
widgetsContainer.add(new ButtonWidget(widgetsContainer.newChildId(), widget, pageModel));
}
}
}
add(widgetsContainer);
}
}