/* * 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-02 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. * * Contributor(s): */ package com.silverwrist.venice.ui.view; import java.io.IOException; import java.util.*; import com.silverwrist.util.StringUtil; import com.silverwrist.venice.ui.*; import com.silverwrist.venice.ui.helpers.HTMLRendering; public class TextMessage implements ContentDirect { /*-------------------------------------------------------------------------------- * Internal class that holds button details *-------------------------------------------------------------------------------- */ class Button { private int linktype; private String link; private String id; Button(int linktype, String link, String id) { this.linktype = linktype; this.link = link; this.id = id; } // end constructor public final String getEquivalent(HTMLRendering html) { return "" + html.getButtonVisual(id) + ""; } // end getEquivalent } // end class Button /*-------------------------------------------------------------------------------- * Attributes *-------------------------------------------------------------------------------- */ private int menu_selector = Content.MENU_SELECTOR_NOCHANGE; private String title; private String subtitle; private String text = null; private ArrayList buttons = new ArrayList(); private String[] render_buttons = null; /*-------------------------------------------------------------------------------- * Constructors *-------------------------------------------------------------------------------- */ public TextMessage(String title) { this.title = title; this.subtitle = null; } // end constructor public TextMessage(String title, String subtitle) { this.title = title; this.subtitle = subtitle; } // end constructor public TextMessage(int msel, String title, String subtitle) { this.menu_selector = msel; this.title = title; this.subtitle = subtitle; } // end constructor /*-------------------------------------------------------------------------------- * Implementations from interface Content *-------------------------------------------------------------------------------- */ public boolean needFrame() { return true; } // end needFrame public int getMenuSelector() { return menu_selector; } // end getMenuSelector public String getPageTitle(RequestOutput ro) { return title; } // end getPageTitle public String getPageQID() { return null; } // end getPageQID /*-------------------------------------------------------------------------------- * Implementations from interface ContentDirect *-------------------------------------------------------------------------------- */ public void render(RequestOutput out) throws IOException { HTMLRendering html = (HTMLRendering)(out.queryService(HTMLRendering.class)); if (render_buttons==null) { // pre-render the buttons render_buttons = new String[buttons.size()]; for (int i=0; i

\n

\n" + StringUtil.join((Object[])render_buttons," \n") + "
\n"); } // end render /*-------------------------------------------------------------------------------- * External operations *-------------------------------------------------------------------------------- */ public final void setMenuSelector(int sel) { menu_selector = sel; } // end setMenuSelector public final String getTitle() { return title; } // end getTitle public final void setTitle(String s) { title = s; } // end setTitle public final String getSubTitle() { return subtitle; } // end getSubTitle public final void setSubTitle(String s) { subtitle = s; } // end setSubTitle public final String getText() { return text; } // end getText public final void setText(String s) { text = s; } // end setText public final void addButton(int linktype, String link, String id) { buttons.add(new Button(linktype,link,id)); render_buttons = null; } // end addButton } // end class TextMessage