package org.jboss.tools.seam.pages.xml.model.handlers; import java.util.Properties; import org.jboss.tools.common.meta.action.impl.AbstractHandler; import org.jboss.tools.common.model.XModelException; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants; import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramStructureHelper; public class CreateVirtualHandler extends AbstractHandler { public CreateVirtualHandler() {} public boolean isEnabled(XModelObject object) { if(object == null || !object.isActive()) { return false; } String path = object.getAttributeValue(SeamPagesConstants.ATTR_PATH); if(path == null || PageAdopt.isEL(path)) { return false; } return true; } public void executeHandler(XModelObject object, Properties prop) throws XModelException { XModelObject f = SeamPagesDiagramStructureHelper.getInstance().getParentFile(object); if(f == null) return; XModelObject pages = f.getChildByPath(SeamPagesConstants.FOLDER_PAGES); if(pages == null) return; String path = object.getAttributeValue(SeamPagesConstants.ATTR_PATH); if(PageAdopt.isEL(path)) { //TODO handle EL case } else { XModelObject page = AddViewSupport.addPage(pages, path); if (page != null) { page.setModified(true); } } } }