From d4eda7c3feef0fa512507d2c29509bd5ccc54388 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 29 Oct 2016 20:28:17 +0800 Subject: [PATCH] rt --- .../design/mainframe/ShareWidgetButton.java | 71 ++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java index ffb688578e..c35ee64d5b 100644 --- a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java +++ b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java @@ -1,13 +1,17 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.design.constants.UIConstants; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.icon.IconPathConstants; +import com.fr.form.share.ShareConstants; import com.fr.form.share.ShareLoader; import com.fr.form.ui.ElCaseBindInfo; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; import com.fr.stable.StringUtils; import javax.swing.*; @@ -30,26 +34,83 @@ import java.io.Serializable; public class ShareWidgetButton extends JPanel implements MouseListener, MouseMotionListener, Serializable { private ElCaseBindInfo bindInfo; private MouseEvent lastPressEvent; + private JPanel reportPane; + private boolean isEdit; + private Icon controlMode = IOUtils.readIcon("/com/fr/design/form/images/mark.png"); + private AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F); + private JComponent controlButton = new JComponent() { + protected void paintComponent(Graphics g) { + controlMode.paintIcon(this, g, 0, 0); + } + }; public ShareWidgetButton(ElCaseBindInfo bindInfo) { this.bindInfo = bindInfo; + this.setPreferredSize(new Dimension(108, 68)); initUI(); + this.setLayout(getCoverLayout()); this.addMouseListener(this); this.addMouseMotionListener(this); new DragAndDropDragGestureListener(this, DnDConstants.ACTION_COPY_OR_MOVE); } + public void paint(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + Composite oldComposite = g2d.getComposite(); + g2d.setComposite(composite); + g2d.setColor(Color.white); + g2d.fillRect(0, 0, getWidth(), getHeight()); + g2d.setComposite(oldComposite); + super.paint(g); + } + private void initUI() { - JPanel reportPane = new JPanel(new BorderLayout()); + + reportPane = new JPanel(new BorderLayout()); reportPane.add(new UILabel(new ImageIcon(bindInfo.getCover())), BorderLayout.CENTER); JPanel labelPane = new JPanel(new BorderLayout()); UILabel label = new UILabel(bindInfo.getName(), UILabel.CENTER); labelPane.setBackground(new Color(184, 220, 242)); labelPane.add(label, BorderLayout.CENTER); reportPane.add(labelPane, BorderLayout.SOUTH); + //add(controlButton); add(reportPane); } + protected LayoutManager getCoverLayout() { + return new LayoutManager() { + + @Override + public void removeLayoutComponent(Component comp) { + } + + @Override + public Dimension preferredLayoutSize(Container parent) { + return parent.getPreferredSize(); + } + + @Override + public Dimension minimumLayoutSize(Container parent) { + return null; + } + + @Override + public void layoutContainer(Container parent) { + int width = parent.getWidth(); + int height = parent.getHeight(); + controlButton.setBounds((width - 25), 0, 25, 25); + reportPane.setBounds(0, 0, width, height); + + + + } + + @Override + public void addLayoutComponent(String name, Component comp) { + } + }; + } + public ElCaseBindInfo getBindInfo() { return bindInfo; } @@ -60,7 +121,15 @@ public class ShareWidgetButton extends JPanel implements MouseListener, MouseMot @Override public void mouseClicked(MouseEvent e) { + if (isEdit) { + remove(controlButton); + isEdit = false; + } else { + add(controlButton,0); + isEdit = true; + } + repaint(); } @Override