/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.model; import org.jboss.tools.common.model.*; import org.jboss.tools.common.model.impl.*; import org.jboss.tools.jsf.model.helpers.*; import org.jboss.tools.jst.web.model.*; public class FacesProcessImpl extends OrderedObjectImpl implements WebProcess, ReferenceObject, JSFConstants { private static final long serialVersionUID = 1981573715076399163L; protected XModelObject reference; protected JSFProcessHelper phelper = new JSFProcessHelper(this); protected JSFUpdateHelper uhelper = null; protected boolean isPrepared = false; public XModelObject getReference() { return reference; } public void setReference(XModelObject reference) { this.reference = reference; if(reference != null) { String shape = get("SHAPE"); //$NON-NLS-1$ if(shape != null && shape.length() > 0) reference.set("_shape", shape); //$NON-NLS-1$ } } public boolean isPrepared() { return isPrepared; } public void firePrepared() { isPrepared = true; fireStructureChanged(3, getPath()); } public void autolayout() { phelper.autolayout(); } protected void loadChildren() { if (isPrepared && reference == null && isActive()) { restoreRefs(); registerListener(); updateProcess(); } } protected void restoreRefs() { phelper.restoreRefs(); } protected void updateProcess() { phelper.updateProcess(); } protected void registerListener() { if (uhelper == null) { uhelper = new JSFUpdateHelper(this); } } protected void deactivate() { if (uhelper != null) { uhelper.unregister(); uhelper = null; } } public JSFProcessHelper getHelper() { return phelper; } protected void changeTimeStamp() { boolean actualBody = false; String abts = null; XModelObject parent = (XModelObject)getParent(); if(parent != null) { abts = parent.get("actualBodyTimeStamp"); //$NON-NLS-1$ actualBody = (abts != null && (abts.equals("0") || abts.equals("" + parent.getTimeStamp()))); //$NON-NLS-1$ //$NON-NLS-2$ } super.changeTimeStamp(); if(actualBody && !abts.equals("0")) { //$NON-NLS-1$ parent.set("actualBodyTimeStamp", "" + parent.getTimeStamp()); //$NON-NLS-1$ //$NON-NLS-2$ } } }