// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.repository.ui.wizards.sqlpattern; import java.io.IOException; import java.io.InputStream; import java.net.URL; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.wizard.Wizard; import org.talend.commons.exception.PersistenceException; import org.talend.commons.ui.runtime.exception.ExceptionHandler; import org.talend.commons.ui.runtime.exception.RuntimeExceptionHandler; import org.talend.commons.ui.runtime.image.ECoreImage; import org.talend.commons.ui.runtime.image.ImageProvider; import org.talend.commons.utils.VersionUtils; import org.talend.core.CorePlugin; import org.talend.core.context.Context; import org.talend.core.context.RepositoryContext; import org.talend.core.model.general.ILibrariesService; import org.talend.core.model.properties.ByteArray; import org.talend.core.model.properties.PropertiesFactory; import org.talend.core.model.properties.Property; import org.talend.core.model.properties.SQLPatternItem; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.repository.i18n.Messages; import org.talend.repository.model.IProxyRepositoryFactory; /** * Wizard for the creation of a new project. <br/> * * $Id: NewProcessWizard.java 914 2006-12-08 08:28:53 +0000 (ven., 08 déc. 2006) bqian $ * */ public class NewSqlpatternWizard extends Wizard { /** Main page. */ private NewSqlpatternWizardPage mainPage; /** Created project. */ private SQLPatternItem sqlpatternItem; private Property property; private IPath path; /** * Constructs a new NewProjectWizard. * * @param author Project author. * @param server * @param password */ public NewSqlpatternWizard(IPath path) { super(); this.path = path; this.property = PropertiesFactory.eINSTANCE.createProperty(); this.property.setAuthor(((RepositoryContext) CorePlugin.getContext().getProperty(Context.REPOSITORY_CONTEXT_KEY)) .getUser()); this.property.setVersion(VersionUtils.DEFAULT_VERSION); this.property.setStatusCode(""); //$NON-NLS-1$ sqlpatternItem = PropertiesFactory.eINSTANCE.createSQLPatternItem(); sqlpatternItem.setProperty(property); ILibrariesService service = CorePlugin.getDefault().getLibrariesService(); URL url = service.getSqlPatternTemplate(); ByteArray byteArray = PropertiesFactory.eINSTANCE.createByteArray(); InputStream stream = null; try { stream = url.openStream(); byte[] innerContent = new byte[stream.available()]; stream.read(innerContent); stream.close(); byteArray.setInnerContent(innerContent); } catch (IOException e) { RuntimeExceptionHandler.process(e); } sqlpatternItem.setEltName(path.segment(0)); sqlpatternItem.setContent(byteArray); sqlpatternItem.setSystem(false); } /** * @see org.eclipse.jface.wizard.Wizard#addPages() */ @Override public void addPages() { mainPage = new NewSqlpatternWizardPage(property, path); addPage(mainPage); setWindowTitle("New SQLTemplate"); //$NON-NLS-1$ setDefaultPageImageDescriptor(ImageProvider.getImageDesc(ECoreImage.METADATA_SQLPATTERN_WIZ)); } /** * @see org.eclipse.jface.wizard.Wizard#performFinish() */ @Override public boolean performFinish() { IProxyRepositoryFactory repositoryFactory = ProxyRepositoryFactory.getInstance(); try { property.setId(repositoryFactory.getNextId()); repositoryFactory.create(sqlpatternItem, mainPage.getDestinationPath()); } catch (PersistenceException e) { MessageDialog.openError(getShell(), Messages.getString(Messages.getString("NewSqlpatternWizard.failureTitle")), ""); //$NON-NLS-1$//$NON-NLS-2$ ExceptionHandler.process(e); } return sqlpatternItem != null; } /** * Getter for project. * * @return the project */ public SQLPatternItem getSQLPattern() { return this.sqlpatternItem; } }