scratch-sb1-converter
Version:
Scratch 1 (.sb) to Scratch 2 (.sb2) conversion library for Scratch 3.0
30 lines (26 loc) • 1.08 kB
JavaScript
import {Field, Header, Reference, Value} from '../squeak/fields';
import {TYPES, TYPE_NAMES} from '../squeak/ids';
class FieldRenderer {
static check (data) {
return data instanceof Field;
}
render (data, view) {
if (data instanceof Reference) {
view.renderTitle(`Reference { index: ${data.index} }`);
} else if (data instanceof Header) {
view.renderTitle(`Header { classId: ${data.classId} (${TYPE_NAMES[data.classId]}), size: ${data.size} }`);
} else if ((data instanceof Value) && (
data.classId === TYPES.COLOR ||
data.classId === TYPES.TRANSLUCENT_COLOR
)) {
view.renderTitle((+data).toString(16).padStart(8, '0')).style.fontFamily = 'monospace';
} else if (data instanceof Value) {
if (data.value && data.value.buffer) {
view.renderTitle(`${data.value.constructor.name} (${data.value.length})`);
} else {
view.renderTitle(String(data));
}
}
}
}
export {FieldRenderer};