org.xwiki.gwt.wysiwyg.client.plugin.macro
Class MacroDisplayer

java.lang.Object
  extended by org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDisplayer
All Implemented Interfaces:
InnerHTMLListener

public class MacroDisplayer
extends java.lang.Object
implements InnerHTMLListener

Hides macro meta data and displays macro output in a read only text box.

Version:
$Id: MacroDisplayer.java 27018 2010-02-14 18:49:29Z mflorea $

Field Summary
static java.lang.String BLOCK_MACRO_STYLE_NAME
          The CSS class name used on the text box containing the output of a block macro.
protected  DOMUtils domUtils
          Collection of DOM utility methods.
static java.lang.String INLINE_MACRO_STYLE_NAME
          The CSS class name used on the text box containing the output of an in-line macro.
static java.lang.String MACRO_STYLE_NAME
          The CSS class name used on the text box containing the output of a macro.
static java.lang.String SELECTED_MACRO_STYLE_NAME
          The CSS class name used on the text box containing the output of a selected macro.
static java.lang.String START_MACRO_COMMENT_PREFIX
          The prefix of the start macro comment node.
static java.lang.String STOP_MACRO_COMMENT_VALUE
          The value of the stop macro comment node.
 
Constructor Summary
MacroDisplayer()
           
 
Method Summary
protected  Element createMacroContainer(com.google.gwt.dom.client.Node start, com.google.gwt.dom.client.Node stop, int siblingCount)
          Puts macro output inside a read only text box that can be collapsed.
protected  Element createReadOnlyBox()
           
 void destroy()
          Destroys this displayer.
 java.util.List<Element> getMacroContainers(Element root)
           
protected  java.lang.String getMacroContainerTagName()
           
protected  Element getOutput(Element container)
           
protected  Element getPlaceHolder(Element container)
           
 java.lang.String getSerializedMacroCall(Element container)
           
 RichTextArea getTextArea()
           
 boolean isCollapsed(Element container)
           
 boolean isMacroContainer(com.google.gwt.dom.client.Node node)
           
 boolean isSelected(Element container)
           
 void onInnerHTMLChange(Element element)
          
 void setCollapsed(Element container, boolean collapsed)
          Collapses or expands the specified macro.
 void setSelected(Element container, boolean selected)
          Changes the appearance of the specified macro based on its selected state.
 void setTextArea(RichTextArea textArea)
          Sets the underlying rich text area where the macros are displayed.
NOTE: We were forced to add this method because instances of this class are created using deferred binding and thus we cannot pass the rich text area as a parameter to the constructor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MACRO_STYLE_NAME

public static final java.lang.String MACRO_STYLE_NAME
The CSS class name used on the text box containing the output of a macro.

See Also:
Constant Field Values

SELECTED_MACRO_STYLE_NAME

public static final java.lang.String SELECTED_MACRO_STYLE_NAME
The CSS class name used on the text box containing the output of a selected macro.

See Also:
Constant Field Values

BLOCK_MACRO_STYLE_NAME

public static final java.lang.String BLOCK_MACRO_STYLE_NAME
The CSS class name used on the text box containing the output of a block macro.

See Also:
Constant Field Values

INLINE_MACRO_STYLE_NAME

public static final java.lang.String INLINE_MACRO_STYLE_NAME
The CSS class name used on the text box containing the output of an in-line macro.

See Also:
Constant Field Values

START_MACRO_COMMENT_PREFIX

public static final java.lang.String START_MACRO_COMMENT_PREFIX
The prefix of the start macro comment node.

See Also:
Constant Field Values

STOP_MACRO_COMMENT_VALUE

public static final java.lang.String STOP_MACRO_COMMENT_VALUE
The value of the stop macro comment node.

See Also:
Constant Field Values

domUtils

protected final DOMUtils domUtils
Collection of DOM utility methods.

Constructor Detail

MacroDisplayer

public MacroDisplayer()
Method Detail

destroy

public void destroy()
Destroys this displayer.


getTextArea

public RichTextArea getTextArea()
Returns:
textArea

setTextArea

public void setTextArea(RichTextArea textArea)
Sets the underlying rich text area where the macros are displayed.
NOTE: We were forced to add this method because instances of this class are created using deferred binding and thus we cannot pass the rich text area as a parameter to the constructor. As a consequence this method can be called only once.

Parameters:
textArea - the rich text area whose macros will be displayed using this object

createMacroContainer

protected Element createMacroContainer(com.google.gwt.dom.client.Node start,
                                       com.google.gwt.dom.client.Node stop,
                                       int siblingCount)
Puts macro output inside a read only text box that can be collapsed.

Parameters:
start - start macro comment node
stop - stop macro comment node
siblingCount - the number of siblings between start and stop nodes
Returns:
the created container that holds the macro output

createReadOnlyBox

protected Element createReadOnlyBox()
Returns:
an element whose contents cannot be edited inside the rich text area

setSelected

public void setSelected(Element container,
                        boolean selected)
Changes the appearance of the specified macro based on its selected state.

Parameters:
container - a macro container
selected - true to select the specified macro, false otherwise

isSelected

public boolean isSelected(Element container)
Parameters:
container - a macro container
Returns:
true if the specified macro is selected, false otherwise

isMacroContainer

public boolean isMacroContainer(com.google.gwt.dom.client.Node node)
Parameters:
node - a DOM node
Returns:
true if the given node is a macro container, false otherwise

getMacroContainers

public java.util.List<Element> getMacroContainers(Element root)
Parameters:
root - a DOM element
Returns:
the list of macro containers in the specified subtree

getMacroContainerTagName

protected java.lang.String getMacroContainerTagName()
Returns:
the name of the element used as macro container

setCollapsed

public void setCollapsed(Element container,
                         boolean collapsed)
Collapses or expands the specified macro.

Parameters:
container - a macro container
collapsed - true to collapse the specified macro, false to expand it

isCollapsed

public boolean isCollapsed(Element container)
Parameters:
container - a macro container
Returns:
true if the specified macro is collapsed, false otherwise

getOutput

protected Element getOutput(Element container)
Parameters:
container - a macro container
Returns:
the macro output wrapper from the given macro container

getPlaceHolder

protected Element getPlaceHolder(Element container)
Parameters:
container - a macro container
Returns:
the macro place holder from the given macro container

onInnerHTMLChange

public void onInnerHTMLChange(Element element)

Specified by:
onInnerHTMLChange in interface InnerHTMLListener
See Also:
InnerHTMLListener.onInnerHTMLChange(Element)

getSerializedMacroCall

public java.lang.String getSerializedMacroCall(Element container)
Parameters:
container - a macro container
Returns:
the serialized macro call (e.g. the value of the start macro comment node) associated with the given macro container


Copyright © 2004-2011 XWiki. All Rights Reserved.