63 | | * Create class !VideoResource extending !BookResource it should: |
64 | | * have an !InputStream variable for holding the video data. |
65 | | * have constructors to which the video can be passed as URL, File, !InputStream, !BinData. |
66 | | * have a getter for the variable holding the video data. |
| 63 | * Make !MediaBookResource abstract, add constructors accepting the media as !File, make the method doSaveContent working. |
| 64 | * Remove the code concerned with !MediaBookResource from the static method createAppropriateContent of !FrameFactory because !MediaBookResource is abstract. |
| 65 | * Remove the code concerned with !MediaBookResource from the method create of org.sophie2.main.model.persist.r1.ResourceLoader and org.sophie2.main.model.persist.r2.ResourceLoader because !MediaBookResource is abstract. |
| 66 | |
| 67 | * !MediaFrameContent should override the mainResource property of !FrameContent with template type extending !MediaBookResource, mainResource should be abstract. |
| 68 | * Create interface !MediaHandler which is base interface for handlers which are dealing with media it should have a method which returns an !InputStream representing the media. |
| 69 | * Create interface !MediaSceneElement which is base interface for all scene elements concerned with media. It should extend !SceneElement and it should have handler property with template type extending !MediaHandler. |
| 70 | * Create abstract class !MediaContentView which extends !ContentView. It should override the element property with template type extending !MediaSceneElement and element should remain abstract, it should also override the model property with template type extending !MediaFrameContent and it model should remain abstract. |
| 71 | |
| 72 | * Create class !VideoResource extending !MediaBookResource it should: |
| 73 | * have constructors to which the video can be passed as !File or !BinData. |
| 74 | * String getResourceKind()should return "video-resource". |
79 | | * The interface !VideoHandler should be changed so that it contains a final property with template type !InputStream. |
| 83 | * Create class !VideoContentView extending !MediaContentView it should: |
| 84 | * implement the model property with template type !VideoFrameContent. |
| 85 | * implement the element property with template type extending !VideoSceneElement. |
| 86 | * the concrete implementation of !VideoSceneElement should implement handler as an !AutoProperty depending on model. |
| 87 | * implement VideoHandler so that !VideoSceneElement can be implemented. |
| 88 | |
| 89 | * Add code to the static method createAppropriateContent of !FrameFactory so that it returns !VideoFrameContent if the resource passed to it is of type !VideoBookResource. |
| 90 | * Add code to the method create of org.sophie2.main.model.persist.r1.ResourceLoader and org.sophie2.main.model.persist.r2.ResourceLoader so that it returns !VideoBookResource if the !Storage passed to it contains "VideoBookResource". |