/* * $Id:$ * * Copyright (C) 2002 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 java.util.Locale; import java.util.Map; import java.util.StringTokenizer; import com.idega.builder.business.BuilderLogic; import com.idega.builder.business.IBPageUpdater; import com.idega.builder.business.PageTreeNode; import com.idega.core.builder.presentation.ICPropertyHandler; import com.idega.core.localisation.business.ICLocaleBusiness; import com.idega.core.localisation.presentation.LocalePresentationUtil; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.TextInput; /** * This class does something very clever..... * * @author <a href="palli@idega.is">Pall Helgason</a> * @version 1.0 */ public class LocalizedPageNameHandler implements ICPropertyHandler { public LocalizedPageNameHandler() { } /** * @see com.idega.core.builder.presentation.ICPropertyHandler#getDefaultHandlerTypes() */ public List getDefaultHandlerTypes() { return null; } /** * @see com.idega.core.builder.presentation.ICPropertyHandler#getHandlerObject(String, String, IWContext) */ public PresentationObject getHandlerObject(String name, String stringValue, IWContext iwc) { System.out.println("Entering LocalizedPageNameHandler.getHandlerObject"); Table t = new Table(1,2); StringTokenizer tok = new StringTokenizer(stringValue,";"); String menuString = null; if (tok.hasMoreElements()) { menuString = (String)tok.nextElement(); } String titleString = null; if (tok.hasMoreElements()) { titleString = (String)tok.nextElement(); } DropdownMenu menu = LocalePresentationUtil.getAvailableLocalesDropdown(iwc.getIWMainApplication(),name); if (menuString != null) { menu.setSelectedElement(menuString); } TextInput title = new TextInput(name+"a"); if (titleString != null) { title.setValue(titleString); } t.add(menu,1,1); t.add(title,1,2); return t; } /** * @see com.idega.core.builder.presentation.ICPropertyHandler#onUpdate(String[], IWContext) */ public void onUpdate(String[] values, IWContext iwc) { if (values != null) { String value = values[0]; String locale = null; String name = null; StringTokenizer tok = new StringTokenizer(value,";"); if (tok.hasMoreElements()) { locale = (String)tok.nextElement(); } if (tok.hasMoreElements()) { name = (String)tok.nextElement(); } Locale loc = ICLocaleBusiness.getLocaleFromLocaleString(locale); if (locale != null && name != null && !locale.equals("") && !name.equals("")) { String currPage = BuilderLogic.getInstance().getCurrentIBPage(iwc); if (currPage != null) { Map tree = PageTreeNode.getTree(iwc); Integer i = new Integer(currPage); PageTreeNode node = (PageTreeNode) tree.get(i); node.setLocalizedNodeName(locale,name,iwc); IBPageUpdater.addLocalizedPageName(i.intValue(),ICLocaleBusiness.getLocaleId(loc),name); } } } } }