Label.java
/*
* Created on 2005/07/28
* Copyright (C) 2005 Koga Laboratory. All rights reserved.
*
*/
package org.mklab.tool.graph.gnuplot.decoration;
/**
* ラベルを表すクラスです。
*
* @author koga
* @version $Revision: 1.7 $, 2005/07/28
*/
public abstract class Label implements GnuplotComponent {
/** ラベルテキスト */
private String text;
/** 表示位置のx方向のオフセット */
private double xOffset;
/** 表示位置のy方向のオフセット */
private double yOffset;
/**
* ラベルを設定します。
*
* @param text ラベルテキスト
*/
public Label(String text) {
this(text, 0, 0);
}
/**
* ラベルを設定します。
*
* @param text ラベルテキスト
* @param xOffset 表示位置のx方向のオフセット
* @param yOffset 表示位置のy方向のオフセット
*/
public Label(String text, double xOffset, double yOffset) {
this.text = text;
this.xOffset = xOffset;
this.yOffset = yOffset;
}
/**
* {@inheritDoc}
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((this.text == null) ? 0 : this.text.hashCode());
long temp;
temp = Double.doubleToLongBits(this.xOffset);
result = prime * result + (int)(temp ^ (temp >>> 32));
temp = Double.doubleToLongBits(this.yOffset);
result = prime * result + (int)(temp ^ (temp >>> 32));
return result;
}
/**
* {@inheritDoc}
*/
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
Label other = (Label)obj;
if (this.text == null) {
if (other.text != null) return false;
} else if (!this.text.equals(other.text)) return false;
if (Double.doubleToLongBits(this.xOffset) != Double.doubleToLongBits(other.xOffset)) return false;
if (Double.doubleToLongBits(this.yOffset) != Double.doubleToLongBits(other.yOffset)) return false;
return true;
}
/**
* ラベルを設定します。
*
* @param text ラベルテキスト
* @param xOffset 表示位置のx方向のオフセット
* @param yOffset 表示位置のy方向のオフセット
*/
public void setLabel(String text, double xOffset, double yOffset) {
this.text = text;
this.xOffset = xOffset;
this.yOffset = yOffset;
}
/**
* ラベルテキストを設定します。
*
* @param text ラベルテキスト
*/
public void setText(String text) {
this.text = text;
}
/**
* 表示位置のx方向のオフセットを得る。
*
* @return 表示位置のx方向のオフセット
*/
protected double getXOffset() {
return this.xOffset;
}
/**
* 表示位置のy方向のオフセットを得る。
*
* @return 表示位置のy方向のオフセット
*/
protected double getYOffset() {
return this.yOffset;
}
/**
* ラベルテキストを得る。
*
* @return ラベルテキスト
*/
public String getText() {
return this.text;
}
}