/* * 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.modelgenerator.wsdl.ui.wizards.soap.panels; import java.util.Properties; import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.source.VerticalRuler; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.teiid.core.designer.util.CoreStringUtil; import org.teiid.designer.modelgenerator.wsdl.model.Operation; import org.teiid.designer.modelgenerator.wsdl.ui.Messages; import org.teiid.designer.modelgenerator.wsdl.ui.wizards.soap.OperationsDetailsPage; import org.teiid.designer.transformation.ui.editors.sqleditor.SqlTextViewer; import org.teiid.designer.ui.common.graphics.ColorManager; import org.teiid.designer.ui.common.util.WidgetFactory; import org.teiid.designer.ui.common.util.WidgetUtil; import org.teiid.designer.ui.viewsupport.DesignerPropertiesUtil; /** * @since 8.0 */ public class WrapperProcedurePanel { Text wrapperProcedureText; SqlTextViewer sqlTextViewer; IDocument sqlDocument; IStatus status; final OperationsDetailsPage detailsPage; public WrapperProcedurePanel(Composite parent, OperationsDetailsPage detailsPage) { super(); this.detailsPage = detailsPage; init(parent); } @SuppressWarnings("unused") private void init(Composite parent) { WRAPPER_GROUP: { Label procedureNameLabel = new Label(parent, SWT.NONE); procedureNameLabel.setText(Messages.GeneratedProcedureName); this.wrapperProcedureText = new Text(parent, SWT.BORDER | SWT.SINGLE); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); wrapperProcedureText.setLayoutData(gridData); wrapperProcedureText.setForeground(WidgetUtil.getDarkBlueColor()); wrapperProcedureText.setEditable(true); wrapperProcedureText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { handleWrapperProcedureNameChanged(); } }); wrapperProcedureText.setEnabled(true); } SQL_TEXT_VIEWER: { Group group = WidgetFactory.createGroup(parent,Messages.GeneratedSQLStatement, SWT.NONE, 2); GridData gd = new GridData(GridData.FILL_BOTH); group.setLayoutData(gd); ColorManager colorManager = new ColorManager(); int styles = SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.FULL_SELECTION; sqlTextViewer = new SqlTextViewer(group, new VerticalRuler(0), styles, colorManager); sqlDocument = new Document(); sqlTextViewer.setInput(sqlDocument); sqlTextViewer.setEditable(false); sqlTextViewer.getTextWidget().setEnabled(true); sqlTextViewer.getTextWidget().setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW)); sqlDocument.set(CoreStringUtil.Constants.EMPTY_STRING); sqlTextViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); } } public void notifyOperationChanged(Operation operation) { validate(); updateUi(); } private void updateUi() { this.wrapperProcedureText.setText(detailsPage.getProcedureGenerator().getWrapperProcedureName()); this.sqlTextViewer.getDocument().set(detailsPage.getProcedureGenerator().getWrapperSqlString()); } private void handleWrapperProcedureNameChanged() { this.detailsPage.getProcedureGenerator().setWrapperProcedureName(this.wrapperProcedureText.getText()); this.sqlTextViewer.getDocument().set(detailsPage.getProcedureGenerator().getWrapperSqlString()); validate(); } private void validate() { this.detailsPage.updateStatus(); updateDesignerProperties(); } public IStatus getStatus() { return this.status; } private void updateDesignerProperties() { if( this.detailsPage.getProcedureGenerator().getWrapperProcedureName() != null ) { Properties designerProperties = this.detailsPage.getImportManager().getDesignerProperties(); if (designerProperties != null) { DesignerPropertiesUtil.setPreviewTargetObjectName(designerProperties, this.detailsPage.getProcedureGenerator().getWrapperProcedureName()); DesignerPropertiesUtil.setPreviewTargetModelName(designerProperties, this.detailsPage.getImportManager().getViewModelName()); } } } public void setVisible() { validate(); } }