vito
12 months ago
12 changed files with 92 additions and 275 deletions
@ -1,173 +0,0 @@
|
||||
package com.fr.design.file; |
||||
|
||||
import com.fr.base.BaseUtils; |
||||
import com.fr.base.vcs.DesignerMode; |
||||
import com.fr.design.constants.UIConstants; |
||||
import com.fr.design.mainframe.DesignerContext; |
||||
|
||||
import javax.swing.*; |
||||
import java.awt.*; |
||||
import java.awt.event.MouseEvent; |
||||
import java.awt.event.MouseListener; |
||||
import java.awt.event.MouseMotionListener; |
||||
import java.awt.geom.Line2D; |
||||
import java.awt.geom.Rectangle2D; |
||||
|
||||
// todo: 自己绘制组件
|
||||
/** |
||||
* Author : daisy |
||||
* Date: 13-8-27 |
||||
* Time: 下午6:07 |
||||
*/ |
||||
public abstract class NewTemplatePane extends JComponent implements MouseListener, MouseMotionListener { |
||||
|
||||
private static final Icon GRAY_NEW_CPT = BaseUtils.readIcon("/com/fr/design/images/buttonicon/additicon_grey.png"); |
||||
private static final int ICON_START_X = 5; |
||||
private static final int HEIGHT = 26; |
||||
private Graphics2D g2d; |
||||
private Icon newWorkBookIconMode = null; |
||||
|
||||
|
||||
public NewTemplatePane() { |
||||
newWorkBookIconMode = getNew(); |
||||
this.setLayout(new BorderLayout(0, 0)); |
||||
this.addMouseListener(this); |
||||
this.addMouseMotionListener(this); |
||||
this.setBorder(null); |
||||
} |
||||
|
||||
public Dimension getPreferredSize() { |
||||
Dimension dim = super.getPreferredSize(); |
||||
dim.width = HEIGHT; |
||||
return dim; |
||||
} |
||||
|
||||
|
||||
public void paintComponent(Graphics g) { |
||||
super.paintComponent(g); |
||||
g2d = (Graphics2D) g; |
||||
g2d.setColor(getBackground()); |
||||
g2d.fill(new Rectangle2D.Double(0, 0, getWidth(),getHeight())); |
||||
int sheetIconY = (getHeight() - newWorkBookIconMode.getIconHeight()) / 2; |
||||
newWorkBookIconMode.paintIcon(this, g2d, ICON_START_X, sheetIconY); |
||||
// paintUnderLine(g2d);
|
||||
} |
||||
|
||||
|
||||
private void paintUnderLine(Graphics2D g2d) { |
||||
//画下面的那条线
|
||||
g2d.setPaint(UIConstants.LINE_COLOR); |
||||
g2d.draw(new Line2D.Double((float) 0, (float) (getHeight()-1), getWidth(), (float) (getHeight()-1))); |
||||
} |
||||
|
||||
/** |
||||
*鼠标点击 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseClicked(MouseEvent e) { |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
*鼠标按下 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mousePressed(MouseEvent e) { |
||||
int evtX = e.getX(); |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} |
||||
if (isOverNewIcon(evtX) && newWorkBookIconMode != GRAY_NEW_CPT) { |
||||
newWorkBookIconMode = getMousePressNew(); |
||||
createNewTemplate(); |
||||
} |
||||
this.repaint(); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* 新建模板 |
||||
*/ |
||||
protected void createNewTemplate() { |
||||
DesignerContext.getDesignerFrame().addAndActivateJTemplate(); |
||||
} |
||||
|
||||
/** |
||||
*鼠标松开 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseReleased(MouseEvent e) { |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
*鼠标进入 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseEntered(MouseEvent e) { |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} |
||||
} |
||||
|
||||
/** |
||||
*鼠标离开 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseExited(MouseEvent e) { |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} else { |
||||
newWorkBookIconMode = getNew(); |
||||
} |
||||
|
||||
this.repaint(); |
||||
} |
||||
|
||||
/** |
||||
*鼠标拖拽 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseDragged(MouseEvent e) { |
||||
} |
||||
|
||||
/** |
||||
*鼠标移动 |
||||
* @param e 事件 |
||||
*/ |
||||
public void mouseMoved(MouseEvent e) { |
||||
int evtX = e.getX(); |
||||
if (needGrayNewCpt()) { |
||||
newWorkBookIconMode = GRAY_NEW_CPT; |
||||
} else if (isOverNewIcon(evtX)) { |
||||
newWorkBookIconMode = getMouseOverNew(); |
||||
} |
||||
|
||||
this.repaint(); |
||||
|
||||
} |
||||
|
||||
private boolean needGrayNewCpt() { |
||||
return DesignerMode.isAuthorityEditing() || DesignerMode.isVcsMode(); |
||||
} |
||||
|
||||
|
||||
private boolean isOverNewIcon(int evtX) { |
||||
return (evtX >= ICON_START_X && evtX <= ICON_START_X + newWorkBookIconMode.getIconWidth()); |
||||
} |
||||
|
||||
public void setButtonGray(boolean isGray) { |
||||
newWorkBookIconMode = isGray ? GRAY_NEW_CPT : getNew(); |
||||
} |
||||
|
||||
public abstract Icon getNew(); |
||||
|
||||
public abstract Icon getMouseOverNew(); |
||||
|
||||
public abstract Icon getMousePressNew(); |
||||
|
||||
} |
@ -1,36 +0,0 @@
|
||||
package com.fr.design.mainframe; |
||||
|
||||
import com.fr.base.svg.IconUtils; |
||||
import com.fr.design.file.NewTemplatePane; |
||||
|
||||
import javax.swing.Icon; |
||||
|
||||
/** |
||||
* Created by hzzz on 2017/12/26. |
||||
*/ |
||||
public class ToolBarNewTemplatePane extends NewTemplatePane { |
||||
|
||||
private static final ToolBarNewTemplatePane instance = new ToolBarNewTemplatePane(); |
||||
|
||||
private ToolBarNewTemplatePane() { |
||||
} |
||||
|
||||
public static NewTemplatePane getInstance() { |
||||
return instance; |
||||
} |
||||
|
||||
@Override |
||||
public Icon getNew() { |
||||
return IconUtils.readIcon("/com/fr/design/standard/addicon/addicon"); |
||||
} |
||||
|
||||
@Override |
||||
public Icon getMouseOverNew() { |
||||
return IconUtils.readIcon("/com/fr/design/standard/addicon/add_press.svg"); |
||||
} |
||||
|
||||
@Override |
||||
public Icon getMousePressNew() { |
||||
return IconUtils.readIcon("/com/fr/design/standard/addicon/add_press.svg"); |
||||
} |
||||
} |
After Width: | Height: | Size: 902 B |
Loading…
Reference in new issue