package org.basex.gui.view.map;
import org.basex.data.FTPos;
import org.basex.gui.view.ViewRect;
/**
* View rectangle.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
final class MapRect extends ViewRect implements Comparable<MapRect> {
/** Thumbnail view. */
boolean thumb;
/** Full-text position values. */
FTPos pos;
/** Abstraction level for thumbnail. */
byte thumbal;
/** Height of a thumbnail unit. */
byte thumbfh;
/** Height of an empty line. */
byte thumblh;
/** Width of a thumbnail unit. */
double thumbf;
/** Width of a space between two thumbnails. */
double thumbsw;
/**
* Simple rectangle constructor.
* @param xx x position
* @param yy y position
* @param ww width
* @param hh height
*/
MapRect(final int xx, final int yy, final int ww, final int hh) {
super(xx, yy, ww, hh);
}
/**
* Default rectangle constructor, specifying additional rectangle
* attributes such as id, level and orientation.
* @param xx x position
* @param yy y position
* @param ww width
* @param hh height
* @param p rectangle pre value
* @param l level
*/
MapRect(final int xx, final int yy, final int ww, final int hh,
final int p, final int l) {
this(xx, yy, ww, hh);
pre = p;
level = l;
}
/**
* Constructor taking MapRect for position initialization.
* @param r pos and dimension rectangle
* @param p rectangle pre value
*/
MapRect(final ViewRect r, final int p) {
this(r.x, r.y, r.w, r.h, p, r.level);
}
/**
* Verifies if the specified rectangle is contained inside the rectangle.
* @param r rectangle
* @return result of comparison
*/
boolean contains(final MapRect r) {
return r.x >= x && r.y >= y && r.x + r.w <= x + w && r.y + r.h <= y + h;
}
@Override
public boolean equals(final Object o) {
return o instanceof MapRect && ((MapRect) o).pre == pre;
}
@Override
public int compareTo(final MapRect r) {
return pre - r.pre;
}
@Override
public int hashCode() {
return pre;
}
}