Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Длинные имена классов видов диалогов... как сократить? (https://javascript.ru/forum/extjs/68736-dlinnye-imena-klassov-vidov-dialogov-kak-sokratit.html)

khusamov 05.05.2017 21:33

Длинные имена классов видов диалогов... как сократить?
 
Вот такое у меня типичное имя класса вида:

Ews.office.view.element.sashAssemblyDiagramList.sa shAssemblyDiagramDialog.SashAssemblyDiagramDialog

И соответственно контроллер вида:

Ews.office.view.element.sashAssemblyDiagramList.sa shAssemblyDiagramDialog.SashAssemblyDiagramDialogC ontroller

Здесь Ews.office.view думаю всем понятно.

Далее element.sashAssemblyDiagramList это собственно имя вида.

И наконец sashAssemblyDiagramDialog.SashAssemblyDiagramDialo g это имя диалогового окна для этого вида. Так как вид это таблица с кнопками Добавить, Редактировать и Удалить. И нужен диалог для добавления и редактирования строк в таблице.

Вот как сократить это дело?

При чем xtype тоже нехилый выходит: xtype: "element-sashassemblydiagramlist-dialog"

lamorez 24.10.2017 11:30

Может алиасы использовать?
Ext.define('Person.Panel', {
        alias: 'widget.personpanel',
        extend: 'Ext.panel.Panel',
        title: 'Персональная панель',
        html : 'Новая панель'
});


Ext.application({
    name: 'HelloExt',
    launch: function() {
        Ext.create('Ext.container.Viewport', {
            layout: 'fit',
            items: [
                {
                    xtype: 'personpanel'
                }]
        });
    }
});

khusamov 25.10.2017 22:00

У меня уже и алиасы километровые.
Не понятно что с этим можно поделать.

siber-biber 26.10.2017 10:59

расслабиться и жить с этим... в энтерпрайз проектах длинные имена это нормально

Infarch 27.10.2017 12:31

А может, стараться избегать повторений в именах? Сделайте структуру типа такой:

[view]
-[element]
--[sashAssemblyDiagram]
---List.js
---ListController.js
---Dialog.js
---DialogController.js

khusamov 30.10.2017 12:39

Можно и так. Правда когда откроешь несколько List.js из разных папок, то начинается путаница. Потому я их именую более длинно, но зато уникально.

lamorez 31.10.2017 13:41

Кстати, насчёт нескольких путающих List.js из разных папок, тоже замечал у нас эту проблему. Может действительно лучше использовать полные имена в Ext.Define()... Спасибо за идею.

Но вот вам собственно xtype можно же и поменьше размерами придумывать?

khusamov 31.10.2017 15:37

я пока не знаю как меньше сделать. Проблема в том, что xtype должен быть уникальным не только в пределах вашего пакета или приложения, а также в пределах сторонних пакетов.

нужен xtype, который был бы уникальным в пределах директории. Это бы решило проблему

Infarch 31.10.2017 16:59

А вам вообще нужен этот xtype? Если некий компонент не предусмотрен для реюза из разных частей приложения, то можно просто его создавать в конфиге.

...
controller: new MyController(),
viewModel: new MyModel(),
...


Это правда не решает вашу проблему с длинными именами, но от лишних сущностей избавитесь.

khusamov 31.10.2017 17:15

Вот именно, проблему это не решает. И запускать new на этапе создания классов чревато проблемами. Потому и необходим декларативный способ инстнацирования объектов, чтобы new запускался на этапе создания экземляров классов.


Часовой пояс GMT +3, время: 11:36.