/** * @version $Id: AbstractNewDictionaryWizard.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/08/02 15:06:46 * @author KMorishima * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.ui.wizards; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard; import com.tida_okinawa.corona.internal.ui.views.model.IUIDictionary; import com.tida_okinawa.corona.io.model.dic.DicType; import com.tida_okinawa.corona.ui.TIDA; import com.tida_okinawa.corona.ui.ViewUtil; /** * * @author KMorishima */ public abstract class AbstractNewDictionaryWizard extends BasicNewResourceWizard { private static final String TITLE = Messages.NewDictionaryWizard_WizardTitle_CreateDictionary; /** * 辞書新規登録ウィザードのタイトルをセットする */ public AbstractNewDictionaryWizard() { setWindowTitle(TITLE); } /** * @return 作成する辞書の拡張子を返す */ abstract protected DicType getDicType(); private NewDictionaryCreationPage page1; @Override public void addPages() { String title = TITLE; switch (getDicType()) { case COMMON: title = Messages.NewDictionaryWizard_PageTitle_CreateCommonDictionary; break; case SPECIAL: title = Messages.NewDictionaryWizard_PageTitle_CreateSpecialDictionary; break; case PATTERN: title = Messages.NewDictionaryWizard_PageTitle_CreatePatternDictionary; break; default: break; } page1 = new NewDictionaryCreationPage(title, getDicType(), this.selection); addPage(page1); } @Override public boolean performFinish() { IUIDictionary uiDic = createNewFile(); if (uiDic == null) { System.err.println("何らかの理由により、辞書作成に失敗"); // TODO is this needed return false; } // Open editor on new file. IWorkbenchWindow dw = getWorkbench().getActiveWorkbenchWindow(); try { if (dw != null) { IWorkbenchPage page = dw.getActivePage(); if (page != null) { TIDA.openEditor(page, uiDic, true); } } } catch (PartInitException e) { e.printStackTrace(); } ViewUtil.refreshDatabaseView(0); return true; } protected IUIDictionary createNewFile() { page1.createNewFile(); return page1.getDictionary(); } }