/*
* 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.ui.properties.extension;
import org.eclipse.core.resources.IProject;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.viewers.DialogCellEditor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.teiid.designer.core.util.VdbHelper.VdbFolders;
import org.teiid.designer.core.workspace.ModelResource;
import org.teiid.designer.ui.viewsupport.ModelUtilities;
/**
*
*/
public class UdfJarDialogCellEditor extends DialogCellEditor {
private EObject eObject;
UdfJarDialogCellEditor(Composite parent, EObject eObj) {
super(parent);
this.eObject = eObj;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(org.eclipse.swt.widgets.Control)
*/
@Override
protected Object openDialogBox(Control cellEditorWindow) {
// Determine if there is a lib folder under the project
IProject proj = getProject(this.eObject);
Object value = getValue();
String selectedFile = VdbFileDialogUtil.selectFile(cellEditorWindow.getShell(), proj, VdbFolders.UDF);
if( value != null && (selectedFile == null || selectedFile.length() == 0) ) {
selectedFile = (String)value;
}
return selectedFile;
}
/*
* Get project for the supplied EOjbect
* @param eObj the supplied EObject
* @return the project that the EObject is within
*/
private IProject getProject(EObject eObj) {
IProject project = null;
if(eObj!=null) {
ModelResource mdlResrc = ModelUtilities.getModelResource(eObj);
project = mdlResrc.getModelProject().getProject();
}
return project;
}
}