/** * (C) Copyright 2013 Jabylon (http://www.jabylon.org) and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ /** * */ package org.jabylon.rest.ui.tools; import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.request.Request; import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.jabylon.rest.ui.model.OSGiStringResourceModel; import org.jabylon.rest.ui.model.PropertyPair; import org.jabylon.rest.ui.wicket.CustomWebRequest; /** * @author Johannes Utzig (jutzig.dev@googlemail.com) * */ public class PropertyToolTab implements ITab { private static final long serialVersionUID = 1L; private PropertyEditorTool tool; private IModel<PropertyPair> model; public PropertyToolTab(PropertyEditorTool tool) { super(); this.tool = tool; model = new Model<PropertyPair>(); } /* (non-Javadoc) * @see org.apache.wicket.extensions.markup.html.tabs.ITab#getTitle() */ @Override public IModel<String> getTitle() { return new OSGiStringResourceModel(tool.getClass(),tool.getName(),null); } /* (non-Javadoc) * @see org.apache.wicket.extensions.markup.html.tabs.ITab#getPanel(java.lang.String) */ @Override public WebMarkupContainer getPanel(String containerId) { Request request = RequestCycle.get().getRequest(); if (request instanceof CustomWebRequest) { CustomWebRequest cwr = (CustomWebRequest) request; //performance optimization. We don't need the tools on a post request //https://github.com/jutzig/jabylon/issues/197 if(cwr.isPost()) return new WebMarkupContainer(containerId); } return tool.createPanel(new PageParameters(), model, containerId); } /* (non-Javadoc) * @see org.apache.wicket.extensions.markup.html.tabs.ITab#isVisible() */ @Override public boolean isVisible() { return true; } public void setModel(IModel<PropertyPair> model) { this.model.setObject(model.getObject()); } }