package com.psddev.cms.tool.content;
import com.psddev.cms.db.Template;
import com.psddev.cms.tool.ContentEditWidgetPlacement;
import com.psddev.cms.tool.ToolPageContext;
import com.psddev.cms.tool.UpdatingContentEditWidget;
import com.psddev.dari.db.Database;
import com.psddev.dari.db.State;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
/**
* @deprecated No replacement
*/
@Deprecated
@SuppressWarnings("deprecation")
public class TemplateWidget extends UpdatingContentEditWidget {
@Override
public ContentEditWidgetPlacement getPlacement(ToolPageContext page, Object content) {
return ContentEditWidgetPlacement.RIGHT;
}
@Override
public double getPosition(ToolPageContext page, Object content, ContentEditWidgetPlacement placement) {
return -10.0;
}
@Override
public String getHeading(ToolPageContext page, Object content) {
return "Template";
}
@Override
public void displayOrUpdate(ToolPageContext page, Object content, ContentEditWidgetPlacement placement) throws IOException {
Object original = page.getRequest().getAttribute("original");
if (original == null) {
original = content;
}
State objectState = State.getInstance(original);
Template.ObjectModification objectTemplateMod = objectState.as(Template.ObjectModification.class);
if (!Template.Static.findUsedTypes(page.getSite()).contains(objectState.getType())) {
return;
}
UUID objectId = objectState.getId();
String namePrefix = objectId + "/template/";
String defaultName = objectId + "default";
if (placement == null) {
objectTemplateMod.setDefault(Database.Static.findById(objectState.getDatabase(), Template.class, page.param(UUID.class, defaultName)));
return;
}
List<Template> usableTemplates = Template.Static.findUsable(original);
if (usableTemplates.isEmpty()) {
return;
}
Template objectTemplate = objectTemplateMod.getDefault();
if (objectTemplate == null && usableTemplates.size() == 1) {
objectTemplate = usableTemplates.get(0);
}
page.writeStart("select", "name", defaultName, "style", "width: 100%;");
{
page.writeStart("option");
page.writeHtml("- AUTOMATIC -");
page.writeEnd();
for (Template template : usableTemplates) {
page.writeStart("option",
"selected", template.equals(objectTemplate) ? "selected" : null,
"value", template.getId());
page.writeObjectLabel(template);
page.writeEnd();
}
}
page.writeEnd();
}
}