Files
Brainstorm/Foundation SWT View Builder/src/com/foundation/view/swt/builder/StyledTextBuilder.java

194 lines
7.5 KiB
Java
Raw Normal View History

2014-05-30 10:31:51 -07:00
/*
* Copyright (c) 2003,2008 Declarative Engineering LLC.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Declarative Engineering LLC
* verson 1 which accompanies this distribution, and is available at
* http://declarativeengineering.com/legal/DE_Developer_License_v1.txt
*/
package com.foundation.view.swt.builder;
import com.common.util.*;
import com.foundation.view.builder.*;
import com.foundation.view.definition.*;
public class StyledTextBuilder extends ComponentBuilder {
protected static final String STYLE_MULTI = "multi line";
protected static final String STYLE_SINGLE = "single line";
protected static final String STYLE_READ_ONLY = "read only";
protected static final String STYLE_WRAP = "wrap";
protected static final String STYLE_FULL = "full";
protected static final String PROPERTY_TEXT = "text";
protected static final String PROPERTY_USE_NULL = "use-null";
protected static final String ASSOCIATION_TEXT = "text";
private static final String LINK_TARGET_BOLD_TEXT = "boldText";
private static final String LINK_TARGET_ITALIC_TEXT = "italicText";
private static final String LINK_TARGET_UNDERLINE_TEXT = "underlineText";
private static final String LINK_TARGET_STRIKEOUT_TEXT = "strikeoutText";
private static final String LINK_TARGET_TEXT_FONT_NAME = "textFontName";
private static final String LINK_TARGET_TEXT_FONT_SIZE = "textFontSize";
protected static final IHashMap styleMap = new LiteHashMap(ComponentBuilder.styleMap);
protected static final IHashMap linkMap = new LiteHashMap(ComponentBuilder.linkMap);
static {
styleMap.put(STYLE_MULTI, "STYLE_MULTI");
styleMap.put(STYLE_SINGLE, "STYLE_SINGLE");
styleMap.put(STYLE_READ_ONLY, "STYLE_READ_ONLY");
styleMap.put(STYLE_WRAP, "STYLE_WRAP");
styleMap.put(STYLE_FULL, "STYLE_FULL");
linkMap.put(LINK_TARGET_BOLD_TEXT, "LINK_TARGET_BOLD_TEXT");
linkMap.put(LINK_TARGET_ITALIC_TEXT, "LINK_TARGET_ITALIC_TEXT");
linkMap.put(LINK_TARGET_UNDERLINE_TEXT, "LINK_TARGET_UNDERLINE_TEXT");
linkMap.put(LINK_TARGET_STRIKEOUT_TEXT, "LINK_TARGET_STRIKEOUT_TEXT");
linkMap.put(LINK_TARGET_TEXT_FONT_NAME, "LINK_TARGET_TEXT_FONT_NAME");
linkMap.put(LINK_TARGET_TEXT_FONT_SIZE, "LINK_TARGET_TEXT_FONT_SIZE");
}//static//
/**
* TextFieldBuilder constructor.
*/
public StyledTextBuilder() {
}//TextFieldBuilder()//
/* (non-Javadoc)
* @see com.foundation.view.builder.IBuilder#appendInitializationHead(com.foundation.view.builder.IViewSourceBuilder, StringBuffer, ComponentData)
*/
public void appendInitializationHead(IViewSourceBuilder viewBuilder, StringBuffer buffer, IComponentData data) {
String variableName = viewBuilder.getComponentAttributeName(data);
buffer.append("\t" + variableName + " = new " + getComponentClassName() + "(");
appendComponentConstructorParameters(viewBuilder, buffer, data, "parent");
buffer.append(");\r\n");
appendInitializationBody(viewBuilder, buffer, data, variableName);
}//appendInitializationHead()//
/* (non-Javadoc)
* @see com.foundation.view.builder.IBuilder#appendInitializationBody(com.foundation.view.builder.IViewSourceBuilder, java.lang.StringBuffer, com.foundation.view.definition.ComponentData, java.lang.String)
*/
public void appendInitializationBody(IViewSourceBuilder viewBuilder, StringBuffer buffer, IComponentData data, String variableName) {
//boolean isReadOnly = data.getStyles().containsValue(STYLE_READ_ONLY);
String text = (String) data.getPropertyValue(PROPERTY_TEXT);
Boolean useNull = (Boolean) data.getPropertyValue(PROPERTY_USE_NULL);
if(useNull != null) {
buffer.append("\t" + variableName + ".setUseNull(" + useNull + ");\r\n");
}//if//
if(text != null) {
buffer.append("\t" + variableName + ".setText(");
buffer.append('"');
//TODO: Should escape the text.
buffer.append(text);
buffer.append('"');
buffer.append(");\r\n");
}//if//
appendAssociation(viewBuilder, buffer, data, ASSOCIATION_TEXT, variableName, "setTextAssociation", "ASSOCIATION_TEXT", IViewSourceBuilder.ACCESS_TYPE_GET_ONLY);
super.appendInitializationBody(viewBuilder, buffer, data, variableName);
}//appendInitializationBody()//
/* (non-Javadoc)
* @see com.foundation.view.builder.IBuilder#appendLinks(com.foundation.view.builder.IViewSourceBuilder, java.lang.StringBuffer, com.foundation.view.definition.ComponentData, java.lang.String)
*/
public void appendLinks(IViewSourceBuilder viewBuilder, StringBuffer buffer, IComponentData data, String variableName) {
IList boldTextLinks = data.getLinks(LINK_TARGET_BOLD_TEXT);
IList italicTextLinks = data.getLinks(LINK_TARGET_ITALIC_TEXT);
IList strikeoutTextLinks = data.getLinks(LINK_TARGET_STRIKEOUT_TEXT);
IList underlineTextLinks = data.getLinks(LINK_TARGET_UNDERLINE_TEXT);
IList textFontNameLinks = data.getLinks(LINK_TARGET_TEXT_FONT_NAME);
IList textFontSizeLinks = data.getLinks(LINK_TARGET_TEXT_FONT_SIZE);
if(boldTextLinks != null) {
for(int index = 0; index < boldTextLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) boldTextLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addBoldTextLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
if(italicTextLinks != null) {
for(int index = 0; index < italicTextLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) italicTextLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addItalicTextLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
if(underlineTextLinks != null) {
for(int index = 0; index < underlineTextLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) underlineTextLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addUnderlineTextLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
if(strikeoutTextLinks != null) {
for(int index = 0; index < strikeoutTextLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) strikeoutTextLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addStrikeoutTextLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
if(textFontNameLinks != null) {
for(int index = 0; index < textFontNameLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) textFontNameLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addTextFontNameLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
if(textFontSizeLinks != null) {
for(int index = 0; index < textFontSizeLinks.getSize(); index++) {
ILinkPart part = (ILinkPart) textFontSizeLinks.get(index);
buffer.append("\t");
buffer.append(variableName);
buffer.append(".addTextFontSizeLink(");
viewBuilder.appendLink(data, buffer, part);
buffer.append(");\r\n");
}//for//
}//if//
super.appendLinks(viewBuilder, buffer, data, variableName);
}//appendLinks()//
/* (non-Javadoc)
* @see com.foundation.view.builder.IBuilder#getComponentClassName()
*/
public String getComponentClassName() {
return "com.foundation.view.swt.StyledText";
}//getComponentClassName()//
/* (non-Javadoc)
* @see com.foundation.view.swt.builder.AbstractBuilder#getStyleMap()
*/
public IHashMap getStyleMap() {
return styleMap;
}//getStyleMap()//
/* (non-Javadoc)
* @see com.foundation.view.swt.builder.AbstractBuilder#getLinkMap()
*/
public IHashMap getLinkMap() {
return linkMap;
}//getLinkMap()//
}//TextFieldBuilder//