venice-main-classic/src/com/silverwrist/venice/ui/menus/CommunityMenu.java
Eric J. Bowersox e4e0223452 the erbo_reorg_04202002 branch is no more...development continues on the
trunk while the stable_branch_04202002 branch takes the 'stable' role
2002-04-24 06:39:29 +00:00

164 lines
5.3 KiB
Java

/*
* 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-02 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
*
* Contributor(s):
*/
package com.silverwrist.venice.ui.menus;
import java.io.Writer;
import java.io.IOException;
import java.util.*;
import com.silverwrist.util.*;
import com.silverwrist.venice.core.*;
import com.silverwrist.venice.except.*;
import com.silverwrist.venice.ui.*;
import com.silverwrist.venice.ui.helpers.HTMLRendering;
public class CommunityMenu implements MenuComponent
{
/*--------------------------------------------------------------------------------
* Attributes
*--------------------------------------------------------------------------------
*/
private String image_url; // path to actual image
private String title; // title for menu
private List items_list; // list of menu items
private int cid; // community ID
private boolean show_unjoin; // show the "Unjoin" menu choice?
/*--------------------------------------------------------------------------------
* Constructor
*--------------------------------------------------------------------------------
*/
CommunityMenu(CommunityContext ctxt, List items)
{
try
{ // retrieve the contact info for this puppy
ContactInfo ci = ctxt.getContactInfo();
image_url = ci.getPhotoURL();
} // end try
catch (DataException e)
{ // if we couldn't get the contact info, screw it
image_url = null;
} // end catch
title = StringUtil.encodeHTML(ctxt.getName());
items_list = items;
cid = ctxt.getCommunityID();
show_unjoin = ctxt.canUnjoin();
} // end constructor
/*--------------------------------------------------------------------------------
* Implementations from interface MenuComponent
*--------------------------------------------------------------------------------
*/
public void render(RequestOutput out, Writer wr) throws IOException
{
this.render(out,wr,Collections.EMPTY_SET);
} // end render
public void render(RequestOutput out, Writer wr, Set defines) throws IOException
{
HTMLRendering html = (HTMLRendering)(out.queryService(HTMLRendering.class));
if (wr==null)
wr = out.getWriter();
wr.write("<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0><TR VALIGN=BOTTOM>\n<TD ALIGN=LEFT WIDTH=110>"
+ html.getCommunityLogoTag(image_url) + "</TD>\n<TD ALIGN=LEFT>\n");
// display the title
out.writeContentHeader(wr,title,null);
wr.write("</TD>\n</TR></TABLE><BR>\n");
// display the menu items
Iterator it = items_list.iterator();
while (it.hasNext())
{ // display each menu item in turn
MenuComponent mc = (MenuComponent)(it.next());
mc.render(out,wr,defines);
} // end while
if (show_unjoin) // display the "Unjoin" link
wr.write("<P><IMG SRC=\"" + html.getImagePath("purple-ball.gif")
+ "\" ALT=\"*\" WIDTH=14 HEIGHT=14 BORDER=0><A HREF=\""
+ html.formatURL("comm/unjoin.js.vs?cc=" + cid,html.SERVLET) + "\">Unjoin</A><BR>\n");
wr.write("\n"); // all done...
} // end render
public void renderOnLeft(RequestOutput out, Writer wr) throws IOException
{
this.renderOnLeft(out,wr,Collections.EMPTY_SET);
} // end renderOnLeft
public void renderOnLeft(RequestOutput out, Writer wr, Set defines) throws IOException
{
HTMLRendering html = (HTMLRendering)(out.queryService(HTMLRendering.class));
if (wr==null)
wr = out.getWriter();
String hilite = html.getFontTag(html.LEFT_LINK,null);
// display the image URL and title
wr.write("<DIV ALIGN=\"LEFT\">" + html.getCommunityLogoTag(image_url) + "</DIV>\n<B>"
+ StringUtil.encodeHTML(title) + "</B><BR>\n");
// display the menu items
Iterator it = items_list.iterator();
while (it.hasNext())
{ // display each menu item in turn
MenuComponent mc = (MenuComponent)(it.next());
mc.renderOnLeft(out,wr,defines);
} // end while
if (show_unjoin)
wr.write("<BR>\n<A CLASS=\"lbar\" HREF=\"" + html.formatURL("comm/unjoin.js.vs?cc=" + cid,html.SERVLET)
+ "\">" + hilite + "Unjoin</FONT></A>\n");
wr.write("\n"); // all done...
} // end renderOnLeft
public String getTitle(RequestOutput out)
{
return title;
} // end getTitle
/*--------------------------------------------------------------------------------
* External operations
*--------------------------------------------------------------------------------
*/
public final int getID()
{
return cid;
} // end getID
} // end class CommunityMenu