diff --git a/ch.psi.fda/pom.xml b/ch.psi.fda/pom.xml
index 271cf96..c296b83 100644
--- a/ch.psi.fda/pom.xml
+++ b/ch.psi.fda/pom.xml
@@ -10,7 +10,7 @@
ch.psich.psi.fda.core
- 0.0.1-SNAPSHOT
+ 0.0.2
diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/AcquisitionMain.java b/ch.psi.fda/src/main/java/ch/psi/fda/AcquisitionMain.java
index 6fbcdb3..4affe6e 100644
--- a/ch.psi.fda/src/main/java/ch/psi/fda/AcquisitionMain.java
+++ b/ch.psi.fda/src/main/java/ch/psi/fda/AcquisitionMain.java
@@ -56,13 +56,11 @@ import com.google.inject.Injector;
import sun.misc.Signal;
import sun.misc.SignalHandler;
-import ch.psi.fda.aq.VisualizationMapper;
-import ch.psi.fda.aq.XScanDescriptor;
import ch.psi.fda.edescriptor.EDescriptor;
import ch.psi.fda.gui.ProgressPanel;
import ch.psi.fda.gui.ScrollableFlowPanel;
import ch.psi.fda.install.ApplicationConfigurator;
-import ch.psi.fda.model.v1.Configuration;
+import ch.psi.fda.vdescriptor.VDescriptor;
import ch.psi.fda.visualizer.Visualizer;
import ch.psi.jcae.ChannelService;
import ch.psi.jcae.impl.DefaultChannelService;
@@ -189,15 +187,17 @@ public class AcquisitionMain {
EDescriptor edescriptor = null;
+ VDescriptor vdescriptor = null;
ServiceLoader providers = ServiceLoader.load(DescriptorProvider.class);
for (DescriptorProvider provider : providers) {
try{
provider.load(file);
edescriptor = provider.getEDescriptor();
+ vdescriptor = provider.getVDescriptor();
break;
}
catch(Exception e){
- logger.log(Level.FINEST, provider.getClass().getName()+ " is not able to read provided descriptor files", e);
+ logger.log(Level.INFO, provider.getClass().getName()+ " is not able to read provided descriptor files", e);
}
}
@@ -218,25 +218,11 @@ public class AcquisitionMain {
Visualizer visualizer = null;
- if(edescriptor instanceof XScanDescriptor){
- XScanDescriptor d = (XScanDescriptor) edescriptor;
- Configuration c = d.getConfiguration();
- // Only register data visualization task/processor if there are visualizations
- if(c.getVisualization().size()>0 && !nogui){
-
- visualizer = new Visualizer(VisualizationMapper.mapVisualizations(c.getVisualization()));
- b.register(visualizer);
-
- // TODO eventually set update on delimiter/dim boundary here
-
- // If there is a continous dimension only update plot at the end of a line
- if(c.getScan() != null && c.getScan().getCdimension()!=null){
- visualizer.setUpdateAtStreamElement(false);
- visualizer.setUpdateAtStreamDelimiter(true);
- visualizer.setUpdateAtEndOfStream(true);
- }
- }
+ // Only register data visualization task/processor if there are visualizations
+ if(vdescriptor.getPlots().size()>0 && !nogui){
+ visualizer = new Visualizer(vdescriptor);
+ b.register(visualizer);
}
diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/aq/VisualizationMapper.java b/ch.psi.fda/src/main/java/ch/psi/fda/aq/VisualizationMapper.java
deleted file mode 100644
index 79a6821..0000000
--- a/ch.psi.fda/src/main/java/ch/psi/fda/aq/VisualizationMapper.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/**
- *
- * Copyright 2013 Paul Scherrer Institute. All rights reserved.
- *
- * This code is free software: you can redistribute it and/or modify it under
- * the terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation, either version 3 of the License, or (at your option) any
- * later version.
- *
- * This code is distributed in the hope that it will be useful, but without any
- * warranty; without even the implied warranty of merchantability or fitness for
- * a particular purpose. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this code. If not, see .
- *
- */
-package ch.psi.fda.aq;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import ch.psi.fda.model.v1.ArrayDetector;
-import ch.psi.fda.model.v1.ContinuousPositioner;
-import ch.psi.fda.model.v1.Detector;
-import ch.psi.fda.model.v1.LinearPositioner;
-import ch.psi.fda.model.v1.Positioner;
-import ch.psi.fda.model.v1.PseudoPositioner;
-import ch.psi.fda.model.v1.Visualization;
-import ch.psi.fda.visualizer.SeriesDataFilter;
-import ch.psi.fda.visualizer.XYSeriesArrayDataFilter;
-import ch.psi.fda.visualizer.XYSeriesDataFilter;
-import ch.psi.fda.visualizer.XYZSeriesArrayDataFilter;
-import ch.psi.fda.visualizer.XYZSeriesDataFilter;
-import ch.psi.plot.xyz.MatrixPlot;
-import ch.psi.plot.xyz.MatrixPlotData;
-
-public class VisualizationMapper {
-
-
- /**
- * Retrieve id string of the passed object
- * @param object
- * @return Id string of object
- */
- private static String getId(Object object){
- String id;
- if(object instanceof Positioner){
- id = ((Positioner)object).getId();
- }
- else if (object instanceof Detector){
- id = ((Detector)object).getId();
- }
- else if (object instanceof ch.psi.fda.model.v1.Manipulation){
- id = ((ch.psi.fda.model.v1.Manipulation)object).getId();
- }
- // For testing purposes
- else if(object instanceof String){
- id = (String) object;
- }
- else{
- throw new RuntimeException("Unable to identify id of object reference "+object);
- }
- return id;
- }
-
- /**
- * Converts a list of visualizations into a list of data filters which can be applied to the data stream
- *
- * @param vl
- * @return
- */
- public static List mapVisualizations(List vl){
- List filters = new ArrayList();
-
- for(Visualization v: vl){
- if(v instanceof ch.psi.fda.model.v1.LinePlot){
- ch.psi.fda.model.v1.LinePlot lp = (ch.psi.fda.model.v1.LinePlot) v;
-
- // Create plot for visualization
- ch.psi.plot.xy.LinePlot plot = new ch.psi.plot.xy.LinePlot(lp.getTitle());
-
- // Create data filter for visualization
- String idX = getId(lp.getX());
-
- List