/* * Copyright 2011 Marc Grue. * * 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.qi4j.sample.dcicargo.sample_a.communication.web; import com.google.code.joliratools.StatelessAjaxFallbackLink; import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.qi4j.sample.dcicargo.sample_a.infrastructure.WicketQi4jApplication; import org.qi4j.sample.dcicargo.sample_a.infrastructure.wicket.page.BaseWebPage; import org.qi4j.sample.dcicargo.sample_a.infrastructure.wicket.tabs.TabsPanel; /** * Base Wicket page of the DCI Sample application */ public class BasePage extends BaseWebPage { private final Link toggleLinks; private static boolean showLInks = false; private Fragment links = new Fragment( "links", "linksFragment", this ); public BasePage( String activeTab ) { this( activeTab, null ); } public BasePage( String activeTab, PageParameters pageParameters ) { super( pageParameters ); toggleLinks = new StatelessAjaxFallbackLink<Void>( "toggleLinks" ) { @Override public void onClick( AjaxRequestTarget target ) { // Open/close triangle of this toggle link add( new AttributeModifier( "class", Model.of( showLInks ? "closed" : "open" ) ) ); // Show/hide links links.setVisible( showLInks = !showLInks ); // Update with ajax if browser allows if( target != null ) { target.add( links, toggleLinks ); } } }; add( toggleLinks ); add( links.setOutputMarkupPlaceholderTag( true ).setVisible( false ) ); add( new Label( "version", ( (WicketQi4jApplication) getApplication() ).appVersion() ) ); add( new TabsPanel( activeTab ) ); } }