|
From: <nr...@us...> - 2011-07-14 14:12:46
|
Revision: 15685
http://dcm4che.svn.sourceforge.net/dcm4che/?rev=15685&view=rev
Author: nroduit
Date: 2011-07-14 14:12:39 +0000 (Thu, 14 Jul 2011)
Log Message:
-----------
Fix deadlock of portable version
Modified Paths:
--------------
weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/graphic/PolygonGraphic.java
weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/LoadLocalDicom.java
Modified: weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/graphic/PolygonGraphic.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/graphic/PolygonGraphic.java 2011-07-14 10:09:29 UTC (rev 15684)
+++ weasis/weasis_framework/trunk/weasis-core/weasis-core-ui/src/main/java/org/weasis/core/ui/graphic/PolygonGraphic.java 2011-07-14 14:12:39 UTC (rev 15685)
@@ -14,23 +14,14 @@
import java.awt.Color;
import java.awt.Graphics2D;
-import java.awt.Paint;
import java.awt.Shape;
-import java.awt.Stroke;
import java.awt.geom.AffineTransform;
import java.awt.geom.Area;
-import java.awt.geom.Line2D;
import java.awt.geom.Path2D;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
import javax.swing.Icon;
import javax.swing.ImageIcon;
@@ -379,99 +370,99 @@
// ///////////////////////////////////////////////////////////////////////////////////////////////////
// For graphic DEBUG only
- @Override
- public void paint(Graphics2D g2d, AffineTransform transform) {
- super.paint(g2d, transform);
+ // @Override
+ // public void paint(Graphics2D g2d, AffineTransform transform) {
+ // super.paint(g2d, transform);
+ //
+ // Paint oldPaint = g2d.getPaint();
+ // Stroke oldStroke = g2d.getStroke();
+ //
+ // PATH_AREA_ITERATION:
+ //
+ // if (handlePointList.size() > 1 && handlePointList.get(0) != null) {
+ //
+ // Path2D polygonPath = new Path2D.Double(Path2D.WIND_NON_ZERO, handlePointList.size());
+ // polygonPath.moveTo(handlePointList.get(0).getX(), handlePointList.get(0).getY());
+ //
+ // for (int i = 1; i < handlePointList.size(); i++) {
+ // Point2D pt = handlePointList.get(i);
+ // if (pt == null) {
+ // break PATH_AREA_ITERATION;
+ // }
+ // polygonPath.lineTo(pt.getX(), pt.getY());
+ // }
+ //
+ // List<Line2D> lineSegmentList = new ArrayList<Line2D>(handlePointList.size());
+ // PathIterator pathIt = new Area(polygonPath).getPathIterator(null);
+ //
+ // double coords[] = new double[6];
+ // double startX = NaN, startY = NaN, curX = NaN, curY = NaN;
+ //
+ // while (!pathIt.isDone()) {
+ //
+ // int segType = pathIt.currentSegment(coords);
+ // double lastX = coords[0], lastY = coords[1];
+ //
+ // switch (segType) {
+ // case PathIterator.SEG_CLOSE:
+ // // lineSegmentList.add(new Line2D.Double(curX, curY, startX, startY));
+ // lastX = startX;
+ // lastY = startY;
+ // case PathIterator.SEG_LINETO:
+ // BigDecimal dX = new BigDecimal(Math.abs(curX - lastX)).setScale(10, RoundingMode.DOWN);
+ // BigDecimal dY = new BigDecimal(Math.abs(curY - lastY)).setScale(10, RoundingMode.DOWN);
+ // if (dX.compareTo(BigDecimal.ZERO) != 0 || dY.compareTo(BigDecimal.ZERO) != 0) {
+ // lineSegmentList.add(new Line2D.Double(curX, curY, lastX, lastY));
+ // }
+ // curX = lastX;
+ // curY = lastY;
+ // break;
+ // case PathIterator.SEG_MOVETO:
+ // startX = curX = lastX;
+ // startY = curY = lastY;
+ // break;
+ // default:
+ // break PATH_AREA_ITERATION;
+ // }
+ // pathIt.next();
+ // }
+ //
+ // int ptIndex = 0;
+ // Map<Point2D, StringBuilder> ptMap = new HashMap<Point2D, StringBuilder>(lineSegmentList.size() * 2);
+ // Set<Point2D> ptSet = ptMap.keySet();
+ //
+ // for (Line2D line : lineSegmentList) {
+ // for (Point2D pt : new Point2D[] { line.getP1(), line.getP2() }) {
+ //
+ // for (Point2D p : ptSet) {
+ // BigDecimal dist = new BigDecimal(p.distance(pt)).setScale(10, RoundingMode.DOWN);
+ // if (dist.compareTo(BigDecimal.ZERO) == 0) {
+ // pt = p;
+ // break;
+ // }
+ // }
+ //
+ // StringBuilder sb = ptMap.get(pt);
+ // if (sb == null) {
+ // ptMap.put(pt, new StringBuilder(Integer.toString(ptIndex++)));
+ // } else {
+ // sb.append(" , ").append(Integer.toString(ptIndex++));
+ // }
+ // }
+ // }
+ //
+ // for (Entry<Point2D, StringBuilder> entry : ptMap.entrySet()) {
+ // Point2D pt = entry.getKey();
+ // String str = entry.getValue().toString();
+ // if (transform != null) {
+ // pt = transform.transform(new Point2D.Double(pt.getX() + 5, pt.getY() + 5), null);
+ // }
+ // g2d.drawString(str, (float) pt.getX(), (float) pt.getY());
+ // }
+ // }
+ //
+ // g2d.setPaint(oldPaint);
+ // g2d.setStroke(oldStroke);
+ // }
- Paint oldPaint = g2d.getPaint();
- Stroke oldStroke = g2d.getStroke();
-
- PATH_AREA_ITERATION:
-
- if (handlePointList.size() > 1 && handlePointList.get(0) != null) {
-
- Path2D polygonPath = new Path2D.Double(Path2D.WIND_NON_ZERO, handlePointList.size());
- polygonPath.moveTo(handlePointList.get(0).getX(), handlePointList.get(0).getY());
-
- for (int i = 1; i < handlePointList.size(); i++) {
- Point2D pt = handlePointList.get(i);
- if (pt == null) {
- break PATH_AREA_ITERATION;
- }
- polygonPath.lineTo(pt.getX(), pt.getY());
- }
-
- List<Line2D> lineSegmentList = new ArrayList<Line2D>(handlePointList.size());
- PathIterator pathIt = new Area(polygonPath).getPathIterator(null);
-
- double coords[] = new double[6];
- double startX = NaN, startY = NaN, curX = NaN, curY = NaN;
-
- while (!pathIt.isDone()) {
-
- int segType = pathIt.currentSegment(coords);
- double lastX = coords[0], lastY = coords[1];
-
- switch (segType) {
- case PathIterator.SEG_CLOSE:
- // lineSegmentList.add(new Line2D.Double(curX, curY, startX, startY));
- lastX = startX;
- lastY = startY;
- case PathIterator.SEG_LINETO:
- BigDecimal dX = new BigDecimal(Math.abs(curX - lastX)).setScale(10, RoundingMode.DOWN);
- BigDecimal dY = new BigDecimal(Math.abs(curY - lastY)).setScale(10, RoundingMode.DOWN);
- if (dX.compareTo(BigDecimal.ZERO) != 0 || dY.compareTo(BigDecimal.ZERO) != 0) {
- lineSegmentList.add(new Line2D.Double(curX, curY, lastX, lastY));
- }
- curX = lastX;
- curY = lastY;
- break;
- case PathIterator.SEG_MOVETO:
- startX = curX = lastX;
- startY = curY = lastY;
- break;
- default:
- break PATH_AREA_ITERATION;
- }
- pathIt.next();
- }
-
- int ptIndex = 0;
- Map<Point2D, StringBuilder> ptMap = new HashMap<Point2D, StringBuilder>(lineSegmentList.size() * 2);
- Set<Point2D> ptSet = ptMap.keySet();
-
- for (Line2D line : lineSegmentList) {
- for (Point2D pt : new Point2D[] { line.getP1(), line.getP2() }) {
-
- for (Point2D p : ptSet) {
- BigDecimal dist = new BigDecimal(p.distance(pt)).setScale(10, RoundingMode.DOWN);
- if (dist.compareTo(BigDecimal.ZERO) == 0) {
- pt = p;
- break;
- }
- }
-
- StringBuilder sb = ptMap.get(pt);
- if (sb == null) {
- ptMap.put(pt, new StringBuilder(Integer.toString(ptIndex++)));
- } else {
- sb.append(" , ").append(Integer.toString(ptIndex++));
- }
- }
- }
-
- for (Entry<Point2D, StringBuilder> entry : ptMap.entrySet()) {
- Point2D pt = entry.getKey();
- String str = entry.getValue().toString();
- if (transform != null) {
- pt = transform.transform(new Point2D.Double(pt.getX() + 5, pt.getY() + 5), null);
- }
- g2d.drawString(str, (float) pt.getX(), (float) pt.getY());
- }
- }
-
- g2d.setPaint(oldPaint);
- g2d.setStroke(oldStroke);
- }
-
}
Modified: weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/LoadLocalDicom.java
===================================================================
--- weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/LoadLocalDicom.java 2011-07-14 10:09:29 UTC (rev 15684)
+++ weasis/weasis_framework/trunk/weasis-dicom/weasis-dicom-explorer/src/main/java/org/weasis/dicom/explorer/LoadLocalDicom.java 2011-07-14 14:12:39 UTC (rev 15685)
@@ -23,6 +23,7 @@
import org.weasis.core.api.explorer.ObservableEvent;
import org.weasis.core.api.explorer.model.DataExplorerModel;
import org.weasis.core.api.explorer.model.TreeModel;
+import org.weasis.core.api.gui.util.GuiExecutor;
import org.weasis.core.api.media.MimeInspector;
import org.weasis.core.api.media.data.MediaElement;
import org.weasis.core.api.media.data.MediaSeries;
@@ -70,11 +71,11 @@
@Override
protected Boolean doInBackground() throws Exception {
- if (flatSearch) {
- addSelectionAndnotify(files, true);
- } else {
- addSelection(files, true);
- }
+ // if (flatSearch) {
+ addSelectionAndnotify(files, true);
+ // } else {
+ // addSelection(files, true);
+ // }
return true;
}
@@ -123,11 +124,18 @@
}
}
}
- for (Thumbnail t : thumbs) {
+ for (final Thumbnail t : thumbs) {
MediaSeries series = t.getSeries();
// Avoid to rebuild most of CR series thumbnail
if (series != null && series.getMedias().size() > 2) {
- t.reBuildThumbnail();
+ GuiExecutor.instance().execute(new Runnable() {
+
+ @Override
+ public void run() {
+ t.reBuildThumbnail();
+ }
+
+ });
}
}
for (int i = 0; i < folders.size(); i++) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|