KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > lobobrowser > html > renderer > LineMargin


1 /*
2     GNU LESSER GENERAL PUBLIC LICENSE
3     Copyright (C) 2006 The Lobo Project
4
5     This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Lesser General Public
7     License as published by the Free Software Foundation; either
8     version 2.1 of the License, or (at your option) any later version.
9
10     This library is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13     Lesser General Public License for more details.
14
15     You should have received a copy of the GNU Lesser General Public
16     License along with this library; if not, write to the Free Software
17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
19     Contact info: xamjadmin@users.sourceforge.net
20 */

21 package org.lobobrowser.html.renderer;
22
23 class LineMargin {
24     private final int clearX;
25     private final int clearY;
26     private final LineMargin next;
27     
28     public LineMargin(LineMargin next, int cleary, int totalXOffset) {
29         super();
30         this.next = next;
31         this.clearY = cleary;
32         this.clearX = totalXOffset;
33     }
34
35     public int getClearY() {
36         return clearY;
37     }
38
39     public LineMargin getNext() {
40         return next;
41     }
42
43     public int getOffset() {
44         return clearX;
45     }
46     
47     public boolean equals(Object JavaDoc other) {
48         if(!(other instanceof LineMargin)) {
49             return false;
50         }
51         LineMargin olm = (LineMargin) other;
52         return olm.clearX == this.clearX && olm.clearY == this.clearY &&
53                org.lobobrowser.util.Objects.equals(olm.next, this.next);
54     }
55     
56     public LineMargin translated(int yoffset, int xoffset) {
57         int newClearY = this.clearY - yoffset;
58         int newOffsetX = this.clearX - xoffset;
59         if(newOffsetX < 0) {
60             newOffsetX = 0;
61         }
62         LineMargin oldNext = this.next;
63         LineMargin newNext = oldNext == null ? null : oldNext.translated(yoffset, xoffset);
64         return new LineMargin(newNext, newClearY, newOffsetX);
65     }
66 }
67
Popular Tags