24
24
define ( function ( require , exports , module ) {
25
25
"use strict" ;
26
26
27
- var Repository = staruml . getModule ( "engine/Repository" ) ,
27
+ var AppInit = staruml . getModule ( "utils/AppInit" ) ,
28
+ Repository = staruml . getModule ( "engine/Repository" ) ,
28
29
Engine = staruml . getModule ( "engine/Engine" ) ,
29
30
Commands = staruml . getModule ( "menu/Commands" ) ,
31
+ CommandManager = staruml . getModule ( "menu/CommandManager" ) ,
30
32
MenuManager = staruml . getModule ( "menu/MenuManager" ) ,
31
33
Dialogs = staruml . getModule ( "widgets/Dialogs" ) ,
32
34
ElementPicker = staruml . getModule ( "dialogs/ElementPicker" ) ,
@@ -43,11 +45,12 @@ define(function (require, exports, module) {
43
45
/**
44
46
* Menu IDs
45
47
*/
46
- var TOOLS_JAVA = 'tools. java' ,
47
- TOOLS_JAVA_CONFIG = 'tools. java.config' ,
48
- TOOLS_JAVA_GENERATE = 'tools. java.generate' ,
49
- TOOLS_JAVA_REVERSE = 'tools. java.reverse' ;
48
+ var CMD_JAVA = 'java' ,
49
+ CMD_JAVA_CONFIG = 'java.config' ,
50
+ CMD_JAVA_GENERATE = 'java.generate' ,
51
+ CMD_JAVA_REVERSE = 'java.reverse' ;
50
52
53
+ // TODO: Return $.Promise
51
54
function checkConfig ( callback ) {
52
55
var baseModel = JavaCodeGenerator . getBaseModel ( ) ,
53
56
targetDir = JavaCodeGenerator . getTargetDirectory ( ) ;
@@ -127,44 +130,62 @@ define(function (require, exports, module) {
127
130
}
128
131
}
129
132
}
130
- } ) ;
133
+ } ) ;
134
+ }
135
+
136
+ function _handleConfig ( ) {
137
+ ConfigDialog . showDialog ( ) ;
131
138
}
132
139
133
140
/**
134
- * Initialize extension
141
+ * CommandManager.execute로부터 파라미터를 받아서 코드 생성 가능하게 한다.
142
+ * 파라미터가 없으면 baseModel, targetDir을 사용한다.
135
143
*/
136
- function init ( ) {
137
- // MenuManager.addMenuItemSeparator(Commands.TOOLS);
138
- MenuManager . addMenuItem ( TOOLS_JAVA , Commands . TOOLS , "Java" , "" , "" , null , null ) ;
139
- MenuManager . addMenuItem ( TOOLS_JAVA_CONFIG , TOOLS_JAVA , "Configuration..." , "" , "" , null , null ) ;
140
- MenuManager . addMenuItem ( TOOLS_JAVA_GENERATE , TOOLS_JAVA , "Generate Code..." , "" , "" , null , null ) ;
141
- MenuManager . addMenuItem ( TOOLS_JAVA_REVERSE , TOOLS_JAVA , "Analyze Code..." , "" , "" , null , null ) ;
142
- $ ( MenuManager ) . on ( 'menuItemClicked' , function ( event , id ) {
143
- switch ( id ) {
144
- case TOOLS_JAVA_CONFIG :
145
- ConfigDialog . showDialog ( ) ;
146
- break ;
147
- case TOOLS_JAVA_GENERATE :
148
- checkConfig ( function ( configured , baseModel , targetDir ) {
149
- if ( configured ) {
150
- generate ( baseModel , targetDir ) ;
151
- } else {
152
- Dialogs . showAlertDialog ( "Java Code Generation is not configured." ) ;
153
- }
154
- } ) ;
155
- break ;
156
- case TOOLS_JAVA_REVERSE :
157
- FileSystem . showOpenDialog ( false , true , "Select Folder" , null , null , function ( err , files ) {
158
- if ( files && files . length === 1 ) {
159
- var dir = FileSystem . getDirectoryForPath ( files [ 0 ] ) ;
160
- JavaReverseEngineer . analyze ( dir ) ;
161
- }
162
- } ) ;
163
- break ;
144
+ function _handleGenerate ( ) {
145
+ checkConfig ( function ( configured , baseModel , targetDir ) {
146
+ if ( configured ) {
147
+ generate ( baseModel , targetDir ) ;
148
+ } else {
149
+ Dialogs . showAlertDialog ( "Java Code Generation is not configured." ) ;
164
150
}
165
151
} ) ;
166
- } ;
152
+ }
153
+
154
+ /**
155
+ * CommandManager.execute로부터 파라미터를 받아서 코드 역공학이 가능하게 한다.
156
+ * e.g.) options = {
157
+ * path: "/User/niklaus/...",
158
+ * files: [ "....java", ".java" ],
159
+ * typeHiarachy: true
160
+ * packageOverview: true
161
+ * packageStructure: true
162
+ * }
163
+ * 파라미터가 없으면 baseModel, targetDir을 사용한다.
164
+ * Must return $.Promise
165
+ */
166
+ function _handleReverse ( options ) {
167
+ FileSystem . showOpenDialog ( false , true , "Select Folder" , null , null , function ( err , files ) {
168
+ if ( ! err ) {
169
+ if ( files && files . length === 1 ) {
170
+ var dir = FileSystem . getDirectoryForPath ( files [ 0 ] ) ;
171
+ JavaReverseEngineer . analyze ( dir ) ;
172
+ }
173
+ }
174
+ } ) ;
175
+ }
176
+
177
+ // Register Commands
178
+ CommandManager . register ( "Java" , CMD_JAVA , CommandManager . doNothing ) ;
179
+ CommandManager . register ( "Configure..." , CMD_JAVA_CONFIG , _handleConfig ) ;
180
+ CommandManager . register ( "Generate..." , CMD_JAVA_GENERATE , _handleGenerate ) ;
181
+ CommandManager . register ( "Reverse..." , CMD_JAVA_REVERSE , _handleReverse ) ;
182
+
183
+ var menu , menuItem ;
184
+ menu = MenuManager . getMenu ( Commands . TOOLS ) ;
185
+ menuItem = menu . addMenuItem ( CMD_JAVA ) ;
186
+ menuItem . addMenuItem ( CMD_JAVA_CONFIG ) ;
187
+ menuItem . addMenuItem ( CMD_JAVA_GENERATE ) ;
188
+ menuItem . addMenuItem ( CMD_JAVA_REVERSE ) ;
167
189
168
- init ( ) ;
169
190
170
191
} ) ;
0 commit comments