package tk.eclipse.plugin.htmleditor.wizards;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.INewWizard;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import tk.eclipse.plugin.htmleditor.HTMLPlugin;
/**
* XML creation wizard. Users could create new XML file by the following sequence:
* <ol>
* <li>input container and file name.</li>
* <li>input PublicID and SystemID of the schema</li>
* <li>select root tag when schema is specified</li>
* </ol>
* <p>
* If local DTD is specified in the DTD preference page,
* they are displayed at the DTD selection combo box as proposals.
* </p>
* @author Naoki Takezoe
*/
public class XMLNewWizard extends Wizard implements INewWizard {
private IStructuredSelection _selection;
private XMLNewWizardPage _page1;
private XMLDTDWizardPage _page2;
public XMLNewWizard() {
super();
setNeedsProgressMonitor(true);
setWindowTitle(HTMLPlugin.getResourceString("XMLNewWizardPage.Title"));
}
@Override
public void addPages() {
_page1 = new XMLNewWizardPage("page1",_selection);
_page1.setFileName("newfile.xml");
_page1.setTitle(HTMLPlugin.getResourceString("XMLNewWizardPage.Title"));
_page1.setDescription(HTMLPlugin.getResourceString("XMLNewWizardPage.Description"));
_page2 = new XMLDTDWizardPage("page2", _page1);
addPage(_page1);
addPage(_page2);
}
@Override
public boolean performFinish() {
_page1.setSchemaInfo(_page2.getUseDTD(),_page2.getPublicID(),_page2.getSystemID(),
_page2.getUseXSD(),_page2.getSchemaURI(),_page2.getDocumentRoot());
IFile file = _page1.createNewFile();
if(file==null){
return false;
}
try {
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IDE.openEditor(page, file, true);
} catch(PartInitException ex){
HTMLPlugin.logException(ex);
return false;
}
return true;
}
public void init(IWorkbench workbench, IStructuredSelection selection) {
this._selection = selection;
}
// private InputStream getInitialContents(){
// return null;
// }
}