mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
(function () {
|
|
var ns = $.namespace('pskl.service.palette');
|
|
|
|
var fileReaders = {
|
|
'gpl' : ns.reader.PaletteGplReader,
|
|
'pal' : ns.reader.PalettePalReader,
|
|
'txt' : ns.reader.PaletteTxtReader,
|
|
'img' : ns.reader.PaletteImageReader
|
|
};
|
|
|
|
ns.PaletteImportService = function () {};
|
|
ns.PaletteImportService.prototype.init = function () {};
|
|
|
|
ns.PaletteImportService.prototype.read = function (file, onSuccess, onError) {
|
|
var reader = this.getReader_(file, onSuccess, onError);
|
|
if (reader) {
|
|
reader.read();
|
|
} else {
|
|
console.error('Could not find reader for file : %s', file.name);
|
|
}
|
|
};
|
|
|
|
ns.PaletteImportService.prototype.isImage_ = function (file) {
|
|
return file.type.indexOf('image') === 0;
|
|
};
|
|
|
|
ns.PaletteImportService.prototype.getReader_ = function (file, onSuccess, onError) {
|
|
var ReaderClass = this.getReaderClass_(file);
|
|
if (ReaderClass) {
|
|
return new ReaderClass(file, onSuccess, onError);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
ns.PaletteImportService.prototype.getReaderClass_ = function (file) {
|
|
var ReaderClass;
|
|
if (this.isImage_(file)) {
|
|
ReaderClass = fileReaders.img;
|
|
} else {
|
|
var extension = this.getExtension_(file);
|
|
ReaderClass = fileReaders[extension];
|
|
}
|
|
return ReaderClass;
|
|
};
|
|
|
|
ns.PaletteImportService.prototype.getExtension_ = function (file) {
|
|
var parts = file.name.split('.');
|
|
var extension = parts[parts.length - 1];
|
|
return extension.toLowerCase();
|
|
};
|
|
})();
|