288 lines
7.3 KiB
Java
288 lines
7.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) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*/
|
|
package com.silverwrist.venice.content;
|
|
|
|
import java.util.*;
|
|
import com.silverwrist.dynamo.iface.*;
|
|
import com.silverwrist.dynamo.except.*;
|
|
import com.silverwrist.dynamo.velocity.VelocityRenderable;
|
|
import com.silverwrist.venice.frame.FramedContent;
|
|
import com.silverwrist.venice.iface.Sidebox;
|
|
|
|
public class SideboxView implements FramedContent, VelocityRenderable
|
|
{
|
|
/*--------------------------------------------------------------------------------
|
|
* Static data members
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public static final int DEFAULT_WIDTH = 200;
|
|
public static final int DEFAULT_MARGIN = 5;
|
|
|
|
private static final List MY_PARAMETERS;
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Attributes
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
private Object m_content; // page content (to left of sideboxes)
|
|
private List m_sideboxes; // list of sideboxes
|
|
private String m_configure_url = null; // configure URL
|
|
private String m_configure_url_type = null; // configure URL type
|
|
private int m_width = DEFAULT_WIDTH; // width of sideboxes
|
|
private int m_margin = DEFAULT_MARGIN; // sidebox margins
|
|
private String m_local_menu_selector = null; // local menu selector
|
|
private String m_local_title = null; // local title
|
|
private String m_local_qid = null; // local QID
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Constructors
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public SideboxView(Object content)
|
|
{
|
|
m_content = content;
|
|
m_sideboxes = new ArrayList();
|
|
|
|
} // end constructor
|
|
|
|
public SideboxView(Object content, Collection sideboxes)
|
|
{
|
|
m_content = content;
|
|
m_sideboxes = new ArrayList();
|
|
addSideboxes(sideboxes);
|
|
|
|
} // end constructor
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Implementations from interface FramedContent
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public String getMenuSelector()
|
|
{
|
|
if (m_local_menu_selector!=null)
|
|
return m_local_menu_selector;
|
|
if (m_content instanceof FramedContent)
|
|
return ((FramedContent)m_content).getMenuSelector();
|
|
else
|
|
return null;
|
|
|
|
} // end getMenuSelector
|
|
|
|
public String getPageTitle()
|
|
{
|
|
if (m_local_title!=null)
|
|
return m_local_title;
|
|
if (m_content instanceof FramedContent)
|
|
return ((FramedContent)m_content).getPageTitle();
|
|
else
|
|
return "SideboxView";
|
|
|
|
} // end getPageTitle
|
|
|
|
public String getPageQID()
|
|
{
|
|
if (m_local_qid!=null)
|
|
return m_local_qid;
|
|
if (m_content instanceof FramedContent)
|
|
return ((FramedContent)m_content).getPageQID();
|
|
else
|
|
return null;
|
|
|
|
} // end getPageQID
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Implementations from interface VelocityParamSupplier
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public Object getParameter(String key)
|
|
{
|
|
if (key.equals("content"))
|
|
return m_content;
|
|
else if (key.equals("sideboxes"))
|
|
return Collections.unmodifiableList(m_sideboxes);
|
|
else if (key.equals("config_URL"))
|
|
return m_configure_url;
|
|
else if (key.equals("config_type"))
|
|
return m_configure_url_type;
|
|
else if (key.equals("width"))
|
|
return new Integer(m_width);
|
|
else if (key.equals("margins"))
|
|
return new Integer(m_margin);
|
|
else
|
|
return null;
|
|
|
|
} // end getParameter
|
|
|
|
public Collection getParameterNames()
|
|
{
|
|
return MY_PARAMETERS;
|
|
|
|
} // end getParameterNames
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Implementations from interface VelocityRenderable
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public String getMimeType()
|
|
{
|
|
return "text/html";
|
|
|
|
} // end getMimeType
|
|
|
|
public String getTemplateName()
|
|
{
|
|
return "common/sideboxview.vm";
|
|
|
|
} // end getTemplateName
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* External operations
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
public void setMenuSelector(String s)
|
|
{
|
|
m_local_menu_selector = s;
|
|
|
|
} // end setMenuSelector
|
|
|
|
public void setPageTitle(String s)
|
|
{
|
|
m_local_title = s;
|
|
|
|
} // end setPageTitle
|
|
|
|
public void setPageQID(String s)
|
|
{
|
|
m_local_qid = s;
|
|
|
|
} // end setPageQID
|
|
|
|
public Object getContent()
|
|
{
|
|
return m_content;
|
|
|
|
} // end getContent
|
|
|
|
public void setContent(Object obj)
|
|
{
|
|
m_content = obj;
|
|
|
|
} // end setContent
|
|
|
|
public void addSidebox(Sidebox box)
|
|
{
|
|
m_sideboxes.add(box);
|
|
|
|
} // end addSidebox
|
|
|
|
public void addSideboxes(Collection coll)
|
|
{
|
|
Iterator it = coll.iterator();
|
|
while (it.hasNext())
|
|
{ // add only Sidebox instances to the list
|
|
Object obj = it.next();
|
|
if (obj instanceof Sidebox)
|
|
m_sideboxes.add(obj);
|
|
|
|
} // end while
|
|
|
|
} // end addSideboxes
|
|
|
|
public void setSideboxes(Collection coll)
|
|
{
|
|
m_sideboxes.clear();
|
|
addSideboxes(coll);
|
|
|
|
} // end setSideboxes
|
|
|
|
public String getConfigureURL()
|
|
{
|
|
return m_configure_url;
|
|
|
|
} // end getConfigureURL
|
|
|
|
public void setConfigureURL(String s)
|
|
{
|
|
m_configure_url = s;
|
|
|
|
} // end setConfigureURL
|
|
|
|
public String getConfigureURLType()
|
|
{
|
|
return m_configure_url_type;
|
|
|
|
} // end getConfigureURLType
|
|
|
|
public void setConfigureURLType(String s)
|
|
{
|
|
m_configure_url_type = s;
|
|
|
|
} // end setConfigureURLType
|
|
|
|
public int getWidth()
|
|
{
|
|
return m_width;
|
|
|
|
} // end getWidth
|
|
|
|
public void setWidth(int w)
|
|
{
|
|
m_width = w;
|
|
|
|
} // end setWidth
|
|
|
|
public int getMargin()
|
|
{
|
|
return m_margin;
|
|
|
|
} // end getMargin
|
|
|
|
public void setMargin(int m)
|
|
{
|
|
m_margin = m;
|
|
|
|
} // end setMargin
|
|
|
|
/*--------------------------------------------------------------------------------
|
|
* Static initializer
|
|
*--------------------------------------------------------------------------------
|
|
*/
|
|
|
|
static
|
|
{
|
|
ArrayList tmp = new ArrayList();
|
|
tmp.add("content");
|
|
tmp.add("sideboxes");
|
|
tmp.add("config_URL");
|
|
tmp.add("config_type");
|
|
tmp.add("width");
|
|
tmp.add("margins");
|
|
tmp.trimToSize();
|
|
MY_PARAMETERS = Collections.unmodifiableList(tmp);
|
|
|
|
} // end static initializer
|
|
|
|
} // end class SideboxView
|