Ejemplo n.º 1
0
        /// <summary>
        /// Returns the data that should be placed in the JTable at the given row
        /// and column. </summary>
        /// <param name="row"> the row for which to return data. </param>
        /// <param name="col"> the column for which to return data.  This is base 0. </param>
        /// <returns> the data that should be placed in the JTable at the given row and col. </returns>
        public virtual object getValueAt(int row, int col)
        {
            if (_sortOrder != null)
            {
                row = _sortOrder[row];
            }
            StateMod_DiversionRight dr = (StateMod_DiversionRight)_data.get(row);

            switch (col)
            {
            case COL_RIGHT_ID:
                return(dr.getID());

            case COL_RIGHT_NAME:
                return(dr.getName());

            case COL_STRUCT_ID:
                return(dr.getCgoto());

            case COL_ADMIN_NUM:
                return(dr.getIrtem());

            case COL_DCR_AMT:
                return(new double?(dr.getDcrdiv()));

            case COL_ON_OFF:
                return(new int?(dr.getSwitch()));

            default:
                return("");
            }
        }
        /// <summary>
        /// Returns the data that should be placed in the JTable at the given row
        /// and column. </summary>
        /// <param name="row"> the row for which to return data. </param>
        /// <param name="col"> the column for which to return data.  This is base 0. </param>
        /// <returns> the data that should be placed in the JTable at the given row and col. </returns>
        public virtual object getValueAt(int row, int col)
        {
            if (_sortOrder != null)
            {
                row = _sortOrder[row];
            }
            StateMod_DiversionRight dr = (StateMod_DiversionRight)_data.get(row);

            // necessary for table models that display rights for 1+ diversions,
            // so that the -1st column (ID) can also be displayed.  By doing it
            // this way, code can be shared between the two kinds of table models
            // and less maintenance is necessary.
            if (!__singleDiversion)
            {
                col--;
            }

            switch (col)
            {
            case COL_DIVERSION_ID:
                return(dr.getCgoto());

            case COL_RIGHT_ID:
                return(dr.getID());

            case COL_RIGHT_NAME:
                return(dr.getName());

            case COL_STRUCT_ID:
                return(dr.getCgoto());

            case COL_ADMIN_NUM:
                return(dr.getIrtem());

            case COL_DCR_AMT:
                return(new double?(dr.getDcrdiv()));

            case COL_ON_OFF:
                return(new int?(dr.getSwitch()));

            default:
                return("");
            }
        }
        /// <summary>
        /// Writes a list of StateMod_Diversion objects to a list file.  A header is
        /// printed to the top of the file, containing the commands used to generate the
        /// file.  Any strings in the body of the file that contain the field delimiter will be wrapped in "...". </summary>
        /// <param name="filename"> the name of the file to which the data will be written. </param>
        /// <param name="delimiter"> the delimiter to use for separating field values. </param>
        /// <param name="update"> whether to update an existing file, retaining the current
        /// header (true) or to create a new file with a new header. </param>
        /// <param name="data"> the list of objects to write. </param>
        /// <param name="newComments"> comments to add at the top of the file (e.g., command file, HydroBase version). </param>
        /// <exception cref="Exception"> if an error occurs. </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static void writeListFile(String filename, String delimiter, boolean update, java.util.List<StateMod_DiversionRight> data, java.util.List<String> newComments) throws Exception
        public static void writeListFile(string filename, string delimiter, bool update, IList <StateMod_DiversionRight> data, IList <string> newComments)
        {
            string routine = "StateMod_DiversionRight.writeListFile";
            int    size    = 0;

            if (data != null)
            {
                size = data.Count;
            }

            IList <string> fields = new List <string>();

            fields.Add("ID");
            fields.Add("Name");
            fields.Add("StationID");
            fields.Add("AdministrationNumber");
            fields.Add("Decree");
            fields.Add("OnOff");

            int fieldCount = fields.Count;

            string[] names   = new string[fieldCount];
            string[] formats = new string[fieldCount];
            int      comp    = StateMod_DataSet.COMP_DIVERSION_RIGHTS;
            string   s       = null;

            for (int i = 0; i < fieldCount; i++)
            {
                s          = fields[i];
                names[i]   = StateMod_Util.lookupPropValue(comp, "FieldName", s);
                formats[i] = StateMod_Util.lookupPropValue(comp, "Format", s);
            }

            string oldFile = null;

            if (update)
            {
                oldFile = IOUtil.getPathUsingWorkingDir(filename);
            }

            int j = 0;
            StateMod_DiversionRight right             = null;
            IList <string>          commentIndicators = new List <string>(1);

            commentIndicators.Add("#");
            IList <string> ignoredCommentIndicators = new List <string>(1);

            ignoredCommentIndicators.Add("#>");
            string[]      line   = new string[fieldCount];
            StringBuilder buffer = new StringBuilder();
            PrintWriter   @out   = null;

            try
            {
                // Add some basic comments at the top of the file.  Do this to a copy of the
                // incoming comments so that they are not modified in the calling code.
                IList <string> newComments2 = null;
                if (newComments == null)
                {
                    newComments2 = new List <string>();
                }
                else
                {
                    newComments2 = new List <string>(newComments);
                }
                newComments2.Insert(0, "");
                newComments2.Insert(1, "StateMod diversion rights as a delimited list file.");
                newComments2.Insert(2, "");
                @out = IOUtil.processFileHeaders(oldFile, IOUtil.getPathUsingWorkingDir(filename), newComments2, commentIndicators, ignoredCommentIndicators, 0);

                for (int i = 0; i < fieldCount; i++)
                {
                    if (i > 0)
                    {
                        buffer.Append(delimiter);
                    }
                    buffer.Append("\"" + names[i] + "\"");
                }

                @out.println(buffer.ToString());

                for (int i = 0; i < size; i++)
                {
                    right = data[i];

                    line[0] = StringUtil.formatString(right.getID(), formats[0]).Trim();
                    line[1] = StringUtil.formatString(right.getName(), formats[1]).Trim();
                    line[2] = StringUtil.formatString(right.getCgoto(), formats[2]).Trim();
                    line[3] = StringUtil.formatString(right.getIrtem(), formats[3]).Trim();
                    line[4] = StringUtil.formatString(right.getDcrdiv(), formats[4]).Trim();
                    line[5] = StringUtil.formatString(right.getSwitch(), formats[5]).Trim();

                    buffer = new StringBuilder();
                    for (j = 0; j < fieldCount; j++)
                    {
                        if (j > 0)
                        {
                            buffer.Append(delimiter);
                        }
                        if (line[j].IndexOf(delimiter, StringComparison.Ordinal) > -1)
                        {
                            line[j] = "\"" + line[j] + "\"";
                        }
                        buffer.Append(line[j]);
                    }

                    @out.println(buffer.ToString());
                }
            }
            catch (Exception e)
            {
                Message.printWarning(3, routine, e);
                throw e;
            }
            finally
            {
                if (@out != null)
                {
                    @out.flush();
                    @out.close();
                }
            }
        }
        /// <summary>
        /// Writes a diversion rights file. </summary>
        /// <param name="infile"> the original file </param>
        /// <param name="outfile"> the new file to write </param>
        /// <param name="theRights"> a Vector of StateMod_DiversionRight objects to right </param>
        /// <param name="newComments"> new comments to add to the header </param>
        /// <param name="useOldAdminNumFormat"> whether to use the old admin num format or not </param>
        /// <exception cref="Exception"> if an error occurs. </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static void writeStateModFile(String infile, String outfile, java.util.List<StateMod_DiversionRight> theRights, java.util.List<String> newComments, boolean useOldAdminNumFormat) throws Exception
        public static void writeStateModFile(string infile, string outfile, IList <StateMod_DiversionRight> theRights, IList <string> newComments, bool useOldAdminNumFormat)
        {
            IList <string> commentIndicators = new List <string>(1);

            commentIndicators.Add("#");
            IList <string> ignoredCommentIndicators = new List <string>(1);

            ignoredCommentIndicators.Add("#>");
            PrintWriter @out    = null;
            string      routine = "StateMod_DiversionRight.writeStateModFile";

            Message.printStatus(2, routine, "Writing diversion rights to: " + outfile);

            try
            {
                @out = IOUtil.processFileHeaders(IOUtil.getPathUsingWorkingDir(infile), IOUtil.getPathUsingWorkingDir(outfile), newComments, commentIndicators, ignoredCommentIndicators, 0);

                string iline;
                string cmnt     = "#>";
                string format_0 = null;
                if (useOldAdminNumFormat)
                {
                    format_0 = "%-12.12s%-24.24s%-12.12s%-12.12s    %8.2F%8d";
                }
                else
                {
                    format_0 = "%-12.12s%-24.24s%-12.12s%16.16s%8.2F%8d";
                }
                StateMod_DiversionRight right = null;
                IList <object>          v     = new List <object>(6);

                // print out the non-permanent header
                @out.println(cmnt);
                @out.println(cmnt + "***************************************************");
                @out.println(cmnt + " StateMod Direct Diversion Rights File");
                @out.println(cmnt);
                @out.println(cmnt + "     format:  (a12, a24, a12, f16.5, f8.2, i8)");
                @out.println(cmnt);
                @out.println(cmnt + "     ID       cidvri:  Diversion right ID ");
                @out.println(cmnt + "     Name      named:  Diversion right name");
                @out.println(cmnt + "     Struct    cgoto:  Direct Diversion Structure ID associated with this right");
                @out.println(cmnt + "     Admin #   irtem:  Administration number");
                @out.println(cmnt + "                       (small is senior).");
                @out.println(cmnt + "     Decree   dcrdiv:  Decreed amount (cfs)");
                @out.println(cmnt + "     On/Off   idvrsw:  Switch 0 = off, 1 = on");
                @out.println(cmnt + "                       YYYY = on for years >= YYYY.");
                @out.println(cmnt + "                       -YYYY = off for years > YYYY.");
                @out.println(cmnt);
                @out.println(cmnt + "   ID            Name              Struct            Admin #   Decree  On/Off");
                @out.println(cmnt + "EndHeader");
                @out.println(cmnt + "---------eb----------------------eb----------eb--------------eb------eb------e");

                int num = 0;
                if (theRights != null)
                {
                    num = theRights.Count;
                }
                for (int i = 0; i < num; i++)
                {
                    right = (StateMod_DiversionRight)theRights[i];
                    if (right == null)
                    {
                        continue;
                    }
                    v.Clear();
                    v.Add(right.getID());
                    v.Add(right.getName());
                    v.Add(right.getCgoto());
                    v.Add(right.getIrtem());
                    v.Add(new double?(right.getDcrdiv()));
                    v.Add(new int?(right.getSwitch()));
                    iline = StringUtil.formatString(v, format_0);
                    @out.println(iline);
                }
            }
            catch (Exception e)
            {
                Message.printWarning(3, routine, e);
                throw e;
            }
            finally
            {
                if (@out != null)
                {
                    @out.flush();
                    @out.close();
                }
            }
        }