Browse Source

REPORT-1096 完成基本功能

master
plough 8 years ago
parent
commit
cc5d8edec9
  1. 0
      designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPicker16.png
  2. 0
      designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPicker18.png
  3. 45
      designer_base/src/com/fr/design/style/color/ColorPicker.java
  4. 2
      designer_base/src/com/fr/design/style/color/ColorSelectDialog.java
  5. 36
      designer_base/src/com/fr/design/style/color/CustomChooserPanel.java
  6. 13
      designer_base/src/com/fr/design/style/color/NewColorSelectPane.java
  7. 33
      designer_base/src/com/fr/design/style/color/PickColorButton.java

0
designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPicker.png → designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPicker16.png

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 332 B

0
designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPickerCustom.png → designer_base/src/com/fr/design/images/gui/colorSelectPane/colorPicker18.png

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 432 B

45
designer_base/src/com/fr/design/style/color/ColorPicker.java

@ -3,6 +3,8 @@ package com.fr.design.style.color;
/** /**
* Created by plough on 2016/12/22. * Created by plough on 2016/12/22.
*/ */
//import com.fr.design.dialog.UIDialog;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.awt.geom.Ellipse2D; import java.awt.geom.Ellipse2D;
@ -28,10 +30,17 @@ public class ColorPicker extends JDialog implements ActionListener
private Point mousePos; // 鼠标的绝对坐标 private Point mousePos; // 鼠标的绝对坐标
private Color colorToSet; // 暂存要设置的颜色值 private Color colorToSet; // 暂存要设置的颜色值
private Boolean setColorRealTime; // 实时设定颜色值
// private UIDialog modalDialog; // 对上层模态对话框的引用
/** /**
* 构造函数创建一个取色框窗体 * 构造函数创建一个取色框窗体
*/ */
public ColorPicker(ColorSelectable colorSelectable) public ColorPicker(ColorSelectable colorSelectable) {
this(colorSelectable, false);
}
public ColorPicker(ColorSelectable colorSelectable, Boolean setColorRealTime)
{ {
setUndecorated(true); // 去掉窗体边缘 setUndecorated(true); // 去掉窗体边缘
setResizable(false); setResizable(false);
@ -39,17 +48,29 @@ public class ColorPicker extends JDialog implements ActionListener
setShape(shape); setShape(shape);
container.add(colorPickerPanel); container.add(colorPickerPanel);
addMouseListener(new MouseFunctions()); addMouseListener(new MouseFunctions());
addMouseMotionListener(new MouseMotionFunctions());
updateSize(colorPickerSize); updateSize(colorPickerSize);
this.colorSelectable = colorSelectable; this.colorSelectable = colorSelectable;
this.setColorRealTime = setColorRealTime;
this.setAlwaysOnTop(true); this.setAlwaysOnTop(true);
this.setVisible(true); this.setVisible(true);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
System.out.println("Construced ColorPicker.");
} }
public void start() { public void start() {
timer = new Timer(1000/FPS, this); timer = new Timer(1000/FPS, this);
timer.start(); timer.start();
// if (!this.hasFocus()) {
// // 此时的焦点应该在模态对话框上
// modalDialog = (UIDialog)KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow();
// System.out.println("1 modalDialog is modal? " + modalDialog.isModal());
// modalDialog.setModal(false);
// System.out.println("2 modalDialog is modal? " + modalDialog.isModal());
// System.out.println("1 has focus? " + this.hasFocus());
// modalDialog.transferFocus();
// System.out.println("2 has focus? " + this.hasFocus());
// System.out.println("current focus: " + KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow());
// }
} }
/** /**
@ -59,6 +80,10 @@ public class ColorPicker extends JDialog implements ActionListener
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
updateLocation(); updateLocation();
colorToSet = colorPickerPanel.getPixelColor(mousePos); colorToSet = colorPickerPanel.getPixelColor(mousePos);
if (setColorRealTime) {
colorSelectable.setColor(colorToSet);
}
// System.out.println("hasFocus? " + this.hasFocus());
} }
public void updateLocation() { public void updateLocation() {
@ -85,6 +110,9 @@ public class ColorPicker extends JDialog implements ActionListener
public void pickComplete() { public void pickComplete() {
timer.stop(); timer.stop();
colorSelectable.setColor(colorToSet); colorSelectable.setColor(colorToSet);
// if (modalDialog != null) {
// modalDialog.setModal(true);
// }
this.dispose(); this.dispose();
} }
@ -102,16 +130,10 @@ public class ColorPicker extends JDialog implements ActionListener
{ {
public void mousePressed(MouseEvent e) public void mousePressed(MouseEvent e)
{ {
System.out.println("Mouse Pressed!");
pickComplete(); pickComplete();
} }
} }
private class MouseMotionFunctions extends MouseMotionAdapter
{
// public void mouseMoved(MouseEvent e) {
// hideCursor();
// }
}
} }
class ColorPickerPanel extends JPanel class ColorPickerPanel extends JPanel
@ -187,12 +209,11 @@ class ColorPickerPanel extends JPanel
this this
); );
g2d.setColor(Color.black);
g2d.drawOval(0, 0, 190, 190);
g2d.setColor(Color.white); g2d.setColor(Color.white);
g2d.drawOval(1, 1, 188, 188); g2d.drawOval(1, 1, 188, 188);
g2d.drawOval(2, 2, 186, 186); g2d.drawOval(2, 2, 186, 186);
g2d.setColor(Color.black); g2d.setColor(Color.black);
g2d.drawOval(0, 0, 190, 190);
g2d.drawOval(3, 3, 184, 184); g2d.drawOval(3, 3, 184, 184);
g2d.setColor(Color.white); g2d.setColor(Color.white);
@ -200,6 +221,4 @@ class ColorPickerPanel extends JPanel
g2d.setColor(Color.black); g2d.setColor(Color.black);
g2d.drawRect(87, 87, 16, 16); g2d.drawRect(87, 87, 16, 16);
} }
} }

2
designer_base/src/com/fr/design/style/color/ColorSelectDialog.java

@ -137,7 +137,7 @@ public class ColorSelectDialog extends MiddleChartDialog{
public static void showDialog(Frame owner,ColorSelectDetailPane pane,Color initialColor,ColorSelectable selectePane){ public static void showDialog(Frame owner,ColorSelectDetailPane pane,Color initialColor,ColorSelectable selectePane){
ColorTracker okListener = new ColorTracker(pane); ColorTracker okListener = new ColorTracker(pane);
ColorSelectDialog dialog = new ColorSelectDialog(owner,pane,initialColor,okListener,selectePane); ColorSelectDialog dialog = new ColorSelectDialog(owner,pane,initialColor,okListener,selectePane);
dialog.setModal(true); // dialog.setModal(true);
dialog.show(); dialog.show();
} }

36
designer_base/src/com/fr/design/style/color/CustomChooserPanel.java

@ -10,10 +10,9 @@ import java.awt.Graphics;
import java.awt.GridLayout; import java.awt.GridLayout;
import java.awt.Image; import java.awt.Image;
import java.awt.Point; import java.awt.Point;
import java.awt.event.MouseAdapter; import java.awt.event.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.image.MemoryImageSource; import java.awt.image.MemoryImageSource;
import javax.swing.Timer;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -45,7 +44,7 @@ import com.fr.general.Inter;
* *
* @author focus * @author focus
*/ */
class CustomChooserPanel extends AbstractColorChooserPanel { class CustomChooserPanel extends AbstractColorChooserPanel implements ColorSelectable {
/** /**
* The gradient image displayed. * The gradient image displayed.
*/ */
@ -118,6 +117,8 @@ class CustomChooserPanel extends AbstractColorChooserPanel {
private transient UITextField field; private transient UITextField field;
// private transient PickColorButton pickColorButton;
/** /**
* The default width of the gradient image. * The default width of the gradient image.
@ -709,6 +710,14 @@ class CustomChooserPanel extends AbstractColorChooserPanel {
hexPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 8, 0)); hexPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 8, 0));
hexPanel.add(new UILabel("#")); hexPanel.add(new UILabel("#"));
hexPanel.add(field); hexPanel.add(field);
PickColorButton pickColorButton = new PickColorButton(PickColorButton.IconType.ICON18);
pickColorButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
doPickColor();
}
});
hexPanel.add(pickColorButton);
mainPanel.add(hslAndRgbPanel, BorderLayout.CENTER); mainPanel.add(hslAndRgbPanel, BorderLayout.CENTER);
mainPanel.add(hexPanel, BorderLayout.SOUTH); mainPanel.add(hexPanel, BorderLayout.SOUTH);
@ -1062,4 +1071,23 @@ class CustomChooserPanel extends AbstractColorChooserPanel {
trackPix, 0, TRACK_WIDTH)); trackPix, 0, TRACK_WIDTH));
} }
public Color getColor() {
return getColorSelectionModel().getSelectedColor();
}
public void setColor(Color color) {
getColorSelectionModel().setSelectedColor(color);
}
public void colorSetted(ColorCell cc) {
}
/**
* 打开取色框开始取色
*/
public void doPickColor() {
ColorPicker colorPicker = new ColorPicker(this, true);
colorPicker.start();
}
} }

13
designer_base/src/com/fr/design/style/color/NewColorSelectPane.java

@ -87,7 +87,13 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
centerPane.add(row1Pane); centerPane.add(row1Pane);
// 取色按钮 // 取色按钮
PickColorButton pickColorButton = new PickColorButton(this); PickColorButton pickColorButton = new PickColorButton(PickColorButton.IconType.ICON18);
pickColorButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
doPickColor();
}
});
row1Pane.add(pickColorButton, BorderLayout.WEST); row1Pane.add(pickColorButton, BorderLayout.WEST);
// 最近使用 // 最近使用
@ -216,4 +222,9 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable {
usedColorPane.updateUsedColor(); usedColorPane.updateUsedColor();
} }
public void doPickColor() {
ColorPicker colorPicker = new ColorPicker(this);
colorPicker.start();
}
} }

