All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.geomajas.graphics.client.object.labeler.ResizableTemplateLabeler Maven / Gradle / Ivy

The newest version!
/*
 * This is part of Geomajas, a GIS framework, http://www.geomajas.org/.
 *
 * Copyright 2008-2014 Geosparc nv, http://www.geosparc.com/, Belgium.
 *
 * The program is available in open source according to the Apache
 * License, Version 2.0. All contributions in this program are covered
 * by the Geomajas Contributors License Agreement. For full licensing
 * details, see LICENSE.txt in the project root.
 */
package org.geomajas.graphics.client.object.labeler;

import org.geomajas.graphics.client.object.Resizable;
import org.geomajas.graphics.client.object.ResizableAwareRole;
import org.geomajas.graphics.client.object.role.RoleType;
import org.geomajas.graphics.client.object.role.TemplateLabeled;
import org.geomajas.graphics.client.object.role.Textable;
import org.geomajas.graphics.client.resource.GraphicsResource;
import org.vaadin.gwtgraphics.client.VectorObject;

/**
 * Implementation of {@link TemplateLabeled} role for {@link Resizable} objects.
 * 
 * @author Jan Venstermans
 * 
 */
public class ResizableTemplateLabeler extends ResizableTextable implements TemplateLabeled {

	private String templateText;
	
	private ResizableTextable resTextable;

	public ResizableTemplateLabeler(ResizableTextable resTextable) {
		this.resTextable = resTextable;
		if (resTextable.getLabel() != null) {
			templateText = resTextable.getLabel();
		}
	}
	
	@Override
	public TemplateLabeled asRole() {
		return this;
	}

	@Override
	public RoleType getType() {
		return Textable.TYPE;
	}

	@Override
	public ResizableAwareRole cloneRole(Resizable resizable) {
		ResizableTemplateLabeler clone = new ResizableTemplateLabeler(
				(ResizableTextable) resTextable.cloneRole(resizable));
		clone.setResizable(resizable);
		clone.setLabel(getLabel());
		// you don't want the text of the label be cloned
		clone.setLabelRenderedText("");
		return clone;
	}

	@Override
	public String getLabelTemplateText() {
		return templateText;
	}

	@Override
	public void setLabelTemplateText(String templateText) {
		this.templateText = templateText;
		renderTemplateText();
	}

	public String getLabelRenderedText() {
		return resTextable.getLabel();
	}

	public void setLabelRenderedText(String renderedText) {
		resTextable.setLabel(renderedText);
	}
	
	@Override
	public String getLabel() {
		return getLabelTemplateText();
	}
	
	@Override
	public void setLabel(String label) {
		setLabelTemplateText(label);
	}
	
	// this makes the rendered text from the template text
	public void renderTemplateText() {
		// stub
		setLabelRenderedText(GraphicsResource.MESSAGES.templateLabeledDefaultPrefixText() + templateText);
	}

	@Override
	public void setFontColor(String color) {
		resTextable.setFontColor(color);
	}

	@Override
	public String getFontColor() {
		return resTextable.getFontColor();
	}

	@Override
	public void setFontSize(int size) {
		resTextable.setFontSize(size);
	}

	@Override
	public int getFontSize() {
		return resTextable.getFontSize();
	}

	@Override
	public void setFontFamily(String font) {
		resTextable.setFontFamily(font);
	}

	@Override
	public String getFontFamily() {
		return resTextable.getFontFamily();
	}

	@Override
	public void onUpdate() {
		resTextable.onUpdate();
	}

	@Override
	public void setResizable(Resizable resizable) {
		resTextable.setResizable(resizable);
	}

	@Override
	public VectorObject asObject() {
		return resTextable.asObject();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy