/*
* VerifyRulesHandler.java
*
* Created on July 18, 2003, 12:26 AM
*/
package org.jboss.tools.common.verification.vrules.handler;
import org.eclipse.osgi.util.NLS;
import org.jboss.tools.common.verification.Messages;
import org.jboss.tools.common.verification.vrules.*;
import org.jboss.tools.common.verification.vrules.layer.VModelFactory;
import org.jboss.tools.common.model.*;
import org.jboss.tools.common.meta.action.*;
import java.util.*;
/**
*
* @author valera
*/
public class VerifyRulesAllHandler extends VerifyHandler {
private boolean gui = true;
/** Creates a new instance of VerifyRulesHandler */
public VerifyRulesAllHandler() {
}
public void executeHandler(XModelObject object, Properties p) throws XModelException {
if(!gui) executeHandlerDefault(object, p);
else executeHandlerGUI(object, p);
}
public boolean isEnabled(XModelObject object) {
return VHelper.getManager() != null;
}
private void executeHandlerDefault(XModelObject object, Properties p) throws XModelException {
if (!isEnabled(object)) return;
VModel vmodel = VModelFactory.getModel(object.getModel());
Map<String,List<VRule>> entities = new HashMap<String,List<VRule>>();
VRuleSet[] ruleSets = VHelper.getManager().getRuleSets();
for (int k = 0; k < ruleSets.length; k++) {
if (!ruleSets[k].isEnabled()) continue;
VRule[] rules = ruleSets[k].getRules();
for (int i = 0; i < rules.length; i++) {
VRule rule = rules[i];
if (!rule.isEnabled() || rule.getAction() == null) continue;
VEntity[] ent = rule.getEntities();
for (int j = 0; j < ent.length; j++) {
String name = ent[j].getName();
List<VRule> r = entities.get(name);
if (r == null) {
r = new ArrayList<VRule>();
entities.put(name, r);
}
r.add(rule);
}
}
}
VObject vobject = vmodel.getObjectByPath(object.getPath());
check(entities, vobject, object.getModel());
}
private void executeHandlerGUI(XModelObject object, Properties p) throws XModelException {
SpecialWizard wizard = SpecialWizardFactory.createSpecialWizard("org.jboss.tools.common.verification.ui.vrules.wizard.runtime2.VerifyWizard"); //$NON-NLS-1$
if(p == null) p = new Properties();
String title = Messages.VerifyRulesAllHandler_ApplyVerificationRules;
if(!object.getModelEntity().getName().equals("FileSystems")) //$NON-NLS-1$
title = NLS.bind(Messages.VerifyRulesAllHandler_ApplyVerificationRulesForObject,
object.getPresentationString());
p.setProperty("title", title); //$NON-NLS-1$
p.setProperty("help", "ApplyVerificationRules"); //$NON-NLS-1$ //$NON-NLS-2$
wizard.setObject(new Object[]{object, p});
wizard.execute();
/*
GlobalBuilderImpl g = new GlobalBuilderImpl();
g.setModel(object.getModel());
g.execute(object);
*/
}
}