/*
 * FullTextSearchApplicationPack
 * 全文検索アプリケーションのコンソール
 */
package org.logical_paradox.fts;

import javax.swing.JTextField;

import org.logical_paradox.console.ApplicationPack;

public final class FullTextSearchApplicationPack extends ApplicationPack {
	private SearchCore core;

	public FullTextSearchApplicationPack() {
		super();
	}
	// アプリケーション初期化
	public void init() throws Exception {
		core = new SearchCore(IndexAccessorFactory.getIndexAccessor(FullTextSearchProperty.FTS_INDEX_PROPERTY_NAME));
	}
	// テキストフィールドに何か入力された場合のイベント
	public void cbTextField( JTextField jtf ) throws Exception {
		String[] searchWords = jtf.getText().trim().split( " " );		// 半角スペース区切りで検索語を分割
		SearchResult[] results = core.search( searchWords );
		jtf.setText( "" );

		cleanLogView();

		if( results != null ) {
			getWriter().println( "該当: " + results.length );
			for( int i = 0; i < results.length; i++ ) {
				getWriter().println( "結果(" + i + "): " + results[i].pos[0]._pos );
				getWriter().println( "------------------------------" );		// 改行
				getWriter().println( results[i].result );
				getWriter().println( "------------------------------" );		// 改行
			}
		} else {
			getWriter().println( "一致しませんでした" );
		}
	}
	// アプリケーション終了処理
	public void destroy() throws Exception {
		if( core != null ) {
			core.close();
			core = null;
		}
	}
}

// end of FullTextSearchApplicationPack.java