//------------------------------------------------------------------------------ // 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.io.File; import java.util.ArrayList; import java.util.List; /** * Define the browsing settings. UI preference can set the options to change the browsing behavior * * @author Jinhua Xi * @since 1.2 * */ public class BrowsingLayoutSettings { public static BrowsingLayoutSettings INSTANCE = new BrowsingLayoutSettings(); private boolean showExtraInfoForDescriptors = false; private boolean publishUnopenActivitydd = false; private boolean publishADForActivityExtension = false; private boolean fulfillDescriptorSlotByContent = false; private boolean showLinkedPageForDescriptor = false; private String forbiddenUrlChars; private boolean ignoreDynamicParents = true; private boolean excludeUnusedWPDs = true; // if true, the to-many outgoing association from base will be ignored if the extender has its own private boolean useNewExtendSemantics = false; private File xslPath = null; private File cssPath = null; private File scriptPath = null; // record all the sites updated since the last change private List updatedSites = new ArrayList(); public void setUseNewExtendSemantics(boolean flag) { this.useNewExtendSemantics = flag; } public boolean isUseNewExtendSemantics() { return this.useNewExtendSemantics; } public void setShowExtraInfoForDescriptors(boolean flag) { this.showExtraInfoForDescriptors = flag; } public boolean isShowExtraInfoForDescriptors() { return this.showExtraInfoForDescriptors; } public void setPublishUnopenActivitydd(boolean flag) { this.publishUnopenActivitydd = flag; } public boolean isPublishUnopenActivitydd() { return this.publishUnopenActivitydd; } public void setPublishADForActivityExtension(boolean flag) { this.publishADForActivityExtension = flag; } public boolean isPublishADForActivityExtension() { return this.publishADForActivityExtension; } public void setXslPath(File path) { xslPath = path; } public void setCssPath(File path) { cssPath = path; } public void setScriptPath(File path) { scriptPath = path; } public File getXslPath() { return xslPath; } public File getCssPath() { return cssPath; } public File getScriptPath() { return scriptPath; } public void setChanged() { updatedSites.clear(); } public boolean needUpdate(String pubDir) { if ( pubDir == null ) { return false; } return !updatedSites.contains(pubDir); } public void update(HtmlBuilder builder) { if ( (builder == null) || !needUpdate(builder.getPublishDir()) ) { if ((builder != null)&&(xslPath != null)) { builder.setLayoutXslRootPath(xslPath.getAbsolutePath()); } return; } if ( xslPath == null || cssPath == null || scriptPath == null) { // use the default LayoutResources.copyLayoutFiles(builder.getPublishDir()); builder.loadDefaultLayoutXsl(); } else { // set the xsl path builder.setLayoutXslRootPath(xslPath.getAbsolutePath()); // copy the fils to the publish folder String include = "*.*,**/*.*"; //$NON-NLS-1$ String exclude = null; boolean override = true; File folder = new File(builder.getPublishDir(), "css"); //$NON-NLS-1$ LayoutResources.copyDir(cssPath, folder, include, exclude, override); folder = new File(builder.getPublishDir(), "scripts"); //$NON-NLS-1$ LayoutResources.copyDir(scriptPath, folder, include, exclude, override); } updatedSites.add(builder.getPublishDir()); } public boolean isFulfillDescriptorSlotByContent() { return fulfillDescriptorSlotByContent; } public void setFulfillDescriptorSlotByContent( boolean fulfillDescriptorSlotByContent) { this.fulfillDescriptorSlotByContent = fulfillDescriptorSlotByContent; } public boolean isShowLinkedPageForDescriptor() { return showLinkedPageForDescriptor; } public void setShowLinkedPageForDescriptor(boolean showLinkedPageForDescriptor) { this.showLinkedPageForDescriptor = showLinkedPageForDescriptor; } public String getForbiddenUrlChars() { return forbiddenUrlChars; } public void setForbiddenUrlChars(String forbiddenUrlChars) { this.forbiddenUrlChars = forbiddenUrlChars; } public boolean isIgnoreDynamicParents() { return ignoreDynamicParents; } public void setIgnoreDynamicParents(boolean ignoreDynamicParents) { this.ignoreDynamicParents = ignoreDynamicParents; } public boolean isExcludeUnusedWPDs() { return excludeUnusedWPDs; } public void setExcludeUnusedWPDs(boolean excludeUnusedWPDs) { this.excludeUnusedWPDs = excludeUnusedWPDs; } }