001package org.vishia.gral.ifc; 002 003import org.vishia.gral.base.GralCurveView; 004 005/**This interface describes a track (one curve) of a curve view. 006 * @see org.vishia.gral.widget.GralCurveView, 007 * @see GralCurveView_ifc 008 * @author Hartmut Schorrig 009 * 010 */ 011public interface GralCurveViewTrack_ifc extends GralSetValue_ifc 012{ 013 /**Version, history and license. 014 * <ul> 015 * <li>2013-05-14 Hartmut new: {@link #getValueCursorLeft()} 016 * <li>2013-05-14 Hartmut new: {@link #getIxTrack()} 017 * <li>2012-06-08 Hartmut new: {@link #getDataPath()}, used to write settings. 018 * <li>2012-06-08 Hartmut chg: {@link #setLineProperties(GralColor, int)} instead setLineColor() 019 * <li>2012-04-01 Hartmut new: {@link #setDataPath(String)} 020 * <li>2012-03-17 Hartmut created as interface to {@link org.vishia.gral.base.GralCurveView.Track}. 021 * Approach: Accessibility. The class Track is protected. Its details should only be used 022 * for implementation and inside {@link org.vishia.gral.base.GralCurveView} 023 * </ul> 024 * <br><br> 025 * <b>Copyright/Copyleft</b>: 026 * For this source the LGPL Lesser General Public License, 027 * published by the Free Software Foundation is valid. 028 * It means: 029 * <ol> 030 * <li> You can use this source without any restriction for any desired purpose. 031 * <li> You can redistribute copies of this source to everybody. 032 * <li> Every user of this source, also the user of redistribute copies 033 * with or without payment, must accept this license for further using. 034 * <li> But the LPGL is not appropriate for a whole software product, 035 * if this source is only a part of them. It means, the user 036 * must publish this part of source, 037 * but doesn't need to publish the whole source of the own product. 038 * <li> You can study and modify (improve) this source 039 * for own using or for redistribution, but you have to license the 040 * modified sources likewise under this LGPL Lesser General Public License. 041 * You mustn't delete this Copyright/Copyleft inscription in this source file. 042 * </ol> 043 * If you intent to use this source without publishing its usage, you can get 044 * a second license subscribing a special contract with the author. 045 * 046 * @author Hartmut Schorrig = hartmut.schorrig@vishia.de 047 * 048 */ 049 public static final int version = 20120325; 050 051 /**Returns the scaling per division. One division is 1/10 of full y presentation, like usual 052 * on oscilloscopes. 053 */ 054 float getScale7div(); 055 056 /**Returns the value which is shown at the 0-line. */ 057 float getOffset(); 058 059 /**Returns the position of the 0-line as value from 0 to 100 for this track. */ 060 int getLinePercent(); 061 062 /**Returns the set color for this line. */ 063 GralColor getLineColor(); 064 065 String getDataPath(); 066 067 /**Change the scaling of a track. 068 * @param trackNr Number of the track in order of creation, 0 ist the first. 069 * @param scale7div value per division 070 * @param offset value, which is shown at line0 071 * @param line0 percent of 0-line in graphic. 072 */ 073 void setTrackScale(float scale7div, float offset, int line0); 074 075 /**Refers the same instance {@link GralCurveView.TrackScale} with the other track. 076 * All {@link #setTrackScale(float, float, int)} with tracks which are shared influences one another. 077 * @param from one of the track of a scale group. 078 */ 079 void groupTrackScale(GralCurveViewTrack_ifc from); 080 081 /**Checks whether the scaling is shared with the other given thread 082 * @param with The other track. 083 * @return true if it refers the same instance of scaling values. 084 */ 085 boolean isGroupedTrackScale(GralCurveViewTrack_ifc with); 086 087 /**Creates an own instance for the scaling values. */ 088 void ungroupTrackScale(); 089 090 091 /**Sets the properties for this track. 092 * @param color The color of line, null: no change 093 * @param width The thickness of the line. 0: no change 094 * @param pattern a Pattern of the line. Yet the pattern is not used (TODO). Value 0 doesn't change the current one. 095 */ 096 void setLineProperties(GralColor color, int width, int pattern); 097 098 /**Set the state to show. 0=hidden, don't show, but the values are stored. 099 * 1= show normal. 2= show lifted out (selected). 100 */ 101 void setVisible(int mode); 102 103 /**Returns the state to show. 0=hidden, don't show, but the values are stored. 104 * 1= show normal. 2= show lifted out (selected). 105 */ 106 int getVisible(); 107 108 void setDataPath(String path); 109 110 float getValueCursorLeft(); 111 float getValueCursorRight(); 112 float getValueLast(); 113 float getValueMin(); 114 float getValueMax(); 115 116 117}