diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java index 341aa69f..8b6f4892 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.detail; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2011 + Copyright (C) 2012 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -25,6 +25,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.detail; import java.util.ArrayList; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; @@ -35,13 +36,13 @@ import de.lmu.ifi.dbs.elki.logging.Logging; import de.lmu.ifi.dbs.elki.logging.LoggingUtil; import de.lmu.ifi.dbs.elki.result.Result; import de.lmu.ifi.dbs.elki.result.ResultListener; -import de.lmu.ifi.dbs.elki.utilities.iterator.IterableUtil; import de.lmu.ifi.dbs.elki.visualization.VisualizationTask; import de.lmu.ifi.dbs.elki.visualization.VisualizerContext; import de.lmu.ifi.dbs.elki.visualization.batikutil.AttributeModifier; import de.lmu.ifi.dbs.elki.visualization.css.CSSClass; import de.lmu.ifi.dbs.elki.visualization.gui.overview.PlotItem; import de.lmu.ifi.dbs.elki.visualization.style.StyleLibrary; +import de.lmu.ifi.dbs.elki.visualization.svg.SVGEffects; import de.lmu.ifi.dbs.elki.visualization.svg.SVGPlot; import de.lmu.ifi.dbs.elki.visualization.svg.SVGUtil; import de.lmu.ifi.dbs.elki.visualization.visualizers.Visualization; @@ -105,6 +106,8 @@ public class DetailView extends SVGPlot implements ResultListener { // TODO: only do this when there is an interactive visualizer? setDisableInteractions(true); addBackground(context); + SVGEffects.addShadowFilter(this); + SVGEffects.addLightGradient(this); redraw(); context.addResultListener(this); @@ -129,18 +132,20 @@ public class DetailView extends SVGPlot implements ResultListener { SVGUtil.setCSSClass(bg, cls.getName()); // Note that we rely on this being called before any other drawing routines. - getDocument().getRootElement().appendChild(bg); + getRoot().appendChild(bg); } protected void redraw() { destroyVisualizations(); - width = getRatio(); - height = 1.0; + // Try to keep the area approximately 1.0 + width = Math.sqrt(getRatio()); + height = 1.0 / width; ArrayList<Visualization> layers = new ArrayList<Visualization>(); // TODO: center/arrange visualizations? - for(VisualizationTask task : IterableUtil.fromIterator(visi.visIterator())) { + for(Iterator<VisualizationTask> tit = visi.tasks.iterator(); tit.hasNext();) { + VisualizationTask task = tit.next(); if(VisualizerUtil.isVisible(task)) { try { Visualization v = task.getFactory().makeVisualization(task.clone(this, context, visi.proj, width, height)); @@ -152,7 +157,7 @@ public class DetailView extends SVGPlot implements ResultListener { LoggingUtil.exception("Visualization failed.", e); } else { - LoggingUtil.warning("Visualizer " + task.getFactory().getClass().getName() + " failed - enable debugging to see details."); + LoggingUtil.warning("Visualizer " + task.getFactory().getClass().getName() + " failed - enable debugging to see details: " + e.toString()); } } } @@ -160,7 +165,7 @@ public class DetailView extends SVGPlot implements ResultListener { // Arrange for(Visualization layer : layers) { if(layer.getLayer() != null) { - this.getRoot().appendChild(layer.getLayer()); + getRoot().appendChild(layer.getLayer()); } else { LoggingUtil.warning("NULL layer seen."); @@ -216,6 +221,14 @@ public class DetailView extends SVGPlot implements ResultListener { } /** + * @return the layermap + */ + // TODO: Temporary + public Map<VisualizationTask, Visualization> getLayermap() { + return layermap; + } + + /** * Class used to insert a new visualization layer * * @author Erich Schubert |