77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| class DomainObjectViewProvider {
 | |
|     constructor(openmct) {
 | |
|         this.key = 'doViewProvider';
 | |
|         this.name = 'Domain Object View Provider';
 | |
|         this.openmct = openmct;
 | |
|     }
 | |
| 
 | |
|     canView(domainObject) {
 | |
|         return domainObject.type === 'imageFileInput'
 | |
|             || domainObject.type === 'jsonFileInput';
 | |
|     }
 | |
| 
 | |
|     view(domainObject, objectPath) {
 | |
|         let content;
 | |
| 
 | |
|         return {
 | |
|             show: function (element) {
 | |
|                 const body = domainObject.selectFile.body;
 | |
|                 const type = typeof body;
 | |
| 
 | |
|                 content = document.createElement('div');
 | |
|                 content.id = 'file-input-type';
 | |
|                 content.textContent = JSON.stringify(type);
 | |
|                 element.appendChild(content);
 | |
|             },
 | |
|             destroy: function (element) {
 | |
|                 element.removeChild(content);
 | |
|                 content = undefined;
 | |
|             }
 | |
|         };
 | |
|     }
 | |
| }
 | |
| 
 | |
| document.addEventListener('DOMContentLoaded', () => {
 | |
|     const openmct = window.openmct;
 | |
| 
 | |
|     openmct.types.addType('jsonFileInput', {
 | |
|         key: 'jsonFileInput',
 | |
|         name: "JSON File Input Object",
 | |
|         creatable: true,
 | |
|         form: [
 | |
|             {
 | |
|                 name: 'Upload File',
 | |
|                 key: 'selectFile',
 | |
|                 control: 'file-input',
 | |
|                 required: true,
 | |
|                 text: 'Select File...',
 | |
|                 type: 'application/json',
 | |
|                 property: [
 | |
|                     "selectFile"
 | |
|                 ]
 | |
|             }
 | |
|         ]
 | |
|     });
 | |
| 
 | |
|     openmct.types.addType('imageFileInput', {
 | |
|         key: 'imageFileInput',
 | |
|         name: "Image File Input Object",
 | |
|         creatable: true,
 | |
|         form: [
 | |
|             {
 | |
|                 name: 'Upload File',
 | |
|                 key: 'selectFile',
 | |
|                 control: 'file-input',
 | |
|                 required: true,
 | |
|                 text: 'Select File...',
 | |
|                 type: 'image/*',
 | |
|                 property: [
 | |
|                     "selectFile"
 | |
|                 ]
 | |
|             }
 | |
|         ]
 | |
|     });
 | |
| 
 | |
|     openmct.objectViews.addProvider(new DomainObjectViewProvider(openmct));
 | |
| });
 | 
