/**
 * Copyright (C) 2006-2007  NTT DATA CORPORATION
 * 
 * Version: 1.0.0 2007/04/01
 *  
 */
package net.cellcomputing.himawari.display;

import net.cellcomputing.himawari.library.types.CqFile;

/**
 * @author NTT DATA Corporation
 * Display命令に対応する抽象クラス
 * RI命令のDisplayの内容を管理する
 * 
 */
public abstract strictfp class DisplayRequest {
	protected String name;
	protected String m_type;
	protected String m_mode;
	protected int modeID;
	protected int dataOffset;
	protected int dataSize;
	protected ImageData imageData;			//imageData
	
	public abstract void openRequest();
	public abstract void display();			//Viewに表示を行う
	public abstract void closeRequest();		//Fileへの書き出しを行う
	
	protected int m_modeHash; 
	
	/**
	 * コンストラクタ
	 * @param name ディスプレイ名
	 * @param type ディスプレイタイプ(TIFF等)
	 * @param mode ディスプレイモード(RGB等)
	 * @param modeID
	 * @param dataOffset
	 * @param dataSize
	 * @param imageData 対応する画像データ
	 */
	public DisplayRequest(String name, final String type,final String mode,
			int modeID, int dataOffset, int dataSize,ImageData imageData){
//		this.name = name;
		this.name = CqFile.FixupPathIfNeed(name);
		this.m_type = type;
		this.m_mode = mode;
		this.modeID = modeID;
		this.dataOffset = dataOffset;
		this.dataSize = dataSize;
		this.imageData = imageData;
		m_modeHash = mode.hashCode();
	}
}
