All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.hansolo.steelseries.tools.DataModel Maven / Gradle / Ivy

package eu.hansolo.steelseries.tools;

/**
 *
 * @author Gerrit Grunwald 
 */
public interface DataModel 
{
    /**
     * Returns the minimum acceptable value.
     * @return the value of the minimum property     
     */
    double getMinValue();
    
    /**
     * Sets the model's minimum to MIN_VALUE. 
     * The values of the model may change as well, to
     * ensure that the model is valid.     
     * Notifies any listener if the model changes.     
     * @param MIN_VALUE the model's new minimum
     */
    void setMinValue(final double MIN_VALUE);
    
    /**
     * Returns the maximum acceptable value.
     * @return the value of the maximum property
     */
    double getMaxValue();
    
    /**
     * Sets the model's minimum to MAX_VALUE. 
     * The values of the model may change as well, to
     * ensure that the model is valid.     
     * Notifies any listener if the model changes.     
     * @param MAX_VALUE the model's new minimum
     */
    void setMaxValue(final double MAX_VALUE);
    
    /**
     * Returns the range of of the model which is
     * calculated my maxValue - minValue
     * @return the value of the range property
     */
    double getRange();    
    
    /**
     * Set's the model's range defined by MIN_VALUE and
     * MAX_VALUE. The values of the model may change as well,
     * to ensure that the model is valid.
     * Notifies any listener if the model changes.
     * @param MIN_VALUE the model's new minimum
     * @param MAX_VALUE the model's new maximum
     */
    void setRange(final double MIN_VALUE, final double MAX_VALUE);
    
    /**
     * Returns the model's value
     * @return the value of the value property
     */
    double getValue();
    
    /**
     * Set's the model's value
     * The values of the model may change as well,
     * to ensure that the model is valid.
     * @param VALUE the model's new value
     */
    void setValue(final double VALUE);
    
    /**
     * Return's the former value of the model
     * @return the value of the oldValue property
     */
    double getOldValue();
    
    /**
     * Return's the peak value of the model which
     * is only used in the radial bargraphs to visualize
     * the last measured value.
     * @return the value of the peakValue property
     */
    double getPeakValue();
    
    /**
     * Set's the model's peak value
     * @param PEAK_VALUE the model's new peakValue
     */
    void setPeakValue(final double PEAK_VALUE);
    
    /**
     * Returns the state of the model's autoResetToZero property.
     * If true the pointer will return to zero after it reaches
     * the given value.
     * @return the value of the autoReturnToZero property
     */
    boolean isAutoResetToZero();
    
    /**
     * Set's the model's autoResetToZero property
     * @param AUTO_RESET_TO_ZERO the model's new state of the autoResetToZero property
     */
    void setAutoResetToZero(final boolean AUTO_RESET_TO_ZERO);
    
    /**
     * Returns the model's threshold property. The threshold could be
     * visualized by an indicator and also the led will start blinking
     * if the current value is bigger than the threshold
     * @return the value of the threshold property
     */
    double getThreshold();
    
    /**
     * Set's the model's threshold property.
     * @param THRESHOLD the model's new threshold property
     */
    void setThreshold(final double THRESHOLD);
    
    /**
     * Returns the model's minMeasuredValue property. The minMeasuredValue
     * property represents the smallest value that was measured so far.
     * @return the value of the minMeasuredValue property
     */
    double getMinMeasuredValue();
    
    /**
     * Set's the model's minMeasuredValue property
     * @param MIN_MEASURED_VALUE the model's new minMeasuredValue
     */
    void setMinMeasuredValue(final double MIN_MEASURED_VALUE);
    
    /**
     * Reset's the model's minMeasuredValue property to the current value
     */
    void resetMinMeasuredValue();
    
    /**
     * Reset's the model's minMeasuredValue property to the given MIN_MEASURED_VALUE
     * @param MIN_MEASURED_VALUE the model's minMeasuredValue defined by the given MIN_MEASURED_VALUE
     */
    void resetMinMeasuredValue(final double MIN_MEASURED_VALUE);
    
    /**
     * Returns the model's maxMeasuredValue property
     * @return the value of the maxMeasuredValue property
     */
    double getMaxMeasuredValue();
    
    /**
     * Set's the model's maxMeasuredValue property. The maxMeasuredValue
     * property represents the highest value that was measured so far.
     * @param MAX_MEASURED_VALUE the model's new maxMeasuredValue
     */
    void setMaxMeasuredValue(final double MAX_MEASURED_VALUE);
    
    /**
     * Reset's the model's maxMeasuredValue property to the current value
     */
    void resetMaxMeasuredValue();
    
    /**
     * Reset's the model's maxMeasuredValue property to the given MAX_MEASURED_VALUE
     * @param MAX_MEASURED_VALUE the model's maxMeasuredValue defined by the given MAX_MEASURED_VALUE
     */
    void resetMaxMeasuredValue(final double MAX_MEASURED_VALUE);
    
    /**
     * Returns the model's trackStart property. The track is defined by three
     * values, the trackStart, the trackSection and the trackStop value.
     * Each value could also have it's own value. The different to the section
     * property is that the track colors will be visualized by a gradient where
     * the section will be visualized by separate sections with their colors.
     * @return the value of the trackStart property
     */
    double getTrackStart();
    
