<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FGWT%2FRichTextArea</id>
		<title>Java/GWT/RichTextArea - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FGWT%2FRichTextArea"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/GWT/RichTextArea&amp;action=history"/>
		<updated>2026-04-07T02:20:02Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/GWT/RichTextArea&amp;diff=7059&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/GWT/RichTextArea&amp;diff=7059&amp;oldid=prev"/>
				<updated>2010-06-01T06:35:37Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:35, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java/GWT/RichTextArea&amp;diff=7058&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java/GWT/RichTextArea&amp;diff=7058&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== A sample toolbar for use with RichTextArea ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright 2007 Google Inc.&lt;br /&gt;
 * &lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;); you may not&lt;br /&gt;
 * use this file except in compliance with the License. You may obtain a copy of&lt;br /&gt;
 * the License at&lt;br /&gt;
 * &lt;br /&gt;
 * http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT&lt;br /&gt;
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the&lt;br /&gt;
 * License for the specific language governing permissions and limitations under&lt;br /&gt;
 * the License.&lt;br /&gt;
 */&lt;br /&gt;
//package com.google.gwt.sample.kitchensink.client;&lt;br /&gt;
package com.jexp.gwt.client;&lt;br /&gt;
import com.google.gwt.core.client.GWT;&lt;br /&gt;
import com.google.gwt.i18n.client.Constants;&lt;br /&gt;
import com.google.gwt.user.client.Window;&lt;br /&gt;
import com.google.gwt.user.client.ui.AbstractImagePrototype;&lt;br /&gt;
import com.google.gwt.user.client.ui.ChangeListener;&lt;br /&gt;
import com.google.gwt.user.client.ui.ClickListener;&lt;br /&gt;
import com.google.gwt.user.client.ui.ruposite;&lt;br /&gt;
import com.google.gwt.user.client.ui.HorizontalPanel;&lt;br /&gt;
import com.google.gwt.user.client.ui.ImageBundle;&lt;br /&gt;
import com.google.gwt.user.client.ui.KeyboardListener;&lt;br /&gt;
import com.google.gwt.user.client.ui.ListBox;&lt;br /&gt;
import com.google.gwt.user.client.ui.PushButton;&lt;br /&gt;
import com.google.gwt.user.client.ui.RichTextArea;&lt;br /&gt;
import com.google.gwt.user.client.ui.ToggleButton;&lt;br /&gt;
import com.google.gwt.user.client.ui.VerticalPanel;&lt;br /&gt;
import com.google.gwt.user.client.ui.Widget;&lt;br /&gt;
/**&lt;br /&gt;
 * A sample toolbar for use with {@link RichTextArea}. It provides a simple UI&lt;br /&gt;
 * for all rich text formatting, dynamically displayed only for the available&lt;br /&gt;
 * functionality.&lt;br /&gt;
 */&lt;br /&gt;
