/* * 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.relational.ui.edit; import org.eclipse.core.resources.IFile; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.widgets.Composite; import org.teiid.designer.relational.model.RelationalIndex; import org.teiid.designer.relational.model.RelationalProcedure; import org.teiid.designer.relational.model.RelationalReference; import org.teiid.designer.relational.model.RelationalTable; import org.teiid.designer.relational.model.RelationalView; import org.teiid.designer.relational.ui.Messages; import org.teiid.designer.relational.ui.editor.EditRelationalObjectDialogModel; import org.teiid.designer.ui.common.eventsupport.IDialogStatusListener; /** * Dialog model class designed to provide generic editor panels for specific relational object types * * @since 8.0 */ public class RelationalDialogModel extends EditRelationalObjectDialogModel { /** * @param relationalObject * @param modelFile */ public RelationalDialogModel(RelationalReference relationalObject, IFile modelFile) { super(relationalObject, modelFile); } @Override public RelationalEditorPanel getEditorPanel(IDialogStatusListener statusListener, Composite parent) { if (relationalObject instanceof RelationalView) { return new RelationalViewEditorPanel(parent, this, statusListener); } else if (relationalObject instanceof RelationalTable) { return new RelationalTableEditorPanel(parent, this, statusListener); } else if (relationalObject instanceof RelationalProcedure) { return new RelationalProcedureEditorPanel(parent, this, statusListener); } else if (relationalObject instanceof RelationalIndex) { return new RelationalIndexEditorPanel(parent, this, statusListener); } return null; } @Override public String getDialogTitle() { if (relationalObject instanceof RelationalView) { return Messages.createRelationalViewTitle; } else if (relationalObject instanceof RelationalTable) { return Messages.createRelationalTableTitle; } else if (relationalObject instanceof RelationalProcedure) { RelationalProcedure procedure = (RelationalProcedure)relationalObject; if (procedure.isSourceFunction()) { return Messages.createRelationalSourceFunctionTitle; } else if (procedure.isFunction()) { return Messages.createRelationalUserDefinedFunctionTitle; } else if (procedure.isNativeQueryProcedure()) { return Messages.createRelationalNativeQueryProcedureTitle; } return Messages.createRelationalProcedureTitle; } else if (relationalObject instanceof RelationalIndex) { return Messages.createRelationalIndexTitle; } return NLS.bind(Messages.unsupportedObjectType, relationalObject.getClass().toString()); } @Override public String getHelpText() { if (relationalObject instanceof RelationalView) { return Messages.createRelationalViewHelpText; } else if (relationalObject instanceof RelationalTable) { return Messages.createRelationalTableHelpText; } else if (relationalObject instanceof RelationalProcedure) { RelationalProcedure procedure = (RelationalProcedure)relationalObject; if (procedure.isSourceFunction()) { return Messages.createRelationalSourceFunctionHelpText; } else if (procedure.isFunction()) { return Messages.createRelationalUserDefinedFunctionHelpText; } else if (procedure.isNativeQueryProcedure()) { return Messages.createRelationalNativeQueryProcedureHelpText; } return Messages.createRelationalProcedureHelpText; } else if (relationalObject instanceof RelationalIndex) { return Messages.createRelationalIndexHelpText; } return NLS.bind(Messages.unsupportedObjectType, relationalObject.getClass().toString()); } }