/******************************************************************************* * Mission Control Technologies, Copyright (c) 2009-2012, United States Government * as represented by the Administrator of the National Aeronautics and Space * Administration. All rights reserved. * * The MCT platform is licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. * * MCT includes source code licensed under additional open source licenses. See * the MCT Open Source Licenses file included with this distribution or the About * MCT Licenses dialog available at runtime from the MCT Help menu for additional * information. *******************************************************************************/ package gov.nasa.arc.mct.fastplot.bridge; import gov.nasa.arc.mct.components.FeedProvider; import gov.nasa.arc.mct.fastplot.bridge.AbstractAxis.AxisVisibleOrientation; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.AxisOrientationSetting; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.LimitAlarmState; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.NonTimeAxisSubsequentBoundsSetting; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.PlotLineConnectionType; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.PlotLineDrawingFlags; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.TimeAxisSubsequentBoundsSetting; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.XAxisMaximumLocationSetting; import gov.nasa.arc.mct.fastplot.bridge.PlotConstants.YAxisMaximumLocationSetting; import gov.nasa.arc.mct.fastplot.bridge.controls.AbstractPlotLocalControl; import gov.nasa.arc.mct.fastplot.utils.AbbreviatingPlotLabelingAlgorithm; import gov.nasa.arc.mct.fastplot.view.Axis; import gov.nasa.arc.mct.fastplot.view.legend.AbstractLegendEntry; import java.awt.Color; import java.awt.Font; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.GregorianCalendar; import java.util.Hashtable; import java.util.Map; import java.util.SortedMap; import javax.swing.JPanel; /** * Implementation of the AbstractPlottingPackage interface for use in testing. * It allows us to push data to the "plot" and then inspect it without the * overhead of using a real plotting package. * */ public class ShellPlotPackageImplementation implements AbstractPlottingPackage{ private Map<String, ArrayList<Double>> plotDataSet; private boolean paused; private Axis nonTimeAxis = new Axis(); private AbbreviatingPlotLabelingAlgorithm plotLabelingAlgorithm = new AbbreviatingPlotLabelingAlgorithm(); @Override public void createChart( Font timeAxisFont, int plotLineThickness, Color plotBackgroundFrameColor, Color plotAreaBackgroundColor, int timeAxisIntercept, Color timeAxisColor, Color timeAxisLabelColor, Color nonTimeAxisLabelColor, String timeAxisDataFormat, Color nonTimeAxisColor, Color gridLineColor, int minSamplesForAutoScale, boolean compressionenabled, boolean time, boolean label, PlotAbstraction pa, AbbreviatingPlotLabelingAlgorithm thePlotLabelingAlgorithm) { plotLabelingAlgorithm = thePlotLabelingAlgorithm; plotDataSet = new Hashtable<String, ArrayList<Double>>(); } public Map<String, ArrayList<Double>> getDataSet() { return plotDataSet; } @Override public void addDataSet(String dataSetName, Color plottingColor) { ArrayList<Double> data = new ArrayList<Double>(); plotDataSet.put(dataSetName, data); } @Override public int getDataSetSize() { return plotDataSet.size(); } @Override public JPanel getPlotComponent() { return new JPanel(); } @Override public boolean isKnownDataSet(String setName) { return plotDataSet.containsKey(setName); } @Override public void refreshDisplay() { } @Override public LimitAlarmState getDependentMaxAlarmState() { return LimitAlarmState.NO_ALARM; } @Override public LimitAlarmState getDependentMinAlarmState() { return LimitAlarmState.NO_ALARM; } @Override public long getMaxTime() { return getCurrentTimeAxisMax().getTimeInMillis(); } @Override public long getMinTime() { return getCurrentTimeAxisMin().getTimeInMillis(); } @Override public GregorianCalendar getCurrentTimeAxisMin() { return new GregorianCalendar(); } @Override public GregorianCalendar getCurrentTimeAxisMax() { return new GregorianCalendar(); } @Override public NonTimeAxisSubsequentBoundsSetting getNonTimeAxisSubsequentMaxSetting() { // TODO Auto-generated method stub return null; } @Override public NonTimeAxisSubsequentBoundsSetting getNonTimeAxisSubsequentMinSetting() { // TODO Auto-generated method stub return null; } @Override public double getInitialNonTimeMaxSetting() { // TODO Auto-generated method stub return 0; } @Override public double getNonTimeMaxPadding() { // TODO Auto-generated method stub return 0; } @Override public double getInitialNonTimeMinSetting() { // TODO Auto-generated method stub return 0; } @Override public double getNonTimeMinPadding() { // TODO Auto-generated method stub return 0; } @Override public AxisOrientationSetting getAxisOrientationSetting() { // TODO Auto-generated method stub return null; } @Override public TimeAxisSubsequentBoundsSetting getTimeAxisSubsequentSetting() { // TODO Auto-generated method stub return null; } @Override public long getInitialTimeMaxSetting() { // TODO Auto-generated method stub return 0; } @Override public long getInitialTimeMinSetting() { // TODO Auto-generated method stub return 0; } @Override public double getTimePadding() { // TODO Auto-generated method stub return 0; } @Override public XAxisMaximumLocationSetting getXAxisMaximumLocation() { // TODO Auto-generated method stub return null; } @Override public YAxisMaximumLocationSetting getYAxisMaximumLocation() { // TODO Auto-generated method stub return null; } @Override public void addDataSet(String lowerCase, Color plottingColor, String displayName) { // TODO Auto-generated method stub } @Override public void removeTimeSyncLine() { // TODO Auto-generated method stub } @Override public void showTimeSyncLine(GregorianCalendar time) { // TODO Auto-generated method stub } @Override public boolean isTimeSyncLineVisible() { // TODO Auto-generated method stub return false; } @Override public void setPlotAbstraction(PlotAbstraction plotView) { // TODO Auto-generated method stub } @Override public void notifyGlobalTimeSyncFinished() { // TODO Auto-generated method stub } @Override public boolean inTimeSyncMode() { // TODO Auto-generated method stub return false; } @Override public double getNonTimeMaxDataValueCurrentlyDisplayed() { // TODO Auto-generated method stub return 0; } @Override public double getNonTimeMinDataValueCurrentlyDisplayed() { // TODO Auto-generated method stub return 0; } @Override public double getMaxNonTime() { // TODO Auto-generated method stub return 0; } @Override public double getMinNonTime() { // TODO Auto-generated method stub return 0; } @Override public boolean isCompressionEnabled() { // TODO Auto-generated method stub return false; } @Override public void setCompressionEnabled(boolean state) { // TODO Auto-generated method stub } @Override public void informUpdateCacheDataStreamCompleted() { // TODO Auto-generated method stub } @Override public void informUpdateCachedDataStreamStarted() { // TODO Auto-generated method stub } @Override public void informUpdateFromLiveDataStreamCompleted() { // TODO Auto-generated method stub } @Override public void informUpdateFromLiveDataStreamStarted() { // TODO Auto-generated method stub } @Override public void setTimeAxisStartAndStop(long startTime, long endTime) { // TODO Auto-generated method stub } @Override public void addData(String feed, long time, double value) { ArrayList<Double> data = plotDataSet.get(feed); data.add(value); } @Override public void addData(String feedID, SortedMap<Long, Double> points) { ArrayList<Double> data = plotDataSet.get(feedID); data.addAll(points.values()); } @Override public void updateLegend(String dataSetName, FeedProvider.RenderingInfo info) { // TODO Auto-generated method stub } @Override public void notifyObserversTimeChange() { // TODO Auto-generated method stub } @Override public void registerObservor(PlotObserver o) { // TODO Auto-generated method stub } @Override public void removeObserver(PlotObserver o) { // TODO Auto-generated method stub } @Override public void clearAllDataFromPlot() { // TODO Auto-generated method stub } @Override public void pause(boolean b) { paused = b; } @Override public boolean isPaused() { return paused; } @Override public boolean getOrdinalPositionForStackedPlots() { // TODO Auto-generated method stub return false; } @Override public Axis getNonTimeAxis() { return nonTimeAxis; } @Override public void updateResetButtons() { // TODO Auto-generated method stub } @Override public AbbreviatingPlotLabelingAlgorithm getPlotLabelingAlgorithm() { return plotLabelingAlgorithm; } @Override public void setPlotLabelingAlgorithm(AbbreviatingPlotLabelingAlgorithm thePlotLabelingAlgorithm) { plotLabelingAlgorithm = thePlotLabelingAlgorithm; } @Override public void setTruncationPoint(double min) { // TODO Auto-generated method stub } @Override public void updateCompressionRatio() { // TODO Auto-generated method stub } @Override public String getTimeSystemSetting() { // TODO Auto-generated method stub return null; } @Override public String getTimeFormatSetting() { // TODO Auto-generated method stub return null; } @Override public void setAxisOrientationSetting(AxisOrientationSetting timeAxisSetting) { // TODO Auto-generated method stub } @Override public void setTimeSystemSetting(String timeSystemSetting) { // TODO Auto-generated method stub } @Override public void setTimeFormatSetting(String timeFormatSetting) { // TODO Auto-generated method stub } @Override public void setXAxisMaximumLocation( XAxisMaximumLocationSetting xAxisMaximumLocation) { // TODO Auto-generated method stub } @Override public void setYAxisMaximumLocation( YAxisMaximumLocationSetting yAxisMaximumLocation) { // TODO Auto-generated method stub } @Override public void setTimeAxisSubsequentSetting( TimeAxisSubsequentBoundsSetting timeAxisSubsequent) { // TODO Auto-generated method stub } @Override public void setNonTimeAxisSubsequentMinSetting( NonTimeAxisSubsequentBoundsSetting nonTimeAxisSubsequentMinSetting) { // TODO Auto-generated method stub } @Override public void setNonTimeAxisSubsequentMaxSetting( NonTimeAxisSubsequentBoundsSetting nonTimeAxisSubsequentMaxSetting) { // TODO Auto-generated method stub } @Override public void setMaxTime(long maxTime) { // TODO Auto-generated method stub } @Override public void setMinTime(long minTime) { // TODO Auto-generated method stub } @Override public void setMaxNonTime(double maxNonTime) { // TODO Auto-generated method stub } @Override public void setMinNonTime(double minNonTime) { // TODO Auto-generated method stub } @Override public void setTimePadding(double timePadding) { // TODO Auto-generated method stub } @Override public void setNonTimeMaxPadding(double nonTimeMaxPadding) { // TODO Auto-generated method stub } @Override public void setNonTimeMinPadding(double nonTimeMinPadding) { // TODO Auto-generated method stub } @Override public void setOrdinalPositionForStackedPlots( boolean ordinalPositionForStackedPlots) { // TODO Auto-generated method stub } @Override public void setPinTimeAxis(boolean pinTimeAxis) { // TODO Auto-generated method stub } @Override public boolean getPinTimeAxis() { // TODO Auto-generated method stub return false; } @Override public void setPlotLineDraw(PlotLineDrawingFlags plotLineDraw) { // TODO Auto-generated method stub } @Override public PlotLineDrawingFlags getPlotLineDraw() { // TODO Auto-generated method stub return null; } @Override public void setPlotLineConnectionType( PlotLineConnectionType plotLineConnectionType) { // TODO Auto-generated method stub } @Override public PlotLineConnectionType getPlotLineConnectionType() { // TODO Auto-generated method stub return null; } @Override public PlotAbstraction getPlotAbstraction() { // TODO Auto-generated method stub return null; } @Override public LegendManager getLegendManager() { // TODO Auto-generated method stub return null; } @Override public AbstractPlotDataManager getPlotDataManager() { // TODO Auto-generated method stub return null; } @Override public PlotLocalControlsManager getLocalControlsManager() { // TODO Auto-generated method stub return null; } @Override public PlotViewActionListener getPlotActionListener() { // TODO Auto-generated method stub return null; } @Override public PlotLimitManager getLimitManager() { // TODO Auto-generated method stub return null; } @Override public AbstractPlotLine createPlotLine() { // TODO Auto-generated method stub return null; } @Override public void addDataSet(String lowerCase, Color plottingColor, AbstractLegendEntry legend) { // TODO Auto-generated method stub } @Override public double getMinDependent() { // TODO Auto-generated method stub return 0; } @Override public void setMinDependent(double min) { // TODO Auto-generated method stub } @Override public double getMaxDependent() { // TODO Auto-generated method stub return 0; } @Override public void setMaxDependent(double max) { // TODO Auto-generated method stub } @Override public Collection<AbstractAxis> getAxes() { return Collections.<AbstractAxis>emptyList(); } @Override public void attachLocalControl(AbstractPlotLocalControl control) { // TODO Auto-generated method stub } @Override public void notifyObserversAxisChanged(AbstractAxis axis) { // TODO Auto-generated method stub } @Override public Collection<AbstractAxisBoundManager> getBoundManagers( AxisVisibleOrientation axis) { // TODO Auto-generated method stub return null; } }