/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.core.ui.model.graphic.imp.area; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Shape; import java.awt.Stroke; import java.awt.geom.AffineTransform; import java.util.Collections; import java.util.List; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.xml.bind.annotation.XmlRootElement; import org.weasis.core.api.image.util.MeasurableLayer; import org.weasis.core.api.image.util.Unit; import org.weasis.core.ui.Messages; import org.weasis.core.ui.editor.image.ViewCanvas; import org.weasis.core.ui.model.utils.Draggable; import org.weasis.core.ui.model.utils.bean.MeasureItem; import org.weasis.core.ui.model.utils.imp.SelectedDragSequence; /** * The Class SelectGraphic. * * @author Nicolas Roduit ,Benoit Jacquemoud */ @XmlRootElement(name = "selectGraphic") public class SelectGraphic extends RectangleGraphic { private static final long serialVersionUID = -7680605225823046153L; public static final Icon ICON = new ImageIcon(SelectGraphic.class.getResource("/icon/22x22/draw-selection.png")); //$NON-NLS-1$ public SelectGraphic() { super(); setPaint(Color.WHITE); } public SelectGraphic(SelectGraphic graphic) { super(graphic); } @Override public SelectGraphic copy() { return new SelectGraphic(this); } @Override public Icon getIcon() { return ICON; } @Override public String getUIName() { return Messages.getString("MeasureToolBar.sel"); //$NON-NLS-1$ } @Override public void paint(Graphics2D g2d, AffineTransform transform) { Color oldColor = g2d.getColor(); Stroke oldStroke = g2d.getStroke(); g2d.setPaint(Color.white); float[] dash = { 5f }; Shape transformedShape = transform == null ? shape : transform.createTransformedShape(shape); g2d.setStroke(new BasicStroke(1.0F, 0, 0, 5F, dash, 0)); g2d.draw(transformedShape); g2d.setColor(Color.black); g2d.setStroke(new BasicStroke(1.0F, 0, 0, 5F, dash, 5F)); g2d.draw(transformedShape); g2d.setColor(oldColor); g2d.setStroke(oldStroke); } @Override public Draggable createResizeDrag(Integer i) { return new SelectedDragSequence(this); } @Override public Boolean isGraphicComplete() { return pts.size() > 1; } @Override public Boolean getSelected() { return Boolean.TRUE; } @Override public void updateLabel(Object source, ViewCanvas<?> view2d) { // Do not draw any labels } @Override public List<MeasureItem> computeMeasurements(MeasurableLayer layer, boolean releaseEvent, Unit displayUnit) { return Collections.emptyList(); } }