/*
* 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.actions;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.actions.ActionDelegate;
import org.teiid.designer.core.ModelerCore;
import org.teiid.designer.core.builder.ModelBuildUtil;
import org.teiid.designer.core.workspace.ModelResource;
import org.teiid.designer.core.workspace.ModelWorkspaceException;
import org.teiid.designer.ui.UiConstants;
import org.teiid.designer.ui.common.eventsupport.SelectionUtilities;
import org.teiid.designer.ui.viewsupport.ImportContainer;
import org.teiid.designer.ui.viewsupport.ModelUtilities;
/**
* OrganizeImportsAction
*
* @since 8.0
*/
public class OrganizeImportsAction extends ActionDelegate {
private Resource resource;
/**
* Construct an instance of OrganizeImportsAction.
*/
public OrganizeImportsAction() {
super();
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
@Override
public void run( final IAction action ) {
final ModelResource modelResource = ModelerCore.getModelEditor().findModelResource(resource);
if (modelResource != null) {
// Defect 23823 - switched to use a new Modeler Core utility.
try {
ModelBuildUtil.rebuildImports(modelResource.getEmfResource(), true);
} catch (final ModelWorkspaceException theException) {
UiConstants.Util.log(IStatus.ERROR, theException, theException.getMessage());
}
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
*/
@Override
public void selectionChanged( final IAction action,
final ISelection selection ) {
boolean enable = false;
final Object o = SelectionUtilities.getSelectedObject(selection);
if (o instanceof ImportContainer) {
resource = ((ImportContainer)o).getResource();
final ModelResource mResource = ModelUtilities.getModelResource(resource, false);
enable = !mResource.isReadOnly();
}
action.setEnabled(enable);
// BML 9/13/03 - I added this line (and accompanying text property) because I couldn't
// figure out why the plugin.xml label ID wasn't being set correctly. It acted like it couldn't find
// it, so I brute forced it here to get it working...
action.setText(UiConstants.Util.getString("OrganizeImportsAction.label")); //$NON-NLS-1$
}
}