/*
 * 作成日: 2007/12/22
 */
package asandatabasebrowser.action;

import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;

import net.sourceforge.swingx.jspread.JSpread;

import asandatabasebrowser.Global;
import asandatabasebrowser.model.DbData;
import asandatabasebrowser.model.EditingRecord;
import asandatabasebrowser.model.TableInfo;
import asandatabasebrowser.view.DbTableFrame2;

public class RecordInsertAction extends AbstractAction {
	DbTableFrame2 frame;
	public RecordInsertAction(DbTableFrame2 frame) {
		super("RecordInsert");
		assert frame != null;
		this.frame = frame;
		putValue(SHORT_DESCRIPTION, "新しいレコードをデフォルト値で作成します");
		putValue(LONG_DESCRIPTION, "新しいレコードをデフォルト値で作成します");
		putValue(SMALL_ICON, Global.getImageIcon("/resources/RecordInsert.png"));
	}
	public void actionPerformed(ActionEvent ev) {
//		TableInfo info = (TableInfo) view.data.tableInfo;
		DbData data = frame.tableView.data;
		boolean[] sels = frame.tableView.getSheet().getSelectionArray(JSpread.ROW);
		//int[] rows = frame.tableView.getSelectedRecordIndex();
		TableInfo tableInfo = (TableInfo) data.tableInfo;
		// 編集状態にする.選択されていたらその数だけのレコードを挿入する。
		int count = 0;
		for (int i=0; i<sels.length; i++) {
			if (sels[i]) {
				data.addRecord(new EditingRecord(DbData.INSERT, tableInfo.createDefaultRecord()));
				count++;
			}
		}
		// 選択されたレコードがなければ、一軒だけ挿入する。
		if (count == 0) {
			data.addRecord(new EditingRecord(DbData.INSERT, tableInfo.createDefaultRecord()));
		}
		frame.setData(data);		
		frame.updateActionState();
	}
}
