public void update(Observable observable, Object arg) { logger.debug(this + ": update request from " + observable); if (arg instanceof TimeInterval) { // TimeInterval ti = (TimeInterval) arg; // logger.info(this + " updating for range " + ti + " due to request from observer: '" + // observable.getClass().getName() + "'"); graphAreaPanel.repaint(); } }
/** * @param x time coordinate of point (in pixels inside graph area panel) * @return Set of events in this point */ public Set<IEvent> getEvents(int x) { Set<EventWrapper> eventWrappers = graphAreaPanel.getEvents(x); if (eventWrappers == null) return null; Set<IEvent> ret = new HashSet<IEvent>(); for (EventWrapper eventWrapper : eventWrappers) { ret.add(eventWrapper.getEvent()); } return ret; }
/** Sets cursor for internal graph panel */ public void setCursor(Cursor cursor) { graphAreaPanel.setCursor(cursor); }
/** Adds MouseMotionListener to internal graph panel */ public void addMouseMotionListener(MouseMotionListener l) { graphAreaPanel.addMouseMotionListener(l); }
/** Prepares pixelized data for PlotDataProviders to draw. Should be called before paint. */ public synchronized String updateData() { int width = graphAreaPanel.getWidth(); // - graphAreaPanel.getInsets().left - // graphAreaPanel.getInsets().right; logger.debug("Updating data " + this + "Width = " + width); graphs = new ArrayList<PlotData>(); List<String> errorChannels = new ArrayList<String>(); for (PlotDataProvider channel : plotDataProviders) { // lg.debug("processing channel: " + channel); PlotData data = null; try { data = channel.getPlotData( graphPanel.getTimeRange(), width, graphPanel.getFilter(), graphPanel.getRemoveGain(), graphPanel.getColorMode()); } catch (TraceViewException e) { channel.setRotation(null); try { errorChannels.add( channel.getNetworkName() + "/" + channel.getStation() + "/" + channel.getLocationName() + "/" + channel.getChannelName() + " - " + e.getMessage()); data = channel.getPlotData( graphPanel.getTimeRange(), width, graphPanel.getFilter(), graphPanel.getRemoveGain(), graphPanel.getColorMode()); } catch (TraceViewException | RemoveGainException e1) { // do nothing logger.error("TraceViewException:", e1); } } catch (RemoveGainException e) { try { errorChannels.add( channel.getNetworkName() + "/" + channel.getStation() + "/" + channel.getLocationName() + "/" + channel.getChannelName() + " - " + e.getMessage()); data = channel.getPlotData( graphPanel.getTimeRange(), width, graphPanel.getFilter(), null, graphPanel.getColorMode()); } catch (TraceViewException | RemoveGainException e1) { // do nothing logger.error("TraceViewException:", e1); } } graphs.add(data); meanValue = data.getMeanValue(); } Collections.sort(graphs); if (errorChannels.size() > 0) return errorChannels.get(0); else return ""; }
/** @return Necessary count of data point in graph to draw inside this panel */ public int getPointCount() { return graphAreaPanel.getWidth(); }