001    // Copyright 2008 Thiago H. de Paula Figueiredo
002    //
003    // Licensed under the Apache License, Version 2.0 (the "License");
004    // you may not use this file except in compliance with the License.
005    // You may obtain a copy of the License at
006    //
007    //     http://www.apache.org/licenses/LICENSE-2.0
008    //
009    // Unless required by applicable law or agreed to in writing, software
010    // distributed under the License is distributed on an "AS IS" BASIS,
011    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012    // See the License for the specific language governing permissions and
013    // limitations under the License.
014    
015    package br.com.arsmachina.tapestrycrud.components;
016    
017    import org.apache.tapestry5.annotations.Mixin;
018    import org.apache.tapestry5.annotations.SetupRender;
019    import org.apache.tapestry5.corelib.mixins.DiscardBody;
020    
021    /**
022     * A component that doesn't render its tag nor its body. It is used for 
023     * previewability purposes and works a lot like Tapestry 4's <code>$remove$</code>.
024     * One example can be found
025     * <a href="http://ars-machina.svn.sourceforge.net/viewvc/ars-machina/example/trunk/src/main/webapp/Index.tml?view=markup"
026     *              >in the Ars Machina Project Example Application</a>.
027     * 
028     * @author Thiago H. de Paula Figueiredo
029     */
030    public class Remove {
031    
032            @Mixin
033            @SuppressWarnings("unused")
034            private DiscardBody discardBody;
035            
036            @SetupRender
037            public boolean nothing() {
038                    return true;
039            }
040    
041    }