diff --git a/diylc/diylc-core/src/org/diylc/common/ITemplateProcessor.java b/diylc/diylc-core/src/org/diylc/common/ITemplateProcessor.java index fd66cf9c..709d62b8 100644 --- a/diylc/diylc-core/src/org/diylc/common/ITemplateProcessor.java +++ b/diylc/diylc-core/src/org/diylc/common/ITemplateProcessor.java @@ -17,6 +17,8 @@ public interface ITemplateProcessor { void applyTemplateToSelection(Template template); void deleteTemplate(String categoryName, String componentTypeName, String templateName); + + void setTemplateDefault(String categoryName, String componentTypeName, String templateName, boolean defaultFlag); public class TemplateAlreadyExistsException extends Exception { diff --git a/diylc/diylc-core/src/org/diylc/core/Template.java b/diylc/diylc-core/src/org/diylc/core/Template.java index 094562a5..ed8b8c1e 100644 --- a/diylc/diylc-core/src/org/diylc/core/Template.java +++ b/diylc/diylc-core/src/org/diylc/core/Template.java @@ -9,12 +9,14 @@ public class Template { private String name; private Map values; private List points; + private boolean defaultFlag; - public Template(String name, Map values, List points) { + public Template(String name, Map values, List points, boolean defaultFlag) { super(); this.name = name; this.values = values; this.points = points; + this.defaultFlag = defaultFlag; } public String getName() { @@ -41,10 +43,19 @@ public class Template { this.points = points; } + public boolean isDefaultFlag() { + return defaultFlag; + } + + public void setDefaultFlag(boolean defaultFlag) { + this.defaultFlag = defaultFlag; + } + @Override public int hashCode() { final int prime = 31; int result = 1; + result = prime * result + (defaultFlag ? 1231 : 1237); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((points == null) ? 0 : points.hashCode()); result = prime * result + ((values == null) ? 0 : values.hashCode()); @@ -60,6 +71,8 @@ public class Template { if (getClass() != obj.getClass()) return false; Template other = (Template) obj; + if (defaultFlag != other.defaultFlag) + return false; if (name == null) { if (other.name != null) return false; @@ -77,4 +90,9 @@ public class Template { return false; return true; } + + @Override + public String toString() { + return name; + } } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 87293aa8..a556489d 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -1790,6 +1790,18 @@ public class Presenter implements IPlugInPort { setNewComponentTypeSlot(null, null); return; } + + // try to find a default template if none is provided + if (componentType != null && template == null) { + List