Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / src / models / controlFlowModel / ObjectNodeAttribute.java
package models.controlFlowModel;

import models.NodeAttribute;

/*************************************************************
 * 
 * @author k-fujii
 * 
 */
public class ObjectNodeAttribute extends NodeAttribute{
	private ObjectNode objectNode = null;
	private String shapeStyle = "";

	/*************************************************************
	 * [ *constructor ]
	/*************************************************************
	 * 
	 */
	public ObjectNodeAttribute(final ObjectNode objectNode) {
		this.objectNode = objectNode;
		this.objectNode.setAttribute(this);

		// Setting a shape style of cell
		if(objectNode instanceof StatefulObjectNode) {
			shapeStyle = "shape=ellipse;perimeter=ellipsePerimeter;";
		}
		else if(objectNode instanceof EntryPointObjectNode) {
			shapeStyle = "shape=rectangle;perimeter=rectanglePerimeter;";
		}
		else {
			shapeStyle = "shape=hexagon;perimeter=hexagonPerimeter;";
		}

		// Setting a name of cell
		if(objectNode.name != null) return;
		if(objectNode.name.isEmpty()) return;
		
		if( objectNode instanceof StatefulObjectNode ) {
			objectNode.name = objectNode.getName();			
		}
		else if(objectNode instanceof EntryPointObjectNode){
			objectNode.name = "entryPoint";
		}
	}

	/*************************************************************
	*  [ *public ]
	/*************************************************************
	 * [ getter ]
 	/*************************************************************
	 * 
	 * @return
	 */
	public ObjectNode getObjectNode() {
		return objectNode;
	}
	
	/*************************************************************
	 * 
	 */
	public String getDefaultStyle() {
		String style = ";";
		
		return objectNode instanceof StatefulObjectNode
					? shapeStyle + style
					: shapeStyle + style;
	}

	/*************************************************************
	 * 
	 */
	public String getEnableStyle() {
		String style = "fillColor=#7fffd4;";
		style += "strokeColor=#66cdaa;";
		style += "strokeWidth=2;";

		return objectNode instanceof StatefulObjectNode
					? shapeStyle + style
					: shapeStyle + style;
	}
	
	/*************************************************************
	 * 
	 */
	public String getDisableStyle() {
		String style = "fillColor=#999999";
		
		return objectNode instanceof StatefulObjectNode
					? shapeStyle + style
					: shapeStyle + style;
	}
		
	/*************************************************************
	 * 
	 */
	public String getDelegatingStyle() {
		String style = "strokeWidth=4;";
		style += "strokeColor=#4169e;";

		return shapeStyle + style;
	}

	/*************************************************************
	 * showing label of mxCell
	 */
	@Override
	public String toString() {
		return objectNode instanceof StatefulObjectNode
					? ((StatefulObjectNode) objectNode).getResource().getIdentifierTemplate().getResourceName()
					:  objectNode.getName();
	}
}