diff options
Diffstat (limited to 'examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java')
-rw-r--r-- | examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java | 372 |
1 files changed, 0 insertions, 372 deletions
diff --git a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java b/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java deleted file mode 100644 index 2ded07c93e..0000000000 --- a/examples/org.eclipse.swt.examples/src/org/eclipse/swt/examples/graphics/ColorMenu.java +++ /dev/null @@ -1,372 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.swt.examples.graphics; - -import java.util.*; - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.widgets.*; - -/** - * This class utilizes the factory design pattern to create menus that may - * contain color items, pattern items and gradient items. To create a menu: - * first set the menu items that you wish to have appear in the menu by calling - * the setters (setColorItems(), setPatternItems(), setGradientItems()), and - * then call createMenu() to get an instance of a menu. By default, the menu - * will contain color items. - */ -public class ColorMenu { - - boolean enableColorItems, enablePatternItems, enableGradientItems; - - public ColorMenu() { - enableColorItems = true; - } - - /** - * Method used to specify whether or not the color menu items will appear in - * the menu. - * - * @param enable - * A boolean flag - true to make the color menu items visible in - * the menu; false otherwise. - */ - public void setColorItems(boolean enable) { - enableColorItems = enable; - } - - /** - * @return true if color menu items are contained in the menu; false otherwise. - * */ - public boolean getColorItems() { - return enableColorItems; - } - - /** - * Method used to specify whether or not the pattern menu items will appear - * in the menu. - * - * @param enable - * A boolean flag - true to make the pattern menu items visible - * in the menu; false otherwise. - */ - public void setPatternItems(boolean enable) { - enablePatternItems = enable; - } - - /** - * @return true if pattern menu items are contained in the menu; false otherwise. - * */ - public boolean getPatternItems() { - return enablePatternItems; - } - - /** - * Method used to specify whether or not the gradient menu items will appear - * in the menu. - * - * @param enable - * A boolean flag - true to make the gradient menu items visible - * in the menu; false otherwise. - */ - public void setGradientItems(boolean enable) { - enableGradientItems = enable; - } - - /** - * @return true if gradient menu items are contained in the menu; false otherwise. - */ - public boolean getGradientItems() { - return enableGradientItems; - } - - /** - * Creates and returns the menu based on the settings provided via - * setColorItems(), setPatternItems() and setGradientItems() - * - * @return A menu based on the settings - */ - public Menu createMenu(Control parent, ColorListener cl) { - Menu menu = new Menu(parent); - - MenuItemListener menuItemListener = createMenuItemListener(parent); - menu.addListener(SWT.Selection, menuItemListener); - menu.addListener(SWT.Dispose, menuItemListener); - menuItemListener.setColorListener(cl); - - if (enableColorItems) { - addColorItems(menu, menuItemListener, menuItemListener.getMenuResources()); - } - if (enablePatternItems) { - addPatternItems(menu, menuItemListener, menuItemListener.getMenuResources()); - } - if (enableGradientItems) { - addGradientItems(menu, menuItemListener); - } - return menu; - } - - /** Adds the colors items to the menu. */ - private void addColorItems(Menu menu, MenuItemListener menuListener, - ArrayList menuResources) { - Display display = menu.getDisplay(); - - if (menu.getItemCount() != 0) { - new MenuItem(menu, SWT.SEPARATOR); - } - - // color names - String[] names = new String[]{ - GraphicsExample.getResourceString("White"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Black"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Red"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Green"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Blue"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Yellow"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Cyan"), //$NON-NLS-1$ - }; - - // colors needed for the background menu - Color[] colors = new Color[]{ - display.getSystemColor(SWT.COLOR_WHITE), - display.getSystemColor(SWT.COLOR_BLACK), - display.getSystemColor(SWT.COLOR_RED), - display.getSystemColor(SWT.COLOR_GREEN), - display.getSystemColor(SWT.COLOR_BLUE), - display.getSystemColor(SWT.COLOR_YELLOW), - display.getSystemColor(SWT.COLOR_CYAN), - }; - - // add standard color items to menu - for (int i = 0; i < names.length; i++) { - MenuItem item = new MenuItem(menu, SWT.NONE); - item.setText(names[i]); - item.addListener(SWT.Selection, menuListener); - Color color = colors[i]; - GraphicsBackground gb = new GraphicsBackground(); - Image image = GraphicsExample.createImage(display, color); - gb.setBgColor1(color); - gb.setBgImage(image); - gb.setThumbNail(image); - menuResources.add(image); - item.setImage(image); - item.setData(gb); - } - - // add custom color item to menu - menuListener.customColorMI = new MenuItem(menu, SWT.NONE); - menuListener.customColorMI.setText(GraphicsExample.getResourceString("CustomColor")); //$NON-NLS-1$ - menuListener.customColorMI.addListener(SWT.Selection, menuListener); - GraphicsBackground gb = new GraphicsBackground(); - menuListener.customColorMI.setData(gb); - } - - /** Adds the pattern items to the menu. */ - private void addPatternItems(Menu menu, MenuItemListener menuListener, - ArrayList menuResources) { - Display display = menu.getDisplay(); - - if (menu.getItemCount() != 0) { - new MenuItem(menu, SWT.SEPARATOR); - } - - // pattern names - String[] names = new String[]{ - GraphicsExample.getResourceString("Pattern1"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Pattern2"), //$NON-NLS-1$ - GraphicsExample.getResourceString("Pattern3"), //$NON-NLS-1$ - }; - - // pattern images - Image[] images = new Image[]{ - loadImage(display, "pattern1.jpg", menuResources), - loadImage(display, "pattern2.jpg", menuResources), - loadImage(display, "pattern3.jpg", menuResources), - }; - - // add the pre-defined patterns to the menu - for (int i = 0; i < names.length; i++) { - MenuItem item = new MenuItem(menu, SWT.NONE); - item.setText(names[i]); - item.addListener(SWT.Selection, menuListener); - Image image = images[i]; - GraphicsBackground gb = new GraphicsBackground(); - gb.setBgImage(image); - gb.setThumbNail(image); - item.setImage(image); - item.setData(gb); - } - - // add the custom pattern item - menuListener.customPatternMI = new MenuItem(menu, SWT.NONE); - menuListener.customPatternMI.setText(GraphicsExample.getResourceString("CustomPattern")); //$NON-NLS-1$ - menuListener.customPatternMI.addListener(SWT.Selection, menuListener); - GraphicsBackground gb = new GraphicsBackground(); - menuListener.customPatternMI.setData(gb); - } - - /** Adds the gradient menu item. */ - private void addGradientItems(Menu menu, MenuItemListener menuListener) { - if (menu.getItemCount() != 0) { - new MenuItem(menu, SWT.SEPARATOR); - } - menuListener.customGradientMI = new MenuItem(menu, SWT.NONE); - menuListener.customGradientMI.setText(GraphicsExample.getResourceString("Gradient")); //$NON-NLS-1$ - menuListener.customGradientMI.addListener(SWT.Selection, menuListener); - GraphicsBackground gb = new GraphicsBackground(); - menuListener.customGradientMI.setData(gb); - } - - /** Creates and returns the listener for menu items. */ - private MenuItemListener createMenuItemListener(final Control parent) { - return new MenuItemListener(parent); - } - - /** - * Creates and returns an instance of Image using on the path of an image. - * - * @param display - * A Display - * @param name - * The path of the image file - * @param resources - * The list of resources of the menu - */ - private Image loadImage(Display display, String name, ArrayList resources) { - Image image = GraphicsExample.loadImage(display, GraphicsExample.class, name); - if (image != null) resources.add(image); - return image; - } - - /** - * An inner class used as a listener for MenuItems added to the menu. - */ - static class MenuItemListener implements Listener { - MenuItem customColorMI, customPatternMI, customGradientMI; // custom menu items - Control parent; - Image customImage, customImageThumb; - Color customColor; - GraphicsBackground background; // used to store information about the background - ColorListener colorListener; - ArrayList resources; - - public MenuItemListener(Control parent){ - this.parent = parent; - resources = new ArrayList(); - } - /** - * Method used to set the ColorListener - * - * @param cl - * A ColorListener - * @see org.eclipse.swt.examples.graphics.ColorListener.java - */ - public void setColorListener(ColorListener cl) { - this.colorListener = cl; - } - - public ArrayList getMenuResources() { - return resources; - } - - public void handleEvent(Event event) { - switch (event.type) { - - case SWT.Dispose: - for (int i = 0; i < resources.size(); i++) { - ((Resource) resources.get(i)).dispose(); - } - resources = new ArrayList(); - break; - case SWT.Selection: - Display display = event.display; - MenuItem item = (MenuItem) event.widget; - if (customColorMI == item) { - ColorDialog dialog = new ColorDialog(parent.getShell()); - if (customColor != null && !customColor.isDisposed()) { - dialog.setRGB(customColor.getRGB()); - } - RGB rgb = dialog.open(); - if (rgb == null) return; - if (customColor != null) customColor.dispose(); - customColor = new Color(display, rgb); - if (customPatternMI != null) customPatternMI.setImage(null); - if (customGradientMI != null) customGradientMI.setImage(null); - if (customImage != null) customImage.dispose(); - customImage = GraphicsExample.createImage(display, customColor); - GraphicsBackground gb = new GraphicsBackground(); - gb.setBgImage(customImage); - gb.setThumbNail(customImage); - gb.setBgColor1(customColor); - item.setData(gb); - item.setImage(customImage); - resources.add(customColor); - resources.add(customImage); - } else if (customPatternMI == item) { - FileDialog dialog = new FileDialog(parent.getShell()); - dialog.setFilterExtensions(new String[] { "*.jpg", "*.gif", "*.*" }); - String name = dialog.open(); - if (name == null) return; - if (customColorMI != null) customColorMI.setImage(null); - if (customGradientMI != null) customGradientMI.setImage(null); - if (customColor != null) customColor.dispose(); - if (customImage != null) customImage.dispose(); - if (customImageThumb != null) customImageThumb.dispose(); - customImage = new Image(display, name); - customImageThumb = GraphicsExample.createThumbnail(display, name); - GraphicsBackground gb = new GraphicsBackground(); - gb.setBgImage(customImage); - gb.setThumbNail(customImageThumb); - item.setData(gb); - item.setImage(customImageThumb); - resources.add(customImageThumb); - } else if (customGradientMI == item) { - GradientDialog dialog = new GradientDialog(parent.getShell()); - if (background != null) { - if (background.getBgColor1() != null) - dialog.setFirstRGB(background.getBgColor1().getRGB()); - if (background.getBgColor2() != null) - dialog.setSecondRGB(background.getBgColor2().getRGB()); - } - if (dialog.open() != SWT.OK) return; - Color colorA = new Color(display, dialog.getFirstRGB()); - Color colorB = new Color(display, dialog.getSecondRGB()); - if (colorA == null || colorB == null) return; - if (customColorMI != null) customColorMI.setImage(null); - if (customPatternMI != null) customPatternMI.setImage(null); - if (customColor != null) customColor.dispose(); - if (customImage != null) customImage.dispose(); - customImage = GraphicsExample.createImage(display, colorA, - colorB, 16, 16); - GraphicsBackground gb = new GraphicsBackground(); - gb.setBgImage(customImage); - gb.setThumbNail(customImage); - gb.setBgColor1(colorA); - gb.setBgColor2(colorB); - item.setData(gb); - item.setImage(customImage); - resources.add(colorA); - resources.add(colorB); - resources.add(customImage); - } else { - if (customColorMI != null) customColorMI.setImage(null); - if (customPatternMI != null) customPatternMI.setImage(null); - if (customGradientMI != null) customGradientMI.setImage(null); - } - background = (GraphicsBackground) item.getData(); - colorListener.setColor(background); - break; - } - } - } -} |