From e1ca67b70f638fc21324713e562fa4e380c9c417 Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Tue, 19 Feb 2013 13:54:11 +0400 Subject: [PATCH] Remove recently added internal action (Color Picker) See http://crucible.labs.intellij.net/cru/CR-IC-83#c7048 --- .../colorpicker/ColorPickerAction.java | 250 ------------------ .../src/idea/PlatformActions.xml | 1 - 2 files changed, 251 deletions(-) delete mode 100644 platform/platform-impl/src/com/intellij/internal/colorpicker/ColorPickerAction.java diff --git a/platform/platform-impl/src/com/intellij/internal/colorpicker/ColorPickerAction.java b/platform/platform-impl/src/com/intellij/internal/colorpicker/ColorPickerAction.java deleted file mode 100644 index bf87ac235f8b..000000000000 --- a/platform/platform-impl/src/com/intellij/internal/colorpicker/ColorPickerAction.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright 2000-2013 JetBrains s.r.o. - * - * 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.intellij.internal.colorpicker; - -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.ToggleAction; -import com.intellij.openapi.project.DumbAware; - -import javax.swing.*; -import java.awt.*; -import java.awt.event.*; - -/** - * User: Vassiliy.Kudryashov - */ -public class ColorPickerAction extends ToggleAction implements DumbAware { - private ColorPicker myColorPicker = null; - private Point myInitialLocation = null; - - @Override - public boolean isSelected(AnActionEvent e) { - return myColorPicker != null; - } - - @Override - public void setSelected(AnActionEvent e, boolean state) { - if (myColorPicker != null) { - myInitialLocation = myColorPicker.getLocation(); - myColorPicker.dispose(); - myColorPicker = null; - } - if (state) { - myColorPicker = new ColorPicker(myInitialLocation); - } - } - - private static class ColorPicker extends JDialog implements ActionListener, MouseListener, MouseMotionListener { - final GrayFilter myFilter = new GrayFilter(true, 50); - final Color[] myPrev = new Color[]{Color.BLACK}; - final JLabel myLabel = new JLabel(" 255,255,255 "); - private boolean myColoring = true; - private boolean myMultiline = false; - private Point myStartPoint; - private final Timer myTimer; - - public ColorPicker(Point initialLocation) throws HeadlessException { - super((Frame)null, "ColorPicker", false); - myLabel.setFont(new Font("Monospaced", Font.BOLD, 13)); - myLabel.setOpaque(true); - myLabel.addMouseListener(this); - myLabel.addMouseMotionListener(this); - setUndecorated(true); - getContentPane().add(myLabel); - pack(); - - if (initialLocation != null) { - setLocation(initialLocation); - checkBounds(this); - } - else { - setDefaultBounds(this); - } - - myLabel.setText(""); - setAlwaysOnTop(true); - setVisible(true); - - - myTimer = new Timer(100, this); - myTimer.start(); - } - - @Override - public void dispose() { - if (myTimer != null && myTimer.isRunning()) { - myTimer.stop(); - } - super.dispose(); - } - - @Override - public void actionPerformed(ActionEvent e) { - try { - PointerInfo pointerInfo = MouseInfo.getPointerInfo(); - if (pointerInfo == null) return; - GraphicsDevice device = pointerInfo.getDevice(); - Point location = pointerInfo.getLocation(); - if (device == null || location == null || getBounds().contains(location)) return; - GraphicsConfiguration defaultConfiguration = device.getDefaultConfiguration(); - if (defaultConfiguration == null) return; - Rectangle rectangle = defaultConfiguration.getBounds(); - location.x -= rectangle.x; - location.y -= rectangle.y; - Robot robot = new Robot(device); - Color color = robot.getPixelColor(location.x, location.y); - - if (myPrev[0].equals(color)) return; - - myPrev[0] = color; - int gray = (myFilter.filterRGB(0, 0, color.getRGB()) & 0xff); - updateLabel(color); - if (myColoring) { - myLabel.setBackground(color); - myLabel.setForeground(gray > 150 ? Color.BLACK : Color.WHITE); - } - else { - myLabel.setBackground(Color.WHITE); - myLabel.setForeground(Color.BLACK); - } - checkBounds(this); - } - catch (AWTException e1) { - } - } - - private static String getString(int i) { - if (i < 10) { - return " " + i; - } - if (i < 100) { - return " " + i; - } - return String.valueOf(i); - } - - private void updateLabel(Color color) { - if (color == null) { - return; - } - if (!myMultiline) { - myLabel.setText(" " + getString(color.getRed()) + "," + getString(color.getGreen()) + "," + getString(color.getBlue())+" "); - } - else { - myLabel.setText(" " + - getString(color.getRed()) + - " 
 " + - getString(color.getGreen()) + - " 
 " + - getString(color.getBlue())); - } - } - - private void doPack() { - updateLabel(Color.WHITE); - pack(); - checkBounds(this); - } - - @Override - public void mouseClicked(MouseEvent e) { - if (e.isControlDown()) { - myMultiline = !myMultiline; - doPack(); - return; - } - myColoring = !myColoring; - } - - @Override - public void mousePressed(MouseEvent e) { - myStartPoint = e.getPoint(); - } - - @Override - public void mouseReleased(MouseEvent e) { - myStartPoint = null; - checkBounds(this); - } - - @Override - public void mouseEntered(MouseEvent e) { - } - - @Override - public void mouseExited(MouseEvent e) { - } - - @Override - public void mouseDragged(MouseEvent e) { - if (myStartPoint == null) { - return; - } - Point shift = e.getPoint(); - shift.x -= myStartPoint.x; - shift.y -= myStartPoint.y; - Point location = getLocation(); - location.x += shift.x; - location.y += shift.y; - setLocation(location); - } - - @Override - public void mouseMoved(MouseEvent e) { - } - - private static void checkBounds(Window window) { - Rectangle bounds = window.getBounds(); - GraphicsDevice[] screenDevices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); - int maxSquare = 0; - Rectangle inter = null; - for (GraphicsDevice screenDevice : screenDevices) { - Rectangle candidate = getPatchedBounds(screenDevice.getDefaultConfiguration()).intersection(bounds); - if (candidate.isEmpty()) continue; - if (candidate.equals(bounds)) return; - if (candidate.width * candidate.height > maxSquare) { - maxSquare = candidate.width * candidate.height; - inter = candidate; - } - } - if (inter != null) { - bounds.translate( - 2 * (inter.x + inter.width / 2 - (bounds.x + bounds.width / 2)), - 2 * (inter.y + inter.height / 2 - (bounds.y + bounds.height / 2))); - window.setBounds(bounds); - } - else { - setDefaultBounds(window); - } - } - - private static void setDefaultBounds(Window window) { - Rectangle bounds = getPatchedBounds( - GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration()); - window.setLocation(bounds.x + (bounds.width - window.getWidth()) / 2, bounds.y); - } - - private static Rectangle getPatchedBounds(GraphicsConfiguration graphicsConfiguration) { - Rectangle bounds = graphicsConfiguration.getBounds(); - Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(graphicsConfiguration); - bounds.x += insets.left; - bounds.y += insets.top; - bounds.width -= (insets.left + insets.right); - bounds.height -= (insets.top + insets.bottom); - return bounds; - } - } -} diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index e8488cee81a0..bb17b322ad78 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -566,7 +566,6 @@ -