Package com.gc.gwt.wysiwyg.client.defaults

Source Code of com.gc.gwt.wysiwyg.client.defaults.EditorColorPicker

/*
* Copyright 2006 Pavel Jbanov.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/

package com.gc.gwt.wysiwyg.client.defaults;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasAlignment;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.HTMLTable.Cell;

public class EditorColorPicker extends DialogBox {
  // 18x12
  private static String[] colors = new String[] {"000000", "000033", "000066", "000099", "0000CC", "0000FF", "330000",
      "330033", "330066", "330099", "3300CC", "3300FF", "660000", "660033", "660066", "660099", "6600CC", "6600FF",
      "990000", "990033", "990066", "990099", "9900CC", "9900FF", "CC0000", "CC0033", "CC0066", "CC0099", "CC00CC",
      "CC00FF", "FF0000", "FF0033", "FF0066", "FF0099", "FF00CC", "FF00FF", "003300", "003333", "003366", "003399",
      "0033CC", "0033FF", "333300", "333333", "333366", "333399", "3333CC", "3333FF", "663300", "663333", "663366",
      "663399", "6633CC", "6633FF", "993300", "993333", "993366", "993399", "9933CC", "9933FF", "CC3300", "CC3333",
      "CC3366", "CC3399", "CC33CC", "CC33FF", "FF3300", "FF3333", "FF3366", "FF3399", "FF33CC", "FF33FF", "006600",
      "006633", "006666", "006699", "0066CC", "0066FF", "336600", "336633", "336666", "336699", "3366CC", "3366FF",
      "666600", "666633", "666666", "666699", "6666CC", "6666FF", "996600", "996633", "996666", "996699", "9966CC",
      "9966FF", "CC6600", "CC6633", "CC6666", "CC6699", "CC66CC", "CC66FF", "FF6600", "FF6633", "FF6666", "FF6699",
      "FF66CC", "FF66FF", "009900", "009933", "009966", "009999", "0099CC", "0099FF", "339900", "339933", "339966",
      "339999", "3399CC", "3399FF", "669900", "669933", "669966", "669999", "6699CC", "6699FF", "999900", "999933",
      "999966", "999999", "9999CC", "9999FF", "CC9900", "CC9933", "CC9966", "CC9999", "CC99CC", "CC99FF", "FF9900",
      "FF9933", "FF9966", "FF9999", "FF99CC", "FF99FF", "00CC00", "00CC33", "00CC66", "00CC99", "00CCCC", "00CCFF",
      "33CC00", "33CC33", "33CC66", "33CC99", "33CCCC", "33CCFF", "66CC00", "66CC33", "66CC66", "66CC99", "66CCCC",
      "66CCFF", "99CC00", "99CC33", "99CC66", "99CC99", "99CCCC", "99CCFF", "CCCC00", "CCCC33", "CCCC66", "CCCC99",
      "CCCCCC", "CCCCFF", "FFCC00", "FFCC33", "FFCC66", "FFCC99", "FFCCCC", "FFCCFF", "00FF00", "00FF33", "00FF66",
      "00FF99", "00FFCC", "00FFFF", "33FF00", "33FF33", "33FF66", "33FF99", "33FFCC", "33FFFF", "66FF00", "66FF33",
      "66FF66", "66FF99", "66FFCC", "66FFFF", "99FF00", "99FF33", "99FF66", "99FF99", "99FFCC", "99FFFF", "CCFF00",
      "CCFF33", "CCFF66", "CCFF99", "CCFFCC", "CCFFFF", "FFFF00", "FFFF33", "FFFF66", "FFFF99", "FFFFCC", "FFFFFF" };

  private List<EditorColorSelectListener> selectListeners = new ArrayList<EditorColorSelectListener>();

  public EditorColorPicker(String title) {
    this.setStyleName("Editor-DialogBox");
    this.setText(title);

    VerticalPanel vp = new VerticalPanel();

    final Grid grid = new Grid(12, 18);
    grid.setCellPadding(0);
    grid.setCellSpacing(1);

    for (int j = 0; j < 12; j++) {
      for (int i = 0; i < 18; i++) {
        grid.setWidget(j, i, new HTML("<div style='width:12px;height:12px;" + "cursor:pointer;background-color:#"
            + colors[j * 12 + i] + "'></div>"));
      }
    }

    grid.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
      Cell cell = grid.getCellForEvent(event);
        fireColorSelected(colors[cell.getRowIndex() * 12 + cell.getCellIndex()]);
        hide();
      }
    });

    vp.setStyleName("Editor-DialogBox-Content");
    vp.add(grid);

    Button cancelButton = new Button("Cancel");
    cancelButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        hide();
      }
    });

    vp.add(cancelButton);
    vp.setCellHorizontalAlignment(cancelButton, HasAlignment.ALIGN_CENTER);

    setWidget(vp);
  }

  public void addSelectListener(EditorColorSelectListener listener) {
    selectListeners.add(listener);
  }

  public void removeSelectListener(EditorColorSelectListener listener) {
    selectListeners.remove(listener);
  }

  private void fireColorSelected(String rgb) {
    for (EditorColorSelectListener listener : selectListeners) {
      listener.colorSelected(rgb);
    }
  }
}
TOP

Related Classes of com.gc.gwt.wysiwyg.client.defaults.EditorColorPicker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.