/*
 * Copyright (C) 2005 NTT DATA Corporation
 * 
 */
package org.postgresforest.tool.view;

import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;

/**
 * TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
public class ViewUtil {

	public static IViewPart updateView(String viewID) {
	    return updateView(viewID,false,false);
	}

	/**
	 * 
	 * @param viewID
	 * @param show	true表示/false表示しない
	 * @param focus　trueフォーカス/falseフォーカスしない
	 * @since
	 */
	public static IViewPart updateView(String viewID, boolean show, boolean focus) {
		
		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

		//VIEWの表示を行う
//		if(show){
		if((show) && (page != null)){
			try {
				page.showView(viewID,null,IWorkbenchPage.VIEW_VISIBLE);
			} catch (PartInitException e) {
				// TODO 自動生成された catch ブロック
				e.printStackTrace();
			}
		}
		
		//VIEWの表示更新
		IViewPart viewPart = page.findView(viewID);
		if(viewPart != null){
			ViewBase view = (ViewBase)viewPart.getAdapter(ViewBase.class);
			try {
                view.update();
            } catch (Exception e) {
            }
		}
		if((page != null) && (viewPart != null))
		//activeにするフォーカスを当てる
		if(focus){
			page.activate(viewPart);
		}
		
		return viewPart;
	} 
	/**
	 * 
	 */
	public static IViewPart findView(String id) {
		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
		
		//VIEWの表示更新
		return page.findView(id);

	}
}
