/* * * Copyright (C) 2007-2015 Licensed to the Comunes Association (CA) under * one or more contributor license agreements (see COPYRIGHT for details). * The CA licenses this file to you under the GNU Affero General Public * License version 3, (the "License"); you may not use this file except in * compliance with the License. This file is part of kune. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package cc.kune.gspace.client.tool.selector; import br.com.rpa.client._paperelements.PaperFab; import cc.kune.common.client.tooltip.Tooltip; import cc.kune.common.shared.res.KuneIcon; import cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter.ToolSelectorItemView; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.MouseOutEvent; import com.google.gwt.event.dom.client.MouseOutHandler; import com.google.gwt.event.dom.client.MouseOverEvent; import com.google.gwt.event.dom.client.MouseOverHandler; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.HasText; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Widget; // TODO: Auto-generated Javadoc /** * The Class ToolSelectorItemPanel. * * @author vjrj@ourproject.org (Vicente J. Ruiz Jurado) */ public class ToolSelectorItemPanel implements ToolSelectorItemView { /** The Constant TOOL_ID_PREFIX. */ public static final String TOOL_ID_PREFIX = "k_tool_item_"; private final PaperFab btn; /** The short name. */ private final String shortName; /** * Instantiates a new tool selector item panel. * * @param shortName * the short name * @param icon * the icon */ public ToolSelectorItemPanel(final String shortName, final KuneIcon icon) { this.shortName = shortName; btn = PaperFab.wrap(TOOL_ID_PREFIX + shortName); setVisibleImpl(false); btn.setStylePrimaryName("k-tool-item"); btn.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(final MouseOverEvent event) { focus(); } }); btn.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(final MouseOutEvent event) { unfocus(); } }); } /* * (non-Javadoc) * * @see cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter. * ToolSelectorItemView#getFocus() */ @Override public HandlerRegistration addClickHandler(final ClickHandler clickHandler) { return btn.addClickHandler(clickHandler); } /* * (non-Javadoc) * * @see com.google.gwt.user.client.ui.Widget#asWidget() */ @Override public Widget asWidget() { return btn; } /** * Focus. */ private void focus() { btn.addStyleDependentName("focus"); btn.removeStyleDependentName("nofocus"); } /** * Gets the focus panel. * * @return the focus panel */ public Widget getFocusPanel() { return btn; } /* * (non-Javadoc) * * @see cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter. * ToolSelectorItemView#getLabel() */ @Override public HasText getLabel() { return btn; } /** * Gets the name. * * @return the name */ public String getName() { return shortName; } /* * (non-Javadoc) * * @see cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter. * ToolSelectorItemView#getTarget() */ @Override public Object getTarget() { return btn; } @Override public IsWidget getWidget() { return btn; } /* * (non-Javadoc) * * @see cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter. * ToolSelectorItemView#setSelected(boolean) */ @Override public void setSelected(final boolean selected) { if (selected) { btn.addStyleName("active"); // iconRight.setVisible(true); } else { btn.removeStyleName("active"); } } /* * (non-Javadoc) * * @see cc.kune.gspace.client.tool.selector.ToolSelectorItemPresenter. * ToolSelectorItemView#setTooltip(java.lang.String) */ @Override public void setTooltip(final String tooltip) { Tooltip.to(btn, tooltip); } /* * (non-Javadoc) * * @see com.google.gwt.user.client.ui.UIObject#setVisible(boolean) */ @Override public void setVisible(final boolean visible) { setVisibleImpl(visible); } /** * Sets the visible impl. * * @param visible * the new visible impl */ private void setVisibleImpl(final boolean visible) { btn.setVisible(visible); } /** * Unfocus. */ private void unfocus() { btn.addStyleDependentName("nofocus"); btn.removeStyleDependentName("focus"); } }