refactored image handler code for sideboxes into a separate class; added option
for titles of sideboxes to be images
This commit is contained in:
parent
e201ecb34b
commit
e1d22e1082
|
@ -46,10 +46,18 @@ public class ConferenceBox implements SideBoxFactory
|
|||
|
||||
public String getPageTitle(RenderData rdat)
|
||||
{
|
||||
if (uc.isLoggedIn())
|
||||
return title;
|
||||
if (title_image!=null)
|
||||
{ // return an image rendering
|
||||
ImageHandler ih = (uc.isLoggedIn() ? title_image : anon_title_image);
|
||||
return ih.getRendering(rdat);
|
||||
|
||||
} // end if
|
||||
else
|
||||
return anon_title;
|
||||
{ // return a title string
|
||||
String rc = (uc.isLoggedIn() ? title : anon_title);
|
||||
return StringUtil.encodeHTML(rc);
|
||||
|
||||
} // end else
|
||||
|
||||
} // end getPageTitle
|
||||
|
||||
|
@ -72,8 +80,8 @@ public class ConferenceBox implements SideBoxFactory
|
|||
ConferenceHotlistEntry hle = (ConferenceHotlistEntry)(it.next());
|
||||
ConferenceContext conf = hle.getConference();
|
||||
String href = "confdisp?sig=" + conf.getEnclosingSIG().getSIGID() + "&conf=" + conf.getConfID();
|
||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet_width + ">");
|
||||
renderBullet(out,rdat);
|
||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet.getWidth() + ">");
|
||||
bullet.renderHere(out,rdat);
|
||||
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n" + norm_font
|
||||
+ "<B><A CLASS=\"sidebox\" HREF=\"" + rdat.getEncodedServletPath(href) + "\">" + hilite
|
||||
+ StringUtil.encodeHTML(conf.getName()) + "</FONT></A></B> ("
|
||||
|
@ -81,7 +89,7 @@ public class ConferenceBox implements SideBoxFactory
|
|||
if (conf.anyUnread())
|
||||
{ // write out the new-messages tag and its enclosing link
|
||||
out.write(" <A HREF=\"" + rdat.getEncodedServletPath(href + "&rnm=1") + "\">");
|
||||
renderNewMessageTag(out,rdat);
|
||||
newmsg.renderHere(out,rdat);
|
||||
out.write("</A>\n");
|
||||
|
||||
} // end if
|
||||
|
@ -113,19 +121,14 @@ public class ConferenceBox implements SideBoxFactory
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private ImageHandler title_image; // title image for sidebox for logged-in users
|
||||
private ImageHandler anon_title_image; // title image for sidebox for not-logged-in users
|
||||
private String title; // title of sidebox for logged-in users
|
||||
private String anon_title; // title of sidebox for not-logged-in users
|
||||
private String null_message; // message if they have no hotlist conferences
|
||||
private String manage_link; // "Manage" link text
|
||||
private String bullet_url; // URL to bullet image
|
||||
private boolean bullet_fixup; // does bullet image need to be run through getFullImagePath?
|
||||
private int bullet_width; // width of bullet image
|
||||
private int bullet_height; // height of bullet image
|
||||
private String newmsg_url; // URL to new messages tag image
|
||||
private boolean newmsg_fixup; // does new messages image need to be run through getFullImagePath?
|
||||
private String newmsg_alt; // ALT text to use for new message tag image
|
||||
private int newmsg_width; // width of new message tag image
|
||||
private int newmsg_height; // height of new message tag image
|
||||
private ImageHandler bullet; // bullet image
|
||||
private ImageHandler newmsg; // new message image
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
|
@ -136,47 +139,6 @@ public class ConferenceBox implements SideBoxFactory
|
|||
{ // do nothing
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Internal operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private void renderBullet(Writer out, RenderData rdat) throws IOException
|
||||
{
|
||||
synchronized (this)
|
||||
{ // this may be called by more than one class, so protect this part
|
||||
if (bullet_fixup)
|
||||
{ // fix up the bullet URL
|
||||
bullet_url = rdat.getFullImagePath(bullet_url);
|
||||
bullet_fixup = false;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end synchronized block
|
||||
|
||||
out.write("<IMG SRC=\"" + bullet_url + "\" ALT=\"*\" WIDTH=" + bullet_width + " HEIGHT=" + bullet_height
|
||||
+ " BORDER=0>");
|
||||
|
||||
} // end renderBullet
|
||||
|
||||
private void renderNewMessageTag(Writer out, RenderData rdat) throws IOException
|
||||
{
|
||||
synchronized (this)
|
||||
{ // this may be called by more than one class, so protect this part
|
||||
if (newmsg_fixup)
|
||||
{ // fix up the host tag URL
|
||||
newmsg_url = rdat.getFullImagePath(newmsg_url);
|
||||
newmsg_fixup = false;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end synchronized block
|
||||
|
||||
out.write("<IMG SRC=\"" + newmsg_url + "\" ALT=\"" + newmsg_alt + "\" WIDTH=" + newmsg_width + " HEIGHT="
|
||||
+ newmsg_height + " BORDER=0>");
|
||||
|
||||
} // end renderNewMessageTag
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface SideBoxFactory
|
||||
*--------------------------------------------------------------------------------
|
||||
|
@ -185,15 +147,29 @@ public class ConferenceBox implements SideBoxFactory
|
|||
public void setConfiguration(Element cfg) throws ConfigException
|
||||
{
|
||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for conference list sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
title_image = new ImageHandler(cfg_h.getSubElement("title-image"));
|
||||
if (title_image.isDefined())
|
||||
{ // we're using image titles...
|
||||
title = anon_title = null;
|
||||
anon_title_image = new ImageHandler(cfg_h.getSubElement("anon-title-image"));
|
||||
if (!(anon_title_image.isDefined()))
|
||||
anon_title_image = title_image;
|
||||
|
||||
} // end if
|
||||
else
|
||||
anon_title += ":";
|
||||
{ // standard textual title
|
||||
title_image = anon_title_image = null;
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for conference list sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
else
|
||||
anon_title += ":";
|
||||
|
||||
} // end else
|
||||
|
||||
null_message = cfg_h.getSubElementText("null-msg");
|
||||
if (null_message==null)
|
||||
|
@ -203,72 +179,12 @@ public class ConferenceBox implements SideBoxFactory
|
|||
if (manage_link==null)
|
||||
manage_link = "Manage";
|
||||
|
||||
Element x = cfg_h.getSubElement("bullet");
|
||||
if (x!=null)
|
||||
{ // get the parameters for the bullet image
|
||||
DOMElementHelper x_h = new DOMElementHelper(x);
|
||||
bullet_url = x_h.getElementText();
|
||||
if (StringUtil.isStringEmpty(bullet_url))
|
||||
{ // default the bullet URL and fixup parameter
|
||||
bullet_url = "purple-ball.gif";
|
||||
bullet_fixup = true;
|
||||
|
||||
} // end if
|
||||
else // get the "fixup" parameter
|
||||
bullet_fixup = x_h.hasAttribute("fixup");
|
||||
|
||||
Integer xi = x_h.getAttributeInt("width");
|
||||
bullet_width = (xi!=null) ? xi.intValue() : 14;
|
||||
xi = x_h.getAttributeInt("height");
|
||||
bullet_height = (xi!=null) ? xi.intValue() : 14;
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // just default all the bullet parameters
|
||||
bullet_url = "purple-ball.gif";
|
||||
bullet_fixup = true;
|
||||
bullet_width = 14;
|
||||
bullet_height = 14;
|
||||
|
||||
} // end else
|
||||
|
||||
x = cfg_h.getSubElement("new-image");
|
||||
if (x!=null)
|
||||
{ // get the parameters for the host tag image
|
||||
DOMElementHelper x_h = new DOMElementHelper(x);
|
||||
newmsg_url = x_h.getElementText();
|
||||
if (StringUtil.isStringEmpty(newmsg_url))
|
||||
{ // default the host tag image URL and fixup parameter
|
||||
newmsg_url = "tag_new.gif";
|
||||
newmsg_fixup = true;
|
||||
|
||||
} // end if
|
||||
else // get the "fixup" parameter
|
||||
newmsg_fixup = x_h.hasAttribute("fixup");
|
||||
|
||||
newmsg_alt = x.getAttribute("alt");
|
||||
if (StringUtil.isStringEmpty(newmsg_alt))
|
||||
newmsg_alt = "New!";
|
||||
|
||||
Integer xi = x_h.getAttributeInt("width");
|
||||
newmsg_width = (xi!=null) ? xi.intValue() : 40;
|
||||
xi = x_h.getAttributeInt("height");
|
||||
newmsg_height = (xi!=null) ? xi.intValue() : 20;
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // just default all the host tag parameters
|
||||
newmsg_url = "tag_new.gif";
|
||||
newmsg_fixup = true;
|
||||
newmsg_alt = "New!";
|
||||
newmsg_width = 40;
|
||||
newmsg_height = 20;
|
||||
|
||||
} // end else
|
||||
bullet = new ImageHandler(cfg_h.getSubElement("bullet"),"purple-ball.gif","*",14,14);
|
||||
newmsg = new ImageHandler(cfg_h.getSubElement("new-image"),"tag_new.gif","New!",40,20);
|
||||
|
||||
} // end setConfiguration
|
||||
|
||||
public VeniceContent create(VeniceEngine engine, UserContext uc) throws AccessError, DataException
|
||||
public VeniceContent create(VeniceEngine engine, UserContext uc) throws DataException
|
||||
{
|
||||
return new ConferenceBoxImpl(uc);
|
||||
|
||||
|
|
|
@ -0,0 +1,186 @@
|
|||
/*
|
||||
* 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 <http://www.mozilla.org/MPL/>.
|
||||
*
|
||||
* 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 <erbo@silcom.com>,
|
||||
* 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.servlets.format.sideboxes;
|
||||
|
||||
import java.io.*;
|
||||
import org.w3c.dom.*;
|
||||
import com.silverwrist.util.DOMElementHelper;
|
||||
import com.silverwrist.util.StringUtil;
|
||||
import com.silverwrist.venice.servlets.format.*;
|
||||
|
||||
public class ImageHandler implements ComponentRender
|
||||
{
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Attributes
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private String url; // URL of the image
|
||||
private boolean fixup; // does the image need to be fixed up?
|
||||
private String alt; // ALT text for the image
|
||||
private int width; // width of the image
|
||||
private int height; // height of the image
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructors
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public ImageHandler(Element tag, String def_url, String def_alt, int def_width, int def_height)
|
||||
{
|
||||
if (tag!=null)
|
||||
{ // extract the details from the tag
|
||||
DOMElementHelper h = new DOMElementHelper(tag);
|
||||
url = h.getElementText();
|
||||
if (StringUtil.isStringEmpty(url))
|
||||
{ // default the URL and fixup parameter
|
||||
url = def_url;
|
||||
fixup = true;
|
||||
|
||||
} // end if
|
||||
else // get the "fixup" parameter
|
||||
fixup = h.hasAttribute("fixup");
|
||||
|
||||
alt = tag.getAttribute("alt");
|
||||
if (StringUtil.isStringEmpty(alt))
|
||||
alt = def_alt;
|
||||
|
||||
Integer tmp = h.getAttributeInt("width");
|
||||
width = (tmp!=null) ? tmp.intValue() : def_width;
|
||||
tmp = h.getAttributeInt("height");
|
||||
height = (tmp!=null) ? tmp.intValue() : def_height;
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // just fill in all the defaults
|
||||
url = def_url;
|
||||
fixup = true;
|
||||
alt = def_alt;
|
||||
width = def_width;
|
||||
height = def_height;
|
||||
|
||||
} // end else
|
||||
|
||||
} // end constructor
|
||||
|
||||
public ImageHandler(Element tag)
|
||||
{
|
||||
boolean defined = (tag!=null);
|
||||
DOMElementHelper h = null;
|
||||
if (defined)
|
||||
{ // check the URL and see if it's defined
|
||||
h = new DOMElementHelper(tag);
|
||||
url = h.getElementText();
|
||||
defined = !(StringUtil.isStringEmpty(url));
|
||||
|
||||
} // end if
|
||||
|
||||
Integer tmp = null;
|
||||
if (defined)
|
||||
{ // get the ALT text if it's there
|
||||
alt = tag.getAttribute("alt");
|
||||
if (StringUtil.isStringEmpty(alt))
|
||||
alt = "";
|
||||
|
||||
// get the width
|
||||
tmp = h.getAttributeInt("width");
|
||||
defined = (tmp!=null);
|
||||
|
||||
} // end if
|
||||
|
||||
if (defined)
|
||||
{ // stash the width, get the height
|
||||
width = tmp.intValue();
|
||||
tmp = h.getAttributeInt("height");
|
||||
defined = (tmp!=null);
|
||||
|
||||
} // end if
|
||||
|
||||
if (defined)
|
||||
height = tmp.intValue();
|
||||
else
|
||||
{ // not defined - clear it out
|
||||
url = null;
|
||||
fixup = false;
|
||||
alt = null;
|
||||
width = -1;
|
||||
height = -1;
|
||||
|
||||
} // end else
|
||||
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface ComponentRender
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public void renderHere(Writer out, RenderData rdat) throws IOException
|
||||
{
|
||||
if (url!=null)
|
||||
out.write(getRendering(rdat));
|
||||
|
||||
} // end renderHere
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* External operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
public boolean isDefined()
|
||||
{
|
||||
return (url!=null);
|
||||
|
||||
} // end if
|
||||
|
||||
public int getWidth()
|
||||
{
|
||||
return width;
|
||||
|
||||
} // end getWidth
|
||||
|
||||
public int getHeight()
|
||||
{
|
||||
return height;
|
||||
|
||||
} // end getHeight
|
||||
|
||||
public String getRendering(RenderData rdat)
|
||||
{
|
||||
if (url==null)
|
||||
return "";
|
||||
|
||||
synchronized (this)
|
||||
{ // this may be called by more than one class, so protect this part
|
||||
if (fixup)
|
||||
{ // fix up the host tag URL
|
||||
url = rdat.getFullImagePath(url);
|
||||
fixup = false;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end synchronized block
|
||||
|
||||
StringBuffer buf = new StringBuffer("<IMG SRC=\"");
|
||||
buf.append(url).append("\" ALT=\"").append(alt).append("\" WIDTH=").append(width).append(" HEIGHT=");
|
||||
buf.append(height).append(" BORDER=0>");
|
||||
return buf.toString();
|
||||
|
||||
} // end getRendering
|
||||
|
||||
} // end class ImageHandler
|
|
@ -74,7 +74,7 @@ public class JSPSideBox implements JSPRender
|
|||
|
||||
public String getPageTitle(RenderData rdat)
|
||||
{
|
||||
return factory.getTitle(uc.isLoggedIn());
|
||||
return factory.getTitle(uc.isLoggedIn(),rdat);
|
||||
|
||||
} // end getPageTitle
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ public class JSPSideBoxFactory implements SideBoxFactory
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private ImageHandler title_image; // title image for sidebox for logged-in users
|
||||
private ImageHandler anon_title_image; // title image for sidebox for not-logged-in users
|
||||
private String title; // title of sidebox for logged-in users
|
||||
private String anon_title; // title of sidebox for not-logged-in users
|
||||
private String format_jsp; // name of formatting JSP file
|
||||
|
@ -51,9 +53,20 @@ public class JSPSideBoxFactory implements SideBoxFactory
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
String getTitle(boolean logged_in)
|
||||
String getTitle(boolean logged_in, RenderData rdat)
|
||||
{
|
||||
return (logged_in ? title : anon_title);
|
||||
if (title_image!=null)
|
||||
{ // return an image rendering
|
||||
ImageHandler ih = (logged_in ? title_image : anon_title_image);
|
||||
return ih.getRendering(rdat);
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // return a title string
|
||||
String rc = (logged_in ? title : anon_title);
|
||||
return StringUtil.encodeHTML(rc);
|
||||
|
||||
} // end else
|
||||
|
||||
} // end getTitle
|
||||
|
||||
|
@ -83,15 +96,29 @@ public class JSPSideBoxFactory implements SideBoxFactory
|
|||
public void setConfiguration(Element cfg) throws ConfigException
|
||||
{
|
||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
title_image = new ImageHandler(cfg_h.getSubElement("title-image"));
|
||||
if (title_image.isDefined())
|
||||
{ // we're using image titles...
|
||||
title = anon_title = null;
|
||||
anon_title_image = new ImageHandler(cfg_h.getSubElement("anon-title-image"));
|
||||
if (!(anon_title_image.isDefined()))
|
||||
anon_title_image = title_image;
|
||||
|
||||
} // end if
|
||||
else
|
||||
anon_title += ":";
|
||||
{ // standard textual title
|
||||
title_image = anon_title_image = null;
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
else
|
||||
anon_title += ":";
|
||||
|
||||
} // end else
|
||||
|
||||
format_jsp = cfg_h.getSubElementText("format-jsp");
|
||||
if (format_jsp==null)
|
||||
|
|
|
@ -46,10 +46,18 @@ public class SIGBox implements SideBoxFactory
|
|||
|
||||
public String getPageTitle(RenderData rdat)
|
||||
{
|
||||
if (uc.isLoggedIn())
|
||||
return title;
|
||||
if (title_image!=null)
|
||||
{ // return an image rendering
|
||||
ImageHandler ih = (uc.isLoggedIn() ? title_image : anon_title_image);
|
||||
return ih.getRendering(rdat);
|
||||
|
||||
} // end if
|
||||
else
|
||||
return anon_title;
|
||||
{ // return a title string
|
||||
String rc = (uc.isLoggedIn() ? title : anon_title);
|
||||
return StringUtil.encodeHTML(rc);
|
||||
|
||||
} // end else
|
||||
|
||||
} // end getPageTitle
|
||||
|
||||
|
@ -69,15 +77,15 @@ public class SIGBox implements SideBoxFactory
|
|||
while (it.hasNext())
|
||||
{ // write each SIG out in turn
|
||||
SIGContext sig = (SIGContext)(it.next());
|
||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet_width + ">");
|
||||
renderBullet(out,rdat);
|
||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet.getWidth() + ">");
|
||||
bullet.renderHere(out,rdat);
|
||||
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n<A CLASS=\"sidebox\" HREF=\""
|
||||
+ rdat.getEncodedServletPath("sig/" + sig.getAlias()) + "\">" + link_font + "<B>"
|
||||
+ StringUtil.encodeHTML(sig.getName()) + "</B></FONT></A>\n");
|
||||
if (sig.isAdmin())
|
||||
{ // write the host tag at the end
|
||||
out.write(" ");
|
||||
renderHostTag(out,rdat);
|
||||
host.renderHere(out,rdat);
|
||||
|
||||
} // end if
|
||||
|
||||
|
@ -113,20 +121,15 @@ public class SIGBox implements SideBoxFactory
|
|||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private ImageHandler title_image; // title image for sidebox for logged-in users
|
||||
private ImageHandler anon_title_image; // title image for sidebox for not-logged-in users
|
||||
private String title; // title of sidebox for logged-in users
|
||||
private String anon_title; // title of sidebox for not-logged-in users
|
||||
private String null_message; // message if they're not a member of any SIGs
|
||||
private String manage_link; // "Manage" link text
|
||||
private String create_new_link; // "Create New" link text
|
||||
private String bullet_url; // URL to bullet image
|
||||
private boolean bullet_fixup; // does bullet image need to be run through getFullImagePath?
|
||||
private int bullet_width; // width of bullet image
|
||||
private int bullet_height; // height of bullet image
|
||||
private String host_url; // URL to host tag image
|
||||
private boolean host_fixup; // does host tag image need to be run through getFullImagePath?
|
||||
private String host_alt; // ALT text to use for host tag image
|
||||
private int host_width; // width of host tag image
|
||||
private int host_height; // height of host tag image
|
||||
private ImageHandler bullet; // bullet image
|
||||
private ImageHandler host; // host image
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Constructor
|
||||
|
@ -137,47 +140,6 @@ public class SIGBox implements SideBoxFactory
|
|||
{ // do nothing
|
||||
} // end constructor
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Internal operations
|
||||
*--------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
private void renderBullet(Writer out, RenderData rdat) throws IOException
|
||||
{
|
||||
synchronized (this)
|
||||
{ // this may be called by more than one class, so protect this part
|
||||
if (bullet_fixup)
|
||||
{ // fix up the bullet URL
|
||||
bullet_url = rdat.getFullImagePath(bullet_url);
|
||||
bullet_fixup = false;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end synchronized block
|
||||
|
||||
out.write("<IMG SRC=\"" + bullet_url + "\" ALT=\"*\" WIDTH=" + bullet_width + " HEIGHT=" + bullet_height
|
||||
+ " BORDER=0>");
|
||||
|
||||
} // end renderBullet
|
||||
|
||||
private void renderHostTag(Writer out, RenderData rdat) throws IOException
|
||||
{
|
||||
synchronized (this)
|
||||
{ // this may be called by more than one class, so protect this part
|
||||
if (host_fixup)
|
||||
{ // fix up the host tag URL
|
||||
host_url = rdat.getFullImagePath(host_url);
|
||||
host_fixup = false;
|
||||
|
||||
} // end if
|
||||
|
||||
} // end synchronized block
|
||||
|
||||
out.write("<IMG SRC=\"" + host_url + "\" ALT=\"" + host_alt + "\" WIDTH=" + host_width + " HEIGHT="
|
||||
+ host_height + " BORDER=0>");
|
||||
|
||||
} // end renderBullet
|
||||
|
||||
/*--------------------------------------------------------------------------------
|
||||
* Implementations from interface SideBoxFactory
|
||||
*--------------------------------------------------------------------------------
|
||||
|
@ -186,15 +148,29 @@ public class SIGBox implements SideBoxFactory
|
|||
public void setConfiguration(Element cfg) throws ConfigException
|
||||
{
|
||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for SIG list sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
title_image = new ImageHandler(cfg_h.getSubElement("title-image"));
|
||||
if (title_image.isDefined())
|
||||
{ // we're using image titles...
|
||||
title = anon_title = null;
|
||||
anon_title_image = new ImageHandler(cfg_h.getSubElement("anon-title-image"));
|
||||
if (!(anon_title_image.isDefined()))
|
||||
anon_title_image = title_image;
|
||||
|
||||
} // end if
|
||||
else
|
||||
anon_title += ":";
|
||||
{ // standard textual title
|
||||
title_image = anon_title_image = null;
|
||||
title = cfg_h.getSubElementText("title");
|
||||
if (title==null)
|
||||
throw new ConfigException("no <title/> specified for SIG list sidebox",cfg);
|
||||
title += ":";
|
||||
anon_title = cfg_h.getSubElementText("anon-title");
|
||||
if (anon_title==null)
|
||||
anon_title = title;
|
||||
else
|
||||
anon_title += ":";
|
||||
|
||||
} // end else
|
||||
|
||||
null_message = cfg_h.getSubElementText("null-msg");
|
||||
if (null_message==null)
|
||||
|
@ -208,68 +184,8 @@ public class SIGBox implements SideBoxFactory
|
|||
if (create_new_link==null)
|
||||
create_new_link = "Create New";
|
||||
|
||||
Element x = cfg_h.getSubElement("bullet");
|
||||
if (x!=null)
|
||||
{ // get the parameters for the bullet image
|
||||
DOMElementHelper x_h = new DOMElementHelper(x);
|
||||
bullet_url = x_h.getElementText();
|
||||
if (StringUtil.isStringEmpty(bullet_url))
|
||||
{ // default the bullet URL and fixup parameter
|
||||
bullet_url = "purple-ball.gif";
|
||||
bullet_fixup = true;
|
||||
|
||||
} // end if
|
||||
else // get the "fixup" parameter
|
||||
bullet_fixup = x_h.hasAttribute("fixup");
|
||||
|
||||
Integer xi = x_h.getAttributeInt("width");
|
||||
bullet_width = (xi!=null) ? xi.intValue() : 14;
|
||||
xi = x_h.getAttributeInt("height");
|
||||
bullet_height = (xi!=null) ? xi.intValue() : 14;
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // just default all the bullet parameters
|
||||
bullet_url = "purple-ball.gif";
|
||||
bullet_fixup = true;
|
||||
bullet_width = 14;
|
||||
bullet_height = 14;
|
||||
|
||||
} // end else
|
||||
|
||||
x = cfg_h.getSubElement("host-image");
|
||||
if (x!=null)
|
||||
{ // get the parameters for the host tag image
|
||||
DOMElementHelper x_h = new DOMElementHelper(x);
|
||||
host_url = x_h.getElementText();
|
||||
if (StringUtil.isStringEmpty(host_url))
|
||||
{ // default the host tag image URL and fixup parameter
|
||||
host_url = "tag_host.gif";
|
||||
host_fixup = true;
|
||||
|
||||
} // end if
|
||||
else // get the "fixup" parameter
|
||||
host_fixup = x_h.hasAttribute("fixup");
|
||||
|
||||
host_alt = x.getAttribute("alt");
|
||||
if (StringUtil.isStringEmpty(host_alt))
|
||||
host_alt = "Host!";
|
||||
|
||||
Integer xi = x_h.getAttributeInt("width");
|
||||
host_width = (xi!=null) ? xi.intValue() : 40;
|
||||
xi = x_h.getAttributeInt("height");
|
||||
host_height = (xi!=null) ? xi.intValue() : 20;
|
||||
|
||||
} // end if
|
||||
else
|
||||
{ // just default all the host tag parameters
|
||||
host_url = "tag_host.gif";
|
||||
host_fixup = true;
|
||||
host_alt = "Host!";
|
||||
host_width = 40;
|
||||
host_height = 20;
|
||||
|
||||
} // end else
|
||||
bullet = new ImageHandler(cfg_h.getSubElement("bullet"),"purple-ball.gif","*",14,14);
|
||||
host = new ImageHandler(cfg_h.getSubElement("host-image"),"tag_host.gif","Host!",40,20);
|
||||
|
||||
} // end setConfiguration
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user