package org.jboss.tools.seam.pages.xml.model.helpers; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.common.model.event.XModelTreeEvent; import org.jboss.tools.jst.web.model.helpers.WebProcessUpdateHelper; import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants; import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesDiagramImpl; public class SeamPagesUpdateHelper implements WebProcessUpdateHelper { private XModelObject config; private SeamPagesDiagramImpl diagram; private SeamPagesDiagramHelper helper; public SeamPagesUpdateHelper(SeamPagesDiagramImpl diagram) { this.diagram = diagram; this.helper = diagram.getHelper(); this.config = diagram.getParent(); SeamPagesUpdateManager.getInstance(diagram.getModel()).register(config.getPath(), this); } public void unregister() { SeamPagesUpdateManager.getInstance(diagram.getModel()).unregister(config.getPath(), this); } public boolean isActive() { return diagram.isActive(); } public void nodeChanged(XModelTreeEvent event, String localPath) { if(localPath == null || localPath.length() == 0) { return; } else if(localPath.startsWith(SeamPagesConstants.FOLDER_PAGES) || localPath.startsWith(SeamPagesConstants.FOLDER_EXCEPTIONS) ) { helper.updateDiagram(); } } public void structureChanged(XModelTreeEvent event, String localPath) { if(localPath == null) return; if(localPath.startsWith(SeamPagesConstants.FOLDER_PAGES) || localPath.startsWith(SeamPagesConstants.FOLDER_EXCEPTIONS) ) { helper.updateDiagram(); if(!helper.isUpdateLocked()) { helper.autolayout(); } } } }