001/*
002 * This file is part of McIDAS-V
003 *
004 * Copyright 2007-2024
005 * Space Science and Engineering Center (SSEC)
006 * University of Wisconsin - Madison
007 * 1225 W. Dayton Street, Madison, WI 53706, USA
008 * https://www.ssec.wisc.edu/mcidas/
009 * 
010 * All Rights Reserved
011 * 
012 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and
013 * some McIDAS-V source code is based on IDV and VisAD source code.  
014 * 
015 * McIDAS-V is free software; you can redistribute it and/or modify
016 * it under the terms of the GNU Lesser Public License as published by
017 * the Free Software Foundation; either version 3 of the License, or
018 * (at your option) any later version.
019 * 
020 * McIDAS-V is distributed in the hope that it will be useful,
021 * but WITHOUT ANY WARRANTY; without even the implied warranty of
022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
023 * GNU Lesser Public License for more details.
024 * 
025 * You should have received a copy of the GNU Lesser Public License
026 * along with this program.  If not, see https://www.gnu.org/licenses/.
027 */
028
029package edu.wisc.ssec.mcidasv.data;
030
031
032/**
033 * Class FrameDirtyInfo Holds the state of
034 * the frame components from McIdas-X
035 */
036public class FrameDirtyInfo {
037        
038        /** Which frame number is this for */
039        public int frameNumber = 0;
040
041    /** Dirty status of each component */
042    public boolean dirtyImage = false;
043    public boolean dirtyGraphics = false;
044    public boolean dirtyColorTable = false;
045
046    /**
047     * Constructor
048     */
049    public FrameDirtyInfo() {}
050
051    /**
052     * Copy constructor
053     *
054     * @param that The FrameDirtyInfo to copy
055     *
056     */
057    public FrameDirtyInfo(FrameDirtyInfo that) {
058        this.frameNumber     = that.frameNumber;
059        this.dirtyImage      = that.dirtyImage;
060        this.dirtyGraphics   = that.dirtyGraphics;
061        this.dirtyColorTable = that.dirtyColorTable;
062    }
063
064    /**
065     * Constructor
066     */
067    public FrameDirtyInfo( int frameNumber, boolean isDirtyImage, boolean isDirtyGraphics, boolean isDirtyColorTable) {
068        this.frameNumber     = frameNumber;
069        this.dirtyImage      = isDirtyImage;
070        this.dirtyGraphics   = isDirtyGraphics;
071        this.dirtyColorTable = isDirtyColorTable;
072    }
073
074    /**
075     * Get the frameNumber property.
076     *
077     * @return The frameNumber property.
078     */
079    public int getFrameNumber() {
080        return this.frameNumber;
081    }
082    
083    /**
084     * Get the dirtyImage property.
085     *
086     * @return The dirtyImage property.
087     */
088    public boolean getDirtyImage() {
089        return this.dirtyImage;
090    }
091
092    /**
093     * Get the dirtyGraphics property.
094     *
095     * @return The dirtyGraphics property.
096     */
097    public boolean getDirtyGraphics() {
098        return this.dirtyGraphics;
099    }
100
101
102    /**
103     * Get the dirtyColorTable property.
104     *
105     * @return The dirtyColorTable property.
106     */
107    public boolean getDirtyColorTable() {
108        return this.dirtyColorTable;
109    }
110
111    /**
112     * Set the frameNumber property.
113     *
114     * @param newValue The new vaue for the frameNumber property.
115     */
116    public void setFrameNumber(int newValue) {
117        this.frameNumber = newValue;
118    }
119    
120    /**
121     * Set the dirtyImage property.
122     *
123     * @param newValue The new vaue for the dirtyImage property.
124     */
125    public void setDirtyImage(boolean newValue) {
126        this.dirtyImage = newValue;
127    }
128
129    /**
130     * Set the dirtyGraphics property.
131     *
132     * @param newValue The new vaue for the dirtyGraphics property.
133     */
134    public void setDirtyGraphics(boolean newValue) {
135        this.dirtyGraphics = newValue;
136    }
137
138    /**
139     * Set the dirtyColorTable property.
140     *
141     * @param newValue The new vaue for the dirtyColorTable property.
142     */
143    public void setDirtyColorTable(boolean newValue) {
144        this.dirtyColorTable = newValue;
145    }
146
147    /**
148     * Get a String representation of this object
149     * @return a string representation
150     */
151    public String toString() {
152        boolean clean = true;
153        StringBuffer buf = new StringBuffer();
154        buf.append("frame ");
155        buf.append(this.frameNumber);
156        buf.append(": ");
157        if (this.dirtyImage) {
158                if (clean) buf.append("dirty ");
159                else buf.append (", ");
160                clean = false;
161                buf.append("image");
162        }
163        if (this.dirtyGraphics) {
164                if (clean) buf.append("dirty ");
165                else buf.append (", ");
166                clean = false;
167                buf.append("graphics");
168        }
169        if (this.dirtyColorTable) {
170                if (clean) buf.append("dirty ");
171                else buf.append (", ");
172                clean = false;
173                buf.append("colortable");
174        }
175        if (clean) buf.append("clean");
176        return buf.toString();
177    }
178
179}