예제 #1
0
        public async void Initialize(string renderThemeFilePath, XmlRenderThemeMenuCallback menuCallback)
        {
            var fileExists = await FileSystem.Current.LocalStorage.CheckExistsAsync(renderThemeFilePath);

            if (fileExists == ExistenceCheckResult.NotFound)
            {
                throw new PCLStorage.Exceptions.FileNotFoundException("file does not exist: " + renderThemeFilePath);
            }
            else if (fileExists == ExistenceCheckResult.FolderExists)
            {
                throw new PCLStorage.Exceptions.FileNotFoundException("not a file: " + renderThemeFilePath);
            }

            // Open file
            this.renderThemeFile = await FileSystem.Current.LocalStorage.GetFileAsync(renderThemeFilePath);

            this.renderThemeFileStream = await this.renderThemeFile.OpenAsync(FileAccess.Read);

            this.menuCallback = menuCallback;

            if (this.renderThemeFileStream == null)
            {
                throw new PCLStorage.Exceptions.FileNotFoundException("cannot read file: " + renderThemeFile.Path);
            }

            // TODO: Add lastModified to PCLStorage
            this.lastModifiedTime = DateTimeHelperClass.CurrentUnixTimeMillis(); // renderThemeFile.lastModified();
            if (this.lastModifiedTime == 0L)
            {
                throw new PCLStorage.Exceptions.FileNotFoundException("cannot read last modified time: " + renderThemeFile.Path);
            }
        }
 /// <param name="relativePathPrefix"> the prefix for all relative resource paths. </param>
 /// <param name="inputStream">        an input stream containing valid render theme XML data. </param>
 /// <param name="menuCallback">       the interface callback to create a settings menu on the fly. </param>
 public StreamRenderTheme(string relativePathPrefix, System.IO.Stream inputStream, XmlRenderThemeMenuCallback menuCallback)
 {
     mRelativePathPrefix = relativePathPrefix;
     mInputStream        = new BufferedInputStream(inputStream);
     mInputStream.mark(0);
     mMenuCallback = menuCallback;
 }
예제 #3
0
        /// <param name="fileName">     the path to the XML render theme file. </param>
        /// <param name="menuCallback"> the interface callback to create a settings menu on the fly. </param>
        /// <exception cref="ThemeException"> if the file does not exist or cannot be read. </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public ExternalRenderTheme(String fileName, XmlRenderThemeMenuCallback menuCallback) throws org.oscim.theme.IRenderTheme.ThemeException
        public ExternalRenderTheme(string fileName, XmlRenderThemeMenuCallback menuCallback)
        {
            File themeFile = new File(fileName);

            if (!themeFile.exists())
            {
                throw new ThemeException("file does not exist: " + themeFile.AbsolutePath);
            }
            else if (!themeFile.File)
            {
                throw new ThemeException("not a file: " + fileName);
            }
            else if (!themeFile.canRead())
            {
                throw new ThemeException("cannot read file: " + fileName);
            }

            mFileModificationDate = themeFile.lastModified();
            if (mFileModificationDate == 0L)
            {
                throw new ThemeException("cannot read last modification time");
            }
            mPath         = fileName;
            mMenuCallback = menuCallback;
        }
예제 #4
0
        /// <summary>
        /// Create external render theme async
        /// </summary>
        /// <param name="renderThemeFile"></param>
        /// <param name="menuCallback"></param>
        /// <returns></returns>
        public static ExternalRenderTheme CreateExternalRenderTheme(string renderThemeFilePath, XmlRenderThemeMenuCallback menuCallback = null)
        {
            var externalRenderTheme = new ExternalRenderTheme();

            externalRenderTheme.Initialize(renderThemeFilePath, menuCallback);

            return(externalRenderTheme);
        }
예제 #5
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static IRenderTheme load(String renderThemePath, XmlRenderThemeMenuCallback menuCallback, ThemeCallback themeCallback) throws org.oscim.theme.IRenderTheme_ThemeException
        public static IRenderTheme load(string renderThemePath, XmlRenderThemeMenuCallback menuCallback, ThemeCallback themeCallback)
        {
            return(load(new ExternalRenderTheme(renderThemePath, menuCallback), themeCallback));
        }