├── .documents ├── SWT Vortrag.pdf └── Slides_submission.pdf ├── .github └── workflows │ └── smalltalk-ci.yml ├── .smalltalk.ston ├── .squot ├── LICENSE ├── README.md ├── packages ├── AnimationsEditor-Core.package │ ├── .filetree │ ├── .squot-contents │ ├── AnimationsEditor.class │ │ ├── README.md │ │ ├── class │ │ │ └── open.st │ │ ├── instance │ │ │ ├── addKeyframe.st │ │ │ ├── addPropertiesToImageMorphOn..st │ │ │ ├── addPropertiesToMorphOn..st │ │ │ ├── addPropertiesToTextMorphOn..st │ │ │ ├── addSelectedMorphFor..st │ │ │ ├── addSubPropertiesOn..st │ │ │ ├── addTargetMorph..st │ │ │ ├── buildAddKeyframeButtonWith..st │ │ │ ├── buildAddMorphButtonWith..st │ │ │ ├── buildButtonBarWith..st │ │ │ ├── buildInformationBarWith..st │ │ │ ├── buildLoadJsonButtonWith..st │ │ │ ├── buildLoadingMainWindow..st │ │ │ ├── buildMainWindowWith..st │ │ │ ├── buildPlayButtonWith..st │ │ │ ├── buildPositionUIPanelWith..st │ │ │ ├── buildPropertiesTreeWith..st │ │ │ ├── buildResetButtonWith..st │ │ │ ├── buildSaveButtonWith..st │ │ │ ├── buildTimeline..st │ │ │ ├── buildWith..st │ │ │ ├── collectAllEmptyPanels.st │ │ │ ├── collectInformationBar.st │ │ │ ├── collectPropertyTreeMorph.st │ │ │ ├── createColorPropertyOn..st │ │ │ ├── createImageSourcePropertyOn..st │ │ │ ├── createPositionPropertyOn..st │ │ │ ├── createPropertyWith..st │ │ │ ├── createRotationPropertyOn..st │ │ │ ├── createSizePropertyOn..st │ │ │ ├── createTextPropertyOn..st │ │ │ ├── defaultEmptyPanels.st │ │ │ ├── defaultPropertyPanelPosition.st │ │ │ ├── editorTitle..st │ │ │ ├── editorTitle.st │ │ │ ├── emptyPanels..st │ │ │ ├── emptyPanels.st │ │ │ ├── getDeepestMorph.at..st │ │ │ ├── handleListenEvent..st │ │ │ ├── handleLoadJsonButton.st │ │ │ ├── informationBar..st │ │ │ ├── informationBar.st │ │ │ ├── informationBarText..st │ │ │ ├── informationBarText.st │ │ │ ├── initialize.st │ │ │ ├── initializeJsonHandler.st │ │ │ ├── initializePropertyEditorPanel.st │ │ │ ├── insertMorph.Into..st │ │ │ ├── jsonHandler..st │ │ │ ├── jsonHandler.st │ │ │ ├── loadJsonWithExceptionHandling..st │ │ │ ├── mainWindow..st │ │ │ ├── mainWindow.st │ │ │ ├── messagePlayAnimations.st │ │ │ ├── numberButtons.st │ │ │ ├── playAnimations.st │ │ │ ├── propertyEditorPanel..st │ │ │ ├── propertyEditorPanel.st │ │ │ ├── propertyEditorPanelChildren..st │ │ │ ├── propertyEditorPanelChildren.st │ │ │ ├── propertyList..st │ │ │ ├── propertyList.st │ │ │ ├── propertyStartEnd..st │ │ │ ├── propertyStartEnd.st │ │ │ ├── propertyTreeMorph..st │ │ │ ├── propertyTreeMorph.st │ │ │ ├── resetTargetMorph.st │ │ │ ├── saveAnimations.st │ │ │ ├── savedAnimationText.st │ │ │ ├── seedProperties.st │ │ │ ├── selectMorphByHand.st │ │ │ ├── selectedTreeNode..st │ │ │ ├── selectedTreeNode.st │ │ │ ├── switchTimelineToMorphWith..st │ │ │ ├── timeline..st │ │ │ ├── timeline.st │ │ │ ├── timelines..st │ │ │ ├── timelines.st │ │ │ ├── toolBuilder..st │ │ │ ├── toolBuilder.st │ │ │ ├── treeSpec..st │ │ │ ├── treeSpec.st │ │ │ ├── updateInformationText..st │ │ │ ├── windowReference..st │ │ │ └── windowReference.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorColorPicker.class │ │ ├── README.md │ │ ├── instance │ │ │ └── updateTargetColor.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorJsonHandler.class │ │ ├── README.md │ │ ├── class │ │ │ └── on..st │ │ ├── instance │ │ │ ├── addColorFrameAt.with..st │ │ │ ├── addFrameAt.with..st │ │ │ ├── addImageSourceFrameAt.with..st │ │ │ ├── addMorphFromSpec..st │ │ │ ├── addMorphToJson.with..st │ │ │ ├── addPositionFrameAt.with..st │ │ │ ├── addRotationFrameAt.with..st │ │ │ ├── addSizeFrameAt.with..st │ │ │ ├── addTextFrameAt.with..st │ │ │ ├── animationsEditor..st │ │ │ ├── animationsEditor.st │ │ │ ├── createFrameCollection..st │ │ │ ├── createMorphDictionary..st │ │ │ ├── createMorphFromString..st │ │ │ ├── createStructure.with..st │ │ │ ├── dictionaryToJson..st │ │ │ ├── framePropertiesFor.with..st │ │ │ ├── loadFrames.with..st │ │ │ ├── loadJson..st │ │ │ ├── loadMorphs..st │ │ │ ├── loadStartEnd..st │ │ │ ├── morphTypes.st │ │ │ ├── outputFileDirectory.st │ │ │ ├── propertiesDictionary.st │ │ │ ├── saveToJson..st │ │ │ ├── subpropertyFrom..st │ │ │ └── writeJsonToFile.with..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorKeyframe.class │ │ ├── README.md │ │ ├── class │ │ │ └── on.withPosition.withFrame.withValue..st │ │ ├── instance │ │ │ ├── frame..st │ │ │ ├── frame.st │ │ │ ├── initialize.st │ │ │ ├── setCenteredPosition..st │ │ │ ├── track..st │ │ │ ├── track.st │ │ │ └── value..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorProperty.class │ │ ├── README.md │ │ ├── class │ │ │ ├── on..st │ │ │ └── onParent..st │ │ ├── instance │ │ │ ├── ^less.equals.st │ │ │ ├── ^less.st │ │ │ ├── addKeyframe.st │ │ │ ├── animationString.st │ │ │ ├── animationsEditor..st │ │ │ ├── animationsEditor.st │ │ │ ├── buildUIWith..st │ │ │ ├── canCreateAnimation.st │ │ │ ├── canRenderUI.st │ │ │ ├── defaultSubproperties.st │ │ │ ├── hasSubproperties.st │ │ │ ├── isStartEnd.st │ │ │ ├── messageSelectAnimatedProperty.st │ │ │ ├── parentProperty..st │ │ │ ├── parentProperty.st │ │ │ ├── resetTargetMorphForAllProperties.st │ │ │ ├── subproperties..st │ │ │ ├── subproperties.st │ │ │ ├── targetMorph..st │ │ │ ├── targetMorph.st │ │ │ ├── title..st │ │ │ ├── title.st │ │ │ └── updateTargetMorphForAllProperties..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyAnimated.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── addKeyframe.st │ │ │ ├── addStartFrame.st │ │ │ ├── animationProperty.st │ │ │ ├── buildInputFrameWith..st │ │ │ ├── buildTextFrameWith..st │ │ │ ├── canCreateAnimation.st │ │ │ ├── canRenderUI.st │ │ │ ├── createAnimationSequenceWithStartEnd..st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── createAtomicAnimationFor.withKey.withPreviousKey..st │ │ │ ├── createCompositeAnimationWith.withKey.withPreviousKey..st │ │ │ ├── currentValue..st │ │ │ ├── currentValue.st │ │ │ ├── defaultFrame.st │ │ │ ├── defaultValue.st │ │ │ ├── executeCompositeAnimation..st │ │ │ ├── frame..st │ │ │ ├── frame.st │ │ │ ├── initialize.st │ │ │ ├── isFirstFrame.st │ │ │ ├── isKey.outOfBound..st │ │ │ ├── isKeyframeExceptStartFrameExistent.st │ │ │ ├── messageKeyframeOutOfBounds.st │ │ │ ├── messageNotEnoughKeyframes.st │ │ │ ├── playAnimationWithStartEnd..st │ │ │ ├── resetTargetMorph.st │ │ │ ├── setAnimationProperty..st │ │ │ ├── setStartValue.st │ │ │ ├── targetDuration..st │ │ │ ├── targetDuration.st │ │ │ ├── targetFrame..st │ │ │ ├── targetFrame.st │ │ │ ├── targetValues..st │ │ │ └── targetValues.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyColor.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildColorPickerWith..st │ │ │ ├── buildInputColorWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildTextColorWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── colorPicker..st │ │ │ ├── colorPicker.st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── currentValueAsHexRGBString.st │ │ │ ├── currentValueAsString.st │ │ │ ├── currentValueFromText..st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ ├── setAnimationProperty..st │ │ │ └── update..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyImageSource.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── addStartFrame.st │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildInputSourceWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildSelectFileButtonWith..st │ │ │ ├── buildTextImageSourceWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── currentValue..st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ ├── openFileSelection.st │ │ │ ├── resetTargetMorph.st │ │ │ └── setAnimationProperty..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyPosition.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildInputXWith..st │ │ │ ├── buildInputYWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildTextXWith..st │ │ │ ├── buildTextYWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── changeTargetMorphToFlexShell.st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ ├── positionX..st │ │ │ ├── positionX.st │ │ │ ├── positionY..st │ │ │ ├── positionY.st │ │ │ └── setAnimationProperty..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyRotation.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildInputRotationWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildTextRotationWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── currentValue..st │ │ │ ├── currentValueAsString.st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ └── setAnimationProperty..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertySize.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildInputHeightWith..st │ │ │ ├── buildInputWidthWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildTextHeightWith..st │ │ │ ├── buildTextWidthWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ ├── setAnimationProperty..st │ │ │ ├── targetHeight..st │ │ │ ├── targetHeight.st │ │ │ ├── targetWidth..st │ │ │ └── targetWidth.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyStartEnd.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── addStartFrame.st │ │ │ ├── animationString.st │ │ │ ├── buildEndFrameWith..st │ │ │ ├── buildEndInputWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildStartFrameWith..st │ │ │ ├── buildStartInputWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── canRenderUI.st │ │ │ ├── defaultEndTime.st │ │ │ ├── defaultStartTime.st │ │ │ ├── duration.st │ │ │ ├── endTime..st │ │ │ ├── endTime.st │ │ │ ├── endTimeAsString.st │ │ │ ├── initialize.st │ │ │ ├── isStartEnd.st │ │ │ ├── startTime..st │ │ │ ├── startTime.st │ │ │ └── startTimeAsString.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyText.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationProperty.st │ │ │ ├── animationString.st │ │ │ ├── buildInputTextWith..st │ │ │ ├── buildPanelWith..st │ │ │ ├── buildTextTextWith..st │ │ │ ├── buildUIWith..st │ │ │ ├── createAnimationWith.withPreviousKey..st │ │ │ ├── currentValue..st │ │ │ ├── defaultValue.st │ │ │ ├── initialize.st │ │ │ └── setAnimationProperty..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyWrapper.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── asString.st │ │ │ ├── contents.st │ │ │ ├── hasContents.st │ │ │ ├── icon.st │ │ │ └── setItem.model.parent..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTimebar.class │ │ ├── README.md │ │ ├── class │ │ │ └── on.withExtent..st │ │ ├── instance │ │ │ ├── addEndLine.st │ │ │ ├── addIntermediateLines.st │ │ │ ├── addLineFrom.to..st │ │ │ ├── addStartEndLine.st │ │ │ ├── addStartLine.st │ │ │ ├── initialize.st │ │ │ ├── lineHeight.st │ │ │ ├── lineWidth.st │ │ │ ├── startEndLineHeight.st │ │ │ └── updateScale.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTimeline.class │ │ ├── README.md │ │ ├── class │ │ │ └── newWith..st │ │ ├── instance │ │ │ ├── addTimebar.st │ │ │ ├── addTrackFor.withPosition..st │ │ │ ├── animationsEditor..st │ │ │ ├── animationsEditor.st │ │ │ ├── createTracks.st │ │ │ ├── deleteTracks.st │ │ │ ├── endTime..st │ │ │ ├── endTime.st │ │ │ ├── initialExtent.st │ │ │ ├── initialize.st │ │ │ ├── initializeStartEndTime.st │ │ │ ├── property..st │ │ │ ├── property.st │ │ │ ├── scrollPane.st │ │ │ ├── setDefaultProperty.st │ │ │ ├── startTime..st │ │ │ ├── startTime.st │ │ │ ├── switchTimelineTo..st │ │ │ ├── timebar..st │ │ │ ├── timebar.st │ │ │ ├── trackHeight.st │ │ │ ├── update..st │ │ │ └── updateExtent.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTimelineObject.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── convertFrameToPosition..st │ │ │ ├── endMargin.st │ │ │ ├── lineSegmentWidth.st │ │ │ ├── startMargin.st │ │ │ ├── timeline..st │ │ │ └── timeline.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTrack.class │ │ ├── README.md │ │ ├── class │ │ │ └── on.withProperty.withPosition.withExtent..st │ │ ├── instance │ │ │ ├── addKeyframes.st │ │ │ ├── initialize.st │ │ │ ├── initializeMorph.st │ │ │ ├── initializeText.st │ │ │ ├── initializeTrack.st │ │ │ ├── keyframeMargin.st │ │ │ ├── property..st │ │ │ ├── property.st │ │ │ ├── textMargin.st │ │ │ └── update..st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── monticello.meta │ │ ├── categories.st │ │ └── initializers.st │ └── properties.json ├── AnimationsEditor-Tests.package │ ├── .filetree │ ├── .squot-contents │ ├── AnimationsEditorJSONTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationsEditorInstance..st │ │ │ ├── animationsEditorInstance.st │ │ │ ├── colorFrameDictionary.st │ │ │ ├── defaultNextTime.st │ │ │ ├── defaultTime.st │ │ │ ├── dummyProperty.st │ │ │ ├── imageFrameDictionary.st │ │ │ ├── jsonHandler..st │ │ │ ├── jsonHandler.st │ │ │ ├── loadColorData.st │ │ │ ├── loadImageData.st │ │ │ ├── loadImageSetUp.st │ │ │ ├── loadMorphsData.st │ │ │ ├── loadPositionData.st │ │ │ ├── loadRotationData.st │ │ │ ├── loadSizeData.st │ │ │ ├── loadStartEndTimeData.st │ │ │ ├── loadTextAndImageTearDown.st │ │ │ ├── loadTextData.st │ │ │ ├── loadTextSetUp.st │ │ │ ├── loadTextTearDown.st │ │ │ ├── morph..st │ │ │ ├── morph.st │ │ │ ├── positionFrameDictionary.st │ │ │ ├── positionFramesCollection.st │ │ │ ├── positionTreeNode.st │ │ │ ├── rotationFrameDictionary.st │ │ │ ├── setUp.st │ │ │ ├── sizeFrameDictionary.st │ │ │ ├── tearDown.st │ │ │ ├── testAddColorFrame.st │ │ │ ├── testAddImageSourceFrame.st │ │ │ ├── testAddMorphToJson.st │ │ │ ├── testAddPositionFrame.st │ │ │ ├── testAddRotationFrame.st │ │ │ ├── testAddSizeFrame.st │ │ │ ├── testAddTextFrame.st │ │ │ ├── testCreateCircleMorph.st │ │ │ ├── testCreateDefaultMorph.st │ │ │ ├── testCreateFrameCollection.st │ │ │ ├── testCreateImageMorph.st │ │ │ ├── testCreateMorph.st │ │ │ ├── testCreateMorphDictionary.st │ │ │ ├── testCreateRectangleMorph.st │ │ │ ├── testCreateStructure.st │ │ │ ├── testCreateTextMorph.st │ │ │ ├── testDictionaryToJson.st │ │ │ ├── testLoadColor.st │ │ │ ├── testLoadImage.st │ │ │ ├── testLoadMorphs.st │ │ │ ├── testLoadPosition.st │ │ │ ├── testLoadRotation.st │ │ │ ├── testLoadSize.st │ │ │ ├── testLoadStartEndTime.st │ │ │ ├── testLoadText.st │ │ │ ├── testWriteJsonToFile.st │ │ │ └── textFrameDictionary.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyAnimatedTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── addDefaultKeyframe.st │ │ │ ├── morph..st │ │ │ ├── morph.st │ │ │ ├── morphClass.st │ │ │ ├── property..st │ │ │ ├── property.st │ │ │ ├── propertyClass.st │ │ │ ├── setUp.st │ │ │ └── tearDown.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyColorTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── propertyClass.st │ │ │ ├── testAddStartFrame.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ ├── testSetStartValue.st │ │ │ ├── testTargetColorFromString.st │ │ │ ├── testTargetColorGetterAsString.st │ │ │ ├── testUpdateTargetColor.st │ │ │ └── testUpdateTargetColorTestMorphChanged.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyImageSourceTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── dummyImage.st │ │ │ ├── dummyImage2.st │ │ │ ├── dummyImagePathJPEG.st │ │ │ ├── morphClass.st │ │ │ ├── propertyClass.st │ │ │ ├── setUp.st │ │ │ ├── tearDown.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ └── testSetStartValue.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyPositionTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── propertyClass.st │ │ │ ├── testAddStartFrame.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ └── testSetStartValue.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyRotationTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── propertyClass.st │ │ │ ├── testAddStartFrame.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ └── testSetStartValue.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertySizeTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── propertyClass.st │ │ │ ├── testAddStartFrame.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ └── testSetStartValue.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyStartEndTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── propertyStartEnd..st │ │ │ ├── propertyStartEnd.st │ │ │ ├── setUp.st │ │ │ └── testInstanceCreation.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationsEditorInstance..st │ │ │ ├── animationsEditorInstance.st │ │ │ ├── morph..st │ │ │ ├── morph.st │ │ │ ├── property..st │ │ │ ├── property.st │ │ │ ├── setUp.st │ │ │ ├── tearDown.st │ │ │ ├── testAddKeyframe.st │ │ │ ├── testComparators.st │ │ │ ├── testCreateAnimationSequenceWithStartEnd.st │ │ │ ├── testEmptySubProperties.st │ │ │ ├── testHasSubProperties.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testMessageNotEnoughKeyframes.st │ │ │ ├── testOnlyPlaysAnimationInsideStartEndTime.st │ │ │ ├── testPlayAnimationWithStartEnd.st │ │ │ ├── testShowMessageKeyframeOutOfBounds.st │ │ │ ├── testShowMessageSelectAnimatedProperty.st │ │ │ └── testTargetValuesIsSorted.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyTextTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── morphClass.st │ │ │ ├── propertyClass.st │ │ │ ├── testAddStartFrame.st │ │ │ ├── testAnimationProperty.st │ │ │ ├── testCreateAnimation.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testKeyframeExceptStartFrameIsExistent.st │ │ │ ├── testKeyframeExceptStartFrameIsNotExistent.st │ │ │ ├── testResetTargetMorph.st │ │ │ └── testSetStartValue.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorPropertyWrapperTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── property..st │ │ │ ├── property.st │ │ │ ├── propertyWrapper..st │ │ │ ├── propertyWrapper.st │ │ │ ├── setUp.st │ │ │ ├── testAsString.st │ │ │ ├── testContents.st │ │ │ ├── testHasContents.st │ │ │ ├── testHasEmptyContents.st │ │ │ └── testInstanceCreation.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationsEditorInstance..st │ │ │ ├── animationsEditorInstance.st │ │ │ ├── setUp.st │ │ │ ├── tearDown.st │ │ │ ├── testGetDeepestMorph.st │ │ │ ├── testInstanceCreation.st │ │ │ ├── testPlayAnimations.st │ │ │ ├── testSelectMorphByHand.st │ │ │ ├── testShowMessagePlayAnimation.st │ │ │ ├── testTreeSpecPropertyStartEnd.st │ │ │ ├── testTreeSpecWithNoMorph.st │ │ │ ├── testTreeSpecWithOneMorph.st │ │ │ └── testTreeSpecWithOneMorphPosition.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── AnimationsEditorTimelineTest.class │ │ ├── README.md │ │ ├── instance │ │ │ ├── animationPosition.st │ │ │ ├── animationsEditorInstance..st │ │ │ ├── animationsEditorInstance.st │ │ │ ├── calculateKeyframeCenterOn..st │ │ │ ├── createKeyframeWith.on..st │ │ │ ├── endFrame.st │ │ │ ├── frameNumber100.st │ │ │ ├── keyframeHeightOn..st │ │ │ ├── keyframeWidthOn..st │ │ │ ├── middleOfAnimationTime.st │ │ │ ├── paddingDistance.st │ │ │ ├── positionTrack..st │ │ │ ├── positionTrack.st │ │ │ ├── propertyPosition.st │ │ │ ├── secondLastOn..st │ │ │ ├── setUp.st │ │ │ ├── startFrame.st │ │ │ ├── tearDown.st │ │ │ ├── testAddKeyframeToRightPosition.st │ │ │ ├── testDistanceBetweenKeyframes.st │ │ │ ├── timeline..st │ │ │ └── timeline.st │ │ ├── methodProperties.json │ │ └── properties.json │ ├── monticello.meta │ │ ├── categories.st │ │ └── initializers.st │ └── properties.json └── BaselineOfAnimationsEditor.package │ ├── .filetree │ ├── .squot-contents │ ├── BaselineOfAnimationsEditor.class │ ├── README.md │ ├── instance │ │ └── baseline..st │ ├── methodProperties.json │ └── properties.json │ ├── monticello.meta │ ├── categories.st │ └── initializers.st │ └── properties.json └── scripts └── preLoading.st /.documents/SWT Vortrag.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/.documents/SWT Vortrag.pdf -------------------------------------------------------------------------------- /.documents/Slides_submission.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/.documents/Slides_submission.pdf -------------------------------------------------------------------------------- /.smalltalk.ston: -------------------------------------------------------------------------------- 1 | SmalltalkCISpec { 2 | #loading : [ 3 | SCIMetacelloLoadSpec { 4 | #baseline : 'AnimationsEditor', 5 | #directory : 'packages', 6 | #load : 'tests', 7 | #platforms : [ #squeak ] 8 | } 9 | ], 10 | #preLoading : [ 11 | 'scripts/preLoading.st' 12 | ], 13 | #testing : { 14 | #coverage : { 15 | #categories : [ 'AnimationsEditor-Core' ] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.squot: -------------------------------------------------------------------------------- 1 | OrderedDictionary { 2 | 'packages/BaselineOfAnimationsEditor.package' : #SquotCypressCodeSerializer, 3 | 'packages/AnimationsEditor-Tests.package' : #SquotCypressCodeSerializer, 4 | 'packages/AnimationsEditor-Core.package' : #SquotCypressCodeSerializer 5 | } -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/.filetree: -------------------------------------------------------------------------------- 1 | { 2 | "noMethodMetaData" : true, 3 | "separateMethodMetaAndSource" : false, 4 | "useCypressPropertiesFile" : true } 5 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/.squot-contents: -------------------------------------------------------------------------------- 1 | SquotTrackedObjectMetadata { 2 | #objectClassName : #PackageInfo, 3 | #objectsReplacedByNames : true, 4 | #serializer : #SquotCypressCodeSerializer 5 | } -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/README.md: -------------------------------------------------------------------------------- 1 | This class builds the complete AnimationsEditor and handels all userinteraction. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/class/open.st: -------------------------------------------------------------------------------- 1 | initialization 2 | open 3 | | instance window | 4 | 5 | instance := self new. 6 | window := ToolBuilder open: instance. 7 | instance windowReference: window. 8 | ^ instance. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addKeyframe.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addKeyframe 3 | self updateInformationText: 'Added keyframe.'. 4 | self selectedTreeNode addKeyframe. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addPropertiesToImageMorphOn..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addPropertiesToImageMorphOn: aProperty 3 | aProperty subproperties 4 | at: 'imageSource' 5 | put: (self createImageSourcePropertyOn: aProperty); 6 | 7 | at: 'rotation' 8 | put: (self createRotationPropertyOn: aProperty); 9 | 10 | at: 'position' 11 | put: (self createPositionPropertyOn: aProperty). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addPropertiesToMorphOn..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addPropertiesToMorphOn: aProperty 3 | aProperty subproperties 4 | at: 'color' 5 | put: (self createColorPropertyOn: aProperty); 6 | 7 | at: 'position' 8 | put: (self createPositionPropertyOn: aProperty); 9 | 10 | at: 'size' 11 | put: (self createSizePropertyOn: aProperty); 12 | 13 | at: 'rotation' 14 | put: (self createRotationPropertyOn: aProperty). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addPropertiesToTextMorphOn..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addPropertiesToTextMorphOn: aProperty 3 | aProperty subproperties 4 | at: 'rotation' 5 | put: (self createRotationPropertyOn: aProperty); 6 | 7 | at: 'color' 8 | put: (self createColorPropertyOn: aProperty); 9 | 10 | at: 'position' 11 | put: (self createPositionPropertyOn: aProperty); 12 | 13 | at: 'text' 14 | put: (self createTextPropertyOn: aProperty). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addSelectedMorphFor..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | addSelectedMorphFor: anEvent 3 | self addTargetMorph: (self getDeepestMorph: self currentHand selectedObject at: anEvent position). 4 | self currentHand removeMouseListener: self. 5 | self updateInformationText: 'Added new Morph'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addSubPropertiesOn..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addSubPropertiesOn: aProperty 3 | self. 4 | aProperty targetMorph isImageMorph 5 | ifTrue: [^ self addPropertiesToImageMorphOn: aProperty]. 6 | aProperty targetMorph isTextMorph 7 | ifTrue: [^ self addPropertiesToTextMorphOn: aProperty]. 8 | self addPropertiesToMorphOn: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/addTargetMorph..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | addTargetMorph: aMorph 3 | | newTarget | 4 | 5 | newTarget := self createPropertyWith: aMorph. 6 | self addSubPropertiesOn: newTarget. 7 | self propertyList add: newTarget. 8 | self propertyTreeMorph update: self propertyTreeMorph getChildrenSelector. 9 | ^ newTarget. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/buildPositionUIPanelWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildPositionUIPanelWith: aBuilder 3 | ^ aBuilder pluggablePanelSpec new model: self; 4 | frame: (LayoutFrame new topFraction: 0; 5 | bottomFraction: 0.6; 6 | leftFraction: 0.55; 7 | rightFraction: 1; 8 | yourself); 9 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/buildTimeline..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTimeline: aBuilder 3 | self 4 | timeline: (AnimationsEditorTimeline newWith: self). 5 | ^ aBuilder pluggableScrollPaneSpec new model: self; 6 | morph: self timeline; 7 | frame: (LayoutFrame new topFraction: 0.67; 8 | bottomFraction: 0.93; 9 | rightFraction: 1; 10 | leftFraction: 0; 11 | yourself); 12 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/buildWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildWith: aBuilder 3 | self toolBuilder: aBuilder; 4 | buildMainWindowWith: aBuilder; 5 | collectAllEmptyPanels; 6 | collectPropertyTreeMorph; 7 | collectInformationBar; 8 | initializePropertyEditorPanel. 9 | ^ self mainWindow. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/collectAllEmptyPanels.st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | collectAllEmptyPanels 3 | self mainWindow submorphs 4 | do: [:each | each class == PluggablePanelMorph 5 | ifTrue: [each submorphs size == 0 6 | ifTrue: [self emptyPanels add: each]]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/collectInformationBar.st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | collectInformationBar 3 | self mainWindow submorphs 4 | do: [:each | each class == PluggableTextMorphPlus 5 | ifTrue: [self informationBar: each]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/collectPropertyTreeMorph.st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | collectPropertyTreeMorph 3 | self mainWindow submorphs 4 | do: [:each | each class == PluggableTreeMorph 5 | ifTrue: [self propertyTreeMorph: each]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createColorPropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createColorPropertyOn: aProperty 3 | ^ AnimationsEditorPropertyColor onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createImageSourcePropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createImageSourcePropertyOn: aProperty 3 | ^ AnimationsEditorPropertyImageSource onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createPositionPropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createPositionPropertyOn: aProperty 3 | ^ AnimationsEditorPropertyPosition onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createPropertyWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createPropertyWith: aMorph 3 | ^ AnimationsEditorProperty new animationsEditor: self; 4 | targetMorph: aMorph; 5 | title: '' , self propertyList size , ' - ' , aMorph className; 6 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createRotationPropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createRotationPropertyOn: aProperty 3 | ^ AnimationsEditorPropertyRotation onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createSizePropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createSizePropertyOn: aProperty 3 | ^ AnimationsEditorPropertySize onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/createTextPropertyOn..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createTextPropertyOn: aProperty 3 | ^ AnimationsEditorPropertyText onParent: aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/defaultEmptyPanels.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultEmptyPanels 3 | ^ OrderedCollection new. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/defaultPropertyPanelPosition.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultPropertyPanelPosition 3 | ^ 1. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/editorTitle..st: -------------------------------------------------------------------------------- 1 | accessing 2 | editorTitle: aString 3 | editorTitle := aString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/editorTitle.st: -------------------------------------------------------------------------------- 1 | accessing 2 | editorTitle 3 | editorTitle 4 | ifNil: [self editorTitle: 'Animations Editor']. 5 | 6 | ^ editorTitle. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/emptyPanels..st: -------------------------------------------------------------------------------- 1 | accessing 2 | emptyPanels: aPanel 3 | emptyPanels := aPanel. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/emptyPanels.st: -------------------------------------------------------------------------------- 1 | accessing 2 | emptyPanels 3 | emptyPanels 4 | ifNil: [self emptyPanels: self defaultEmptyPanels]. 5 | 6 | ^ emptyPanels. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/getDeepestMorph.at..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | getDeepestMorph: aMorph at: aPosition 3 | | morphs | 4 | 5 | morphs := aMorph morphsAt: aPosition. 6 | morphs isEmpty 7 | ifTrue: [^ aMorph] 8 | ifFalse: [^ morphs first]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/handleListenEvent..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | handleListenEvent: anEvent 3 | | currentTarget | 4 | 5 | currentTarget := self currentHand selectedObject. 6 | currentTarget 7 | ifNotNil: [anEvent type == #mouseUp 8 | ifTrue: [self addSelectedMorphFor: anEvent]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/handleLoadJsonButton.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | handleLoadJsonButton 3 | | path | 4 | 5 | path := UIManager default chooseFileMatching: '*.json'. 6 | path isString 7 | ifTrue: [self loadJsonWithExceptionHandling: (FileStream readOnlyFileNamed: path) contents]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/informationBar..st: -------------------------------------------------------------------------------- 1 | accessing 2 | informationBar: aPluggableTextSpec 3 | informationBar := aPluggableTextSpec. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/informationBar.st: -------------------------------------------------------------------------------- 1 | accessing 2 | informationBar 3 | ^ informationBar. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/informationBarText..st: -------------------------------------------------------------------------------- 1 | messaging 2 | informationBarText: aString 3 | informationBarText := aString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/informationBarText.st: -------------------------------------------------------------------------------- 1 | messaging 2 | informationBarText 3 | informationBarText 4 | ifNil: [self informationBarText: '']. 5 | ^ informationBarText. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | self propertyList: OrderedCollection new. 4 | super initialize. 5 | self seedProperties. 6 | self initializeJsonHandler. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/initializeJsonHandler.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializeJsonHandler 3 | self 4 | jsonHandler: (AnimationsEditorJsonHandler on: self). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/initializePropertyEditorPanel.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializePropertyEditorPanel 3 | self propertyEditorPanel: (self emptyPanels at: self defaultPropertyPanelPosition). 4 | self propertyEditorPanel getChildrenSelector: #propertyEditorPanelChildren. 5 | self propertyTreeMorph getChildrenSelector: #propertyList. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/insertMorph.Into..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | insertMorph: aMorph Into: aPluggableSpecMorph 3 | aPluggableSpecMorph children removeAll. 4 | aPluggableSpecMorph children add: aMorph. 5 | aPluggableSpecMorph update: aPluggableSpecMorph getChildrenSelector. 6 | aMorph bounds: aPluggableSpecMorph bounds. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/jsonHandler..st: -------------------------------------------------------------------------------- 1 | accessing 2 | jsonHandler: anObject 3 | jsonHandler := anObject -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/jsonHandler.st: -------------------------------------------------------------------------------- 1 | accessing 2 | jsonHandler 3 | 4 | ^ jsonHandler -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/loadJsonWithExceptionHandling..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | loadJsonWithExceptionHandling: aText 3 | [self jsonHandler loadJson: aText. 4 | self updateInformationText: 'Animation loaded'] 5 | on: KeyNotFound 6 | do: [:error | self updateInformationText: 'Invalid JSON (' , error messageText , ')']. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/mainWindow..st: -------------------------------------------------------------------------------- 1 | accessing 2 | mainWindow: aWindowSpec 3 | mainWindow := aWindowSpec. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/mainWindow.st: -------------------------------------------------------------------------------- 1 | accessing 2 | mainWindow 3 | ^ mainWindow. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/messagePlayAnimations.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | messagePlayAnimations 3 | 4 | ^ 'Playing selected Animation.'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/numberButtons.st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | numberButtons 3 | ^ 6. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/playAnimations.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | playAnimations 3 | self resetTargetMorph. 4 | self updateInformationText: self messagePlayAnimations. 5 | self selectedTreeNode playAnimationWithStartEnd: self propertyStartEnd. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyEditorPanel..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyEditorPanel: aMorph 3 | propertyEditorPanel := aMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyEditorPanel.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyEditorPanel 3 | ^ propertyEditorPanel. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyEditorPanelChildren..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyEditorPanelChildren: aCollection 3 | propertyEditorPanelChildren := aCollection. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyEditorPanelChildren.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyEditorPanelChildren 3 | propertyEditorPanelChildren 4 | ifNil: [self propertyEditorPanelChildren: OrderedCollection new]. 5 | ^ propertyEditorPanelChildren. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyList..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyList: aCollection 3 | propertyList := aCollection. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyList.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyList 3 | ^ propertyList. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyStartEnd..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyStartEnd: aAnimationsEditorProperty 3 | propertyStartEnd := aAnimationsEditorProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyStartEnd.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyStartEnd 3 | propertyStartEnd 4 | ifNil: [self propertyStartEnd: AnimationsEditorPropertyStartEnd new]. 5 | ^ propertyStartEnd. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyTreeMorph..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyTreeMorph: aPluggableTreeMorph 3 | propertyTreeMorph := aPluggableTreeMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/propertyTreeMorph.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyTreeMorph 3 | ^ propertyTreeMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/resetTargetMorph.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | resetTargetMorph 3 | self updateInformationText: 'Reset morph'. 4 | self propertyList 5 | collect: [:each | each resetTargetMorphForAllProperties]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/saveAnimations.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | saveAnimations 3 | Clipboard clipboardText: self selectedTreeNode animationString. 4 | self selectedTreeNode hasSubproperties 5 | ifTrue: [self jsonHandler saveToJson: self selectedTreeNode] 6 | ifFalse: [self jsonHandler saveToJson: self selectedTreeNode parentProperty]. 7 | self updateInformationText: self savedAnimationText. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/savedAnimationText.st: -------------------------------------------------------------------------------- 1 | messaging 2 | savedAnimationText 3 | 4 | ^ 'Saved JSON to file.'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/seedProperties.st: -------------------------------------------------------------------------------- 1 | initialization 2 | seedProperties 3 | self propertyStartEnd: AnimationsEditorPropertyStartEnd new. 4 | self propertyStartEnd animationsEditor: self. 5 | self propertyList add: self propertyStartEnd. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/selectMorphByHand.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | selectMorphByHand 3 | self updateInformationText: 'Waiting to pick a morph to add (default: alt + mouse left)'. 4 | self currentHand addMouseListener: self. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/selectedTreeNode..st: -------------------------------------------------------------------------------- 1 | accessing 2 | selectedTreeNode: aNode 3 | selectedTreeNode := aNode. 4 | aNode canRenderUI 5 | ifTrue: [self 6 | insertMorph: (aNode buildUIWith: self toolBuilder) 7 | Into: self propertyEditorPanel]. 8 | aNode isStartEnd 9 | ifFalse: [self switchTimelineToMorphWith: aNode]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/selectedTreeNode.st: -------------------------------------------------------------------------------- 1 | accessing 2 | selectedTreeNode 3 | ^ selectedTreeNode. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/switchTimelineToMorphWith..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | switchTimelineToMorphWith: aProperty 3 | aProperty hasSubproperties 4 | ifTrue: [self timeline switchTimelineTo: aProperty] 5 | ifFalse: [self timeline switchTimelineTo: aProperty parentProperty]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/timeline..st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline: anObject 3 | timeline := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/timeline.st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline 3 | ^ timeline -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/timelines..st: -------------------------------------------------------------------------------- 1 | initialization 2 | timelines: aCollection 3 | timelines := aCollection. 4 | 5 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/timelines.st: -------------------------------------------------------------------------------- 1 | initialization 2 | timelines 3 | timelines 4 | ifNil: [self timelines: OrderedCollection new]. 5 | ^ timelines. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/toolBuilder..st: -------------------------------------------------------------------------------- 1 | accessing 2 | toolBuilder: aBuilder 3 | toolBuilder := aBuilder. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/toolBuilder.st: -------------------------------------------------------------------------------- 1 | accessing 2 | toolBuilder 3 | ^ toolBuilder. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/treeSpec..st: -------------------------------------------------------------------------------- 1 | accessing 2 | treeSpec: anObject 3 | treeSpec := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/treeSpec.st: -------------------------------------------------------------------------------- 1 | accessing 2 | treeSpec 3 | ^ treeSpec -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/updateInformationText..st: -------------------------------------------------------------------------------- 1 | messaging 2 | updateInformationText: aString 3 | self informationBarText: aString. 4 | self informationBar update: self informationBar getTextSelector. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/windowReference..st: -------------------------------------------------------------------------------- 1 | accessing 2 | windowReference: aPluggableWindow 3 | windowReference := aPluggableWindow. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditor.class/instance/windowReference.st: -------------------------------------------------------------------------------- 1 | accessing 2 | windowReference 3 | ^ windowReference. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorColorPicker.class/README.md: -------------------------------------------------------------------------------- 1 | This class overwrites the ColorPickerMorph to add update functionality. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorColorPicker.class/instance/updateTargetColor.st: -------------------------------------------------------------------------------- 1 | initialization 2 | updateTargetColor 3 | self changed: self selectedColor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorColorPicker.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | }, 4 | "instance" : { 5 | "updateTargetColor" : "mjs 7/31/2021 17:57" } } 6 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorColorPicker.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "MH 8/1/2021 19:54", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorColorPicker", 11 | "pools" : [ 12 | ], 13 | "super" : "ColorPickerMorph", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/README.md: -------------------------------------------------------------------------------- 1 | This class handles the import and export of animations as JSON. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/class/on..st: -------------------------------------------------------------------------------- 1 | initialization 2 | on: anAnimationsEditor 3 | ^ AnimationsEditorJsonHandler basicNew animationsEditor: anAnimationsEditor; 4 | initialize; 5 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addColorFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addColorFrameAt: aTime with: aColor 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'color' with: #value -> aColor printHtmlString asSymbol}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addImageSourceFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addImageSourceFrameAt: aTime with: aFilename 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'imageSource' with: #value -> aFilename}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addMorphFromSpec..st: -------------------------------------------------------------------------------- 1 | loadJson 2 | addMorphFromSpec: aDictionary 3 | | morph morphProperty | 4 | 5 | morph := (self createMorphFromString: (aDictionary at: 'type')) openInWorld. 6 | morphProperty := self animationsEditor addTargetMorph: morph. 7 | self loadFrames: (aDictionary at: 'frames') with: morphProperty. 8 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addMorphToJson.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addMorphToJson: aJsonStructure with: aTreeNode 3 | | MorphJson | 4 | 5 | MorphJson := self createMorphDictionary: aTreeNode targetMorph. 6 | MorphJson add: #frames 7 | -> (self createFrameCollection: aTreeNode). 8 | aJsonStructure add: #morphs -> {MorphJson}. 9 | ^ aJsonStructure. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addPositionFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addPositionFrameAt: aTime with: aPoint 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'positionX' with: #value -> aPoint x. Dictionary with: #name -> 'positionY' with: #value -> aPoint y}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addRotationFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addRotationFrameAt: aTime with: aRotationDegree 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'rotation' with: #value -> aRotationDegree}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addSizeFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addSizeFrameAt: aTime with: anExtent 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'width' with: #value -> anExtent x. Dictionary with: #name -> 'height' with: #value -> anExtent y}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/addTextFrameAt.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | addTextFrameAt: aTime with: aString 3 | | jsonFrame | 4 | 5 | jsonFrame := Dictionary with: #frame -> aTime with: #properties -> {Dictionary with: #name -> 'text' with: #value -> aString}. 6 | ^ jsonFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/animationsEditor..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor: anObject 3 | animationsEditor := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/animationsEditor.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor 3 | ^ animationsEditor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/createMorphDictionary..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | createMorphDictionary: aMorph 3 | 4 | ^ Dictionary 5 | with: #type -> aMorph class asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/createMorphFromString..st: -------------------------------------------------------------------------------- 1 | loadJson 2 | createMorphFromString: aString 3 | ^ (self morphTypes at: aString asSymbol ifAbsent: [Morph new]) value. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/createStructure.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | createStructure: aStartTime with: anEndTime 3 | | jsonStructure | 4 | 5 | jsonStructure := Dictionary 6 | with: #start -> aStartTime 7 | with: #end -> anEndTime 8 | with: #morphs -> {}. 9 | ^ jsonStructure. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/dictionaryToJson..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | dictionaryToJson: aDictionary 3 | ^ String 4 | streamContents: [:stream | (STON writer on: stream) prettyPrint: true; 5 | jsonMode: true; 6 | referencePolicy: #error; 7 | nextPut: aDictionary]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/loadJson..st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadJson: aText 3 | | data | 4 | 5 | data:= STON fromString: aText. 6 | self loadStartEnd: data. 7 | self loadMorphs: (data at: 'morphs'). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/loadMorphs..st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadMorphs: anArray 3 | anArray do: [:each | self addMorphFromSpec: each]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/loadStartEnd..st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadStartEnd: aDictionary 3 | | propertyStartEnd | 4 | 5 | propertyStartEnd := self animationsEditor propertyStartEnd. 6 | propertyStartEnd startTime: (propertyStartEnd startTime min: (aDictionary at: 'start')). 7 | propertyStartEnd endTime: (propertyStartEnd endTime max: (aDictionary at: 'end')). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/morphTypes.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | morphTypes 3 | ^ {#Morph -> [Morph new]. 4 | #CircleMorph -> [CircleMorph new]. 5 | #RectangleMorph -> [RectangleMorph new]. 6 | #TextMorph -> [TextMorph new]. 7 | #ImageMorph ->[ImageMorph new]} as: IdentityDictionary. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/outputFileDirectory.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | outputFileDirectory 3 | ^ UIManager default saveFilenameRequest: 'Please, enter file name.' initialAnswer: 'animation.json'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/instance/writeJsonToFile.with..st: -------------------------------------------------------------------------------- 1 | saveJson 2 | writeJsonToFile: aJsonString with: aDirectory 3 | aDirectory 4 | ifNotNil: [FileDirectory default 5 | forceNewFileNamed: aDirectory 6 | do: [:stream | stream nextPutAll: aJsonString]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorJsonHandler.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "MH 8/1/2021 19:56", 8 | "instvars" : [ 9 | "animationsEditor" ], 10 | "name" : "AnimationsEditorJsonHandler", 11 | "pools" : [ 12 | ], 13 | "super" : "Object", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/README.md: -------------------------------------------------------------------------------- 1 | This class is part of the timeline and displays keyframes as a rectangle inside of its according property track. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/class/on.withPosition.withFrame.withValue..st: -------------------------------------------------------------------------------- 1 | initialization 2 | on: anAnimationsEditorTrack withPosition: aPoint withFrame: aFrame withValue: aValue 3 | ^ self basicNew track: anAnimationsEditorTrack; 4 | frame: aFrame; 5 | value: aValue; 6 | initialize; 7 | setCenteredPosition: aPoint; 8 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/frame..st: -------------------------------------------------------------------------------- 1 | accessing 2 | frame: anObject 3 | 4 | frame := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/frame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | frame 3 | 4 | ^ frame -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | 4 | super initialize. 5 | self color: Color orange. 6 | self extent: 15@15. 7 | "self addFlexShell. 8 | self owner transform setAngle: 0.8." -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/setCenteredPosition..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setCenteredPosition: aPoint 3 | | offset | 4 | 5 | offset:= (-7.5 @ 7.5). 6 | self position: aPoint + offset. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/track..st: -------------------------------------------------------------------------------- 1 | accessing 2 | track: anObject 3 | 4 | track := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/track.st: -------------------------------------------------------------------------------- 1 | accessing 2 | track 3 | 4 | ^ track -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/instance/value..st: -------------------------------------------------------------------------------- 1 | accessing 2 | value: anObject 3 | 4 | value := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | "on:withPosition:withFrame:withValue:" : "FH 8/1/2021 19:05" }, 4 | "instance" : { 5 | "frame" : "mjs 7/31/2021 15:46", 6 | "frame:" : "mjs 7/31/2021 15:46", 7 | "initialize" : "mjs 7/31/2021 15:45", 8 | "setCenteredPosition:" : "FH 8/1/2021 19:04", 9 | "track" : "mjs 7/31/2021 15:46", 10 | "track:" : "mjs 7/31/2021 15:46", 11 | "value:" : "mjs 7/31/2021 15:46" } } 12 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorKeyframe.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "CL 8/2/2021 08:54", 8 | "instvars" : [ 9 | "track", 10 | "frame", 11 | "value" ], 12 | "name" : "AnimationsEditorKeyframe", 13 | "pools" : [ 14 | ], 15 | "super" : "RectangleMorph", 16 | "type" : "normal" } 17 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/README.md: -------------------------------------------------------------------------------- 1 | This is the superclass for StartEnd and Animated Property. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/class/on..st: -------------------------------------------------------------------------------- 1 | initialization 2 | on: aMorph 3 | ^ self basicNew targetMorph: aMorph; 4 | initialize; 5 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/class/onParent..st: -------------------------------------------------------------------------------- 1 | initialization 2 | onParent: anAnimationsEditorProperty 3 | ^ self basicNew targetMorph: anAnimationsEditorProperty targetMorph; 4 | animationsEditor: anAnimationsEditorProperty animationsEditor; 5 | parentProperty: anAnimationsEditorProperty; 6 | initialize; 7 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/^less.equals.st: -------------------------------------------------------------------------------- 1 | accessing 2 | <= aAnimationsEditorProperty 3 | ^ self title <= aAnimationsEditorProperty title. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/^less.st: -------------------------------------------------------------------------------- 1 | accessing 2 | < aAnimationsEditorProperty 3 | ^ self title < aAnimationsEditorProperty title. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/addKeyframe.st: -------------------------------------------------------------------------------- 1 | defaults 2 | addKeyframe 3 | self animationsEditor updateInformationText: self messageSelectAnimatedProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/animationString.st: -------------------------------------------------------------------------------- 1 | codeGeneration 2 | animationString 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/animationsEditor..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor: aAnimationsEditor 3 | animationsEditor := aAnimationsEditor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/animationsEditor.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor 3 | ^ animationsEditor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/canCreateAnimation.st: -------------------------------------------------------------------------------- 1 | accessing 2 | canCreateAnimation 3 | ^ false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/canRenderUI.st: -------------------------------------------------------------------------------- 1 | accessing 2 | canRenderUI 3 | ^ false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/defaultSubproperties.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultSubproperties 3 | ^ (Dictionary new). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/hasSubproperties.st: -------------------------------------------------------------------------------- 1 | accessing 2 | hasSubproperties 3 | ^ self subproperties size > 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/isStartEnd.st: -------------------------------------------------------------------------------- 1 | defaults 2 | isStartEnd 3 | ^ false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/messageSelectAnimatedProperty.st: -------------------------------------------------------------------------------- 1 | defaults 2 | messageSelectAnimatedProperty 3 | ^ 'Please select a animatable property in order to add a keyframe.' -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/parentProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | parentProperty: aProperty 3 | parentProperty := aProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/parentProperty.st: -------------------------------------------------------------------------------- 1 | accessing 2 | parentProperty 3 | ^ parentProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/resetTargetMorphForAllProperties.st: -------------------------------------------------------------------------------- 1 | animation 2 | resetTargetMorphForAllProperties 3 | self subproperties valuesDo: [ :each | each resetTargetMorph]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/subproperties..st: -------------------------------------------------------------------------------- 1 | accessing 2 | subproperties: aCollection 3 | subproperties := aCollection. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/subproperties.st: -------------------------------------------------------------------------------- 1 | accessing 2 | subproperties 3 | subproperties 4 | ifNil: [self subproperties: self defaultSubproperties]. 5 | ^ subproperties. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/targetMorph..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetMorph: aMorph 3 | targetMorph := aMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/targetMorph.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetMorph 3 | ^ targetMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/title..st: -------------------------------------------------------------------------------- 1 | accessing 2 | title: aString 3 | title := aString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/title.st: -------------------------------------------------------------------------------- 1 | accessing 2 | title 3 | ^ title. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorProperty.class/instance/updateTargetMorphForAllProperties..st: -------------------------------------------------------------------------------- 1 | animation 2 | updateTargetMorphForAllProperties: aTargetMorph 3 | self targetMorph: aTargetMorph. 4 | self subproperties valuesDo: [ :each | each targetMorph: aTargetMorph]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/README.md: -------------------------------------------------------------------------------- 1 | This is the abstract superclass for all possible types of animations a morph can have. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/addKeyframe.st: -------------------------------------------------------------------------------- 1 | animation 2 | addKeyframe 3 | self isFirstFrame 4 | ifTrue: [self setStartValue]. 5 | self targetValues at: self targetFrame put: self currentValue deepCopy. 6 | self targetValues sort. 7 | self changed: #addKeyframes. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/addStartFrame.st: -------------------------------------------------------------------------------- 1 | animation 2 | addStartFrame 3 | self currentValue: self animationProperty; 4 | targetFrame: 0; 5 | addKeyframe. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | animation 2 | animationProperty 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/buildInputFrameWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputFrameWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #frame; 5 | editText: #frame:; 6 | frame: (LayoutFrame new topFraction: 0.8; 7 | bottomFraction: 0.9; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/buildTextFrameWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextFrameWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Frame (in ms)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.8; 7 | bottomFraction: 0.9; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/canCreateAnimation.st: -------------------------------------------------------------------------------- 1 | animation 2 | canCreateAnimation 3 | ^ true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/canRenderUI.st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | canRenderUI 3 | ^ true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | animation 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/currentValue..st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValue: anObject 3 | currentValue := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/currentValue.st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValue 3 | currentValue 4 | ifNil: [self currentValue: self defaultValue]. 5 | 6 | ^ currentValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/defaultFrame.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultFrame 3 | ^ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/executeCompositeAnimation..st: -------------------------------------------------------------------------------- 1 | animation 2 | executeCompositeAnimation: aStartEndProperty 3 | | comp animations | 4 | 5 | animations := self createAnimationSequenceWithStartEnd: aStartEndProperty. 6 | comp := AnimCompositeAnimation new. 7 | animations 8 | do: [:each | comp add: each]. 9 | comp start. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/frame..st: -------------------------------------------------------------------------------- 1 | accessing 2 | frame: aText 3 | | value | 4 | 5 | value := aText asString asInteger. 6 | value 7 | ifNotNil: [self targetFrame: value]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/frame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | frame 3 | ^ self targetFrame asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self addStartFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/isFirstFrame.st: -------------------------------------------------------------------------------- 1 | animation 2 | isFirstFrame 3 | ^ self targetFrame = 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/isKey.outOfBound..st: -------------------------------------------------------------------------------- 1 | animation 2 | isKey: aNumber outOfBound: aStartEndProperty 3 | ^ aNumber between: aStartEndProperty startTime and: aStartEndProperty endTime. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/isKeyframeExceptStartFrameExistent.st: -------------------------------------------------------------------------------- 1 | animation 2 | isKeyframeExceptStartFrameExistent 3 | self targetValues isEmpty not 4 | ifTrue: [self targetValues 5 | at: 0 6 | ifAbsent: [^ self targetValues size >= 1]. 7 | ^ self targetValues size >= 2] 8 | ifFalse: [^ false]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/messageKeyframeOutOfBounds.st: -------------------------------------------------------------------------------- 1 | messages 2 | messageKeyframeOutOfBounds 3 | ^ 'Keyframe time out of bounds.'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/messageNotEnoughKeyframes.st: -------------------------------------------------------------------------------- 1 | messages 2 | messageNotEnoughKeyframes 3 | ^ 'Please specify at least one more keyframe to play an animation.'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/playAnimationWithStartEnd..st: -------------------------------------------------------------------------------- 1 | animation 2 | playAnimationWithStartEnd: aStartEndProperty 3 | self isKeyframeExceptStartFrameExistent 4 | ifTrue: [self executeCompositeAnimation: aStartEndProperty] 5 | ifFalse: [self animationsEditor updateInformationText: self messageNotEnoughKeyframes]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/resetTargetMorph.st: -------------------------------------------------------------------------------- 1 | animation 2 | resetTargetMorph 3 | self setAnimationProperty: (self targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | animation 2 | setAnimationProperty: aValue 3 | self subclassResponsibility. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/setStartValue.st: -------------------------------------------------------------------------------- 1 | animation 2 | setStartValue 3 | self setAnimationProperty: self currentValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetDuration..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetDuration: anObject 3 | targetDuration := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetDuration.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetDuration 3 | ^ targetDuration. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetFrame..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetFrame: aNumber 3 | targetFrame := aNumber. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetFrame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetFrame 3 | targetFrame 4 | ifNil: [self targetFrame: self defaultFrame]. 5 | ^ targetFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetValues..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetValues: anOrderedDict 3 | targetValues := anOrderedDict. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyAnimated.class/instance/targetValues.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetValues 3 | targetValues 4 | ifNil: [targetValues := OrderedDictionary new]. 5 | ^ targetValues. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the color attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationProperty 3 | ^ self targetMorph color. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/buildColorPickerWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildColorPickerWith: aBuilder 3 | ^ aBuilder pluggableScrollPaneSpec new model: self; 4 | morph: self colorPicker; 5 | frame: (LayoutFrame new topFraction: 0.1; 6 | bottomFraction: 0.4; 7 | leftFraction: 0; 8 | rightFraction: 1; 9 | yourself); 10 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/buildInputColorWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputColorWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #currentValueAsHexRGBString; 5 | editText: #currentValueFromText:; 6 | frame: (LayoutFrame new topFraction: 0.4; 7 | bottomFraction: 0.5; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/buildTextColorWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextColorWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Color (as HEX)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.4; 7 | bottomFraction: 0.5; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/colorPicker..st: -------------------------------------------------------------------------------- 1 | accessing 2 | colorPicker: anObject 3 | colorPicker := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/colorPicker.st: -------------------------------------------------------------------------------- 1 | accessing 2 | colorPicker 3 | ^ colorPicker. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | accessing 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self createCompositeAnimationWith: [self targetMorph color: (Color colorFrom: (self targetValues at: aKey))] withKey: aKey withPreviousKey: aPreviousKey. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/currentValueAsHexRGBString.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | currentValueAsHexRGBString 3 | ^ self currentValue printHtmlString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/currentValueAsString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValueAsString 3 | ^ (self currentValue asString) copyReplaceAll: 'Color ' with: ''. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/currentValueFromText..st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValueFromText: aText 3 | self currentValue: (Color colorFrom: aText asString). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | ^ Color white. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Color'. 5 | self colorPicker: AnimationsEditorColorPicker new. 6 | self colorPicker addDependent: self. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: aColor 3 | ^ self targetMorph color: aColor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/instance/update..st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | update: aColor 3 | self currentValue: aColor. 4 | self changed: #currentValueAsHexRGBString. 5 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyColor.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:53", 8 | "instvars" : [ 9 | "colorPicker" ], 10 | "name" : "AnimationsEditorPropertyColor", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the Image Source attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/addStartFrame.st: -------------------------------------------------------------------------------- 1 | animation 2 | addStartFrame -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | animation 2 | animationProperty 3 | ^ self targetMorph image. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/buildInputSourceWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputSourceWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #currentValue; 5 | editText: #currentValue:; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.4; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/buildSelectFileButtonWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildSelectFileButtonWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Select file'; 5 | action: #openFileSelection; 6 | frame: (LayoutFrame new topFraction: 0.4; 7 | bottomFraction: 0.5; 8 | leftFraction: 0; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/buildTextImageSourceWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextImageSourceWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Path to image file'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.4; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | animation 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self createCompositeAnimationWith: [self targetMorph image: (Form fromFileNamed: (self targetValues at: aKey))] withKey: aKey withPreviousKey: aPreviousKey. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/currentValue..st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValue: aText 3 | currentValue := aText asString -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | ^ ''. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Image Source'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/openFileSelection.st: -------------------------------------------------------------------------------- 1 | eventHandling 2 | openFileSelection 3 | self currentValue: (UIManager default chooseFileMatching: '*'). 4 | self changed: #currentValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/resetTargetMorph.st: -------------------------------------------------------------------------------- 1 | animation 2 | resetTargetMorph 3 | self targetValues at: 0 ifPresent: [ :value | self setAnimationProperty: value]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: aText 3 | self targetMorph image: (Form fromFileNamed: aText asString). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyImageSource.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "LW 6/5/2021 15:08", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyImageSource", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the position attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationProperty 3 | ^ self targetMorph position. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/animationString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationString 3 | ^ 'AnimPropertyAnimation new 4 | duration: ', self targetFrame,'; 5 | property: #position; 6 | startValue: ', (self targetMorph position), '; 7 | endValue:', self currentValue asString, '; 8 | target: aMorph; 9 | state: #paused'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/buildInputXWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputXWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new 4 | model: self; 5 | getText: #positionX; 6 | editText: #positionX:; 7 | frame: (LayoutFrame new 8 | topFraction: 0.1; 9 | bottomFraction: 0.3; 10 | leftFraction: 0; 11 | rightFraction: 0.5; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/buildInputYWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputYWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new 4 | model: self; 5 | getText: #positionY; 6 | editText: #positionY:; 7 | frame: (LayoutFrame new 8 | topFraction: 0.3; 9 | bottomFraction: 0.5; 10 | leftFraction: 0; 11 | rightFraction: 0.5; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/buildTextXWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextXWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new 4 | model: self; 5 | label: 'Position X (in Pixels)'; 6 | enabled: false; 7 | frame: (LayoutFrame new 8 | topFraction: 0.1; 9 | bottomFraction: 0.3; 10 | leftFraction: 0.5; 11 | rightFraction: 1; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/buildTextYWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextYWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new 4 | model: self; 5 | label: 'Position Y (in Pixels)'; 6 | enabled: false; 7 | frame: (LayoutFrame new 8 | topFraction: 0.3; 9 | bottomFraction: 0.5; 10 | leftFraction: 0.5; 11 | rightFraction: 1; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/changeTargetMorphToFlexShell.st: -------------------------------------------------------------------------------- 1 | initialization 2 | changeTargetMorphToFlexShell 3 | self targetMorph isFlexed 4 | ifTrue: [self targetMorph: self targetMorph owner] 5 | ifFalse: [self targetMorph: self targetMorph addFlexShell]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self createAtomicAnimationFor: #position withKey: aKey withPreviousKey: aPreviousKey. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | ^ 0 @ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | self changeTargetMorphToFlexShell. 4 | super initialize. 5 | self title: 'Position'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/positionX..st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionX: aNumber 3 | | value | 4 | 5 | value := aNumber asString asInteger. 6 | value 7 | ifNotNil: [self currentValue setX: value setY: (self currentValue y)]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/positionX.st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionX 3 | ^ self currentValue x asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/positionY..st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionY: aNumber 3 | | value | 4 | 5 | value := aNumber asString asInteger. 6 | value 7 | ifNotNil: [self currentValue setX: (self currentValue x) setY: value]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/positionY.st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionY 3 | ^ self currentValue y asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: aPosition 3 | self targetMorph position: aPosition. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyPosition.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:53", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyPosition", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the rotation attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationProperty 3 | ^ self targetMorph rotationDegrees. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/animationString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationString 3 | ^ 'AnimPropertyAnimation new 4 | duration: ' , self targetFrame , '; 5 | property: #rotationDegrees; 6 | startValue: ' , self targetMorph rotationDegrees , '; 7 | endValue: ' , self currentValue , '; 8 | target: aMorph; 9 | state: #paused'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/buildInputRotationWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputRotationWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #currentValueAsString; 5 | editText: #currentValue:; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/buildTextRotationWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextRotationWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Rotation (in Degrees)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | accessing 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self createAtomicAnimationFor: #rotationDegrees withKey: aKey withPreviousKey: aPreviousKey. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/currentValue..st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValue: aText 3 | currentValue := aText asString asInteger. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/currentValueAsString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValueAsString 3 | ^ self currentValue asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | ^ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Rotation'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: aRotation 3 | self targetMorph rotationDegrees: aRotation. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyRotation.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:53", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyRotation", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the size attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationProperty 3 | ^ self targetMorph extent. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/animationString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationString 3 | ^ 'AnimPropertyAnimation new 4 | duration: ' , self targetFrame , '; 5 | property: #extent; 6 | startValue: ' , self targetMorph extent , '; 7 | endValue: ' , self currentValue , '; 8 | target: aMorph; 9 | state: #paused'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/buildInputHeightWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputHeightWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #targetHeight; 5 | editText: #targetHeight:; 6 | frame: (LayoutFrame new topFraction: 0.3; 7 | bottomFraction: 0.5; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/buildInputWidthWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputWidthWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #targetWidth; 5 | editText: #targetWidth:; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/buildTextHeightWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextHeightWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Height (in Pixels)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.3; 7 | bottomFraction: 0.5; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/buildTextWidthWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextWidthWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Width (in Pixels)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | accessing 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self 4 | createAtomicAnimationFor: #extent 5 | withKey: aKey 6 | withPreviousKey: aPreviousKey. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultValue 3 | ^ 0 @ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Size'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: anExtent 3 | self targetMorph extent: anExtent. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/targetHeight..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetHeight: aNumber 3 | | value | 4 | 5 | value := aNumber asString asInteger. 6 | value 7 | ifNotNil: [self currentValue setX: self currentValue x setY: value]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/targetHeight.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetHeight 3 | ^ self currentValue y asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/targetWidth..st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetWidth: anInt 3 | | value | 4 | 5 | value := anInt asString asInteger. 6 | value 7 | ifNotNil: [self currentValue setX: value setY: self currentValue y]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/instance/targetWidth.st: -------------------------------------------------------------------------------- 1 | accessing 2 | targetWidth 3 | ^ self currentValue x asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertySize.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:54", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertySize", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the start and end time attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/addStartFrame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | addStartFrame -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/animationString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationString 3 | ^ ''. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/buildEndFrameWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildEndFrameWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'End Frame (in ms)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.3; 7 | bottomFraction: 0.5; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/buildEndInputWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildEndInputWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #endTimeAsString; 5 | editText: #endTime:; 6 | frame: (LayoutFrame new topFraction: 0.3; 7 | bottomFraction: 0.5; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/buildStartFrameWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildStartFrameWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new model: self; 4 | label: 'Start Frame (in ms)'; 5 | enabled: false; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0.5; 9 | rightFraction: 1; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/buildStartInputWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildStartInputWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new model: self; 4 | getText: #startTimeAsString; 5 | editText: #startTime:; 6 | frame: (LayoutFrame new topFraction: 0.1; 7 | bottomFraction: 0.3; 8 | leftFraction: 0; 9 | rightFraction: 0.5; 10 | yourself); 11 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/canRenderUI.st: -------------------------------------------------------------------------------- 1 | accessing 2 | canRenderUI 3 | ^ true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/defaultEndTime.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultEndTime 3 | ^ 1000. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/defaultStartTime.st: -------------------------------------------------------------------------------- 1 | defaults 2 | defaultStartTime 3 | ^ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/duration.st: -------------------------------------------------------------------------------- 1 | accessing 2 | duration 3 | ^ (self endTime - self startTime). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/endTime..st: -------------------------------------------------------------------------------- 1 | accessing 2 | endTime: aNumber 3 | endTime := aNumber. 4 | self changed. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/endTime.st: -------------------------------------------------------------------------------- 1 | accessing 2 | endTime 3 | endTime 4 | ifNil: [self endTime: self defaultEndTime]. 5 | ^ endTime asNumber. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/endTimeAsString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | endTimeAsString 3 | ^ self endTime asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Start- and endtime'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/isStartEnd.st: -------------------------------------------------------------------------------- 1 | defaults 2 | isStartEnd 3 | ^ true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/startTime..st: -------------------------------------------------------------------------------- 1 | accessing 2 | startTime: aNumber 3 | startTime := aNumber. 4 | self changed. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/startTime.st: -------------------------------------------------------------------------------- 1 | accessing 2 | startTime 3 | startTime 4 | ifNil: [self startTime: self defaultStartTime]. 5 | ^ startTime asNumber. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/instance/startTimeAsString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | startTimeAsString 3 | ^ self startTime asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyStartEnd.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:54", 8 | "instvars" : [ 9 | "endTime", 10 | "startTime" ], 11 | "name" : "AnimationsEditorPropertyStartEnd", 12 | "pools" : [ 13 | ], 14 | "super" : "AnimationsEditorProperty", 15 | "type" : "normal" } 16 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class, which handels the Text attribute for animations. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/animationProperty.st: -------------------------------------------------------------------------------- 1 | animation 2 | animationProperty 3 | ^ self targetMorph contents asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/buildInputTextWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildInputTextWith: aBuilder 3 | ^ aBuilder pluggableTextSpec new 4 | model: self; 5 | getText: #currentValue; 6 | editText: #currentValue:; 7 | frame: (LayoutFrame new 8 | topFraction: 0.1; 9 | bottomFraction: 0.5; 10 | leftFraction: 0; 11 | rightFraction: 0.5; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/buildTextTextWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildTextTextWith: aBuilder 3 | ^ aBuilder pluggableButtonSpec new 4 | model: self; 5 | label: 'Text to show'; 6 | enabled: false; 7 | frame: (LayoutFrame new 8 | topFraction: 0.1; 9 | bottomFraction: 0.5; 10 | leftFraction: 0.5; 11 | rightFraction: 1; 12 | yourself); 13 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/buildUIWith..st: -------------------------------------------------------------------------------- 1 | buildComponents 2 | buildUIWith: aBuilder 3 | ^ self buildPanelWith: aBuilder. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/createAnimationWith.withPreviousKey..st: -------------------------------------------------------------------------------- 1 | animation 2 | createAnimationWith: aKey withPreviousKey: aPreviousKey 3 | ^ self createCompositeAnimationWith: [self targetMorph contents: (self targetValues at: aKey)] withKey: aKey withPreviousKey: aPreviousKey. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/currentValue..st: -------------------------------------------------------------------------------- 1 | accessing 2 | currentValue: anObject 3 | currentValue := anObject asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/defaultValue.st: -------------------------------------------------------------------------------- 1 | defaultValues 2 | defaultValue 3 | ^ ''. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self title: 'Text'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/instance/setAnimationProperty..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setAnimationProperty: aText 3 | self targetMorph contents: aText. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyText.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "MH 8/1/2021 20:01", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyText", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimated", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/README.md: -------------------------------------------------------------------------------- 1 | This is the adapter class for the AnimationsEditorProperty class. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/instance/asString.st: -------------------------------------------------------------------------------- 1 | accessing 2 | asString 3 | ^ self item title. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/instance/contents.st: -------------------------------------------------------------------------------- 1 | accessing 2 | contents 3 | ^ self item subproperties sorted asOrderedCollection 4 | collect: [:each | self class with: each model: self model]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/instance/hasContents.st: -------------------------------------------------------------------------------- 1 | accessing 2 | hasContents 3 | ^ self item hasSubproperties. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/instance/icon.st: -------------------------------------------------------------------------------- 1 | accessing 2 | icon 3 | ^ nil. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/instance/setItem.model.parent..st: -------------------------------------------------------------------------------- 1 | accessing 2 | setItem: anObject model: aModel parent: itemParent 3 | self parent: itemParent. 4 | self setItem: anObject model: aModel. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | }, 4 | "instance" : { 5 | "asString" : "DM 5/14/2020 15:02", 6 | "contents" : "FH 8/1/2021 19:30", 7 | "hasContents" : "DM 5/20/2020 14:05", 8 | "icon" : "DM 5/14/2020 14:00", 9 | "setItem:model:parent:" : "DM 5/14/2020 15:11" } } 10 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorPropertyWrapper.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "tk 8/7/2020 17:54", 8 | "instvars" : [ 9 | "name" ], 10 | "name" : "AnimationsEditorPropertyWrapper", 11 | "pools" : [ 12 | ], 13 | "super" : "PluggableListItemWrapper", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/README.md: -------------------------------------------------------------------------------- 1 | This class displays the time scale quantified by the start-end-property. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/class/on.withExtent..st: -------------------------------------------------------------------------------- 1 | initialization 2 | on: anAnimationsEditorTimeline withExtent: anotherPoint 3 | ^ self basicNew timeline: anAnimationsEditorTimeline; 4 | initialize; 5 | extent: anotherPoint; 6 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/addEndLine.st: -------------------------------------------------------------------------------- 1 | updating 2 | addEndLine 3 | | startPoint endPoint positionX | 4 | 5 | positionX := self startMargin + self lineSegmentWidth. 6 | startPoint := positionX @ self height. 7 | endPoint := positionX @ (self height - self startEndLineHeight). 8 | self addLineFrom: startPoint to: endPoint. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/addLineFrom.to..st: -------------------------------------------------------------------------------- 1 | updating 2 | addLineFrom: aStartPoint to: anEndPoint 3 | | line | 4 | 5 | line := LineMorph 6 | from: aStartPoint 7 | to: anEndPoint 8 | color: Color black 9 | width: self lineWidth. 10 | self addMorph: line. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/addStartEndLine.st: -------------------------------------------------------------------------------- 1 | updating 2 | addStartEndLine 3 | self addStartLine. 4 | self addEndLine. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/addStartLine.st: -------------------------------------------------------------------------------- 1 | updating 2 | addStartLine 3 | | startPoint endPoint | 4 | 5 | startPoint := self startMargin @ self height. 6 | endPoint := self startMargin @ (self height - self startEndLineHeight). 7 | self addLineFrom: startPoint to: endPoint. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self color: Color lightGray. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/lineHeight.st: -------------------------------------------------------------------------------- 1 | constants 2 | lineHeight 3 | ^ 10. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/lineWidth.st: -------------------------------------------------------------------------------- 1 | constants 2 | lineWidth 3 | ^ 3. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/startEndLineHeight.st: -------------------------------------------------------------------------------- 1 | constants 2 | startEndLineHeight 3 | ^ 20. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/instance/updateScale.st: -------------------------------------------------------------------------------- 1 | updating 2 | updateScale 3 | self addStartEndLine. 4 | self addIntermediateLines. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimebar.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "CL 8/2/2021 08:50", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorTimebar", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorTimelineObject", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/README.md: -------------------------------------------------------------------------------- 1 | This is the class that displays tracks and keyframes. It observes the start-end-property in order to adjust its extent and the Timebar scale. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/class/newWith..st: -------------------------------------------------------------------------------- 1 | initialization 2 | newWith: anAnimationsEditor 3 | ^ self basicNew animationsEditor: anAnimationsEditor; 4 | initialize; 5 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/addTimebar.st: -------------------------------------------------------------------------------- 1 | initialization 2 | addTimebar 3 | | timebar | 4 | 5 | self timebar 6 | ifNotNil: [self timebar abandon]. 7 | timebar := AnimationsEditorTimebar on: self withExtent: self width @ self trackHeight. 8 | self addMorph: timebar. 9 | self timebar: timebar. 10 | self timebar updateScale. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/addTrackFor.withPosition..st: -------------------------------------------------------------------------------- 1 | creation 2 | addTrackFor: aProperty withPosition: aNumber 3 | | track | 4 | 5 | track := AnimationsEditorTrack 6 | on: self 7 | withProperty: aProperty 8 | withPosition: 0 @ aNumber 9 | withExtent: self width @ self trackHeight. 10 | aProperty addDependent: track. 11 | self addMorph: track. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/animationsEditor..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor: anObject 3 | animationsEditor := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/animationsEditor.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditor 3 | ^ animationsEditor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/createTracks.st: -------------------------------------------------------------------------------- 1 | creation 2 | createTracks 3 | | positionY | 4 | 5 | self deleteTracks. 6 | positionY := self trackHeight. 7 | self property subproperties 8 | do: [:subproperty | 9 | self addTrackFor: subproperty withPosition: positionY. 10 | positionY := positionY + self trackHeight]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/deleteTracks.st: -------------------------------------------------------------------------------- 1 | initialization 2 | deleteTracks 3 | self submorphs do: [ :morph | (morph class = AnimationsEditorTrack) ifTrue: [morph abandon]]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/endTime..st: -------------------------------------------------------------------------------- 1 | accessing 2 | endTime: anObject 3 | endTime := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/endTime.st: -------------------------------------------------------------------------------- 1 | accessing 2 | endTime 3 | ^ endTime. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/initialExtent.st: -------------------------------------------------------------------------------- 1 | constants 2 | initialExtent 3 | ^ 0 @ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self 5 | extent: self initialExtent; 6 | color: Color lightGray; 7 | initializeStartEndTime; 8 | setDefaultProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/initializeStartEndTime.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializeStartEndTime 3 | | startEndProperty | 4 | 5 | startEndProperty := self animationsEditor propertyStartEnd. 6 | self 7 | startTime: startEndProperty startTime; 8 | endTime: startEndProperty endTime. 9 | startEndProperty addDependent: self. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/property..st: -------------------------------------------------------------------------------- 1 | accessing 2 | property: anObject 3 | property := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/property.st: -------------------------------------------------------------------------------- 1 | accessing 2 | property 3 | ^ property. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/scrollPane.st: -------------------------------------------------------------------------------- 1 | accessing 2 | scrollPane 3 | ^ self owner owner. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/setDefaultProperty.st: -------------------------------------------------------------------------------- 1 | initialization 2 | setDefaultProperty 3 | self property: AnimationsEditorProperty new. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/startTime..st: -------------------------------------------------------------------------------- 1 | accessing 2 | startTime: anObject 3 | startTime := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/startTime.st: -------------------------------------------------------------------------------- 1 | accessing 2 | startTime 3 | ^ startTime. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/switchTimelineTo..st: -------------------------------------------------------------------------------- 1 | creation 2 | switchTimelineTo: aProperty 3 | self updateExtent. 4 | self property: aProperty. 5 | self createTracks. 6 | self addTimebar. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/timebar..st: -------------------------------------------------------------------------------- 1 | accessing 2 | timebar: anObject 3 | timebar := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/timebar.st: -------------------------------------------------------------------------------- 1 | accessing 2 | timebar 3 | ^ timebar. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/trackHeight.st: -------------------------------------------------------------------------------- 1 | constants 2 | trackHeight 3 | ^ 25. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/update..st: -------------------------------------------------------------------------------- 1 | updating 2 | update: aStartEndProperty 3 | self updateExtent. 4 | self startTime: aStartEndProperty startTime. 5 | self endTime: aStartEndProperty endTime. 6 | self createTracks. 7 | self addTimebar. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/instance/updateExtent.st: -------------------------------------------------------------------------------- 1 | updating 2 | updateExtent 3 | self extent: self scrollPane extent - (self borderWidth * 2). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimeline.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "CL 8/2/2021 08:52", 8 | "instvars" : [ 9 | "animationsEditor", 10 | "timebar", 11 | "property", 12 | "startTime", 13 | "endTime" ], 14 | "name" : "AnimationsEditorTimeline", 15 | "pools" : [ 16 | ], 17 | "super" : "RectangleMorph", 18 | "type" : "normal" } 19 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/README.md: -------------------------------------------------------------------------------- 1 | This is the superclass for all lanes in the timeline. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/convertFrameToPosition..st: -------------------------------------------------------------------------------- 1 | creation 2 | convertFrameToPosition: aFrame 3 | | position totalDuration framesPerPixel frameOffset | 4 | 5 | totalDuration := self timeline endTime - self timeline startTime. 6 | framesPerPixel := totalDuration / self lineSegmentWidth. 7 | frameOffset := aFrame / framesPerPixel. 8 | position := self startMargin + frameOffset. 9 | ^ position. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/endMargin.st: -------------------------------------------------------------------------------- 1 | constants 2 | endMargin 3 | ^ 10. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/lineSegmentWidth.st: -------------------------------------------------------------------------------- 1 | constants 2 | lineSegmentWidth 3 | ^ self width - self startMargin - self endMargin. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/startMargin.st: -------------------------------------------------------------------------------- 1 | constants 2 | startMargin 3 | ^ 105. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/timeline..st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline: anObject 3 | timeline := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/instance/timeline.st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline 3 | ^ timeline. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | }, 4 | "instance" : { 5 | "convertFrameToPosition:" : "MH 8/1/2021 19:19", 6 | "endMargin" : "MH 8/1/2021 18:59", 7 | "lineSegmentWidth" : "MH 8/1/2021 18:59", 8 | "startMargin" : "MH 8/1/2021 18:59", 9 | "timeline" : "MH 8/1/2021 19:00", 10 | "timeline:" : "MH 8/1/2021 18:48" } } 11 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTimelineObject.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "MH 8/1/2021 20:03", 8 | "instvars" : [ 9 | "timeline" ], 10 | "name" : "AnimationsEditorTimelineObject", 11 | "pools" : [ 12 | ], 13 | "super" : "RectangleMorph", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/README.md: -------------------------------------------------------------------------------- 1 | This class contains keyframes for its property. It furthermore observes the property for changes. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/class/on.withProperty.withPosition.withExtent..st: -------------------------------------------------------------------------------- 1 | initialization 2 | on: anAnimationsEditorTimeline withProperty: aProperty withPosition: aPoint withExtent: anotherPoint 3 | ^ self basicNew timeline: anAnimationsEditorTimeline; 4 | property: aProperty; 5 | initialize; 6 | position: aPoint; 7 | extent: anotherPoint; 8 | initializeTrack; 9 | yourself. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/addKeyframes.st: -------------------------------------------------------------------------------- 1 | creation 2 | addKeyframes 3 | | keyframeMorph | 4 | 5 | self property targetValues 6 | keysAndValuesDo: [:key :value | 7 | keyframeMorph := AnimationsEditorKeyframe 8 | on: self 9 | withPosition: (self convertFrameToPosition: key) @ (self position y - self keyframeMargin) 10 | withFrame: key 11 | withValue: value. 12 | self addMorph: keyframeMorph]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/initialize.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initialize 3 | super initialize. 4 | self color: Color lightGray. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/initializeMorph.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializeMorph 3 | | panel | 4 | 5 | panel := RectangleMorph new. 6 | panel position: self textMargin @ self position y; 7 | color: Color darkGray; 8 | extent: self width - self textMargin @ self height. 9 | self addMorph: panel. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/initializeText.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializeText 3 | | text positionX offset | 4 | 5 | offset := 5. 6 | text := StringMorph new 7 | contents: self property title; 8 | font: (StrikeFont familyName: 'Arial' pointSize: 9); 9 | yourself. 10 | positionX := text width / 2 + offset. 11 | text center: positionX @ self center y. 12 | self addMorph: text. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/initializeTrack.st: -------------------------------------------------------------------------------- 1 | initialization 2 | initializeTrack 3 | self initializeText; initializeMorph; addKeyframes. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/keyframeMargin.st: -------------------------------------------------------------------------------- 1 | constants 2 | keyframeMargin 3 | ^ 3. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/property..st: -------------------------------------------------------------------------------- 1 | accessing 2 | property: anObject 3 | property := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/property.st: -------------------------------------------------------------------------------- 1 | accessing 2 | property 3 | ^ property. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/textMargin.st: -------------------------------------------------------------------------------- 1 | constants 2 | textMargin 3 | ^ 95. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/instance/update..st: -------------------------------------------------------------------------------- 1 | updating 2 | update: aSymbol 3 | aSymbol = #addKeyframes 4 | ifTrue: [self addKeyframes]. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/AnimationsEditorTrack.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Core", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "CL 8/2/2021 08:48", 8 | "instvars" : [ 9 | "property" ], 10 | "name" : "AnimationsEditorTrack", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorTimelineObject", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/monticello.meta/categories.st: -------------------------------------------------------------------------------- 1 | SystemOrganization addCategory: #'AnimationsEditor-Core'! 2 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/monticello.meta/initializers.st: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Core.package/monticello.meta/initializers.st -------------------------------------------------------------------------------- /packages/AnimationsEditor-Core.package/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/.filetree: -------------------------------------------------------------------------------- 1 | { 2 | "noMethodMetaData" : true, 3 | "separateMethodMetaAndSource" : false, 4 | "useCypressPropertiesFile" : true } 5 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/.squot-contents: -------------------------------------------------------------------------------- 1 | SquotTrackedObjectMetadata { 2 | #objectClassName : #PackageInfo, 3 | #objectsReplacedByNames : true, 4 | #serializer : #SquotCypressCodeSerializer 5 | } -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/animationsEditorInstance..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance: anObject 3 | animationsEditorInstance := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/animationsEditorInstance.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance 3 | ^ animationsEditorInstance. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/colorFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | colorFrameDictionary 3 | ^ Dictionary 4 | with: #frame-> self defaultTime 5 | with: #properties->{ 6 | Dictionary 7 | with: #name->'color' 8 | with: #value-> #FF0000. 9 | }. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/defaultNextTime.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | defaultNextTime 3 | ^ 200. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/defaultTime.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | defaultTime 3 | ^ 100. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/dummyProperty.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | dummyProperty 3 | ^ self animationsEditorInstance propertyList second. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/imageFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | imageFrameDictionary 3 | ^ Dictionary 4 | with: #frame-> self defaultTime 5 | with: #properties->{ 6 | Dictionary 7 | with: #name->'imageSource' 8 | with: #value-> 'dummy.png'. 9 | }. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/jsonHandler..st: -------------------------------------------------------------------------------- 1 | accessing 2 | jsonHandler: anObject 3 | jsonHandler := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/jsonHandler.st: -------------------------------------------------------------------------------- 1 | accessing 2 | jsonHandler 3 | ^ jsonHandler. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadColorData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadColorData 3 | ^ {{'frame' -> 500 . 'properties' -> {{'value' -> 'blue' . 'name' -> 'color'} as: Dictionary}} as: Dictionary . {'frame' -> 1000 . 'properties' -> {{'value' -> 'lightGray' . 'name' -> 'color'} as: Dictionary}} as: Dictionary} as: Array. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadImageData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadImageData 3 | ^ {{'frame' -> 500. 'properties' -> {{'value' -> 'cat1.png'. 'name' -> 'imageSource'} as: Dictionary}} as: Dictionary. {'frame' -> 1000. 'properties' -> {{'value' -> 'cat2.png'. 'name' -> 'imageSource'} as: Dictionary}} as: Dictionary} as: Array. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadImageSetUp.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadImageSetUp 3 | | imageMorph | 4 | 5 | imageMorph := ImageMorph new openInWorld. 6 | self animationsEditorInstance addTargetMorph: imageMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadMorphsData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadMorphsData 3 | ^{{'type' -> 'Morph'. 'properties' -> {}. 'frames' -> {{'frame' -> 500. 'properties' -> {}} as: Dictionary}} as: Dictionary. {'type' -> 'Morph'. 'properties' -> {}. 'frames' -> {{'frame' -> 1000 . 'properties' -> {}} as: Dictionary}} as: Dictionary}. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadPositionData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadPositionData 3 | ^ {{'frame' -> 500. 'properties' -> {{'value' -> 48. 'name' -> 'positionX'} as: Dictionary. {'value' -> 104. 'name' -> 'positionY'} as: Dictionary}} as: Dictionary . {'frame' -> 1000. 'properties' -> {{'value' -> 3. 'name' -> 'positionX'} as: Dictionary. {'value' -> 42. 'name' -> 'positionY'} as: Dictionary}} as: Dictionary} as: Array. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadRotationData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadRotationData 3 | ^ {{'frame' -> 500. 'properties' -> {{'value' -> 40. 'name' -> 'rotation'} as: Dictionary}} as: Dictionary. {'frame' -> 1000. 'properties' -> {{'value' -> 80. 'name' -> 'rotation'} as: Dictionary}} as: Dictionary} as: Array. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadSizeData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadSizeData 3 | ^ {{'frame' -> 500. 'properties' -> {{'value' -> 50. 'name' -> 'width'} as: Dictionary. {'value' -> 40. 'name' -> 'height'} as: Dictionary}} as: Dictionary. {'frame' -> 1000. 'properties' -> {{'value' -> 87. 'name' -> 'width'} as: Dictionary. {'value' -> 500. 'name' -> 'height'} as: Dictionary}} as: Dictionary} as: Array. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadStartEndTimeData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadStartEndTimeData 3 | ^ {'end' -> 500 . 'start' -> 0} as: Dictionary. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadTextAndImageTearDown.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadTextAndImageTearDown 3 | | aPropertyList | 4 | 5 | aPropertyList := self animationsEditorInstance propertyList. 6 | aPropertyList third targetMorph isFlexed 7 | ifTrue: [aPropertyList third targetMorph owner abandon]. 8 | aPropertyList third targetMorph abandon. 9 | self animationsEditorInstance propertyList removeAt: 3. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadTextData.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadTextData 3 | ^{{'frame' -> 500. 'properties' -> {{'value' -> 'Klippschliefer'. 'name' -> 'text'} as: Dictionary}} as: Dictionary. {'frame' -> 1000. 'properties' -> {{'value' -> 'Klippenadler'. 'name' -> 'text'} as: Dictionary}} as: Dictionary} as: Array. 4 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadTextSetUp.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadTextSetUp 3 | | textMorph | 4 | 5 | textMorph := TextMorph new openInWorld. 6 | self animationsEditorInstance addTargetMorph: textMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/loadTextTearDown.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | loadTextTearDown 3 | | aPropertyList | 4 | 5 | aPropertyList := self animationsEditorInstance propertyList. 6 | aPropertyList third targetMorph isFlexed 7 | ifTrue: [aPropertyList third targetMorph owner abandon]. 8 | aPropertyList third targetMorph abandon. 9 | self animationsEditorInstance propertyList removeAt: 3. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/morph..st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph: anObject 3 | morph := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/morph.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph 3 | ^ morph -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/positionFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | positionFrameDictionary 3 | ^ Dictionary 4 | with: #frame -> self defaultTime 5 | with: #properties -> { 6 | Dictionary 7 | with: #name -> 'positionX' 8 | with: #value -> 100. 9 | Dictionary 10 | with: #name -> 'positionY' 11 | with: #value -> 200. 12 | }. 13 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/rotationFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | rotationFrameDictionary 3 | ^ Dictionary 4 | with: #frame -> self defaultTime 5 | with: #properties -> { 6 | Dictionary 7 | with: #name -> 'rotation' 8 | with: #value -> 20. 9 | }. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | self animationsEditorInstance: AnimationsEditor open. 5 | self morph: Morph new openInWorld. 6 | self animationsEditorInstance addTargetMorph: self morph. 7 | self jsonHandler: self animationsEditorInstance jsonHandler. 8 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/sizeFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | sizeFrameDictionary 3 | ^ Dictionary 4 | with: #frame -> self defaultTime 5 | with: #properties -> { 6 | Dictionary 7 | with: #name -> 'width' 8 | with: #value -> 100. 9 | Dictionary 10 | with: #name -> 'height' 11 | with: #value -> 200. 12 | }. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | running 2 | tearDown 3 | super tearDown. 4 | self morph isFlexed 5 | ifTrue: [self morph owner abandon]. 6 | self morph abandon. 7 | self animationsEditorInstance windowReference abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddColorFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddColorFrame 3 | | jsonFrame testFrame | 4 | 5 | jsonFrame := self jsonHandler addColorFrameAt: self defaultTime with: Color red. 6 | testFrame := self colorFrameDictionary. 7 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddImageSourceFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddImageSourceFrame 3 | | jsonFrame testFrame | 4 | 5 | jsonFrame := self jsonHandler addImageSourceFrameAt: self defaultTime with: 'dummy.png'. 6 | testFrame := self imageFrameDictionary. 7 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddMorphToJson.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddMorphToJson 3 | | aJsonStructure aDictionary anEntry | 4 | 5 | aDictionary := Dictionary 6 | with: #morphs -> {}. 7 | aJsonStructure := self jsonHandler addMorphToJson: aDictionary with: self positionTreeNode. 8 | anEntry := (aJsonStructure at: #morphs) first. 9 | self assert: (aJsonStructure at: #morphs) size > 0. 10 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddPositionFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddPositionFrame 3 | | jsonFrame testFrame aPosition | 4 | 5 | aPosition := 100 @ 200. 6 | jsonFrame := self jsonHandler addPositionFrameAt: self defaultTime with: aPosition. 7 | testFrame := self positionFrameDictionary. 8 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddRotationFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddRotationFrame 3 | | jsonFrame testFrame aRotationDegree| 4 | 5 | aRotationDegree := 20. 6 | jsonFrame := self jsonHandler addRotationFrameAt: self defaultTime with: aRotationDegree. 7 | testFrame := self rotationFrameDictionary. 8 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddSizeFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddSizeFrame 3 | | jsonFrame testFrame anExtent | 4 | 5 | anExtent := 100 @ 200. 6 | jsonFrame := self jsonHandler addSizeFrameAt: self defaultTime with: anExtent. 7 | testFrame := self sizeFrameDictionary. 8 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testAddTextFrame.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testAddTextFrame 3 | | jsonFrame testFrame | 4 | 5 | jsonFrame := self jsonHandler addTextFrameAt: self defaultTime with: 'abc'. 6 | testFrame := self textFrameDictionary. 7 | self assert: jsonFrame equals: testFrame. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateCircleMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateCircleMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'CircleMorph'. 6 | self assert: morph class = CircleMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateDefaultMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateDefaultMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'AnimationsEditorKlippschliefer'. 6 | self assert: morph class = Morph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateFrameCollection.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testCreateFrameCollection 3 | | frameCollection | 4 | 5 | frameCollection := self jsonHandler createFrameCollection: self dummyProperty. 6 | self assert: frameCollection size equals: self dummyProperty subproperties size. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateImageMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateImageMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'ImageMorph'. 6 | self assert: morph class = ImageMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'Morph'. 6 | self assert: morph class = Morph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateMorphDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testCreateMorphDictionary 3 | |json| 4 | 5 | json := self jsonHandler createMorphDictionary: self dummyProperty targetMorph. 6 | self assert: (json at: #type) = 'Morph'. 7 | 8 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateRectangleMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateRectangleMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'RectangleMorph'. 6 | self assert: morph class = RectangleMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateStructure.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testCreateStructure 3 | | aStartTime anEndTime json | 4 | 5 | aStartTime := 0. 6 | anEndTime := 500. 7 | json := self jsonHandler createStructure: aStartTime with: anEndTime. 8 | self assert: (json at: #start) equals: aStartTime. 9 | self assert: (json at: #end) equals: anEndTime. 10 | self assert: (json at: #morphs) isEmpty. 11 | 12 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testCreateTextMorph.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testCreateTextMorph 3 | | morph | 4 | 5 | morph := self jsonHandler createMorphFromString: 'TextMorph'. 6 | self assert: morph class = TextMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testDictionaryToJson.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testDictionaryToJson 3 | | json jsonString | 4 | 5 | json := Dictionary 6 | with: #Test -> 100. 7 | 8 | jsonString := '{ 9 | "Test" : 100 10 | }'. 11 | self assert: (self jsonHandler dictionaryToJson: json) equals: jsonString. 12 | 13 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testLoadPosition.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testLoadPosition 3 | | morphProperty | 4 | 5 | morphProperty := self animationsEditorInstance propertyList second. 6 | self jsonHandler loadFrames: self loadPositionData with: morphProperty. 7 | self assert: ((morphProperty subproperties at: 'position') targetValues at: 500) = (48 @ 104). 8 | self assert: ((morphProperty subproperties at: 'position') targetValues at: 1000) = (3 @ 42). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testLoadRotation.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testLoadRotation 3 | | morphProperty | 4 | 5 | morphProperty := self animationsEditorInstance propertyList second. 6 | self jsonHandler loadFrames: self loadRotationData with: morphProperty. 7 | self assert: ((morphProperty subproperties at: 'rotation') targetValues at: 500) = 40. 8 | self assert: ((morphProperty subproperties at: 'rotation') targetValues at: 1000) = 80. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testLoadSize.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testLoadSize 3 | | morphProperty | 4 | 5 | morphProperty := self animationsEditorInstance propertyList second. 6 | self jsonHandler loadFrames: self loadSizeData with: morphProperty. 7 | self assert: ((morphProperty subproperties at: 'size') targetValues at: 500) = (50 @ 40). 8 | self assert: ((morphProperty subproperties at: 'size') targetValues at: 1000) = (87 @ 500). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testLoadStartEndTime.st: -------------------------------------------------------------------------------- 1 | loadJson 2 | testLoadStartEndTime 3 | self jsonHandler loadStartEnd: self loadStartEndTimeData. 4 | self assert: self animationsEditorInstance propertyList first startTime = 0. 5 | self assert: self animationsEditorInstance propertyList first endTime = 1000. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/testWriteJsonToFile.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | testWriteJsonToFile 3 | | jsonString fileContent | 4 | 5 | jsonString := '{ "Test": { "id": "1"} }'. 6 | self jsonHandler writeJsonToFile: jsonString with: 'test.json'. 7 | fileContent := (FileStream fileNamed: 'test.json') contents. 8 | self assert: fileContent = jsonString. 9 | (FileDirectory default) deleteFileNamed: 'test.json'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/instance/textFrameDictionary.st: -------------------------------------------------------------------------------- 1 | saveJson 2 | textFrameDictionary 3 | ^ Dictionary 4 | with: #frame-> self defaultTime 5 | with: #properties->{ 6 | Dictionary 7 | with: #name->'text' 8 | with: #value-> 'abc'. 9 | }. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorJSONTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "animationsEditorInstance", 10 | "jsonHandler", 11 | "morph" ], 12 | "name" : "AnimationsEditorJSONTest", 13 | "pools" : [ 14 | ], 15 | "super" : "TestCase", 16 | "type" : "normal" } 17 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/addDefaultKeyframe.st: -------------------------------------------------------------------------------- 1 | defaults 2 | addDefaultKeyframe 3 | self property 4 | frame: 200; 5 | addKeyframe. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/morph..st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph: anObject 3 | morph := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/morph.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph 3 | ^ morph -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/morphClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morphClass 3 | ^ Morph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/property..st: -------------------------------------------------------------------------------- 1 | accessing 2 | property: anObject 3 | property := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/property.st: -------------------------------------------------------------------------------- 1 | accessing 2 | property 3 | ^ property -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyAnimated. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | self morph: self morphClass new openInWorld. 5 | self property: (self propertyClass on: self morph). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | running 2 | tearDown 3 | super tearDown. 4 | self morph isFlexed 5 | ifTrue: [self morph owner abandon]. 6 | self morph abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyAnimatedTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "morph", 10 | "property" ], 11 | "name" : "AnimationsEditorPropertyAnimatedTest", 12 | "pools" : [ 13 | ], 14 | "super" : "TestCase", 15 | "type" : "normal" } 16 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyColor. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testAddStartFrame.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddStartFrame 3 | self assert: self property targetValues size = 1. 4 | self assert: self morph color = (self property targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph color. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | | originalColor newColor | 4 | 5 | originalColor := self property targetMorph color. 6 | newColor := Color green. 7 | self property targetMorph color: newColor. 8 | self property resetTargetMorph. 9 | self assert: self property targetMorph color = originalColor. 10 | self assert: (originalColor = newColor) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := Color green. 6 | self assert: (self morph color = newValue) not. 7 | self property 8 | currentValue: newValue; 9 | frame: 0; 10 | addKeyframe. 11 | self assert: self morph color = newValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testTargetColorFromString.st: -------------------------------------------------------------------------------- 1 | testing 2 | testTargetColorFromString 3 | self property currentValueFromText: 'FF0000'. 4 | self assert: self property currentValue equals: Color red. 5 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testTargetColorGetterAsString.st: -------------------------------------------------------------------------------- 1 | testing 2 | testTargetColorGetterAsString 3 | self assert: self property currentValueAsString = (self morph color asString copyReplaceAll: 'Color ' with: ''). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testUpdateTargetColor.st: -------------------------------------------------------------------------------- 1 | testing 2 | testUpdateTargetColor 3 | self property update: Color red. 4 | self assert: self property currentValue equals: Color red. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/instance/testUpdateTargetColorTestMorphChanged.st: -------------------------------------------------------------------------------- 1 | testing 2 | testUpdateTargetColorTestMorphChanged 3 | | colorText | 4 | 5 | self property buildUIWith: MorphicToolBuilder new. 6 | self property update: Color red. 7 | colorText := (self property dependents at: 3) textMorph text. 8 | self assert: colorText equals: 'FF0000'. 9 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyColorTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyColorTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/dummyImage.st: -------------------------------------------------------------------------------- 1 | dummy 2 | dummyImage 3 | ^ Form 4 | extent: 4 @ 4 5 | depth: 32 6 | fromArray: #(4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080 4278190080) 7 | offset: 0 @ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/dummyImage2.st: -------------------------------------------------------------------------------- 1 | dummy 2 | dummyImage2 3 | ^ Form 4 | extent: 4 @ 4 5 | depth: 32 6 | fromArray: #(4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081 4278190081) 7 | offset: 0 @ 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/dummyImagePathJPEG.st: -------------------------------------------------------------------------------- 1 | dummy 2 | dummyImagePathJPEG 3 | ^ 'testDummyImage.jpg'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/morphClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morphClass 3 | ^ ImageMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyImageSource. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | JPEGReadWriter2 putForm: self dummyImage onFileNamed: self dummyImagePathJPEG. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | running 2 | tearDown 3 | super tearDown. 4 | FileDirectory default deleteFileNamed: self dummyImagePathJPEG. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph image. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | "Image properties don't have automatic start frames so the behaviour is different here." 4 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | self property 4 | targetFrame: 0; 5 | currentValue: self dummyImagePathJPEG; 6 | addKeyframe. 7 | self property targetMorph image: self dummyImage. 8 | 9 | self property targetMorph image: self dummyImage2. 10 | self property resetTargetMorph. 11 | self assert: self property targetMorph image bits = self dummyImage bits. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := self dummyImagePathJPEG. 6 | self property 7 | currentValue: newValue; 8 | frame: 0; 9 | addKeyframe. 10 | self assert: self morph image bits = self dummyImage bits. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyImageSourceTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyImageSourceTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyPosition. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testAddStartFrame.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddStartFrame 3 | self assert: self property targetValues size = 1. 4 | self assert: self morph owner position = (self property targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph position. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | | originalPosition newPosition | 4 | 5 | originalPosition := self property targetMorph position. 6 | newPosition := originalPosition + (50 @ 50). 7 | self property targetMorph position: newPosition. 8 | self property resetTargetMorph. 9 | self assert: self property targetMorph position = originalPosition. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := 34 @ 50. 6 | self property 7 | currentValue: newValue; 8 | frame: 0; 9 | addKeyframe. 10 | self assert: self morph owner position = newValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyPositionTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyPositionTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyRotation. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testAddStartFrame.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddStartFrame 3 | self assert: self property targetValues size = 1. 4 | self assert: self morph rotationDegrees = (self property targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph rotationDegrees. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | | originalRotation newRotation | 4 | 5 | originalRotation := self property targetMorph rotationDegrees. 6 | newRotation := originalRotation + 60. 7 | self property targetMorph rotationDegrees: newRotation. 8 | self property resetTargetMorph. 9 | self assert: self property targetMorph rotationDegrees = originalRotation. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := 34. 6 | self property 7 | currentValue: newValue; 8 | frame: 0; 9 | addKeyframe. 10 | self assert: self morph rotationDegrees = newValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyRotationTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyRotationTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertySize. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testAddStartFrame.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddStartFrame 3 | self assert: self property targetValues size = 1. 4 | self assert: self morph extent = (self property targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph extent. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | | originalExtent newExtent | 4 | 5 | originalExtent := self property targetMorph extent. 6 | newExtent := originalExtent x + 50 @ (originalExtent y + 50). 7 | self property targetMorph extent: newExtent. 8 | self property resetTargetMorph. 9 | self assert: self property targetMorph extent = originalExtent. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := 534 @ 123. 6 | self property 7 | currentValue: newValue; 8 | frame: 0; 9 | addKeyframe. 10 | self assert: self morph extent = newValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertySizeTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertySizeTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/instance/propertyStartEnd..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyStartEnd: anObject 3 | propertyStartEnd := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/instance/propertyStartEnd.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyStartEnd 3 | ^ propertyStartEnd. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | self propertyStartEnd: AnimationsEditorPropertyStartEnd new. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self propertyStartEnd = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | }, 4 | "instance" : { 5 | "propertyStartEnd" : "MH 8/1/2021 18:35", 6 | "propertyStartEnd:" : "MH 8/1/2021 18:35", 7 | "setUp" : "MH 7/8/2021 12:08", 8 | "testInstanceCreation" : "LW 6/27/2021 13:09" } } 9 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyStartEndTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "propertyStartEnd" ], 10 | "name" : "AnimationsEditorPropertyStartEndTest", 11 | "pools" : [ 12 | ], 13 | "super" : "TestCase", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/animationsEditorInstance..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance: anObject 3 | animationsEditorInstance := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/animationsEditorInstance.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance 3 | ^ animationsEditorInstance. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/morph..st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph: anObject 3 | morph := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/morph.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morph 3 | ^ morph -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/property..st: -------------------------------------------------------------------------------- 1 | accessing 2 | property: anObject 3 | property := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/property.st: -------------------------------------------------------------------------------- 1 | accessing 2 | property 3 | ^ property -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | self animationsEditorInstance: AnimationsEditor open. 5 | self morph: Morph new openInWorld. 6 | self animationsEditorInstance addTargetMorph: self morph. 7 | self property: self animationsEditorInstance propertyList second. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | running 2 | tearDown 3 | self morph isFlexed 4 | ifTrue: [self morph owner abandon]. 5 | self morph abandon. 6 | self animationsEditorInstance windowReference abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testAddKeyframe.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddKeyframe 3 | | positionProperty oldSize | 4 | 5 | positionProperty := self property subproperties at: 'position'. 6 | oldSize := positionProperty targetValues size. 7 | positionProperty 8 | currentValue: 42 @ 42; 9 | frame: 500; 10 | addKeyframe. 11 | self assert: oldSize + 1 = positionProperty targetValues size. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testEmptySubProperties.st: -------------------------------------------------------------------------------- 1 | testing 2 | testEmptySubProperties 3 | | propertyItem | 4 | 5 | propertyItem := AnimationsEditorProperty new. 6 | self assert: (propertyItem hasSubproperties = false). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testHasSubProperties.st: -------------------------------------------------------------------------------- 1 | testing 2 | testHasSubProperties 3 | | propertyItem subpropertyItem | 4 | 5 | propertyItem := AnimationsEditorProperty new. 6 | subpropertyItem := AnimationsEditorProperty new. 7 | propertyItem subproperties at: 'property' put: subpropertyItem. 8 | self assert: (propertyItem hasSubproperties = true). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (AnimationsEditorProperty new = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testShowMessageSelectAnimatedProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testShowMessageSelectAnimatedProperty 3 | self property addKeyframe. 4 | self assert: self animationsEditorInstance informationBarText = self property messageSelectAnimatedProperty. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/instance/testTargetValuesIsSorted.st: -------------------------------------------------------------------------------- 1 | testing 2 | testTargetValuesIsSorted 3 | | positionProperty | 4 | 5 | positionProperty := self property subproperties at: 'position'. 6 | positionProperty 7 | currentValue: 42 @ 42; 8 | frame: 500; 9 | addKeyframe. 10 | positionProperty 11 | currentValue: 420 @ 420; 12 | frame: 200; 13 | addKeyframe. 14 | self assert: positionProperty targetValues isSorted. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "animationsEditorInstance", 10 | "morph", 11 | "property" ], 12 | "name" : "AnimationsEditorPropertyTest", 13 | "pools" : [ 14 | ], 15 | "super" : "TestCase", 16 | "type" : "normal" } 17 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/morphClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | morphClass 3 | ^ TextMorph. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/propertyClass.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyClass 3 | ^ AnimationsEditorPropertyText. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testAddStartFrame.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAddStartFrame 3 | self assert: self property targetValues size = 1. 4 | self assert: self morph contents asString = (self property targetValues at: 0). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testAnimationProperty.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAnimationProperty 3 | self assert: self property animationProperty = self property targetMorph contents asString. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self property = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testKeyframeExceptStartFrameIsExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsExistent 3 | self addDefaultKeyframe. 4 | self assert: self property isKeyframeExceptStartFrameExistent = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testKeyframeExceptStartFrameIsNotExistent.st: -------------------------------------------------------------------------------- 1 | testing 2 | testKeyframeExceptStartFrameIsNotExistent 3 | self assert: self property isKeyframeExceptStartFrameExistent = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testResetTargetMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testResetTargetMorph 3 | | originalText dummyText | 4 | 5 | dummyText := 'Lorem Ipsum'. 6 | originalText := self morph contents asString. 7 | self morph contents: dummyText. 8 | self property resetTargetMorph. 9 | self assert: self morph contents asString = originalText. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/instance/testSetStartValue.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSetStartValue 3 | | newValue | 4 | 5 | newValue := 'Lorem Ipsum'. 6 | self property 7 | currentValue: newValue; 8 | frame: 0; 9 | addKeyframe. 10 | self assert: self morph contents asString = newValue. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyTextTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "AnimationsEditorPropertyTextTest", 11 | "pools" : [ 12 | ], 13 | "super" : "AnimationsEditorPropertyAnimatedTest", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/property..st: -------------------------------------------------------------------------------- 1 | accessing 2 | property: anObject 3 | property := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/property.st: -------------------------------------------------------------------------------- 1 | accessing 2 | property 3 | ^ property -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/propertyWrapper..st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyWrapper: anObject 3 | propertyWrapper := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/propertyWrapper.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyWrapper 3 | ^ propertyWrapper -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | super setUp. 4 | self 5 | property: AnimationsEditorProperty new; 6 | propertyWrapper: AnimationsEditorPropertyWrapper new. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/testAsString.st: -------------------------------------------------------------------------------- 1 | testing 2 | testAsString 3 | | assignedTitle | 4 | 5 | assignedTitle := 'Ich bin ein title'. 6 | self property title: assignedTitle. 7 | self propertyWrapper setItem: self property. 8 | self assert: self propertyWrapper asString = assignedTitle. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/testContents.st: -------------------------------------------------------------------------------- 1 | testing 2 | testContents 3 | | subpropertyItem | 4 | 5 | subpropertyItem := AnimationsEditorProperty new. 6 | self property subproperties at: 'property' put: subpropertyItem. 7 | self propertyWrapper setItem: self property. 8 | self assert: self propertyWrapper contents size > 0. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/testHasContents.st: -------------------------------------------------------------------------------- 1 | testing 2 | testHasContents 3 | | subpropertyItem | 4 | 5 | subpropertyItem := AnimationsEditorProperty new. 6 | self property subproperties at: 'property' put: subpropertyItem. 7 | self propertyWrapper setItem: self property. 8 | self assert: self propertyWrapper hasContents = true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/testHasEmptyContents.st: -------------------------------------------------------------------------------- 1 | testing 2 | testHasEmptyContents 3 | self propertyWrapper setItem: self property. 4 | self assert: self propertyWrapper hasContents = false. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self propertyWrapper = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorPropertyWrapperTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "property", 10 | "propertyWrapper" ], 11 | "name" : "AnimationsEditorPropertyWrapperTest", 12 | "pools" : [ 13 | ], 14 | "super" : "TestCase", 15 | "type" : "normal" } 16 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/animationsEditorInstance..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance: anObject 3 | animationsEditorInstance := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/animationsEditorInstance.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance 3 | ^ animationsEditorInstance. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/setUp.st: -------------------------------------------------------------------------------- 1 | running 2 | setUp 3 | | morph | 4 | 5 | super setUp. 6 | self animationsEditorInstance: AnimationsEditor open. 7 | morph := Morph new openInWorld. 8 | self animationsEditorInstance addTargetMorph: morph. 9 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | running 2 | tearDown 3 | | targetMorph | 4 | 5 | super tearDown. 6 | targetMorph := (self animationsEditorInstance propertyList second) targetMorph. 7 | targetMorph isFlexed 8 | ifTrue: [targetMorph owner abandon]. "removes FlexShell" 9 | targetMorph abandon. 10 | self animationsEditorInstance windowReference abandon. 11 | 12 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/testGetDeepestMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testGetDeepestMorph 3 | | point deepestMorph | 4 | 5 | point := self animationsEditorInstance windowReference topLeft. 6 | deepestMorph := self animationsEditorInstance getDeepestMorph: self animationsEditorInstance windowReference at: point. 7 | self assert: (deepestMorph = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/testInstanceCreation.st: -------------------------------------------------------------------------------- 1 | testing 2 | testInstanceCreation 3 | self assert: (self animationsEditorInstance windowReference = nil) not. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/testSelectMorphByHand.st: -------------------------------------------------------------------------------- 1 | testing 2 | testSelectMorphByHand 3 | | morph | 4 | 5 | morph := Morph new. 6 | morph openInHand. 7 | self animationsEditorInstance selectMorphByHand. 8 | self animationsEditorInstance handleListenEvent: nil. 9 | morph abandon. 10 | self assert: true. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/testTreeSpecPropertyStartEnd.st: -------------------------------------------------------------------------------- 1 | testing 2 | testTreeSpecPropertyStartEnd 3 | | animationsEditorInstance | 4 | 5 | animationsEditorInstance := AnimationsEditor open. 6 | animationsEditorInstance seedProperties. 7 | self assert: animationsEditorInstance propertyList size = 2. 8 | animationsEditorInstance windowReference abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/instance/testTreeSpecWithNoMorph.st: -------------------------------------------------------------------------------- 1 | testing 2 | testTreeSpecWithNoMorph 3 | | animationsEditorInstance | 4 | 5 | animationsEditorInstance := AnimationsEditor open. 6 | self assert: animationsEditorInstance propertyList size = 1. 7 | animationsEditorInstance windowReference abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "animationsEditorInstance" ], 10 | "name" : "AnimationsEditorTest", 11 | "pools" : [ 12 | ], 13 | "super" : "TestCase", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/README.md -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/animationPosition.st: -------------------------------------------------------------------------------- 1 | constants 2 | animationPosition 3 | 4 | ^ 31 @ 420. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/animationsEditorInstance..st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance: anObject 3 | animationsEditorInstance := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/animationsEditorInstance.st: -------------------------------------------------------------------------------- 1 | accessing 2 | animationsEditorInstance 3 | ^ animationsEditorInstance -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/calculateKeyframeCenterOn..st: -------------------------------------------------------------------------------- 1 | calculation 2 | calculateKeyframeCenterOn: aKeyframe 3 | 4 | ^ ((self keyframeWidthOn: aKeyframe) / 2) @ ((self keyframeHeightOn: aKeyframe) / 2). -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/createKeyframeWith.on..st: -------------------------------------------------------------------------------- 1 | creation 2 | createKeyframeWith: aValue on: aFrame 3 | 4 | self propertyPosition 5 | currentValue: aValue; 6 | frame: aFrame; 7 | addKeyframe. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/endFrame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | endFrame 3 | ^ self animationsEditorInstance propertyStartEnd endTime. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/frameNumber100.st: -------------------------------------------------------------------------------- 1 | constants 2 | frameNumber100 3 | 4 | ^ self startFrame + 100. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/keyframeHeightOn..st: -------------------------------------------------------------------------------- 1 | calculation 2 | keyframeHeightOn: aKeyframe 3 | 4 | ^ aKeyframe bounds origin y + aKeyframe bounds corner y. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/keyframeWidthOn..st: -------------------------------------------------------------------------------- 1 | calculation 2 | keyframeWidthOn: aKeyframe 3 | 4 | ^ aKeyframe bounds origin x + aKeyframe bounds corner x. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/middleOfAnimationTime.st: -------------------------------------------------------------------------------- 1 | constants 2 | middleOfAnimationTime 3 | 4 | ^ self endFrame / 2. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/paddingDistance.st: -------------------------------------------------------------------------------- 1 | constants 2 | paddingDistance 3 | 4 | ^ 20. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/positionTrack..st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionTrack: anObject 3 | positionTrack := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/positionTrack.st: -------------------------------------------------------------------------------- 1 | accessing 2 | positionTrack 3 | ^ positionTrack -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/propertyPosition.st: -------------------------------------------------------------------------------- 1 | accessing 2 | propertyPosition 3 | ^ self animationsEditorInstance propertyList second subproperties at: 'position'. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/secondLastOn..st: -------------------------------------------------------------------------------- 1 | calculation 2 | secondLastOn: aTrack 3 | 4 | ^ aTrack submorphs size - 1. 5 | 6 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/startFrame.st: -------------------------------------------------------------------------------- 1 | accessing 2 | startFrame 3 | ^ self animationsEditorInstance propertyStartEnd startTime. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/tearDown.st: -------------------------------------------------------------------------------- 1 | testing 2 | tearDown 3 | super tearDown. 4 | self propertyPosition targetMorph isFlexed 5 | ifTrue: [self propertyPosition targetMorph owner abandon]. 6 | self propertyPosition targetMorph abandon. 7 | self animationsEditorInstance windowReference abandon. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/timeline..st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline: anObject 3 | timeline := anObject. -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/instance/timeline.st: -------------------------------------------------------------------------------- 1 | accessing 2 | timeline 3 | ^ timeline -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/AnimationsEditorTimelineTest.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "AnimationsEditor-Tests", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | "animationsEditorInstance", 10 | "timeline", 11 | "positionTrack", 12 | "addedKeyframeMorph" ], 13 | "name" : "AnimationsEditorTimelineTest", 14 | "pools" : [ 15 | ], 16 | "super" : "TestCase", 17 | "type" : "normal" } 18 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/monticello.meta/categories.st: -------------------------------------------------------------------------------- 1 | SystemOrganization addCategory: #'AnimationsEditor-Tests'! 2 | -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/monticello.meta/initializers.st: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/AnimationsEditor-Tests.package/monticello.meta/initializers.st -------------------------------------------------------------------------------- /packages/AnimationsEditor-Tests.package/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/.filetree: -------------------------------------------------------------------------------- 1 | { 2 | "noMethodMetaData" : true, 3 | "separateMethodMetaAndSource" : false, 4 | "useCypressPropertiesFile" : true } 5 | -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/.squot-contents: -------------------------------------------------------------------------------- 1 | SquotTrackedObjectMetadata { 2 | #objectClassName : #PackageInfo, 3 | #objectsReplacedByNames : true, 4 | #serializer : #SquotCypressCodeSerializer 5 | } -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/BaselineOfAnimationsEditor.class/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/BaselineOfAnimationsEditor.package/BaselineOfAnimationsEditor.class/README.md -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/BaselineOfAnimationsEditor.class/methodProperties.json: -------------------------------------------------------------------------------- 1 | { 2 | "class" : { 3 | }, 4 | "instance" : { 5 | "baseline:" : "jb 4/30/2020 22:00" } } 6 | -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/BaselineOfAnimationsEditor.class/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "category" : "BaselineOfAnimationsEditor", 3 | "classinstvars" : [ 4 | ], 5 | "classvars" : [ 6 | ], 7 | "commentStamp" : "", 8 | "instvars" : [ 9 | ], 10 | "name" : "BaselineOfAnimationsEditor", 11 | "pools" : [ 12 | ], 13 | "super" : "BaselineOf", 14 | "type" : "normal" } 15 | -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/monticello.meta/categories.st: -------------------------------------------------------------------------------- 1 | SystemOrganization addCategory: #BaselineOfAnimationsEditor! 2 | -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/monticello.meta/initializers.st: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hpi-swa-teaching/AnimationsEditor/657c66b22aaf4496e6824eac322e0c11fe19bfe2/packages/BaselineOfAnimationsEditor.package/monticello.meta/initializers.st -------------------------------------------------------------------------------- /packages/BaselineOfAnimationsEditor.package/properties.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /scripts/preLoading.st: -------------------------------------------------------------------------------- 1 | Deprecation showDeprecationWarnings: false. 2 | --------------------------------------------------------------------------------