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

org.ioc.commons.impl.gwt.client.ui.HasVisibilityWrapper Maven / Gradle / Ivy

There is a newer version: 1.2.1
Show newest version
package org.ioc.commons.impl.gwt.client.ui;

import org.ioc.commons.ui.HasStorage;
import org.ioc.commons.ui.HasVisibility;

import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.ui.UIObject;

public class HasVisibilityWrapper implements HasVisibility {

	private com.google.gwt.user.client.ui.HasVisibility wrapped;

	private HasVisibilityWrapper(com.google.gwt.user.client.ui.HasVisibility wrapped) {
		this.wrapped = wrapped;
	}

	@Override
	public void setVisible(boolean visible) {
		this.wrapped.setVisible(visible);
	}

	@Override
	public boolean isVisible() {
		return this.wrapped.isVisible();
	}

	public static HasVisibility from(com.google.gwt.user.client.ui.HasVisibility gwtHasVisibility) {
		return new HasVisibilityWrapper(gwtHasVisibility);
	}

	public static HasVisibility from(com.google.gwt.user.client.ui.HasVisibility gwtHasVisibility, HasStorage cache) {
		Object cached = cache.retrieve(gwtHasVisibility);
		HasVisibility hasVisibility = (cached instanceof HasVisibility) ? (HasVisibility) cached : null;
		if (hasVisibility == null) {
			hasVisibility = new HasVisibilityWrapper(gwtHasVisibility);
			cache.store(gwtHasVisibility, hasVisibility);
		}

		return hasVisibility;
	}

	/**
	 * Helpful method for setting an visible property on several components at
	 * the same time.
	 * 
	 * @param visible
	 * @param gwtHasVisibilityArray
	 */
	public static void setVisible(boolean visible, com.google.gwt.user.client.ui.HasVisibility... gwtHasVisibilityArray) {
		if (gwtHasVisibilityArray != null) {
			for (com.google.gwt.user.client.ui.HasVisibility gwtHasVisibility : gwtHasVisibilityArray) {
				gwtHasVisibility.setVisible(visible);
			}
		}

	}

	public static HasVisibility from(final Element gwtElement) {
		return new HasVisibilityWrapper(new com.google.gwt.user.client.ui.HasVisibility() {

			@Override
			public boolean isVisible() {
				return UIObject.isVisible(gwtElement);
			}

			@Override
			public void setVisible(boolean visible) {
				UIObject.setVisible(gwtElement, visible);
			}
		});
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy