/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.transformation.ui.wizards.rest; import java.util.Properties; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.teiid.core.designer.util.CoreStringUtil; import org.teiid.core.designer.util.I18nUtil; import org.teiid.designer.transformation.ui.UiConstants; import org.teiid.designer.transformation.ui.UiPlugin; import org.teiid.designer.transformation.ui.wizards.file.TeiidMetadataImportInfo; import org.teiid.designer.ui.common.InternalUiConstants; import org.teiid.designer.ui.common.util.WizardUtil; import org.teiid.designer.ui.common.widget.DefaultScrolledComposite; import org.teiid.designer.ui.common.wizard.AbstractWizardPage; public class TeiidRestImporterModelDefinitionPage extends AbstractWizardPage implements UiConstants, InternalUiConstants.Widgets, CoreStringUtil.Constants { // =========================================================================================================================== // Constants private static final String I18N_PREFIX = I18nUtil.getPropertyPrefix(TeiidRestImporterModelDefinitionPage.class); private static final String TITLE = getString("title"); //$NON-NLS-1$ private static final String REST_TITLE = getString("restTitle"); //$NON-NLS-1$ private static final String INITIAL_MESSAGE = getString("initialMessage"); //$NON-NLS-1$ private static final String EMPTY_STRING = ""; //$NON-NLS-1$ private static String getString(final String id) { return Util.getString(I18N_PREFIX + id); } private TeiidMetadataImportInfo info; boolean creatingControl = false; boolean synchronizing = false; boolean processingChecks = false; Properties designerProperties; boolean controlComplete = false; boolean visibleCompleted = false; ModelsDefinitionSection modelsDefinitionSection; /** * Constructor * * @since 4.0 * @param info * the import info object */ public TeiidRestImporterModelDefinitionPage(TeiidMetadataImportInfo info) { this(null, info); } /** * @since 4.0 */ public TeiidRestImporterModelDefinitionPage(Object selection, TeiidMetadataImportInfo info) { super(TeiidRestImporterModelDefinitionPage.class.getSimpleName(), TITLE); // Set page incomplete initially this.info = info; setPageComplete(false); setImageDescriptor(UiPlugin.getDefault().getImageDescriptor(Images.IMPORT_TEIID_METADATA)); } @Override public void createControl(Composite parent) { // Create page final Composite hostPanel = new Composite(parent, SWT.NONE); hostPanel.setLayout(new GridLayout(1, false)); hostPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); // Create page DefaultScrolledComposite scrolledComposite = new DefaultScrolledComposite(hostPanel); hostPanel.setLayout(new GridLayout(1, false)); hostPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); final Composite mainPanel = scrolledComposite.getPanel(); mainPanel.setLayoutData(new GridData(GridData.FILL_BOTH)); mainPanel.setLayout(new GridLayout(1, false)); modelsDefinitionSection = new ModelsDefinitionSection(this, this.info, mainPanel); scrolledComposite.sizeScrolledPanel(); setControl(hostPanel); setMessage(INITIAL_MESSAGE); controlComplete = true; } public void setDesignerProperties(Properties properties) { this.designerProperties = properties; } void synchronizeUI() { this.modelsDefinitionSection.synchronizeUi(); } private boolean validatePage() { // Validate the models section if (!this.modelsDefinitionSection.validatePage()) { return false; } setThisPageComplete(EMPTY_STRING, NONE); return true; } protected void setThisPageComplete(String message, int severity) { WizardUtil.setPageComplete(this, message, severity); } @Override public void setVisible(boolean visible) { super.setVisible(visible); if (visible) { this.setTitle(REST_TITLE); synchronizeUI(); validatePage(); visibleCompleted = true; } } }