google / blockly-android

Blockly for Android
Apache License 2.0
673 stars 209 forks source link

Procedure mutator implementation; CustomCategory; other improvements #601

Closed AnmAtAnm closed 7 years ago

AnmAtAnm commented 7 years ago

Refactored BlocklyCategory into CustomCategory. It no longer creates the category, but is an initialization pass after loading from XML.

Implementing mutators for procedures (user defined functions).

Starting a new convention of a .mutate(..) method on Mutator implementations for programmatically applying new parameters. The method should construct the <mutation> XML and fire the ChangeEvent, so the change is fully managed by the event framework.

Implemented toolbox XML support for buttons and labels.


This change is Reviewable

RoboErikG commented 7 years ago

Some nits but no major issues. :lgtm:


Review status: 0 of 31 files reviewed at latest revision, 6 unresolved discussions.


blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 207 at r1 (raw file):

        Mutator mutator = block.getMutator();
        if (!(mutator instanceof AbstractProcedureMutator)) {
            throw new IllegalArgumentException("Procedure block with no name field.");

remove 'field'?


blocklylib-core/src/main/java/com/google/blockly/model/CustomCategory.java, line 35 at r1 (raw file):

     * reference to the category should be saved for future updates.
     * @param category The category to initialize.
     * @return

remove @return


blocklylib-core/src/main/java/com/google/blockly/model/ProcedureCustomCategory.java, line 1 at r1 (raw file):

package com.google.blockly.model;

copyright


blocklylib-core/src/main/java/com/google/blockly/model/mutator/AbstractProcedureMutator.java, line 1 at r1 (raw file):

package com.google.blockly.model.mutator;

copyright


blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureCallMutator.java, line 1 at r1 (raw file):

package com.google.blockly.model.mutator;

copyright


blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 1 at r1 (raw file):

package com.google.blockly.model.mutator;

copyright


Comments from Reviewable

AnmAtAnm commented 7 years ago

Review status: 0 of 31 files reviewed at latest revision, 6 unresolved discussions, all commit checks successful.


blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 207 at r1 (raw file):

Previously, RoboErikG wrote…
remove 'field'?

Rewrote: "Block does not contain procedure mutator." Also, below.


blocklylib-core/src/main/java/com/google/blockly/model/CustomCategory.java, line 35 at r1 (raw file):

Previously, RoboErikG wrote…
remove @return

Done.


blocklylib-core/src/main/java/com/google/blockly/model/ProcedureCustomCategory.java, line 1 at r1 (raw file):

Previously, RoboErikG wrote…
copyright

Done.


blocklylib-core/src/main/java/com/google/blockly/model/mutator/AbstractProcedureMutator.java, line 1 at r1 (raw file):

Previously, RoboErikG wrote…
copyright

Done.


blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureCallMutator.java, line 1 at r1 (raw file):

Previously, RoboErikG wrote…
copyright

Done.


blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 1 at r1 (raw file):

Previously, RoboErikG wrote…
copyright

Done.


Comments from Reviewable