/* * The contents of this file are subject to the Mozilla Public License Version 1.1 * (the "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at . * * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT * WARRANTY OF ANY KIND, either express or implied. See the License for the specific * language governing rights and limitations under the License. * * The Original Code is the Venice Web Communities System. * * The Initial Developer of the Original Code is Eric J. Bowersox , * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are * Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. * * Contributor(s): */ package com.silverwrist.venice.ui.dlg; import java.io.IOException; import org.w3c.dom.*; import com.silverwrist.venice.except.*; import com.silverwrist.venice.ui.*; import com.silverwrist.venice.ui.helpers.HTMLRendering; import com.silverwrist.venice.util.XMLLoader; public class UserPhotoField extends BaseDialogField implements LinkTypes { /*-------------------------------------------------------------------------------- * Static data members *-------------------------------------------------------------------------------- */ public static final String TAGNAME = "userphoto"; /*-------------------------------------------------------------------------------- * Attributes *-------------------------------------------------------------------------------- */ private String link_url; private int link_type; /*-------------------------------------------------------------------------------- * Constructors *-------------------------------------------------------------------------------- */ public UserPhotoField(String name, String caption, String link_url, int link_type) { super(false,name,caption,"(click to change)",false); this.link_url = link_url; this.link_type = link_type; } // end constructor public UserPhotoField(Element elt) throws ConfigException { super(false,elt,false,false); XMLLoader loader = XMLLoader.get(); this.link_url = loader.configGetAttribute(elt,"link"); String stype = loader.configGetAttribute(elt,"type").trim().toLowerCase(); if (stype.equals("absolute")) link_type = ABSOLUTE; else if (stype.equals("servlet")) link_type = SERVLET; else if (stype.equals("frame")) link_type = FRAME; else throw new ConfigException("invalid link type= attribute"); setCaption2("(click to change)"); } // end constructor protected UserPhotoField(UserPhotoField other) { super(other); this.link_url = other.link_url; this.link_type = other.link_type; } // end constructor /*-------------------------------------------------------------------------------- * Overrides from class BaseDialogField *-------------------------------------------------------------------------------- */ protected void renderField(RequestOutput out) throws IOException { HTMLRendering html = (HTMLRendering)(out.queryService(HTMLRendering.class)); if (isEnabled()) out.write(""); out.write(html.getUserPhotoTag(getStringValue())); if (isEnabled()) out.write(""); } // end renderField /*-------------------------------------------------------------------------------- * Implementations from interface DialogField *-------------------------------------------------------------------------------- */ public DialogField duplicate() { return new UserPhotoField(this); } // end duplicate public Object sendMessage(String msg, Object data) { if (msg.equals("setLinkURL")) { // the link URL link_url = data.toString(); return null; } // end if return null; } // end sendMessage /*-------------------------------------------------------------------------------- * External operations *-------------------------------------------------------------------------------- */ public final void setLinkURL(String url, int type) { link_url = url; link_type = type; } // end setLinkURL } // end class UserPhotoField