/*******************************************************************************
* Copyright (c) 2008 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.edimap.editor;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.PartInitException;
import org.jboss.tools.smooks.configuration.SmooksConfigurationActivator;
import org.jboss.tools.smooks.editor.AbstractSmooksFormEditor;
import org.jboss.tools.smooks.model.medi.Delimiters;
import org.jboss.tools.smooks.model.medi.Description;
import org.jboss.tools.smooks.model.medi.DocumentRoot;
import org.jboss.tools.smooks.model.medi.EdiMap;
import org.jboss.tools.smooks.model.medi.MEdiFactory;
/**
*
* @author Dart dpeng@redhat.com
*
*/
public class EDIMapFormEditor extends AbstractSmooksFormEditor {
private EDIMapFormPage ediPage = null;
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.forms.editor.FormEditor#addPages()
*/
@Override
protected void addPages() {
try {
ediPage = new EDIMapFormPage(this,"EDIMap", "EDIMap"); //$NON-NLS-1$ //$NON-NLS-2$
this.addValidateListener(ediPage);
int index = this.addPage(ediPage);
setPageText(index, Messages.EDIMapFormEditor_Page_Text);
} catch (PartInitException e) {
SmooksConfigurationActivator.getDefault().log(e);
}
super.addPages();
}
// public void inputTypeChanged(SmooksGraphicsExtType extType) {
// graphChanged = true;
// firePropertyChange(PROP_DIRTY);
// }
/* (non-Javadoc)
* @see org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#handleDocumentChange()
*/
@Override
protected void handleDocumentChange() {
super.handleDocumentChange();
if(ediPage != null){
ediPage.rebuildGUI();
}
}
/* (non-Javadoc)
* @see org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#doSave(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public void doSave(IProgressMonitor monitor) {
super.doSave(monitor);
ediPage.doSave(monitor);
}
/* (non-Javadoc)
* @see org.jboss.tools.smooks.editor.AbstractSmooksFormEditor#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
*/
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
super.init(site, input);
EObject smooksModel = getSmooksModel();
// init MEDI model
if(smooksModel instanceof DocumentRoot){
EdiMap map = ((DocumentRoot)smooksModel).getEdimap();
if(map == null){
map = MEdiFactory.eINSTANCE.createEdiMap();
((DocumentRoot)smooksModel).setEdimap(map);
}
Description description = map.getDescription();
if(description == null){
description = MEdiFactory.eINSTANCE.createDescription();
map.setDescription(description);
}
Delimiters delimiters = map.getDelimiters();
if(delimiters == null){
delimiters = MEdiFactory.eINSTANCE.createDelimiters();
map.setDelimiters(delimiters);
}
}
}
// @Override
// protected SmooksGraphicsExtType createSmooksGraphcsExtType(Object smooksModel) {
// IFileEditorInput editorInput = (IFileEditorInput)getEditorInput();
// IFile file = editorInput.getFile();
// String extFileName = file.getName() + SmooksConstants.SMOOKS_GRAPHICSEXT_EXTENTION_NAME_WITHDOT;
// setPartName(file.getName());
// IContainer container = file.getParent();
// if (container != null && container.exists()) {
// IFile extFile = container.getFile(new Path(extFileName));
// if (extFile != null && !extFile.exists()) {
// try {
// String version = SmooksUIUtils.judgeSmooksPlatformVersion((EObject)smooksModel);
// String inputType = SmooksUIUtils.judgeInputType((EObject)smooksModel);
// SmooksConfigurationFileNewWizard.createExtentionFile(extFile, version, inputType, null);
// } catch (Throwable t) {
// // ignore
// }
// }
// if (extFile != null && extFile.exists()) {
// try {
// smooksGraphicsExt = SmooksUIUtils.loadSmooksGraphicsExt(extFile);
// } catch (IOException e) {
// SmooksConfigurationActivator.getDefault().log(e);
// }
// }
// }
// return smooksGraphicsExt;
// }
//
// @Override
// protected void generateSmooksGraphExtWithSave() {
// super.generateSmooksGraphExtWithSave();
// }
}