/*
* 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.resources.IFile;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IViewActionDelegate;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.actions.ActionDelegate;
import org.teiid.designer.ui.common.eventsupport.SelectionUtilities;
import org.teiid.designer.ui.viewsupport.ModelUtilities;
/**
* ModelStatisticsAction
*
* @since 8.0
*/
public class ModelStatisticsAction extends ActionDelegate implements IWorkbenchWindowActionDelegate,
IViewActionDelegate {
private IFile selectedModel;
/**
* Construct an instance of RebuildImportsAction.
*/
public ModelStatisticsAction() {
super();
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
*/
@Override
public void run(IAction action) {
ModelStatisticsReporter reporter = new ModelStatisticsReporter(selectedModel);
reporter.show();
}
/* (non-Javadoc)
* @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
*/
@Override
public void selectionChanged(IAction action, ISelection selection) {
boolean enable = false;
if ( ! SelectionUtilities.isMultiSelection(selection) ) {
Object obj = SelectionUtilities.getSelectedObject(selection);
if ( obj instanceof IFile && ModelUtilities.isModelFile((IFile) obj) ) {
this.selectedModel = (IFile) obj;
enable = true;
}
}
action.setEnabled(enable);
}
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
*/
@Override
public void init(IWorkbenchWindow window) {
}
/* (non-Javadoc)
* @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
*/
@Override
public void init(IViewPart view) {
}
}