示例#1
0
        public override void SetPropertyValue(string propertyName, string propertyValue)
        {
            switch (propertyName)
            {
            case "ending":
                EndingChar = propertyValue;
                break;

            case "initcap":
                CapitalizeFirst = GSBoolean.StringToBool(propertyValue);
                break;

            case "locklast":
                LockLast = GSBoolean.StringToBool(propertyValue);
                break;

            default:
                base.SetPropertyValue(propertyName, propertyValue);
                break;
            }
        }
示例#2
0
        public override GSCore ExecuteMessage(string token, GSCoreCollection args)
        {
            GSCore result = GSCore.Void;

            switch (token)
            {
            case "canDisplay":
                int  disp = (int)args.getSafe(0).getIntegerValue();
                bool b    = (disp != 0 && (disp == -1 || GCDisplaySettings.Current.getValue(disp) != 0));
                result = new GSBoolean(b);
                break;

            case "getDispValue":
                result = new GSNumber(GCDisplaySettings.Current.getValue((int)args.getSafe(0).getIntegerValue()));
                break;

            case "new":
                switch (args.getSafe(0).getStringValue())
                {
                case "GregorianDateTime":
                    result = new GregorianDateTime();
                    break;

                case "DateTime":
                    result = new GSDateTime();
                    break;

                default:
                    result = GSCore.Void;
                    break;
                }
                break;

            case "calendarHeaderType":
                result = new GSNumber(GCDisplaySettings.Current.CalHeaderType);
                break;

            case "centerText":
                string text    = args.getSafe(0).getStringValue();
                int    length  = (int)args.getSafe(1).getIntegerValue();
                string padStr  = args.getSafe(2).getStringValue();
                char   padChar = padStr.Length > 0 ? padStr[0] : ' ';
                int    half    = (length - text.Length) / 2;
                if (half > 0)
                {
                    result = new GSString(string.Format("{0} {1} {0}", "".PadLeft(half - 1, padChar), text));
                }
                else
                {
                    result = new GSString(text);
                }
                break;

            case "getTabPos":
                double d = args.getSafe(0).getDoubleValue();
                result = new GSNumber(d * GCLayoutData.textSizeText / 24.0);
                break;

            case "getWeekdayName":
                result = new GSString(GCCalendar.GetWeekdayName((int)args.getSafe(0).getIntegerValue()));
                break;

            case "getTimezoneOffset":
            {
                string    tzname   = args.getSafe(0).getStringValue();
                TTimeZone tzid     = TTimeZone.FindTimeZoneByName(tzname);
                int       tzoffset = tzid.OffsetMinutes;
                char      sign     = (tzoffset > 0) ? '+' : '-';
                tzoffset = Math.Abs(tzoffset);
                result   = new GSString(string.Format("{0}{1:00}{2:00}", sign, tzoffset / 60, Math.Abs(tzoffset) % 60));
            }
            break;

            case "getTimezoneOffsetBias":
            {
                string    tzname   = args.getSafe(0).getStringValue();
                TTimeZone tzid     = TTimeZone.FindTimeZoneByName(tzname);
                int       tzoffset = tzid.OffsetMinutes + tzid.BiasMinutes;
                char      sign     = (tzoffset > 0) ? '+' : '-';
                tzoffset = Math.Abs(tzoffset);
                result   = new GSString(string.Format("{0}{1:00}{2:00}", sign, tzoffset / 60, Math.Abs(tzoffset) % 60));
            }
            break;

            case "getDaylightTimeStartDate":
            {
                GregorianDateTime vc             = new GregorianDateTime();
                string            loc_timezoneId = args.getSafe(0).getStringValue();
                int       year = (int)args.getSafe(1).getIntegerValue();
                TTimeZone tzid = TTimeZone.FindTimeZoneByName(loc_timezoneId);
                tzid.GetDaylightTimeStartDate(year, ref vc);
                result = vc;
            }
            break;

            case "getNormalTimeStartDate":
            {
                GregorianDateTime vc             = new GregorianDateTime();
                string            loc_timezoneId = args.getSafe(0).getStringValue();
                int       year = (int)args.getSafe(1).getIntegerValue();
                TTimeZone tzid = TTimeZone.FindTimeZoneByName(loc_timezoneId);
                tzid.GetNormalTimeStartDate(year, ref vc);
                result = vc;
            }
            break;

            default:
                result = base.ExecuteMessage(token, args);
                break;
            }

            return(result);
        }