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

org.geomajas.graphics.client.object.ExternalLabel 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;

import org.geomajas.graphics.client.object.role.ExternalizableLabeled;
import org.geomajas.graphics.client.object.role.TemplateLabeled;
import org.geomajas.graphics.client.object.role.Textable;


/**
 * The {@link ExternalLabel} is a special GText object. It is linked to a {@link Resizable object} via the
 * {@link ResizableLabeler} class. Specificity: all common font and label functionalities are first dispaced to the
 * {@link ResizableLabeler} class; there they are inserted in both the (internal) {@link AnchoredText} and the
 * external {@link ExternalLabel} object.
 * 
 * @author Jan Venstermans
 * 
 */
public class ExternalLabel extends GText {
	
	private ExternalizableLabeled externalizableLabeled;
	
	public ExternalLabel(ExternalizableLabeled labeled) {
		super(0, 0, "");
		this.externalizableLabeled = labeled;
	}
	
	public ExternalizableLabeled getExternalizableLabeled() {
		return externalizableLabeled;
	}
	
	@Override
	public void setFontSize(int size) {
		externalizableLabeled.getLabeled().getTextable().setFontSize(size);
		super.setFontSize(externalizableLabeled.getLabeled().getTextable().getFontSize());
	}
	
	public void setFontSizeExternalLabelOnly(int size) {
		super.setFontSize(size);
	}

	@Override
	public void setFontFamily(String font) {
		externalizableLabeled.getLabeled().getTextable().setFontFamily(font);
		super.setFontFamily(externalizableLabeled.getLabeled().getTextable().getFontFamily());
	}
	
	public void setFontFamilyExternalLabelOnly(String font) {
		super.setFontFamily(font);
	}

	@Override
	public void setFontColor(String color) {
		externalizableLabeled.getLabeled().getTextable().setFontColor(color);
		super.setFontColor(externalizableLabeled.getLabeled().getTextable().getFontColor());
	}
	
	public void setFontColorExternalLabelOnly(String color) {
		super.setFontColor(color);
	}
	
	@Override
	public void setLabel(String label) {
		externalizableLabeled.getLabeled().getTextable().setLabel(label);
		Textable textable = externalizableLabeled.getLabeled().getTextable();
		super.setLabel(textable instanceof TemplateLabeled ? 
				((TemplateLabeled) textable).getLabelRenderedText() : textable.getLabel());
	}
	
	public void setLabelExternalLabelOnly(String label) {
		super.setLabel(label);
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy