1- <?php
2- namespace ide \commands ;
3-
4- use ide \editors \AbstractEditor ;
5- use ide \forms \BuildProgressForm ;
6- use ide \forms \MessageBoxForm ;
7- use ide \Ide ;
8- use ide \misc \AbstractCommand ;
9- use ide \project \behaviours \GradleProjectBehaviour ;
10- use ide \project \behaviours \GuiFrameworkProjectBehaviour ;
11- use ide \systems \FileSystem ;
12- use php \gui \UXDialog ;
13- use php \lang \Process ;
14- use php \lib \Str ;
15- use php \time \Time ;
16-
17- class CreateFormProjectCommand extends AbstractCommand
18- {
19- public function getName ()
20- {
21- return 'Новая форма ' ;
22- }
23-
24- public function getIcon ()
25- {
26- return 'icons/window16.png ' ;
27- }
28-
29- public function getCategory ()
30- {
31- return 'create ' ;
32- }
33-
34- public function onExecute ($ e = null , AbstractEditor $ editor = null )
35- {
36- $ ide = Ide::get ();
37- $ project = $ ide ->getOpenedProject ();
38-
39- if ($ project ) {
40- /** @var GuiFrameworkProjectBehaviour $guiBehaviour */
41- $ guiBehaviour = $ project ->getBehaviour (GuiFrameworkProjectBehaviour::class);
42-
43- $ name = UXDialog::input ('Придумайте название для формы ' );
44-
45- if ($ name !== null ) {
46- if ($ guiBehaviour ->hasForm ($ name )) {
47- $ dialog = new MessageBoxForm ("Форма ' $ name' уже существует, хотите её пересоздать? " , ['Нет, оставить ' , 'Да, пересоздать ' ]);
48- if ($ dialog ->showDialog () && $ dialog ->getResultIndex () == 0 ) {
49- return ;
50- }
51- }
52-
53- $ file = $ guiBehaviour ->createForm ($ name );
54- FileSystem::open ($ file );
55-
56- if (!$ guiBehaviour ->getMainForm () && sizeof ($ guiBehaviour ->getFormEditors ()) < 2 ) {
57- $ dlg = new MessageBoxForm (
58- "У вашего проекта нет главной формы, хотите сделать форму ' $ name' главной? " , ['Да, сделать главной ' , 'Нет ' ]
59- );
60-
61- if ($ dlg ->showDialog () && $ dlg ->getResultIndex () == 0 ) {
62- $ guiBehaviour ->setMainForm ($ name );
63- Ide::toast ("Форма ' $ name' теперь главная в вашем проекте " );
64- }
65- }
66- }
67- }
68- }
1+ <?php
2+ namespace ide \commands ;
3+
4+ use ide \editors \AbstractEditor ;
5+ use ide \forms \BuildProgressForm ;
6+ use ide \forms \MessageBoxForm ;
7+ use ide \Ide ;
8+ use ide \misc \AbstractCommand ;
9+ use ide \project \behaviours \GradleProjectBehaviour ;
10+ use ide \project \behaviours \GuiFrameworkProjectBehaviour ;
11+ use ide \systems \FileSystem ;
12+ use ide \utils \FileUtils ;
13+ use php \gui \UXDialog ;
14+ use php \lang \Process ;
15+ use php \lib \fs ;
16+ use php \lib \Str ;
17+ use php \time \Time ;
18+
19+ class CreateFormProjectCommand extends AbstractCommand
20+ {
21+ public function getName ()
22+ {
23+ return 'Новая форма ' ;
24+ }
25+
26+ public function getIcon ()
27+ {
28+ return 'icons/window16.png ' ;
29+ }
30+
31+ public function getCategory ()
32+ {
33+ return 'create ' ;
34+ }
35+
36+ public function onExecute ($ e = null , AbstractEditor $ editor = null )
37+ {
38+ $ ide = Ide::get ();
39+ $ project = $ ide ->getOpenedProject ();
40+
41+ if ($ project ) {
42+ /** @var GuiFrameworkProjectBehaviour $guiBehaviour */
43+ $ guiBehaviour = $ project ->getBehaviour (GuiFrameworkProjectBehaviour::class);
44+
45+ $ name = UXDialog::input ('Придумайте название для формы ' );
46+
47+ if ($ name !== null ) {
48+ $ name = str::trim ($ name );
49+
50+ if (!FileUtils::validate ($ name )) {
51+ return ;
52+ }
53+
54+ if ($ guiBehaviour ->hasForm ($ name )) {
55+ $ dialog = new MessageBoxForm ("Форма ' $ name' уже существует, хотите её пересоздать? " , ['Нет, оставить ' , 'Да, пересоздать ' ]);
56+ if ($ dialog ->showDialog () && $ dialog ->getResultIndex () == 0 ) {
57+ return ;
58+ }
59+ }
60+
61+ $ file = $ guiBehaviour ->createForm ($ name );
62+ FileSystem::open ($ file );
63+
64+ if (!$ guiBehaviour ->getMainForm () && sizeof ($ guiBehaviour ->getFormEditors ()) < 2 ) {
65+ $ dlg = new MessageBoxForm (
66+ "У вашего проекта нет главной формы, хотите сделать форму ' $ name' главной? " , ['Да, сделать главной ' , 'Нет ' ]
67+ );
68+
69+ if ($ dlg ->showDialog () && $ dlg ->getResultIndex () == 0 ) {
70+ $ guiBehaviour ->setMainForm ($ name );
71+ Ide::toast ("Форма ' $ name' теперь главная в вашем проекте " );
72+ }
73+ }
74+ }
75+ }
76+ }
6977}
0 commit comments