156 lines
6.5 KiB
Java
156 lines
6.5 KiB
Java
/*
|
|
* Copyright (c) 2006 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;
|
|
|
|
import com.common.comparison.Comparator;
|
|
import com.foundation.metadata.Attribute;
|
|
import com.foundation.metadata.Event;
|
|
import com.foundation.model.Model;
|
|
|
|
/*
|
|
* An external structure for specifying line metadata for a section of text in the styled text control.
|
|
* A null bullet reference indicates that there is no bulleting for the lines. If some lines have bulleting then the attribute will reference a bullet info instance.
|
|
* <p>If the text represented by this info instance contains a mix of style settings then only the common styles will be set in this info object. The attributes for which there is a mix of data will be assigned a null value.</p>
|
|
*/
|
|
public class StyleLineInfo extends Model {
|
|
/** The updated event is fired by the StyledTextManager after the styles have been updated due to a change in the selection. */
|
|
public static final Event EVENT_UPDATED = registerEvent(StyleLineInfo.class, "eventUpdated");
|
|
public static final Attribute ALIGNMENT = registerAttribute(StyleLineInfo.class, "alignment");
|
|
public static final Attribute INDENT = registerAttribute(StyleLineInfo.class, "indent");
|
|
public static final Attribute JUSTIFY = registerAttribute(StyleLineInfo.class, "justify");
|
|
public static final Attribute STYLE = registerAttribute(StyleLineInfo.class, "style");
|
|
public static final Attribute IS_BULLETED = registerAttribute(StyleLineInfo.class, "isBulleted");
|
|
public static final Attribute BULLET = registerAttribute(StyleLineInfo.class, "bullet");
|
|
/**
|
|
* StyleLineInfo constructor.
|
|
*/
|
|
public StyleLineInfo() {
|
|
super();
|
|
setStyle(new StyleTextInfo());
|
|
}//StyleLineInfo()//
|
|
/**
|
|
* Fires the updated event notifying listeners that the styled text manager has finished updating the style data due to a selection or cursor position change.
|
|
* This event does not provide any information about what if anything has been changed. The change flags for the object are not currently utilized to provide this information either.
|
|
*/
|
|
protected void fireUpdated() {
|
|
getEventSupport().fireEvent(EVENT_UPDATED);
|
|
}//fireUpdated()//
|
|
/**
|
|
* Gets the alignment for the lines the style is associated with.
|
|
* @return The alignment for all the text in the associated lines.
|
|
*/
|
|
public Integer getAlignment() {
|
|
return (Integer) getAttributeValue(ALIGNMENT);
|
|
}//getAlignment()//
|
|
/**
|
|
* Sets the alignment for the lines the style is associated with.
|
|
* @param alignment The alignment for all the text in the associated lines.
|
|
*/
|
|
public void setAlignment(Integer alignment) {
|
|
setAttributeValue(ALIGNMENT, alignment);
|
|
}//setAlignment()//
|
|
/**
|
|
* Gets the indent for the lines the style is associated with.
|
|
* @return The indent for all the text in the associated lines.
|
|
*/
|
|
public Integer getIndent() {
|
|
return (Integer) getAttributeValue(INDENT);
|
|
}//getIndent()//
|
|
/**
|
|
* Sets the indent for the lines the style is associated with.
|
|
* @param indent The indent for all the text in the associated lines.
|
|
*/
|
|
public void setIndent(Integer indent) {
|
|
setAttributeValue(INDENT, indent);
|
|
}//setIndent()//
|
|
/**
|
|
* Gets whether the lines the style is associated with are justified.
|
|
* @return Whether all the text in the associated lines are justified.
|
|
*/
|
|
public Boolean getJustify() {
|
|
return (Boolean) getAttributeValue(JUSTIFY);
|
|
}//getJustify()//
|
|
/**
|
|
* Sets whether the lines the style is associated with are justified.
|
|
* @param justify Whether all the text in the associated lines are justified.
|
|
*/
|
|
public void setJustify(Boolean justify) {
|
|
setAttributeValue(JUSTIFY, justify);
|
|
}//setJustify()//
|
|
/**
|
|
* Gets the text style metadata for the represented text.
|
|
* @return The style data for the represented text.
|
|
*/
|
|
public StyleTextInfo getStyle() {
|
|
return (StyleTextInfo) getAttributeValue(STYLE);
|
|
}//getStyle()//
|
|
/**
|
|
* Sets the text style metadata for the represented text.
|
|
* @param style The style data for the represented text.
|
|
*/
|
|
private void setStyle(StyleTextInfo style) {
|
|
setAttributeValue(STYLE, style);
|
|
}//setStyle()//
|
|
/**
|
|
* Gets whether the lines are bulleted or not.
|
|
* <p>This will be null if some lines are bulleted. If this is null then the bullet reference will be ignored when applying styles to the text.</p>
|
|
* @return Whether all lines are bulleted or not.
|
|
*/
|
|
public Boolean getIsBulleted() {
|
|
return (Boolean) getAttributeValue(IS_BULLETED);
|
|
}//getIsBulleted()//
|
|
/**
|
|
* Sets whether the lines are bulleted or not.
|
|
* <p>This will be null if some lines are bulleted. If this is null then the bullet reference will be ignored when applying styles to the text.</p>
|
|
* @param isBulleted Whether all lines are bulleted or not.
|
|
*/
|
|
public void setIsBulleted(Boolean isBulleted) {
|
|
setAttributeValue(IS_BULLETED, isBulleted);
|
|
}//setIsBulleted()//
|
|
/**
|
|
* Gets the bullet metadata for the represented lines.
|
|
* @return The bullet data which will be non-null if any of the represented lines have bullets.
|
|
*/
|
|
public StyleBulletInfo getBullet() {
|
|
return (StyleBulletInfo) getAttributeValue(BULLET);
|
|
}//getBullet()//
|
|
/**
|
|
* Sets the bullet metadata for the represented lines.
|
|
* @param bullet The bullet data which will be non-null if any of the represented lines have bullets.
|
|
*/
|
|
public void setBullet(StyleBulletInfo bullet) {
|
|
setAttributeValue(BULLET, bullet);
|
|
}//setBullet()//
|
|
/* (non-Javadoc)
|
|
* @see java.lang.Object#toString()
|
|
*/
|
|
public String toString() {
|
|
return "Line Style";
|
|
}//toString()//
|
|
/* (non-Javadoc)
|
|
* @see java.lang.Object#equals(java.lang.Object)
|
|
*/
|
|
public boolean equals(Object object) {
|
|
return (object instanceof StyleLineInfo) &&
|
|
Comparator.equals(getAlignment(), ((StyleLineInfo) object).getAlignment()) &&
|
|
Comparator.equals(getIndent(), ((StyleLineInfo) object).getIndent()) &&
|
|
Comparator.equals(getJustify(), ((StyleLineInfo) object).getJustify()) &&
|
|
Comparator.equals(getBullet(), ((StyleLineInfo) object).getBullet()) &&
|
|
Comparator.equals(getStyle(), ((StyleLineInfo) object).getStyle());
|
|
}//equals()//
|
|
/* (non-Javadoc)
|
|
* @see java.lang.Object#hashCode()
|
|
*/
|
|
public int hashCode() {
|
|
return (getAlignment() == null ? 0 : getAlignment().hashCode()) ^
|
|
(getIndent() == null ? 0 : getIndent().hashCode()) ^
|
|
(getJustify() == null ? 0 : getJustify().hashCode()) ^
|
|
(getBullet() == null ? 0 : getBullet().hashCode()) ^
|
|
(getStyle() == null ? 0 : getStyle().hashCode());
|
|
}//hashCode()//
|
|
}//StyleLineInfo// |