NIHVIVO-564 Change datatype of Script and Stylesheet collections from List to LinkedHashSet, to prevent duplication while retaining ordering.

This commit is contained in:
rjy7 2010-07-28 15:16:14 +00:00
parent 3317419fcf
commit f4b6f3e941
6 changed files with 22 additions and 24 deletions

View file

@ -32,8 +32,8 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route;
import edu.cornell.mannlib.vitro.webapp.utils.StringUtils; import edu.cornell.mannlib.vitro.webapp.utils.StringUtils;
import edu.cornell.mannlib.vitro.webapp.web.BreadCrumbsUtil; import edu.cornell.mannlib.vitro.webapp.web.BreadCrumbsUtil;
import edu.cornell.mannlib.vitro.webapp.web.PortalWebUtil; import edu.cornell.mannlib.vitro.webapp.web.PortalWebUtil;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist.ScriptList; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Scripts;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist.StylesheetList; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.menu.TabMenu;
import freemarker.cache.ClassTemplateLoader; import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader; import freemarker.cache.FileTemplateLoader;
@ -259,7 +259,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
BeansWrapper wrapper = new DefaultObjectWrapper(); BeansWrapper wrapper = new DefaultObjectWrapper();
try { try {
// Here themeDir SHOULD NOT have the context path already added to it. // Here themeDir SHOULD NOT have the context path already added to it.
return wrapper.wrap(new StylesheetList(themeDir)); return wrapper.wrap(new Stylesheets(themeDir));
} catch (TemplateModelException e) { } catch (TemplateModelException e) {
log.error("Error creating stylesheet TemplateModel"); log.error("Error creating stylesheet TemplateModel");
return null; return null;
@ -273,7 +273,7 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
// add stylesheets and scripts to the lists by calling their add() methods. // add stylesheets and scripts to the lists by calling their add() methods.
BeansWrapper wrapper = new DefaultObjectWrapper(); BeansWrapper wrapper = new DefaultObjectWrapper();
try { try {
return wrapper.wrap(new ScriptList(themeDir)); return wrapper.wrap(new Scripts(themeDir));
} catch (TemplateModelException e) { } catch (TemplateModelException e) {
log.error("Error creating script TemplateModel"); log.error("Error creating script TemplateModel");
return null; return null;

View file

@ -8,7 +8,7 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHelper; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHelper;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist.StylesheetList; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.files.Stylesheets;
import freemarker.core.Environment; import freemarker.core.Environment;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.SimpleDate; import freemarker.template.SimpleDate;

View file

@ -1,28 +1,26 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */ /* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist; package edu.cornell.mannlib.vitro.webapp.web.templatemodels.files;
import java.util.ArrayList; import java.util.LinkedHashSet;
import java.util.Iterator;
import java.util.List;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
public abstract class FileList extends BaseTemplateModel { public abstract class Files extends BaseTemplateModel {
protected List<String> list = null; protected LinkedHashSet<String> list = null;
private String themeDir = null; private String themeDir = null;
public FileList() { public Files() {
this.list = new ArrayList<String>(); this.list = new LinkedHashSet<String>();
} }
public FileList(String themeDir) { public Files(String themeDir) {
this(); this();
this.themeDir = themeDir; this.themeDir = themeDir;
} }
public FileList(List<String> list) { public Files(LinkedHashSet<String> list) {
this.list = list; this.list = list;
} }

View file

@ -1,14 +1,14 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */ /* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist; package edu.cornell.mannlib.vitro.webapp.web.templatemodels.files;
public class ScriptList extends FileList { public class Scripts extends Files {
protected static final String THEME_SUBDIR = "/js"; protected static final String THEME_SUBDIR = "/js";
public ScriptList() { } public Scripts() { }
public ScriptList(String themeDir) { public Scripts(String themeDir) {
super(themeDir); super(themeDir);
} }

View file

@ -1,14 +1,14 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */ /* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.filelist; package edu.cornell.mannlib.vitro.webapp.web.templatemodels.files;
public class StylesheetList extends FileList { public class Stylesheets extends Files {
protected static final String THEME_SUBDIR = "/css"; protected static final String THEME_SUBDIR = "/css";
public StylesheetList() { } public Stylesheets() { }
public StylesheetList(String themeDir) { public Stylesheets(String themeDir) {
super(themeDir); super(themeDir);
} }

View file

@ -4,7 +4,7 @@
.dump { .dump {
border-top: 1px solid #ccc; border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc; border-bottom: 2px solid #ccc;
padding: 1em 0; padding: 1em 0;
margin: 1em 0; margin: 1em 0;
} }