public class RichTextToolbar extends Composite {&lt;br /&gt;
  /**&lt;br /&gt;
   * This {@link ImageBundle} is used for all the button icons. Using an image&lt;br /&gt;
   * bundle allows all of these images to be packed into a single image, which&lt;br /&gt;
   * saves a lot of HTTP requests, drastically improving startup time.&lt;br /&gt;
   */&lt;br /&gt;
  public interface Images extends ImageBundle {&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource bold.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype bold();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource createLink.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype createLink();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource hr.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype hr();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource indent.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype indent();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource insertImage.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype insertImage();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource italic.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype italic();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource justifyCenter.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype justifyCenter();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource justifyLeft.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype justifyLeft();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource justifyRight.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype justifyRight();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource ol.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype ol();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource outdent.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype outdent();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource removeFormat.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype removeFormat();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource removeLink.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype removeLink();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource strikeThrough.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype strikeThrough();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource subscript.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype subscript();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource superscript.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype superscript();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource ul.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype ul();&lt;br /&gt;
    /**&lt;br /&gt;
     * @gwt.resource underline.gif&lt;br /&gt;
     */&lt;br /&gt;
    AbstractImagePrototype underline();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * This {@link Constants} interface is used to make the toolbar&amp;quot;s strings&lt;br /&gt;
   * internationalizable.&lt;br /&gt;
   */&lt;br /&gt;
  public interface Strings extends Constants {&lt;br /&gt;
    String black();&lt;br /&gt;
    String blue();&lt;br /&gt;
    String bold();&lt;br /&gt;
    String color();&lt;br /&gt;
    String createLink();&lt;br /&gt;
    String font();&lt;br /&gt;
    String green();&lt;br /&gt;
    String hr();&lt;br /&gt;
    String indent();&lt;br /&gt;
    String insertImage();&lt;br /&gt;
    String italic();&lt;br /&gt;
    String justifyCenter();&lt;br /&gt;
    String justifyLeft();&lt;br /&gt;
    String justifyRight();&lt;br /&gt;
    String large();&lt;br /&gt;
    String medium();&lt;br /&gt;
    String normal();&lt;br /&gt;
    String ol();&lt;br /&gt;
    String outdent();&lt;br /&gt;
    String red();&lt;br /&gt;
    String removeFormat();&lt;br /&gt;
    String removeLink();&lt;br /&gt;
    String size();&lt;br /&gt;
    String small();&lt;br /&gt;
    String strikeThrough();&lt;br /&gt;
    String subscript();&lt;br /&gt;
    String superscript();&lt;br /&gt;
    String ul();&lt;br /&gt;
    String underline();&lt;br /&gt;
    String white();&lt;br /&gt;
    String xlarge();&lt;br /&gt;
    String xsmall();&lt;br /&gt;
    String xxlarge();&lt;br /&gt;
    String xxsmall();&lt;br /&gt;
    String yellow();&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * We use an inner EventListener class to avoid exposing event methods on the&lt;br /&gt;
   * RichTextToolbar itself.&lt;br /&gt;
   */&lt;br /&gt;
  private class EventListener implements ClickListener, ChangeListener,&lt;br /&gt;
      KeyboardListener {&lt;br /&gt;
    public void onChange(Widget sender) {&lt;br /&gt;
      if (sender == backColors) {&lt;br /&gt;
        basic.setBackColor(backColors.getValue(backColors.getSelectedIndex()));&lt;br /&gt;
        backColors.setSelectedIndex(0);&lt;br /&gt;
      } else if (sender == foreColors) {&lt;br /&gt;
        basic.setForeColor(foreColors.getValue(foreColors.getSelectedIndex()));&lt;br /&gt;
        foreColors.setSelectedIndex(0);&lt;br /&gt;
      } else if (sender == fonts) {&lt;br /&gt;
        basic.setFontName(fonts.getValue(fonts.getSelectedIndex()));&lt;br /&gt;
        fonts.setSelectedIndex(0);&lt;br /&gt;
      } else if (sender == fontSizes) {&lt;br /&gt;
        basic.setFontSize(fontSizesConstants[fontSizes.getSelectedIndex() - 1]);&lt;br /&gt;
        fontSizes.setSelectedIndex(0);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    public void onClick(Widget sender) {&lt;br /&gt;
      if (sender == bold) {&lt;br /&gt;
        basic.toggleBold();&lt;br /&gt;
      } else if (sender == italic) {&lt;br /&gt;
        basic.toggleItalic();&lt;br /&gt;
      } else if (sender == underline) {&lt;br /&gt;
        basic.toggleUnderline();&lt;br /&gt;
      } else if (sender == subscript) {&lt;br /&gt;
        basic.toggleSubscript();&lt;br /&gt;
      } else if (sender == superscript) {&lt;br /&gt;
        basic.toggleSuperscript();&lt;br /&gt;
      } else if (sender == strikethrough) {&lt;br /&gt;
        extended.toggleStrikethrough();&lt;br /&gt;
      } else if (sender == indent) {&lt;br /&gt;
        extended.rightIndent();&lt;br /&gt;
      } else if (sender == outdent) {&lt;br /&gt;
        extended.leftIndent();&lt;br /&gt;
      } else if (sender == justifyLeft) {&lt;br /&gt;
        basic.setJustification(RichTextArea.Justification.LEFT);&lt;br /&gt;
      } else if (sender == justifyCenter) {&lt;br /&gt;
        basic.setJustification(RichTextArea.Justification.CENTER);&lt;br /&gt;
      } else if (sender == justifyRight) {&lt;br /&gt;
        basic.setJustification(RichTextArea.Justification.RIGHT);&lt;br /&gt;
      } else if (sender == insertImage) {&lt;br /&gt;
        String url = Window.prompt(&amp;quot;Enter an image URL:&amp;quot;, &amp;quot;http://&amp;quot;);&lt;br /&gt;
        if (url != null) {&lt;br /&gt;
          extended.insertImage(url);&lt;br /&gt;
        }&lt;br /&gt;
      } else if (sender == createLink) {&lt;br /&gt;
        String url = Window.prompt(&amp;quot;Enter a link URL:&amp;quot;, &amp;quot;http://&amp;quot;);&lt;br /&gt;
        if (url != null) {&lt;br /&gt;
          extended.createLink(url);&lt;br /&gt;
        }&lt;br /&gt;
      } else if (sender == removeLink) {&lt;br /&gt;
        extended.removeLink();&lt;br /&gt;
      } else if (sender == hr) {&lt;br /&gt;
        extended.insertHorizontalRule();&lt;br /&gt;
      } else if (sender == ol) {&lt;br /&gt;
        extended.insertOrderedList();&lt;br /&gt;
      } else if (sender == ul) {&lt;br /&gt;
        extended.insertUnorderedList();&lt;br /&gt;
      } else if (sender == removeFormat) {&lt;br /&gt;
        extended.removeFormat();&lt;br /&gt;
      } else if (sender == richText) {&lt;br /&gt;
        // We use the RichTextArea&amp;quot;s onKeyUp event to update the toolbar status.&lt;br /&gt;
        // This will catch any cases where the user moves the cursur using the&lt;br /&gt;
        // keyboard, or uses one of the browser&amp;quot;s built-in keyboard shortcuts.&lt;br /&gt;
        updateStatus();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    public void onKeyDown(Widget sender, char keyCode, int modifiers) {&lt;br /&gt;
    }&lt;br /&gt;
    public void onKeyPress(Widget sender, char keyCode, int modifiers) {&lt;br /&gt;
    }&lt;br /&gt;
    public void onKeyUp(Widget sender, char keyCode, int modifiers) {&lt;br /&gt;
      if (sender == richText) {&lt;br /&gt;
        // We use the RichTextArea&amp;quot;s onKeyUp event to update the toolbar status.&lt;br /&gt;
        // This will catch any cases where the user moves the cursur using the&lt;br /&gt;
        // keyboard, or uses one of the browser&amp;quot;s built-in keyboard shortcuts.&lt;br /&gt;
        updateStatus();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static final RichTextArea.FontSize[] fontSizesConstants = new RichTextArea.FontSize[] {&lt;br /&gt;
      RichTextArea.FontSize.XX_SMALL, RichTextArea.FontSize.X_SMALL,&lt;br /&gt;
      RichTextArea.FontSize.SMALL, RichTextArea.FontSize.MEDIUM,&lt;br /&gt;
      RichTextArea.FontSize.LARGE, RichTextArea.FontSize.X_LARGE,&lt;br /&gt;
      RichTextArea.FontSize.XX_LARGE};&lt;br /&gt;
  private Images images = (Images) GWT.create(Images.class);&lt;br /&gt;
  private Strings strings = (Strings) GWT.create(Strings.class);&lt;br /&gt;
  private EventListener listener = new EventListener();&lt;br /&gt;
  private RichTextArea richText;&lt;br /&gt;
  private RichTextArea.BasicFormatter basic;&lt;br /&gt;
  private RichTextArea.ExtendedFormatter extended;&lt;br /&gt;
  private VerticalPanel outer = new VerticalPanel();&lt;br /&gt;
  private HorizontalPanel topPanel = new HorizontalPanel();&lt;br /&gt;
  private HorizontalPanel bottomPanel = new HorizontalPanel();&lt;br /&gt;
  private ToggleButton bold;&lt;br /&gt;
  private ToggleButton italic;&lt;br /&gt;
  private ToggleButton underline;&lt;br /&gt;
  private ToggleButton subscript;&lt;br /&gt;
  private ToggleButton superscript;&lt;br /&gt;
  private ToggleButton strikethrough;&lt;br /&gt;
  private PushButton indent;&lt;br /&gt;
  private PushButton outdent;&lt;br /&gt;
  private PushButton justifyLeft;&lt;br /&gt;
  private PushButton justifyCenter;&lt;br /&gt;
  private PushButton justifyRight;&lt;br /&gt;
  private PushButton hr;&lt;br /&gt;
  private PushButton ol;&lt;br /&gt;
  private PushButton ul;&lt;br /&gt;
  private PushButton insertImage;&lt;br /&gt;
  private PushButton createLink;&lt;br /&gt;
  private PushButton removeLink;&lt;br /&gt;
  private PushButton removeFormat;&lt;br /&gt;
  private ListBox backColors;&lt;br /&gt;
  private ListBox foreColors;&lt;br /&gt;
  private ListBox fonts;&lt;br /&gt;
  private ListBox fontSizes;&lt;br /&gt;
  /**&lt;br /&gt;
   * Creates a new toolbar that drives the given rich text area.&lt;br /&gt;
   * &lt;br /&gt;
   * @param richText the rich text area to be controlled&lt;br /&gt;
   */&lt;br /&gt;
  public RichTextToolbar(RichTextArea richText) {&lt;br /&gt;
    this.richText = richText;&lt;br /&gt;
    this.basic = richText.getBasicFormatter();&lt;br /&gt;
    this.extended = richText.getExtendedFormatter();&lt;br /&gt;
    outer.add(topPanel);&lt;br /&gt;
    outer.add(bottomPanel);&lt;br /&gt;
    topPanel.setWidth(&amp;quot;100%&amp;quot;);&lt;br /&gt;
    bottomPanel.setWidth(&amp;quot;100%&amp;quot;);&lt;br /&gt;
    initWidget(outer);&lt;br /&gt;
    setStyleName(&amp;quot;gwt-RichTextToolbar&amp;quot;);&lt;br /&gt;
    if (basic != null) {&lt;br /&gt;
      topPanel.add(bold = createToggleButton(images.bold(), strings.bold()));&lt;br /&gt;
      topPanel.add(italic = createToggleButton(images.italic(), strings.italic()));&lt;br /&gt;
      topPanel.add(underline = createToggleButton(images.underline(),&lt;br /&gt;
          strings.underline()));&lt;br /&gt;
      topPanel.add(subscript = createToggleButton(images.subscript(),&lt;br /&gt;
          strings.subscript()));&lt;br /&gt;
      topPanel.add(superscript = createToggleButton(images.superscript(),&lt;br /&gt;
          strings.superscript()));&lt;br /&gt;
      topPanel.add(justifyLeft = createPushButton(images.justifyLeft(),&lt;br /&gt;
          strings.justifyLeft()));&lt;br /&gt;
      topPanel.add(justifyCenter = createPushButton(images.justifyCenter(),&lt;br /&gt;
          strings.justifyCenter()));&lt;br /&gt;
      topPanel.add(justifyRight = createPushButton(images.justifyRight(),&lt;br /&gt;
          strings.justifyRight()));&lt;br /&gt;
    }&lt;br /&gt;
    if (extended != null) {&lt;br /&gt;
      topPanel.add(strikethrough = createToggleButton(images.strikeThrough(),&lt;br /&gt;
          strings.strikeThrough()));&lt;br /&gt;
      topPanel.add(indent = createPushButton(images.indent(), strings.indent()));&lt;br /&gt;
      topPanel.add(outdent = createPushButton(images.outdent(), strings.outdent()));&lt;br /&gt;
      topPanel.add(hr = createPushButton(images.hr(), strings.hr()));&lt;br /&gt;
      topPanel.add(ol = createPushButton(images.ol(), strings.ol()));&lt;br /&gt;
      topPanel.add(ul = createPushButton(images.ul(), strings.ul()));&lt;br /&gt;
      topPanel.add(insertImage = createPushButton(images.insertImage(),&lt;br /&gt;
          strings.insertImage()));&lt;br /&gt;
      topPanel.add(createLink = createPushButton(images.createLink(),&lt;br /&gt;
          strings.createLink()));&lt;br /&gt;
      topPanel.add(removeLink = createPushButton(images.removeLink(),&lt;br /&gt;
          strings.removeLink()));&lt;br /&gt;
      topPanel.add(removeFormat = createPushButton(images.removeFormat(),&lt;br /&gt;
          strings.removeFormat()));&lt;br /&gt;
    }&lt;br /&gt;
    if (basic != null) {&lt;br /&gt;
      bottomPanel.add(backColors = createColorList(&amp;quot;Background&amp;quot;));&lt;br /&gt;
      bottomPanel.add(foreColors = createColorList(&amp;quot;Foreground&amp;quot;));&lt;br /&gt;
      bottomPanel.add(fonts = createFontList());&lt;br /&gt;
      bottomPanel.add(fontSizes = createFontSizes());&lt;br /&gt;
      // We only use these listeners for updating status, so don&amp;quot;t hook them up&lt;br /&gt;
      // unless at least basic editing is supported.&lt;br /&gt;
      richText.addKeyboardListener(listener);&lt;br /&gt;
      richText.addClickListener(listener);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private ListBox createColorList(String caption) {&lt;br /&gt;
    ListBox lb = new ListBox();&lt;br /&gt;
    lb.addChangeListener(listener);&lt;br /&gt;
    lb.setVisibleItemCount(1);&lt;br /&gt;
    lb.addItem(caption);&lt;br /&gt;
    lb.addItem(strings.white(), &amp;quot;white&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.black(), &amp;quot;black&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.red(), &amp;quot;red&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.green(), &amp;quot;green&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.yellow(), &amp;quot;yellow&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.blue(), &amp;quot;blue&amp;quot;);&lt;br /&gt;
    return lb;&lt;br /&gt;
  }&lt;br /&gt;
  private ListBox createFontList() {&lt;br /&gt;
    ListBox lb = new ListBox();&lt;br /&gt;
    lb.addChangeListener(listener);&lt;br /&gt;
    lb.setVisibleItemCount(1);&lt;br /&gt;
    lb.addItem(strings.font(), &amp;quot;&amp;quot;);&lt;br /&gt;
    lb.addItem(strings.normal(), &amp;quot;&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Times New Roman&amp;quot;, &amp;quot;Times New Roman&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Arial&amp;quot;, &amp;quot;Arial&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Courier New&amp;quot;, &amp;quot;Courier New&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Georgia&amp;quot;, &amp;quot;Georgia&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Trebuchet&amp;quot;, &amp;quot;Trebuchet&amp;quot;);&lt;br /&gt;
    lb.addItem(&amp;quot;Verdana&amp;quot;, &amp;quot;Verdana&amp;quot;);&lt;br /&gt;
    return lb;&lt;br /&gt;
  }&lt;br /&gt;
  private ListBox createFontSizes() {&lt;br /&gt;
    ListBox lb = new ListBox();&lt;br /&gt;
    lb.addChangeListener(listener);&lt;br /&gt;
    lb.setVisibleItemCount(1);&lt;br /&gt;
    lb.addItem(strings.size());&lt;br /&gt;
    lb.addItem(strings.xxsmall());&lt;br /&gt;
    lb.addItem(strings.xsmall());&lt;br /&gt;
    lb.addItem(strings.small());&lt;br /&gt;
    lb.addItem(strings.medium());&lt;br /&gt;
    lb.addItem(strings.large());&lt;br /&gt;
    lb.addItem(strings.xlarge());&lt;br /&gt;
    lb.addItem(strings.xxlarge());&lt;br /&gt;
    return lb;&lt;br /&gt;
  }&lt;br /&gt;
  private PushButton createPushButton(AbstractImagePrototype img, String tip) {&lt;br /&gt;
    PushButton pb = new PushButton(img.createImage());&lt;br /&gt;
    pb.addClickListener(listener);&lt;br /&gt;
    pb.setTitle(tip);&lt;br /&gt;
    return pb;&lt;br /&gt;
  }&lt;br /&gt;
  private ToggleButton createToggleButton(AbstractImagePrototype img, String tip) {&lt;br /&gt;
    ToggleButton tb = new ToggleButton(img.createImage());&lt;br /&gt;
    tb.addClickListener(listener);&lt;br /&gt;
    tb.setTitle(tip);&lt;br /&gt;
    return tb;&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Updates the status of all the stateful buttons.&lt;br /&gt;
   */&lt;br /&gt;
  private void updateStatus() {&lt;br /&gt;
    if (basic != null) {&lt;br /&gt;
      bold.setDown(basic.isBold());&lt;br /&gt;
      italic.setDown(basic.isItalic());&lt;br /&gt;
      underline.setDown(basic.isUnderlined());&lt;br /&gt;
      subscript.setDown(basic.isSubscript());&lt;br /&gt;
      superscript.setDown(basic.isSuperscript());&lt;br /&gt;
    }&lt;br /&gt;
    if (extended != null) {&lt;br /&gt;
      strikethrough.setDown(extended.isStrikethrough());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
package com.jexp.gwt.client;&lt;br /&gt;
import com.google.gwt.core.client.EntryPoint;&lt;br /&gt;
import com.google.gwt.user.client.Window;&lt;br /&gt;
import com.google.gwt.user.client.ui.Button;&lt;br /&gt;
import com.google.gwt.user.client.ui.ClickListener;&lt;br /&gt;
import com.google.gwt.user.client.ui.RootPanel;&lt;br /&gt;
import com.google.gwt.user.client.ui.Widget;&lt;br /&gt;
import com.google.gwt.user.client.ui.RichTextArea;&lt;br /&gt;
import com.google.gwt.user.client.ui.VerticalPanel;&lt;br /&gt;
import com.google.gwt.user.client.DOM;&lt;br /&gt;
public class GWTClient implements EntryPoint {&lt;br /&gt;
  public void onModuleLoad() {&lt;br /&gt;
    RichTextArea area = new RichTextArea();&lt;br /&gt;
    RichTextToolbar tb = new RichTextToolbar(area);&lt;br /&gt;
    VerticalPanel p = new VerticalPanel();&lt;br /&gt;
    p.add(tb);&lt;br /&gt;
    p.add(area);&lt;br /&gt;
    area.setHeight(&amp;quot;14em&amp;quot;);&lt;br /&gt;
    area.setWidth(&amp;quot;100%&amp;quot;);&lt;br /&gt;
    tb.setWidth(&amp;quot;100%&amp;quot;);&lt;br /&gt;
    p.setWidth(&amp;quot;100%&amp;quot;);&lt;br /&gt;
    DOM.setStyleAttribute(p.getElement(), &amp;quot;margin-right&amp;quot;, &amp;quot;4px&amp;quot;);&lt;br /&gt;
    p.setWidth(&amp;quot;32em&amp;quot;);&lt;br /&gt;
    RootPanel.get().add(p);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>