| //------------------------------------------------------------------------------ |
| // Copyright (c) 2005, 2006 IBM Corporation and others. |
| // All rights reserved. This program and the accompanying materials |
| // are 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: |
| // IBM Corporation - initial implementation |
| //------------------------------------------------------------------------------ |
| package org.eclipse.epf.library.layout; |
| |
| import java.util.List; |
| |
| import org.eclipse.epf.library.layout.util.XmlElement; |
| import org.eclipse.epf.uma.MethodElement; |
| |
| |
| /** |
| * This is the interface for element layout. any element layout should implement this interface. |
| * An element layout defines how the element should be rendered in browsing and publishing. |
| * |
| * @author Jinhua Xi |
| * @since 1.0 |
| */ |
| public interface IElementLayout { |
| |
| /** |
| * get the element id, which is the element's GUID |
| * |
| * @return |
| */ |
| public String getId(); |
| |
| /** |
| * the type of the element |
| * |
| * @return String |
| */ |
| public String getType(); |
| |
| /** |
| * the name of the element |
| * @return String |
| */ |
| public String getName(); |
| |
| /** |
| * the realized presentation name of the element |
| * @return String |
| */ |
| public String getDisplayName(); |
| |
| /** |
| * the url of the element |
| * @return String |
| */ |
| public String getUrl(); |
| |
| /** |
| * the url for shape icon of the element |
| * @return String |
| */ |
| public String getShapeiconUrl(); |
| |
| /** |
| * the url for node icon of the element |
| * @return String |
| */ |
| public String getNodeiconUrl(); |
| |
| /** |
| * the url for diagram icon of the element, |
| * for example, the icon for a role in the role-task-wp relationship diagram. |
| * @return String |
| */ |
| public String getDiagramiconUrl(); // icon for diagram such as Role diagram |
| |
| /** |
| * the layout xsl url |
| * @return String |
| */ |
| public String getXslUrl(); |
| |
| /** |
| * the back path of the element relative to the publishing root dir. |
| * @return String |
| */ |
| public String getBackPath(); |
| |
| /** |
| * get the file path relative to the publishing root |
| * |
| * @return String |
| */ |
| public String getFilePath(); |
| |
| /** |
| * get the file path relative to another element. This is the |
| * relativeTo.backpath + this.elementpath |
| * |
| * @param relativeTo |
| * @return String |
| */ |
| public String getFilePath(IElementLayout relativeTo); |
| |
| /** |
| * get the file name of the element, with the given extension. |
| * @param ext String extension, such as ".html" |
| * @return String |
| */ |
| public String getFileName(String ext); |
| |
| /** |
| * get the element |
| * @return MethodElement |
| */ |
| public MethodElement getElement(); |
| |
| /** |
| * get the layout manager for randering the layout of the element. |
| * |
| * @return ElementLayoutManager |
| */ |
| public ElementLayoutManager getLayoutMgr(); |
| |
| /** |
| * get the XmlElement for the element layout. |
| * |
| * @param includeReferences |
| * true to include the xml of the referenced element. false to |
| * ignore the xml of the references. |
| * @return XmlElement |
| */ |
| public XmlElement getXmlElement(boolean includeReferences); |
| |
| /** |
| * return a list of LayoutInfo objects |
| * |
| * @return a list of LayoutInfo objects |
| */ |
| public List getLayouts(); |
| |
| |
| /** |
| * if the element's content is target for another element, set it here. for |
| * example, step content cat target for a Task or a task descriptor |
| * copyright content can target to different elements. |
| * |
| * The purpose of this is that the system will fix the links in the content |
| * to relative to the target element. |
| */ |
| public void setContentTarget(MethodElement targetElement); |
| |
| /** |
| * need to set the owner of the current layout element. In most cases this |
| * should be the eContainer of the element. This is needed because in some |
| * situation the element does not have an owner when the object is created. |
| * For example, the ContentDescription object's eContiner is null if the |
| * content file is not saved. |
| * |
| * @param owner |
| * MethodElement |
| */ |
| public void setElementOwner(MethodElement owner); |
| |
| /** |
| * check if the html content generated from this xsl file needs to be scanned or not |
| * scan the content is for identifying element references in the content and copy over resource files |
| * in some cases we don't need to scan the content, for example, the activity breakdown structure |
| * |
| * @param xslUrl the xsl that html is generated from, null for the default xsl layout |
| * @return boolean |
| */ |
| public boolean needContentScan(String xslUrl); |
| |
| /** |
| * |
| * @param show |
| * @deprecated this method is not needed any more |
| */ |
| public void setShowElementLink(boolean show); |
| |
| |
| public String getNoAdjustedElementPath(); |
| |
| } |