added image alpha

This commit is contained in:
bancika
2011-01-26 21:06:51 +00:00
parent 51c916cbb5
commit e8d45e1426
2 changed files with 13 additions and 4 deletions
@@ -1,11 +1,13 @@
package org.diylc.components.misc; package org.diylc.components.misc;
import java.awt.AlphaComposite;
import java.awt.Composite;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import org.diylc.components.AbstractComponent; import org.diylc.components.AbstractTransparentComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
@@ -15,7 +17,7 @@ import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
@ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.TEXT, stretchable = false) @ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.TEXT, stretchable = false)
public class Image extends AbstractComponent<Void> { public class Image extends AbstractTransparentComponent<Void> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static String DEFAULT_TEXT = "Double click to edit text"; public static String DEFAULT_TEXT = "Double click to edit text";
@@ -37,13 +39,20 @@ public class Image extends AbstractComponent<Void> {
@Override @Override
public void draw(Graphics2D g2d, ComponentState componentState, Project project, public void draw(Graphics2D g2d, ComponentState componentState, Project project,
IDrawingObserver drawingObserver) { IDrawingObserver drawingObserver) {
Composite oldComposite = g2d.getComposite();
if (alpha < MAX_ALPHA) {
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f * alpha
/ MAX_ALPHA));
}
double s = 1d * scale / DEFAULT_SCALE; double s = 1d * scale / DEFAULT_SCALE;
g2d.scale(s, s); g2d.scale(s, s);
g2d.drawImage(image.getImage(), (int) (point.x / s), (int) (point.y / s), null); g2d.drawImage(image.getImage(), (int) (point.x / s), (int) (point.y / s), null);
g2d.setComposite(oldComposite);
g2d.scale(1 / s, 1 / s);
if (componentState == ComponentState.SELECTED) { if (componentState == ComponentState.SELECTED) {
g2d.setColor(SELECTION_COLOR); g2d.setColor(SELECTION_COLOR);
g2d.drawRect((int) (point.x / s), (int) (point.y / s), image.getIconWidth(), image g2d.drawRect(point.x, point.y, (int) (image.getIconWidth() * s), (int) (image
.getIconHeight()); .getIconHeight() * s));
} }
} }