| 69 | |
| 70 | * [http://asteasolutions.net/videos/2009-02-17-Design%20Discussion%20(Part%201).mpg (2009-02-17) Discussion about core.mvc] |
| 71 | |
| 72 | {{{ |
| 73 | G0gOv pR0d\/cT10nZ pR0uDLy pR3s3nTs: |
| 74 | |
| 75 | ================ PART 1 ================ |
| 76 | |
| 77 | * core.mvc |
| 78 | * common concept of mvc |
| 79 | * model |
| 80 | * view |
| 81 | * controller |
| 82 | * interactions among them |
| 83 | * past attempts at integrating mvc in sophie2 |
| 84 | * R1 |
| 85 | * dark ages |
| 86 | * pure MVC form |
| 87 | * parallel model, view, controller hierarchies |
| 88 | * R2 |
| 89 | * ProLib |
| 90 | * customized form of MVC pattern |
| 91 | * nonparaller model, view, controlelr hierarchies |
| 92 | * examples of bad code/design |
| 93 | * R3 |
| 94 | * model - same as R2 |
| 95 | * view |
| 96 | * view shouldn't modify the model directly, it should fire an event |
| 97 | * controller |
| 98 | * only single class |
| 99 | * a set of operation |
| 100 | * enum of operations |
| 101 | * each operation has two methods |
| 102 | * defineFilter |
| 103 | * define what kind of events this operation processes |
| 104 | * handleEvent |
| 105 | * returns boolean |
| 106 | * gets the actual event |
| 107 | * try to process it, return wheter the event was processed |
| 108 | * sortkey of each operation |
| 109 | * event description |
| 110 | * OO approach (Swing/AWT) |
| 111 | * grouping of similar events |
| 112 | * decomposing into class hierarchy |
| 113 | * EventR3 |
| 114 | * contextData |
| 115 | * source - (component, etc.) |
| 116 | * context - (a parent view for instance) |
| 117 | * tip - (a corresponding model / bad design) |
| 118 | * cause - other event (EventR3, Swing event etc.) |
| 119 | * target / event specific data |
| 120 | * eventId |
| 121 | * Ids enum |
| 122 | * @EventParams |
| 123 | * Place enum |
| 124 | * params |
| 125 | * enum InputEventR3 |
| 126 | * enum InputModifier |
| 127 | * CTRL down, SHIFT down.. etc. |
| 128 | * ModifierSet |
| 129 | * immutable set of InputModifier fields |
| 130 | * example: |
| 131 | * @EventParams(ModifierSet.class) |
| 132 | }}} |
| 133 | |
| 134 | * [http://asteasolutions.net/videos/2009-02-17-Design%20Discussion%20(Part%202).mpg (2009-02-17) Discussion about base.visual] |
| 135 | |
| 136 | {{{ |
| 137 | G0gOv pR0d\/cT10nZ pR0uDLy pR3s3nTs: |
| 138 | |
| 139 | ================ PART 2 ================ |
| 140 | |
| 141 | * base.visual [interaction] |
| 142 | * app structure / doc structure correspondence for visuals |
| 143 | * interaction is put in skins |
| 144 | * sample of what you usually put in a skin |
| 145 | * sample of how you add interaction maps in a skin |
| 146 | * interaction maps "string language" |
| 147 | * skins are meant to be written to/read from human readable string configuration files |
| 148 | * brief skin explanation |
| 149 | * (input -> user events) map |
| 150 | [continued in PART 3]... |
| 151 | }}} |
| 152 | |
| 153 | * [http://asteasolutions.net/videos/2009-02-17-Design%20Discussion%20(Part%203).mpg (2009-02-17) Discussion about base.skins, base.visual (continued), base.model.text] |
| 154 | |
| 155 | {{{ |
| 156 | G0gOv pR0d\/cT10nZ pR0uDLy pR3s3nTs: |
| 157 | |
| 158 | ================ PART 3 ================ |
| 159 | * base.skins |
| 160 | * brief skins content description |
| 161 | * brief value lookup scheme in skin hierarchy |
| 162 | * each skin is consisted of SkinParts |
| 163 | * @SkinPartDef |
| 164 | * SkinPropId |
| 165 | * @SkinElementId |
| 166 | |
| 167 | ...[continued from PART 2] |
| 168 | * userEvents |
| 169 | * events/operations/interaction maps relation |
| 170 | * SwingEventAdapter |
| 171 | |
| 172 | * base.model.text |
| 173 | * brief overview |
| 174 | * HotText |
| 175 | * list of HotUnit |
| 176 | * HotPos |
| 177 | * HotTextLayout |
| 178 | * HotTextPane |
| 179 | * HotStyleDef |
| 180 | * HotStyle |
| 181 | * sample use cases and solutions |
| 182 | }}} |
| 183 | |