/*
* $Id: IBTemplateHandler.java,v 1.10.2.1 2007/01/12 19:32:32 idegaweb Exp $
*
* Copyright (C) 2001 Idega hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*
*/
package com.idega.builder.handler;
import java.util.List;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.IWContext;
import com.idega.presentation.Page;
import com.idega.builder.presentation.IBTemplateChooser;
import com.idega.builder.business.PageTreeNode;
import com.idega.builder.business.BuilderLogic;
import com.idega.builder.business.IBPageUpdater;
import com.idega.core.builder.presentation.ICPropertyHandler;
import java.util.Map;
/**
* @author <a href="palli@idega.is">Pall Helgason</a>
* @version 1.0
*/
public class IBTemplateHandler implements ICPropertyHandler {
/**
*
*/
public IBTemplateHandler() {
}
/**
*
*/
public List getDefaultHandlerTypes() {
return(null);
}
/**
*
*/
public PresentationObject getHandlerObject(String name, String value, IWContext iwc) {
IBTemplateChooser chooser = new IBTemplateChooser(name);
try {
if (value != null && !value.equals("")) {
Map tree = PageTreeNode.getTree(iwc);
if (tree != null) {
PageTreeNode node = (PageTreeNode)tree.get(Integer.valueOf(value));
if (node != null) {
chooser.setSelectedPage(node.getNodeID(),node.getNodeName());
}
}
}
}
catch(NumberFormatException e) {
e.printStackTrace();
}
return(chooser);
}
/**
*
*/
public void onUpdate(String values[], IWContext iwc) {
try {
if (values != null) {
String value = values[0];
if (value != null && !value.equals("")) {
BuilderLogic instance = BuilderLogic.getInstance();
String currPage = instance.getCurrentIBPage(iwc);
if (currPage != null) {
int p = Integer.parseInt(currPage);
int v = Integer.parseInt(value);
instance.changeTemplateId(value,iwc);
IBPageUpdater.updateTemplateId(p,v);
try{
Page template = instance.getIBXMLPage(value).getPopulatedPage();
if (template != null) {
if (template.isLocked()) {
instance.lockRegion(currPage,"-1");
}
else {
instance.unlockRegion(currPage,"-1",null);
}
}
}
catch(ClassCastException ce){
//this happens when the template is of type html or not ibxml
}
}
}
}
}
catch(NumberFormatException e) {
e.printStackTrace();
}
}
}