    /**
     * Set's the model's trackStart property
     * @param TRACK_START the model's new trackStart
     */
    void setTrackStart(final double TRACK_START);
    
    /**
     * Returns the model's trackSection property. The track is defined by three
     * values, the trackStart, the trackSection and the trackStop value.
     * Each value could also have it's own value. The different to the section
     * property is that the track colors will be visualized by a gradient where
     * the section will be visualized by separate sections with their colors.
     * @return the value of the trackSection property
     */
    double getTrackSection();
    
    /**
     * Set's the model's trackSection property
     * @param TRACK_SECTION the model's new trackSection value
     */
    void setTrackSection(final double TRACK_SECTION);
    
    /**
     * Returns the model's trackStop property. The track is defined by three
     * values, the trackStart, the trackSection and the trackStop value.
     * Each value could also have it's own value. The different to the section
     * property is that the track colors will be visualized by a gradient where
     * the section will be visualized by separate sections with their colors.
     * @return the value of the trackStop property
     */
    double getTrackStop();
    
    /**
     * Set's the model's trackStop property
     * @param TRACK_STOP the model's new trackStop value
     */
    void setTrackStop(final double TRACK_STOP);
    
    /**
     * Return a list of all sections of the model. The sections are somewhat
     * similiar to the track except that there could be more than three sections
     * and each section has it's own color.
     * @return the list of all defined sections in the model
     */
    java.util.List getSections();
    
    /**
     * Set's the model's sections. Every element of the SECTIONS_ARRAY will be
     * added as a new Section to the list of sections which means it's a deep copy of
     * the array.
     * @param SECTIONS_ARRAY the model's new sections
     */
    void setSections(final eu.hansolo.steelseries.tools.Section... SECTIONS_ARRAY);
    
    /**
     * Add the given section to the list of sections of the model
     * @param SECTION
     */
    void addSection(final eu.hansolo.steelseries.tools.Section SECTION);
    
    /**
     * Reset's the model's list of sections by clearing the arraylist
     */
    void resetSections();
    
    /**
     * Returns the model's list of areas. The areas are very similar to
     * the sections except that they would be visualized by an area instead
     * of a ring.
     * @return the list of all defined areas of the model
     */
    java.util.List getAreas();
        
    /**
     * Set's the model's areas. Every element of the AREAS_ARRAY will be
     * added as a new Section to the list of areas which means it's a deep copy
     * of the array.
     * @param AREAS_ARRAY the model's new areas
     */
    void setAreas(final eu.hansolo.steelseries.tools.Section... AREAS_ARRAY);
    
    /**
     * Add the given area to the list of areas of the model
     * @param AREA
     */
    void addArea(final eu.hansolo.steelseries.tools.Section AREA);
    
    /**
     * Reset's the model's list of areas by clearing the arraylist
     */
    void resetAreas();
    
    /**
     * Return's the model's list of tickmarkSections. The tickmarkSections are sections
     * that define colors and ranges for the tickmark labels.     
     * @return the list of all defined tickmarkSections of the model
     */
    java.util.List getTickmarkSections();
    
    /**
     * Set's the model's tickmark sections.
     * @param TICKMARK_SECTIONS_ARRAY the models new tickmarkSections
     */
    void setTickmarkSections(final eu.hansolo.steelseries.tools.Section... TICKMARK_SECTIONS_ARRAY);
    
    /**
     * Add's the given tickmark section to the model's list of tickmarkSections
     * @param TICKMARK_SECTION 
     */
    void addTickmarkSection(final eu.hansolo.steelseries.tools.Section TICKMARK_SECTION);
    
    /**
     * Reset's the model's list of tickmarkSections by clearing the arraylist
     */
    void resetTickmarkSections();
    
    /**
     * Return's the model's gaugeType property.
     * @return the value of the model's gaugeType
     */
    eu.hansolo.steelseries.tools.GaugeType getGaugeType();
    
    /**
     * Set's the model's gaugeType property
     * @param GAUGE_TYPE the model's new gaugeType
     */
    void setGaugeType(final eu.hansolo.steelseries.tools.GaugeType GAUGE_TYPE);
    
    /**
     * Return's the model's freeAreaAngle property
     * @return the value of the model's freeAreaAngle
     */
    double getFreeAreaAngle();
            
    /**
     * Return's the model's angleStep property
     * @return the value of the model's angleStep
     */
    double getAngleStep();
    
    /**
     * Return's the model's rotationOffset property
     * @return the value of the model's rotationOffset
     */
    double getRotationOffset();
    
    /**
     * Return's the model's tickmarkOffset property
     * @return the value of the model's tickmarkOffset
     */
    double getTickmarkOffset();
    
    /**
     * Validates all variables of the model that depends on modifications
     * of the minValue and maxValue property.
     */
    void validate();
    
    /**
     * Resets the model
     */
    void reset();
    
    /**
     * Add's the given listener to the list of listeners
     * @param LISTENER
     */
    void addChangeListener(final javax.swing.event.ChangeListener LISTENER);
    
    /**
     * Removes the given listener from the list of listeners
     * @param LISTENER
     */
    void removeChangeListener(final javax.swing.event.ChangeListener LISTENER);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy