/*
 * Created on Apr 3, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package edu.clemson.aadl.modifiability;

import org.eclipse.jface.dialogs.MessageDialog;

import edu.cmu.sei.aadl.model.core.AObject;
import edu.cmu.sei.aadl.model.core.AadlSpec;
import edu.cmu.sei.aadl.model.instance.SystemInstance;
import edu.cmu.sei.aadl.model.pluginsupport.AaxlModifyAction;

/**
 * @author ken
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class aadlAnalsysisAction extends AaxlModifyAction
{
    
    public void doAaxlAction( AObject obj)
    {
        AObject root = obj.getAObjectRoot();

        AadlSpec as = obj.getAadlSpec();
        
        SystemInstance  si = obj.getSystemInstance();
        
        ModelAnalysis ma = new ModelAnalysis();
        
      
        String avgString;
        
        
        ma.processPostOrderAll(as);
        
        float avg = ma.getAverage();
        if(avg == -1) avgString = "Divide by 0 error";
        else avgString = "\nAvg of Features / System: "+avg;
        
        MessageDialog.openInformation(getShell(), "Modifiability Measure", "Total System Features: " + ma.featureCount
                +"\nTotal Systems: "+ ma.systemCount+avgString +"\nModifiability Measure: "+ma.getModifiabiltyMeasure());
       
        reportInfo(root, "Average features per sytem: " + ma.getAverage());
        reportInfo(root, "Total System Features: " + ma.featureCount);
        reportInfo(root, "Total Systems: "+ ma.systemCount+avgString);
        reportInfo(root, "Modifiability Measure: "+ma.getModifiabiltyMeasure());
        
    }

}