33
designer_base/src/com/fr/design/style/color/PickColorButton.java

@ -4,34 +4,27 @@ import com.fr.base.BaseUtils;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/** /**
* Created by plough on 2016/12/22. * Created by plough on 2016/12/22.
*/ */
public class PickColorButton extends UIButton { public class PickColorButton extends UIButton {
private ColorSelectable colorSelectable;
public PickColorButton(ColorSelectable colorSelectable) { public PickColorButton(IconType iconType) {
super(BaseUtils.readIcon("/com/fr/design/images/gui/colorSelectPane/colorPicker.png")); super();
this.colorSelectable = colorSelectable; if (iconType == IconType.ICON16) {
this.setIcon(BaseUtils.readIcon("/com/fr/design/images/gui/colorSelectPane/colorPicker16.png"));
this.setPreferredSize(new Dimension(16, 16)); this.setPreferredSize(new Dimension(16, 16));
} else {
this.setIcon(BaseUtils.readIcon("/com/fr/design/images/gui/colorSelectPane/colorPicker18.png"));
this.setPreferredSize(new Dimension(18, 18));
}
this.setCursor(new Cursor(Cursor.HAND_CURSOR)); this.setCursor(new Cursor(Cursor.HAND_CURSOR));
this.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
doPickColor();
}
});
} }
/**
* 打开取色框开始取色 // 取色器按钮使用的图标
*/ public enum IconType {
public void doPickColor() { ICON16, ICON18
ColorPicker colorPicker = new ColorPicker(colorSelectable);
colorPicker.start();
} }
} }

Loading…
Cancel
Save