/* * RHQ Management Platform * Copyright (C) 2005-2011 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.coregui.client.components.form; import com.smartgwt.client.widgets.form.ColorPicker; import com.smartgwt.client.widgets.form.events.ColorSelectedEvent; import com.smartgwt.client.widgets.form.events.ColorSelectedHandler; import com.smartgwt.client.widgets.form.fields.ButtonItem; import com.smartgwt.client.widgets.form.fields.events.ClickEvent; import com.smartgwt.client.widgets.form.fields.events.ClickHandler; import org.rhq.coregui.client.CoreGUI; /** * A button that lets you pick a color. This is different than the smartgwt * ColorPickerItem this is just a button - it doesn't let you enter a text * string for any color. You can only pick a color from the dialog. * * @author John Mazzitelli */ public class ColorButtonItem extends ButtonItem { // can't figure out how to change the color of this icon //private static final String ICON_PATH = "[SKIN]/DynamicForm/PropSheet_ColorPicker_icon.png"; private String currentColor; private ColorSelectedHandler colorSelectedHandler; public ColorButtonItem() { super(); prepareWidget(); } public ColorButtonItem(String name) { super(name); prepareWidget(); } public ColorButtonItem(String name, String title) { super(name, title); prepareWidget(); } public String getCurrentColor() { return this.currentColor; } public void setCurrentColor(String color) { this.currentColor = color; } public void setColorSelectedHandler(ColorSelectedHandler handler) { this.colorSelectedHandler = handler; } protected void prepareWidget() { setPrompt(CoreGUI.getMessages().widget_colorPicker_tooltip()); addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ColorPicker picker = new ColorPicker(); picker.setAllowComplexMode(false); if (currentColor != null) { picker.setDefaultColor(currentColor); } picker.addColorSelectedHandler(new ColorSelectedHandler() { @Override public void onColorSelected(ColorSelectedEvent event) { if (colorSelectedHandler != null) { colorSelectedHandler.onColorSelected(event); } currentColor = event.getColor(); } }); picker.show(); } }); } }