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)
|
public String getPageTitle(RenderData rdat)
|
||||||
{
|
{
|
||||||
if (uc.isLoggedIn())
|
if (title_image!=null)
|
||||||
return title;
|
{ // return an image rendering
|
||||||
|
ImageHandler ih = (uc.isLoggedIn() ? title_image : anon_title_image);
|
||||||
|
return ih.getRendering(rdat);
|
||||||
|
|
||||||
|
} // end if
|
||||||
else
|
else
|
||||||
return anon_title;
|
{ // return a title string
|
||||||
|
String rc = (uc.isLoggedIn() ? title : anon_title);
|
||||||
|
return StringUtil.encodeHTML(rc);
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
} // end getPageTitle
|
} // end getPageTitle
|
||||||
|
|
||||||
|
@ -72,8 +80,8 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
ConferenceHotlistEntry hle = (ConferenceHotlistEntry)(it.next());
|
ConferenceHotlistEntry hle = (ConferenceHotlistEntry)(it.next());
|
||||||
ConferenceContext conf = hle.getConference();
|
ConferenceContext conf = hle.getConference();
|
||||||
String href = "confdisp?sig=" + conf.getEnclosingSIG().getSIGID() + "&conf=" + conf.getConfID();
|
String href = "confdisp?sig=" + conf.getEnclosingSIG().getSIGID() + "&conf=" + conf.getConfID();
|
||||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet_width + ">");
|
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet.getWidth() + ">");
|
||||||
renderBullet(out,rdat);
|
bullet.renderHere(out,rdat);
|
||||||
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n" + norm_font
|
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n" + norm_font
|
||||||
+ "<B><A CLASS=\"sidebox\" HREF=\"" + rdat.getEncodedServletPath(href) + "\">" + hilite
|
+ "<B><A CLASS=\"sidebox\" HREF=\"" + rdat.getEncodedServletPath(href) + "\">" + hilite
|
||||||
+ StringUtil.encodeHTML(conf.getName()) + "</FONT></A></B> ("
|
+ StringUtil.encodeHTML(conf.getName()) + "</FONT></A></B> ("
|
||||||
|
@ -81,7 +89,7 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
if (conf.anyUnread())
|
if (conf.anyUnread())
|
||||||
{ // write out the new-messages tag and its enclosing link
|
{ // write out the new-messages tag and its enclosing link
|
||||||
out.write(" <A HREF=\"" + rdat.getEncodedServletPath(href + "&rnm=1") + "\">");
|
out.write(" <A HREF=\"" + rdat.getEncodedServletPath(href + "&rnm=1") + "\">");
|
||||||
renderNewMessageTag(out,rdat);
|
newmsg.renderHere(out,rdat);
|
||||||
out.write("</A>\n");
|
out.write("</A>\n");
|
||||||
|
|
||||||
} // end if
|
} // 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 title; // title of sidebox for logged-in users
|
||||||
private String anon_title; // title of sidebox for not-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 null_message; // message if they have no hotlist conferences
|
||||||
private String manage_link; // "Manage" link text
|
private String manage_link; // "Manage" link text
|
||||||
private String bullet_url; // URL to bullet image
|
private ImageHandler bullet; // bullet image
|
||||||
private boolean bullet_fixup; // does bullet image need to be run through getFullImagePath?
|
private ImageHandler newmsg; // new message image
|
||||||
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
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -136,47 +139,6 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
{ // do nothing
|
{ // do nothing
|
||||||
} // end constructor
|
} // 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
|
* Implementations from interface SideBoxFactory
|
||||||
*--------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------
|
||||||
|
@ -185,6 +147,18 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
public void setConfiguration(Element cfg) throws ConfigException
|
public void setConfiguration(Element cfg) throws ConfigException
|
||||||
{
|
{
|
||||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||||
|
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
|
||||||
|
{ // standard textual title
|
||||||
|
title_image = anon_title_image = null;
|
||||||
title = cfg_h.getSubElementText("title");
|
title = cfg_h.getSubElementText("title");
|
||||||
if (title==null)
|
if (title==null)
|
||||||
throw new ConfigException("no <title/> specified for conference list sidebox",cfg);
|
throw new ConfigException("no <title/> specified for conference list sidebox",cfg);
|
||||||
|
@ -195,6 +169,8 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
else
|
else
|
||||||
anon_title += ":";
|
anon_title += ":";
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
null_message = cfg_h.getSubElementText("null-msg");
|
null_message = cfg_h.getSubElementText("null-msg");
|
||||||
if (null_message==null)
|
if (null_message==null)
|
||||||
null_message = "You are not a member of any SIGs.";
|
null_message = "You are not a member of any SIGs.";
|
||||||
|
@ -203,72 +179,12 @@ public class ConferenceBox implements SideBoxFactory
|
||||||
if (manage_link==null)
|
if (manage_link==null)
|
||||||
manage_link = "Manage";
|
manage_link = "Manage";
|
||||||
|
|
||||||
Element x = cfg_h.getSubElement("bullet");
|
bullet = new ImageHandler(cfg_h.getSubElement("bullet"),"purple-ball.gif","*",14,14);
|
||||||
if (x!=null)
|
newmsg = new ImageHandler(cfg_h.getSubElement("new-image"),"tag_new.gif","New!",40,20);
|
||||||
{ // 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
|
|
||||||
|
|
||||||
} // end setConfiguration
|
} // 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);
|
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)
|
public String getPageTitle(RenderData rdat)
|
||||||
{
|
{
|
||||||
return factory.getTitle(uc.isLoggedIn());
|
return factory.getTitle(uc.isLoggedIn(),rdat);
|
||||||
|
|
||||||
} // end getPageTitle
|
} // 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 title; // title of sidebox for logged-in users
|
||||||
private String anon_title; // title of sidebox for not-logged-in users
|
private String anon_title; // title of sidebox for not-logged-in users
|
||||||
private String format_jsp; // name of formatting JSP file
|
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
|
} // end getTitle
|
||||||
|
|
||||||
|
@ -83,6 +96,18 @@ public class JSPSideBoxFactory implements SideBoxFactory
|
||||||
public void setConfiguration(Element cfg) throws ConfigException
|
public void setConfiguration(Element cfg) throws ConfigException
|
||||||
{
|
{
|
||||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||||
|
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
|
||||||
|
{ // standard textual title
|
||||||
|
title_image = anon_title_image = null;
|
||||||
title = cfg_h.getSubElementText("title");
|
title = cfg_h.getSubElementText("title");
|
||||||
if (title==null)
|
if (title==null)
|
||||||
throw new ConfigException("no <title/> specified for sidebox",cfg);
|
throw new ConfigException("no <title/> specified for sidebox",cfg);
|
||||||
|
@ -93,6 +118,8 @@ public class JSPSideBoxFactory implements SideBoxFactory
|
||||||
else
|
else
|
||||||
anon_title += ":";
|
anon_title += ":";
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
format_jsp = cfg_h.getSubElementText("format-jsp");
|
format_jsp = cfg_h.getSubElementText("format-jsp");
|
||||||
if (format_jsp==null)
|
if (format_jsp==null)
|
||||||
throw new ConfigException("no <format-jsp/> specified for sidebox",cfg);
|
throw new ConfigException("no <format-jsp/> specified for sidebox",cfg);
|
||||||
|
|
|
@ -46,10 +46,18 @@ public class SIGBox implements SideBoxFactory
|
||||||
|
|
||||||
public String getPageTitle(RenderData rdat)
|
public String getPageTitle(RenderData rdat)
|
||||||
{
|
{
|
||||||
if (uc.isLoggedIn())
|
if (title_image!=null)
|
||||||
return title;
|
{ // return an image rendering
|
||||||
|
ImageHandler ih = (uc.isLoggedIn() ? title_image : anon_title_image);
|
||||||
|
return ih.getRendering(rdat);
|
||||||
|
|
||||||
|
} // end if
|
||||||
else
|
else
|
||||||
return anon_title;
|
{ // return a title string
|
||||||
|
String rc = (uc.isLoggedIn() ? title : anon_title);
|
||||||
|
return StringUtil.encodeHTML(rc);
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
} // end getPageTitle
|
} // end getPageTitle
|
||||||
|
|
||||||
|
@ -69,15 +77,15 @@ public class SIGBox implements SideBoxFactory
|
||||||
while (it.hasNext())
|
while (it.hasNext())
|
||||||
{ // write each SIG out in turn
|
{ // write each SIG out in turn
|
||||||
SIGContext sig = (SIGContext)(it.next());
|
SIGContext sig = (SIGContext)(it.next());
|
||||||
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet_width + ">");
|
out.write("<TR VALIGN=MIDDLE>\n<TD ALIGN=CENTER WIDTH=" + bullet.getWidth() + ">");
|
||||||
renderBullet(out,rdat);
|
bullet.renderHere(out,rdat);
|
||||||
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n<A CLASS=\"sidebox\" HREF=\""
|
out.write("</TD>\n<TD ALIGN=LEFT CLASS=\"sidebox\">\n<A CLASS=\"sidebox\" HREF=\""
|
||||||
+ rdat.getEncodedServletPath("sig/" + sig.getAlias()) + "\">" + link_font + "<B>"
|
+ rdat.getEncodedServletPath("sig/" + sig.getAlias()) + "\">" + link_font + "<B>"
|
||||||
+ StringUtil.encodeHTML(sig.getName()) + "</B></FONT></A>\n");
|
+ StringUtil.encodeHTML(sig.getName()) + "</B></FONT></A>\n");
|
||||||
if (sig.isAdmin())
|
if (sig.isAdmin())
|
||||||
{ // write the host tag at the end
|
{ // write the host tag at the end
|
||||||
out.write(" ");
|
out.write(" ");
|
||||||
renderHostTag(out,rdat);
|
host.renderHere(out,rdat);
|
||||||
|
|
||||||
} // end if
|
} // 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 title; // title of sidebox for logged-in users
|
||||||
private String anon_title; // title of sidebox for not-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 null_message; // message if they're not a member of any SIGs
|
||||||
private String manage_link; // "Manage" link text
|
private String manage_link; // "Manage" link text
|
||||||
private String create_new_link; // "Create New" link text
|
private String create_new_link; // "Create New" link text
|
||||||
private String bullet_url; // URL to bullet image
|
private ImageHandler bullet; // bullet image
|
||||||
private boolean bullet_fixup; // does bullet image need to be run through getFullImagePath?
|
private ImageHandler host; // host image
|
||||||
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
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------------
|
/*--------------------------------------------------------------------------------
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -137,47 +140,6 @@ public class SIGBox implements SideBoxFactory
|
||||||
{ // do nothing
|
{ // do nothing
|
||||||
} // end constructor
|
} // 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
|
* Implementations from interface SideBoxFactory
|
||||||
*--------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------
|
||||||
|
@ -186,6 +148,18 @@ public class SIGBox implements SideBoxFactory
|
||||||
public void setConfiguration(Element cfg) throws ConfigException
|
public void setConfiguration(Element cfg) throws ConfigException
|
||||||
{
|
{
|
||||||
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
DOMElementHelper cfg_h = new DOMElementHelper(cfg);
|
||||||
|
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
|
||||||
|
{ // standard textual title
|
||||||
|
title_image = anon_title_image = null;
|
||||||
title = cfg_h.getSubElementText("title");
|
title = cfg_h.getSubElementText("title");
|
||||||
if (title==null)
|
if (title==null)
|
||||||
throw new ConfigException("no <title/> specified for SIG list sidebox",cfg);
|
throw new ConfigException("no <title/> specified for SIG list sidebox",cfg);
|
||||||
|
@ -196,6 +170,8 @@ public class SIGBox implements SideBoxFactory
|
||||||
else
|
else
|
||||||
anon_title += ":";
|
anon_title += ":";
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
null_message = cfg_h.getSubElementText("null-msg");
|
null_message = cfg_h.getSubElementText("null-msg");
|
||||||
if (null_message==null)
|
if (null_message==null)
|
||||||
null_message = "You are not a member of any SIGs.";
|
null_message = "You are not a member of any SIGs.";
|
||||||
|
@ -208,68 +184,8 @@ public class SIGBox implements SideBoxFactory
|
||||||
if (create_new_link==null)
|
if (create_new_link==null)
|
||||||
create_new_link = "Create New";
|
create_new_link = "Create New";
|
||||||
|
|
||||||
Element x = cfg_h.getSubElement("bullet");
|
bullet = new ImageHandler(cfg_h.getSubElement("bullet"),"purple-ball.gif","*",14,14);
|
||||||
if (x!=null)
|
host = new ImageHandler(cfg_h.getSubElement("host-image"),"tag_host.gif","Host!",40,20);
|
||||||
{ // 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
|
|
||||||
|
|
||||||
} // end setConfiguration
|
} // end setConfiguration
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user