summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/visualization/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/gui')
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/ResultVisualizer.java19
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/ResultWindow.java13
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/SelectionTableWindow.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/SimpleSVGViewer.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/detail/DetailView.java49
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/detail/package-info.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/DetailViewSelectedEvent.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/LayerMap.java8
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/OverviewPlot.java37
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/PlotItem.java6
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/RectangleArranger.java21
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/overview/package-info.java2
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/gui/package-info.java2
13 files changed, 86 insertions, 79 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultVisualizer.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultVisualizer.java
index 635a0466..92171f47 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultVisualizer.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultVisualizer.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -31,6 +31,7 @@ import de.lmu.ifi.dbs.elki.result.HierarchicalResult;
import de.lmu.ifi.dbs.elki.result.Result;
import de.lmu.ifi.dbs.elki.result.ResultHandler;
import de.lmu.ifi.dbs.elki.result.ResultUtil;
+import de.lmu.ifi.dbs.elki.utilities.Alias;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.parameterization.Parameterization;
@@ -48,6 +49,7 @@ import de.lmu.ifi.dbs.elki.visualization.VisualizerParameterizer;
* @apiviz.composedOf VisualizerParameterizer
* @apiviz.uses ResultWindow oneway
*/
+@Alias({ "visualizer", "vis", "ResultVisualizer" })
public class ResultVisualizer implements ResultHandler {
/**
* Get a logger for this class.
@@ -73,7 +75,7 @@ public class ResultVisualizer implements ResultHandler {
* </p>
*/
public static final OptionID SINGLE_ID = new OptionID("vis.window.single", "Embed visualizers in a single window, not using thumbnails and detail views.");
-
+
/**
* Stores the set title.
*/
@@ -113,11 +115,11 @@ public class ResultVisualizer implements ResultHandler {
// FIXME: not really re-entrant to generate new contexts...
final VisualizerContext context = manager.newContext(top);
- if(title == null) {
+ if (title == null) {
title = VisualizerParameterizer.getTitle(ResultUtil.findDatabase(top), result);
}
- if(title == null) {
+ if (title == null) {
title = DEFAULT_TITLE;
}
@@ -130,8 +132,7 @@ public class ResultVisualizer implements ResultHandler {
window.setVisible(true);
window.setExtendedState(window.getExtendedState() | JFrame.MAXIMIZED_BOTH);
window.showOverview();
- }
- catch(Throwable e) {
+ } catch (Throwable e) {
LOG.exception("Error in starting visualizer window.", e);
}
}
@@ -155,7 +156,7 @@ public class ResultVisualizer implements ResultHandler {
* Visualization manager.
*/
VisualizerParameterizer manager;
-
+
/**
* Single view mode.
*/
@@ -166,7 +167,7 @@ public class ResultVisualizer implements ResultHandler {
super.makeOptions(config);
StringParameter titleP = new StringParameter(WINDOW_TITLE_ID);
titleP.setOptional(true);
- if(config.grab(titleP)) {
+ if (config.grab(titleP)) {
title = titleP.getValue();
}
Flag singleF = new Flag(SINGLE_ID);
@@ -181,4 +182,4 @@ public class ResultVisualizer implements ResultHandler {
return new ResultVisualizer(title, manager, single);
}
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultWindow.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultWindow.java
index 609932cf..0cfa5166 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultWindow.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/ResultWindow.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -49,6 +49,7 @@ import de.lmu.ifi.dbs.elki.result.Result;
import de.lmu.ifi.dbs.elki.result.ResultAdapter;
import de.lmu.ifi.dbs.elki.result.ResultHierarchy;
import de.lmu.ifi.dbs.elki.result.ResultListener;
+import de.lmu.ifi.dbs.elki.utilities.datastructures.hierarchy.Hierarchy;
import de.lmu.ifi.dbs.elki.visualization.VisualizationTask;
import de.lmu.ifi.dbs.elki.visualization.VisualizerContext;
import de.lmu.ifi.dbs.elki.visualization.batikutil.JSVGSynchronizedCanvas;
@@ -378,8 +379,8 @@ public class ResultWindow extends JFrame implements ResultListener {
private void updateVisualizerMenus() {
visualizersMenu.removeAll();
ResultHierarchy hier = context.getHierarchy();
- for(Result child : hier.getChildren(result)) {
- recursiveBuildMenu(visualizersMenu, child);
+ for(Hierarchy.Iter<Result> iter = hier.iterChildren(result); iter.valid(); iter.advance()) {
+ recursiveBuildMenu(visualizersMenu, iter.get());
}
}
@@ -388,7 +389,7 @@ public class ResultWindow extends JFrame implements ResultListener {
// Skip "adapter" results that do not have visualizers
if(r instanceof ResultAdapter) {
- if(hier.getChildren(r).size() <= 0) {
+ if(hier.numChildren(r) <= 0) {
return false;
}
}
@@ -396,8 +397,8 @@ public class ResultWindow extends JFrame implements ResultListener {
boolean nochildren = true;
JMenu submenu = new JMenu((r.getLongName() != null) ? r.getLongName() : "unnamed");
// Add menus for any children
- for(Result child : hier.getChildren(r)) {
- if(recursiveBuildMenu(submenu, child)) {
+ for(Hierarchy.Iter<Result> iter = hier.iterChildren(r); iter.valid(); iter.advance()) {
+ if(recursiveBuildMenu(submenu, iter.get())) {
nochildren = false;
}
}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/SelectionTableWindow.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/SelectionTableWindow.java
index 4fea630a..6e1b4a66 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/SelectionTableWindow.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/SelectionTableWindow.java
@@ -3,7 +3,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2012
+Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/SimpleSVGViewer.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/SimpleSVGViewer.java
index 7c419da7..8172de4e 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/SimpleSVGViewer.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/SimpleSVGViewer.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
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 091bc8ca..9bcd64b9 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) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -76,7 +76,7 @@ public class DetailView extends SVGPlot implements ResultListener {
/**
* Map from visualizers to layers
*/
- Map<VisualizationTask, Visualization> layermap = new HashMap<VisualizationTask, Visualization>();
+ Map<VisualizationTask, Visualization> layermap = new HashMap<>();
/**
* The created width
@@ -141,11 +141,11 @@ public class DetailView extends SVGPlot implements ResultListener {
width = Math.sqrt(getRatio());
height = 1.0 / width;
- ArrayList<Visualization> layers = new ArrayList<Visualization>();
+ ArrayList<Visualization> layers = new ArrayList<>();
// TODO: center/arrange visualizations?
- for(Iterator<VisualizationTask> tit = visi.tasks.iterator(); tit.hasNext();) {
+ for (Iterator<VisualizationTask> tit = visi.tasks.iterator(); tit.hasNext();) {
VisualizationTask task = tit.next();
- if(task.visible) {
+ if (task.visible) {
try {
Visualization v = task.getFactory().makeVisualization(task.clone(this, context, visi.proj, width, height));
if (task.noexport) {
@@ -153,23 +153,20 @@ public class DetailView extends SVGPlot implements ResultListener {
}
layers.add(v);
layermap.put(task, v);
- }
- catch(Exception e) {
- if(Logging.getLogger(task.getFactory().getClass()).isDebugging()) {
+ } catch (Exception e) {
+ if (Logging.getLogger(task.getFactory().getClass()).isDebugging()) {
LoggingUtil.exception("Visualization failed.", e);
- }
- else {
+ } else {
LoggingUtil.warning("Visualizer " + task.getFactory().getClass().getName() + " failed - enable debugging to see details: " + e.toString());
}
}
}
}
// Arrange
- for(Visualization layer : layers) {
- if(layer.getLayer() != null) {
+ for (Visualization layer : layers) {
+ if (layer.getLayer() != null) {
getRoot().appendChild(layer.getLayer());
- }
- else {
+ } else {
LoggingUtil.warning("NULL layer seen.");
}
}
@@ -191,7 +188,7 @@ public class DetailView extends SVGPlot implements ResultListener {
}
private void destroyVisualizations() {
- for(Entry<VisualizationTask, Visualization> v : layermap.entrySet()) {
+ for (Entry<VisualizationTask, Visualization> v : layermap.entrySet()) {
v.getValue().destroy();
}
layermap.clear();
@@ -268,30 +265,28 @@ public class DetailView extends SVGPlot implements ResultListener {
@Override
public void resultChanged(Result current) {
// Make sure we are affected:
- if(!(current instanceof VisualizationTask)) {
+ if (!(current instanceof VisualizationTask)) {
return;
}
// Get the layer
final VisualizationTask task = (VisualizationTask) current;
Visualization vis = layermap.get(task);
- if(vis != null) {
+ if (vis != null) {
// Ensure visibility is as expected
boolean isHidden = SVGConstants.CSS_HIDDEN_VALUE.equals(vis.getLayer().getAttribute(SVGConstants.CSS_VISIBILITY_PROPERTY));
- if(task.visible) {
- if(isHidden) {
+ if (task.visible) {
+ if (isHidden) {
this.scheduleUpdate(new AttributeModifier(vis.getLayer(), SVGConstants.CSS_VISIBILITY_PROPERTY, SVGConstants.CSS_VISIBLE_VALUE));
}
- }
- else {
- if(!isHidden) {
+ } else {
+ if (!isHidden) {
this.scheduleUpdate(new AttributeModifier(vis.getLayer(), SVGConstants.CSS_VISIBILITY_PROPERTY, SVGConstants.CSS_HIDDEN_VALUE));
}
}
- }
- else {
+ } else {
// Only materialize when becoming visible
- if(task.visible) {
- // LoggingUtil.warning("Need to recreate a missing layer for " + v);
+ if (task.visible) {
+ // LoggingUtil.warning("Need to recreate a missing layer for " + task);
vis = task.getFactory().makeVisualization(task.clone(this, context, visi.proj, width, height));
if (task.noexport) {
vis.getLayer().setAttribute(NO_EXPORT_ATTRIBUTE, NO_EXPORT_ATTRIBUTE);
@@ -307,4 +302,4 @@ public class DetailView extends SVGPlot implements ResultListener {
public void resultRemoved(Result child, Result parent) {
// Ignore. The PlotItem will need to change.
}
-} \ No newline at end of file
+}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/package-info.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/package-info.java
index 95339ac1..91becdd2 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/detail/package-info.java
@@ -6,7 +6,7 @@
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2012
+Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/DetailViewSelectedEvent.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/DetailViewSelectedEvent.java
index 4c950225..6723c77f 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/DetailViewSelectedEvent.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/DetailViewSelectedEvent.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.overview;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/LayerMap.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/LayerMap.java
index 36851b85..5fb7019e 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/LayerMap.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/LayerMap.java
@@ -3,7 +3,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.overview;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -41,7 +41,7 @@ public class LayerMap {
/**
* The actual map
*/
- private HashMap<Pair<PlotItem, VisualizationTask>, Pair<Element, Visualization>> map = new HashMap<Pair<PlotItem, VisualizationTask>, Pair<Element, Visualization>>();
+ private HashMap<Pair<PlotItem, VisualizationTask>, Pair<Element, Visualization>> map = new HashMap<>();
/**
* Helper function for building a key object
@@ -51,7 +51,7 @@ public class LayerMap {
* @return Key
*/
private Pair<PlotItem, VisualizationTask> key(PlotItem item, VisualizationTask task) {
- return new Pair<PlotItem, VisualizationTask>(item, task);
+ return new Pair<>(item, task);
}
/**
@@ -62,7 +62,7 @@ public class LayerMap {
* @return Value object
*/
private Pair<Element, Visualization> value(Element elem, Visualization vis) {
- return new Pair<Element, Visualization>(elem, vis);
+ return new Pair<>(elem, vis);
}
/**
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/OverviewPlot.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/OverviewPlot.java
index 271a62ff..c4825b1e 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/OverviewPlot.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/OverviewPlot.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.overview;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -43,6 +43,7 @@ import de.lmu.ifi.dbs.elki.result.Result;
import de.lmu.ifi.dbs.elki.result.ResultHierarchy;
import de.lmu.ifi.dbs.elki.result.ResultListener;
import de.lmu.ifi.dbs.elki.result.ResultUtil;
+import de.lmu.ifi.dbs.elki.utilities.datastructures.hierarchy.Hierarchy;
import de.lmu.ifi.dbs.elki.utilities.pairs.Pair;
import de.lmu.ifi.dbs.elki.visualization.VisualizationTask;
import de.lmu.ifi.dbs.elki.visualization.VisualizerContext;
@@ -90,7 +91,7 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
/**
* Action listeners for this plot.
*/
- private ArrayList<ActionListener> actionListeners = new ArrayList<ActionListener>();
+ private ArrayList<ActionListener> actionListeners = new ArrayList<>();
/**
* Single view mode
@@ -191,7 +192,7 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
* @return Arrangement
*/
private RectangleArranger<PlotItem> arrangeVisualizations(double width, double height) {
- RectangleArranger<PlotItem> plotmap = new RectangleArranger<PlotItem>(width, height);
+ RectangleArranger<PlotItem> plotmap = new RectangleArranger<>(width, height);
ArrayList<Projector> projectors = ResultUtil.filterResults(context.getResult(), Projector.class);
// Rectangle layout
@@ -209,8 +210,11 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
ResultHierarchy hier = context.getHierarchy();
ArrayList<VisualizationTask> tasks = ResultUtil.filterResults(context.getResult(), VisualizationTask.class);
nextTask: for (VisualizationTask task : tasks) {
- for (Result parent : hier.getParents(task)) {
- if (parent instanceof Projector) {
+ if (!task.visible) {
+ continue;
+ }
+ for (Hierarchy.Iter<Result> iter = hier.iterParents(task); iter.valid(); iter.advance()) {
+ if (iter.get() instanceof Projector) {
continue nextTask;
}
}
@@ -276,7 +280,7 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
hasDetails |= !task.nodetail;
Pair<Element, Visualization> pair = oldlayers.remove(it, task);
if (pair == null) {
- pair = new Pair<Element, Visualization>(null, null);
+ pair = new Pair<>(null, null);
pair.first = svgElement(SVGConstants.SVG_G_TAG);
}
if (pair.second == null) {
@@ -368,7 +372,7 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
// New task?
if (pair == null) {
if (visibleInOverview(task)) {
- pair = new Pair<Element, Visualization>(null, null);
+ pair = new Pair<>(null, null);
pair.first = svgElement(SVGConstants.SVG_G_TAG);
pair.second = embedOrThumbnail(thumbsize, it, task, pair.first);
vistoelem.get(it, null).first.appendChild(pair.first);
@@ -381,13 +385,6 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
if (pair.first.hasAttribute(SVGConstants.CSS_VISIBILITY_PROPERTY)) {
pair.first.removeAttribute(SVGConstants.CSS_VISIBILITY_PROPERTY);
}
- // if not yet rendered, add a thumbnail
- if (!pair.first.hasChildNodes()) {
- LOG.warning("This codepath should no longer be needed.");
- Visualization visualization = embedOrThumbnail(thumbsize, it, task, pair.first);
- vistoelem.put(it, task, pair.first, visualization);
- refreshcss = true;
- }
} else {
// hide if there is anything to hide.
if (pair.first != null && pair.first.hasChildNodes()) {
@@ -562,6 +559,18 @@ public class OverviewPlot extends SVGPlot implements ResultListener {
@Override
public void resultChanged(Result current) {
LOG.debug("result changed: " + current);
+ if (current instanceof VisualizationTask) {
+ boolean relayout = true;
+ for (Hierarchy.Iter<Result> iter = context.getHierarchy().iterParents(current); iter.valid(); iter.advance()) {
+ if (iter.get() instanceof Projector) {
+ relayout = false;
+ break;
+ }
+ }
+ if (relayout) {
+ reinitOnRefresh = true;
+ }
+ }
lazyRefresh();
}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/PlotItem.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/PlotItem.java
index 73ee797e..7919e07e 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/PlotItem.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/PlotItem.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.overview;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -72,12 +72,12 @@ public class PlotItem {
/**
* The visualization tasks at this location
*/
- public List<VisualizationTask> tasks = new LinkedList<VisualizationTask>();
+ public List<VisualizationTask> tasks = new LinkedList<>();
/**
* Subitems to plot
*/
- public Collection<PlotItem> subitems = new LinkedList<PlotItem>();
+ public Collection<PlotItem> subitems = new LinkedList<>();
/**
* Constructor.
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/RectangleArranger.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/RectangleArranger.java
index b5e6031e..441f7ae2 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/RectangleArranger.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/RectangleArranger.java
@@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.gui.overview;
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
- Copyright (C) 2012
+ Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
@@ -34,6 +34,7 @@ import java.util.Set;
import java.util.logging.Level;
import de.lmu.ifi.dbs.elki.logging.Logging;
+import de.lmu.ifi.dbs.elki.logging.LoggingConfiguration;
/**
* This is a rather naive rectangle arrangement class. It will try to place
@@ -79,12 +80,12 @@ public class RectangleArranger<T> {
/**
* Map indicating which cells are used.
*/
- private ArrayList<ArrayList<Object>> usage = new ArrayList<ArrayList<Object>>();
+ private ArrayList<ArrayList<Object>> usage = new ArrayList<>();
/**
* Data
*/
- private Map<T, double[]> map = new HashMap<T, double[]>();
+ private Map<T, double[]> map = new HashMap<>();
/**
* Constructor.
@@ -108,7 +109,7 @@ public class RectangleArranger<T> {
this.widths.add(width);
this.heights.add(height);
// setup usage matrix
- ArrayList<Object> u = new ArrayList<Object>();
+ ArrayList<Object> u = new ArrayList<>();
u.add(null);
this.usage.add(u);
assertConsistent();
@@ -320,7 +321,7 @@ public class RectangleArranger<T> {
heights.insert(bestey + 1, besthi);
heights.set(bestey, heights.get(bestey) - besthi);
// Update used map
- usage.add(bestey + 1, new ArrayList<Object>(usage.get(bestey)));
+ usage.add(bestey + 1, new ArrayList<>(usage.get(bestey)));
}
protected void splitCol(int bestex, double bestwi) {
@@ -361,7 +362,7 @@ public class RectangleArranger<T> {
}
// Add row:
{
- ArrayList<Object> row = new ArrayList<Object>();
+ ArrayList<Object> row = new ArrayList<>();
for(int x = 0; x <= cols; x++) {
row.add(null);
}
@@ -521,8 +522,8 @@ public class RectangleArranger<T> {
* @param args
*/
public static void main(String[] args) {
- LOG.getWrappedLogger().setLevel(Level.FINEST);
- RectangleArranger<String> r = new RectangleArranger<String>(1.3);
+ LoggingConfiguration.setLevelFor(RectangleArranger.class.getName(), Level.FINEST.getName());
+ RectangleArranger<String> r = new RectangleArranger<>(1.3);
r.put(4., 1., "Histogram");
r.put(4., 4., "3D view");
r.put(1., 1., "Meta 1");
@@ -531,14 +532,14 @@ public class RectangleArranger<T> {
r.put(2., 2., "Meta 4");
r.put(2., 2., "Meta 5");
- r = new RectangleArranger<String>(3., 3.);
+ r = new RectangleArranger<>(3., 3.);
r.put(1., 2., "A");
r.put(2., 1., "B");
r.put(1., 2., "C");
r.put(2., 1., "D");
r.put(2., 2., "E");
- r = new RectangleArranger<String>(4 - 2.6521739130434785);
+ r = new RectangleArranger<>(4 - 2.6521739130434785);
r.put(4., .5, "A");
r.put(4., 3., "B");
r.put(4., 1., "C");
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/package-info.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/package-info.java
index 013f86ca..302654be 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/overview/package-info.java
@@ -7,7 +7,7 @@
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2012
+Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/gui/package-info.java b/src/de/lmu/ifi/dbs/elki/visualization/gui/package-info.java
index 0d026a1d..746235b5 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/gui/package-info.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/gui/package-info.java
@@ -6,7 +6,7 @@
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
-Copyright (C) 2012
+Copyright (C) 2013
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team