/* * 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.mapping.ui.editor; import org.eclipse.emf.ecore.EObject; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchWindow; import org.teiid.core.designer.util.I18nUtil; import org.teiid.designer.diagram.ui.editor.DiagramController; import org.teiid.designer.diagram.ui.editor.DiagramEditor; import org.teiid.designer.mapping.factory.DefaultMappableTree; import org.teiid.designer.mapping.factory.IMappableTree; import org.teiid.designer.mapping.factory.TreeMappingAdapter; import org.teiid.designer.mapping.ui.UiConstants; import org.teiid.designer.mapping.ui.UiPlugin; import org.teiid.designer.metamodels.transformation.InputSet; import org.teiid.designer.metamodels.transformation.MappingClass; import org.teiid.designer.ui.common.widget.ScrollableTitleAreaDialog; import org.teiid.designer.ui.editors.ModelEditor; import org.teiid.designer.ui.editors.ModelEditorPage; public class EditInputSetDialog extends ScrollableTitleAreaDialog { // private static final int WIDTH = 700; // private static final int HEIGHT = 400; private static final String I18N_PREFIX = I18nUtil.getPropertyPrefix(EditInputSetDialog.class); private static final String TITLE = getString("title"); //$NON-NLS-1$ private static final String MESSAGE = getString("message"); //$NON-NLS-1$ private InputSet inputSet; EditInputSetPanel editorPanel; private static String getString( final String id ) { return UiConstants.Util.getString(I18N_PREFIX + id); } /** * * @param parent * @param modelName * @param props */ public EditInputSetDialog( Shell parent, InputSet inputSet) { super(parent); this.inputSet = inputSet; } /** * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) */ @Override protected void configureShell(Shell shell) { super.configureShell(shell); shell.setText(TITLE); //$NON-NLS-1$ } /* * (non-Javadoc) * * @see org.eclipse.jface.window.Window#setShellStyle(int) */ @Override protected void setShellStyle(int newShellStyle) { super.setShellStyle(newShellStyle | SWT.RESIZE | SWT.MAX); } /** * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) */ @Override protected Control createDialogArea( Composite parent ) { setTitle(TITLE); setMessage(MESSAGE); Composite dialogComposite = (Composite) super.createDialogArea(parent); //------------------------------ // Set layout for the Composite //------------------------------ ((GridData)dialogComposite.getLayoutData()).grabExcessHorizontalSpace = true; ((GridData)dialogComposite.getLayoutData()).grabExcessVerticalSpace= true; ((GridData)dialogComposite.getLayoutData()).widthHint = 500; ((GridData)dialogComposite.getLayoutData()).heightHint = 250; editorPanel = new EditInputSetPanel(dialogComposite); setMappingAdapters(this.inputSet); MappingClass currentMappingClass = inputSet.getMappingClass(); InputSetAdapter inputSetAdapter = new InputSetAdapter(currentMappingClass); editorPanel.setBusinessObject(inputSetAdapter); sizeScrolledPanel(); return dialogComposite; } public void setMappingAdapters( InputSet inputSet ) { this.inputSet = inputSet; // obtain the root tree node that is being displayed in the mapping diagram IWorkbenchWindow window = UiPlugin.getDefault().getCurrentWorkbenchWindow(); IEditorPart editorPart = window.getActivePage().getActiveEditor(); if (editorPart instanceof ModelEditor) { ModelEditorPage editorPage = (ModelEditorPage)((ModelEditor)editorPart).getCurrentPage(); if (editorPage instanceof DiagramEditor) { DiagramController controller = ((DiagramEditor)editorPage).getDiagramController(); if (controller instanceof MappingDiagramController) { // get the adapters from the diagram controller TreeMappingAdapter mapping = ((MappingDiagramController)controller).getMappingAdapter(); IMappableTree mappableTree = ((MappingDiagramController)controller).getMappableTree(); editorPanel.setMappingAdapters(mapping, mappableTree); } else { // need to get one somehow EObject docRoot = inputSet.getMappingClass().getMappingClassSet().getTarget(); TreeMappingAdapter mapping = new TreeMappingAdapter(docRoot); IMappableTree mappableTree = new DefaultMappableTree(docRoot); editorPanel.setMappingAdapters(mapping, mappableTree); } } } } }