diff --git a/src/com/silverwrist/venice/servlets/format/sideboxes/ConferenceBox.java b/src/com/silverwrist/venice/servlets/format/sideboxes/ConferenceBox.java
index a3f4d7f..d0d0154 100644
--- a/src/com/silverwrist/venice/servlets/format/sideboxes/ConferenceBox.java
+++ b/src/com/silverwrist/venice/servlets/format/sideboxes/ConferenceBox.java
@@ -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("
\n");
+ bullet.renderHere(out,rdat);
out.write(" | \n\n" + norm_font
+ "" + hilite
+ StringUtil.encodeHTML(conf.getName()) + " ("
@@ -81,7 +89,7 @@ public class ConferenceBox implements SideBoxFactory
if (conf.anyUnread())
{ // write out the new-messages tag and its enclosing link
out.write(" ");
- renderNewMessageTag(out,rdat);
+ newmsg.renderHere(out,rdat);
out.write("\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("");
-
- } // 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("");
-
- } // 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 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 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);
diff --git a/src/com/silverwrist/venice/servlets/format/sideboxes/ImageHandler.java b/src/com/silverwrist/venice/servlets/format/sideboxes/ImageHandler.java
new file mode 100644
index 0000000..6af27c9
--- /dev/null
+++ b/src/com/silverwrist/venice/servlets/format/sideboxes/ImageHandler.java
@@ -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 .
+ *
+ * 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.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("");
+ return buf.toString();
+
+ } // end getRendering
+
+} // end class ImageHandler
diff --git a/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBox.java b/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBox.java
index e980ef0..7c0f29b 100644
--- a/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBox.java
+++ b/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBox.java
@@ -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
diff --git a/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBoxFactory.java b/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBoxFactory.java
index 80e49b1..9466e6b 100644
--- a/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBoxFactory.java
+++ b/src/com/silverwrist/venice/servlets/format/sideboxes/JSPSideBoxFactory.java
@@ -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 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 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)
diff --git a/src/com/silverwrist/venice/servlets/format/sideboxes/SIGBox.java b/src/com/silverwrist/venice/servlets/format/sideboxes/SIGBox.java
index 3459d91..b9c2a35 100644
--- a/src/com/silverwrist/venice/servlets/format/sideboxes/SIGBox.java
+++ b/src/com/silverwrist/venice/servlets/format/sideboxes/SIGBox.java
@@ -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("\n");
- renderBullet(out,rdat);
+ out.write(" | \n");
+ bullet.renderHere(out,rdat);
out.write(" | \n\n" + link_font + ""
+ StringUtil.encodeHTML(sig.getName()) + "\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("");
-
- } // 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("");
-
- } // 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 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 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
| |