/*******************************************************************************
* Copyright (c) 2007 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.seam.pages.xml.model;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.impl.OrderedByEntityChildren;
import org.jboss.tools.common.model.impl.RegularChildren;
import org.jboss.tools.common.model.loaders.XObjectLoader;
import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
import org.jboss.tools.jst.web.model.AbstractWebFileImpl;
import org.jboss.tools.jst.web.model.WebProcessLoader;
import org.jboss.tools.seam.pages.xml.model.impl.SeamPagesDiagramImpl;
public class FileSeamPagesImpl extends AbstractWebFileImpl implements SeamPagesConstants {
private static final long serialVersionUID = 1L;
public FileSeamPagesImpl() {}
protected RegularChildren createChildren() {
return new OrderedByEntityChildren();
}
protected String getProcessEntity() {
return SeamPagesConstants.ENT_DIAGRAM;
}
protected boolean hasDTD() {
return SeamPagesConstants.ENT_FILE_SEAM_PAGES_12.equals(getModelEntity().getName());
}
protected void mergeAll(XModelObject f, boolean update) throws XModelException {
SeamPagesDiagramImpl diagram = (SeamPagesDiagramImpl)provideWebProcess();
boolean b = (diagram != null && diagram.isPrepared());
if(b) diagram.getHelper().addUpdateLock(this);
merge(f, !update);
if(b) {
diagram.getHelper().removeUpdateLock(this);
diagram.getHelper().updateDiagram();
}
if(diagram != null) {
if(!diagram.isPrepared()/* || update*/ || isForceLoadOn()) {
XObjectLoader loader = XModelObjectLoaderUtil.getObjectLoader(this);
((WebProcessLoader)loader).reloadProcess(this);
}
if(diagram.isPrepared())
diagram.autolayout();
}
}
}