001    /**
002     * Created by IntelliJ IDEA.
003     * User: Wei Wang
004     * Date: Nov 30, 2002
005     * Time: 2:11:24 PM
006     */
007    
008    package EVolve.visualization.XYViz.ValValViz;
009    
010    import EVolve.Scene;
011    import EVolve.data.Selection;
012    import EVolve.exceptions.*;
013    import EVolve.visualization.*;
014    import EVolve.visualization.XYViz.XYVisualization;
015    
016    public abstract class ValueValueVisualization extends XYVisualization{
017        protected ValueDimension xAxis,yAxis;
018        protected ReferenceDimension entityIdFilter,filter2; // use to decide color of a dot
019        protected int subjectIndex;
020        protected long beginCall, endCall;
021    
022        public ReferenceDimension getLinkableDimension(int dim) {
023            return null;
024        }
025    
026        public void sort() {
027            try {
028                canvas.setImage(image.getImage());
029                canvas.repaint();
030                enableBrowseSourceMenu();
031            } catch (NoDataPlotException e) {
032                Scene.showErrorMessage(e.getMessage());
033            }
034        }
035    
036        public void preVisualize() {
037            timeMap.clear();
038            xOffset = -1;
039            timeMap.clear();
040        }
041    
042        protected void getSelection() {
043            Selection selection = Scene.getFilter().getActiveSelection();
044    
045            if (selection != null) {
046                beginCall = 0;
047                endCall = Integer.MAX_VALUE/2;
048            }
049        }
050    
051        protected String getEntityUnderMouse() {
052            return null;
053        }
054    
055        protected void changeOrientation() {
056        }
057    
058        protected long[] findEventInterval(long startTime, long endTime) {
059            long time[] = new long[2], event[] = new long[2];
060            time[0] = startTime;
061            time[1] = endTime;
062            event[0] = 0;
063            event[1] = Long.MAX_VALUE;
064    
065            if (timeMap != null) {
066                for (int i=0; i<time.length; i++) {
067                    long lastTarget = -1;
068                    for (int j = 0; j< timeMap.size(); j++) {
069                        long[] map = (long[])timeMap.get(j);
070                        if ((lastTarget<= time[i])&&(map[0]>=time[i])) {
071                            event[i] = map[1];
072                            break;
073                        }
074                    }
075                }
076            }
077            return event;
078        }
079    
080        public Object clone() {
081            ValueValueVisualization o = null;
082            o = (ValueValueVisualization)super.clone();
083    
084            o.xAxis = (ValueDimension)xAxis.clone();
085            o.yAxis = (yAxis == null) ? null : (ValueDimension)yAxis.clone();
086            o.entityIdFilter = (entityIdFilter == null) ? null : (ReferenceDimension)entityIdFilter.clone();
087            o.filter2 = (filter2 == null) ? null : (ReferenceDimension)filter2.clone();
088            o.panelConfiguration = o.createConfigurationPanel();
089            o.createMenu();
090            return o;
091        }
092    }