1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /* $Id: ConditionalElementListener.java 679326 2008-07-24 09:35:34Z vhennebert $ */
19 
20 package org.apache.fop.layoutmgr;
21 
22 import org.apache.fop.traits.MinOptMax;
23 
24 /**
25  * This interface is used to notify layout managers about the situation around spaces, borders
26  * and padding just before the addArea() method is called when a part is being painted.
27  */
28 public interface ConditionalElementListener {
29 
30     /**
31      * Notifies the layout manager about the effective length of its space.
32      * @param side the side to which the space applies
33      * @param effectiveLength the effective length after space-resolution (null means zero length)
34      */
notifySpace(RelSide side, MinOptMax effectiveLength)35     void notifySpace(RelSide side, MinOptMax effectiveLength);
36 
37     /**
38      * Notifies the layout manager about the effective length/width of its border.
39      * @param side the side to which the border applies
40      * @param effectiveLength the effective length in the current break situation
41      *                        (null means zero length)
42      */
notifyBorder(RelSide side, MinOptMax effectiveLength)43     void notifyBorder(RelSide side, MinOptMax effectiveLength);
44 
45     /**
46      * Notifies the layout manager about the effective length/width of its padding.
47      * @param side the side to which the padding applies
48      * @param effectiveLength the effective length in the current break situation
49      *                        (null means zero length)
50      */
notifyPadding(RelSide side, MinOptMax effectiveLength)51     void notifyPadding(RelSide side, MinOptMax effectiveLength);
52 
53 }
54