Package ru.bitel.bgbilling.client.util
Class ClientUtils
java.lang.Object
ru.bitel.bgbilling.client.util.ClientUtils
Клиентский утилс. Работа с GUI, взаимодействие с сервером.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
addComponentToPanel
(JPanel panel, int gridy, Component[][] components, boolean addBottom) static void
addEnterDoClickDelegate
(Component comp, AbstractButton button) Назначение делегации клика кнопки от любой компоненты при нажатии на него ENTER.static final void
addOnlyOneShownListener
(Component... comp) static final void
addOpenAction
(Component comp, AWTEventListener eventListener) Добавляет на компонент слушатель 1) даблклика и 2) нажатия Enter.static final void
addShowCodeListener
(bitel.billing.module.common.table.BGTable table) static final void
addShowCodeListener
(JList<?> list) Вешает на Ctrl+i показывалку ид сущности.static final void
addShowCodeListener
(ru.bitel.bgbilling.client.common.table.tree.JTreeTable dataTree, ru.bitel.bgbilling.client.common.table.tree.DefaultTreeTableModel<?> model) static void
buildComboBox
(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, Node node, String selected) static void
buildComboBox
(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, Node node, String selected, String idName, String titleName) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBox
(org.json.JSONArray array, int selected) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBox
(org.json.JSONArray array, int selected, String idName, String titleName) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBox
(Node node, String selected) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBox
(Node node, String selected, String idName, String titleName) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBoxWithDefault
(Node node, String selected) static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem>
buildComboBoxWithDefault
(Node node, String selected, String defaultName) static void
static void
buildList
(bitel.billing.module.common.BGControlPanelListSelect list, Node node, String defaultValue) static void
static void
buildList
(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node) static void
buildList
(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node, String defaultValue) static void
static void
Собирает обычный java.util.Listиз атрибутов title. static void
buildList
(ru.bitel.common.client.list.BGUList<ru.bitel.bgbilling.common.model.BGUListItem> list, Iterable<Element> iterable) static void
buildMultiList
(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node, List<String> defaultValues) static boolean
checkStatus
(Document doc) static void
checkValues
(JTextField tf, int minValue, int maxValue) Делает некоторые действия с текстом в поле. 1) преобразует цифры в последовательности (?)static boolean
static boolean
confirmDelete
(Object what) static boolean
confirmDelete
(Object what, boolean useQuotes) static void
static void
expandTree
(JTree tree, DefaultMutableTreeNode start) Разворачивание всего дерева начиная с указанного узла.static Document
getCacheDocument
(Document doc, String key) static String
getComponentKey
(Component c, String suffix) Получает из указанного компонента его ключ текстовый, чтобы сохранить в конфиге юзера, например, какие-то данные о нём.getExpandedTreeNodeList
(JTree tree, String pathdelim) Список развёрнутых узлов в дереве в виде path-ов, для сохранения перед обновлением и последущего восстановления.static ImageIcon
Получение стандартной иконки, из стандартной папки (в наших терминах - "пакаге") /img/.static ImageIcon
Получение любой иконки, из любой папки ("packageicon"), нужна была эта функция, чтобы из плагина иконки тягать, а не только из /img/.static ImageIcon
getIconByPath
(String path, boolean nonNull) Получение иконки по пути.static String
getIdFromComboBox
(JComboBox<bitel.billing.module.common.ComboBoxItem> combo) static String
getIdFromList
(JList<bitel.billing.module.common.ListItem> list) static String
getIdFromTable
(bitel.billing.module.common.table.BGTable table, int column) Специальный метод для наполнения новых контролов через старые акшены.static String
getListSelectedItemtoString
(JList<bitel.billing.module.common.ListItem> list) static File
static Document
getModuleDoc
(Class<?> clazz) static Document
getModuleDoc
(String rb_name) static String
static String
static String
getRowId
(bitel.billing.module.common.table.BGTable table) static String
static String
getRowIdList
(bitel.billing.module.common.table.BGTable table, String col, String msg) Список айдишников (через запятую) выделенных строк в таблице.static boolean
static String
getValueFromResourceBundle
(String resourceBundleName, String key) static String
getValueFromResourceBundle
(String resourceBundleName, String key, String defaultValue) static final boolean
static String
linesToString
(Element node) static void
openBrowser
(URI uri) Открыть в дефолтном браузере системном.static void
Открыть файл в дефолтном приложении системном.static void
openTelnet
(String host, int port) static void
openTerminal
(String cmd) static void
removeFromComboBox
(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, String value) static void
saveBinaryFile
(byte[] bytes, File file, String ext) Сохраняет байты в файл с расширением.static void
saveBinaryFile
(InputStream is, File file, String ext) То же самое чтоsaveBinaryFile(byte[], File, String)
но с InputStream, для длинных файлов.static final void
saveHtmlFile
(String text, File file) Сохраняет текст с содержимым html в файл.static final void
saveTextFile
(String text, File file, String ext) Сохраняет текст в файл с расширением.static boolean
setComboBoxSelection
(JComboBox<bitel.billing.module.common.ComboBoxItem> combo, int selectedId) static boolean
setComboBoxSelection
(JComboBox<bitel.billing.module.common.ComboBoxItem> combo, Object selectedId) static void
setComboBoxSelection
(ru.bitel.common.client.BGUComboBox<? extends IdTitle> comboBox, int selectedObj) static void
setExpandedTreeNodeList
(JTree tree, List<String> expandedNodes, String pathdelim) Восстановление развёрнутости узлов-path, сохранённых функцией getExpandedTreeNodeList.static void
setListSelection
(JList<? extends IdTitle> list, int selectedId) static void
setListSelection
(JList<bitel.billing.module.common.ListItem> list, String selected_id) static void
setListSelection
(JList<bitel.billing.module.common.ListItem> list, List<Integer> selectedIds) static void
showDialog
(Object message, String title, int messageType) static void
showErrorMessageDialog
(String message) static void
showErrorMessageDialog
(String message, String title) static void
static void
showMessageDialog
(Object message) static void
showMessageDialog
(Object message, String title) static void
showScrollMessageDialog
(String message, String title) static Window
showWaitWindow
(String message) Создаётся окошечко с сообщением и крутилкой.static void
-
Field Details
-
nullIcon
-
-
Constructor Details
-
ClientUtils
public ClientUtils()
-
-
Method Details
-
confirm
-
confirmDelete
-
confirmDelete
-
showDialog
-
showScrollMessageDialog
-
showMessageDialog
-
showMessageDialog
-
warning
-
showErrorMessageDialog
-
showErrorMessageDialog
-
showErrorMessageDialog
-
checkStatus
-
getStatus
-
getIcon
Получение стандартной иконки, из стандартной папки (в наших терминах - "пакаге") /img/. Раньше была только она, теперь она так же называется для обратной совместимости.- Parameters:
name
- имя иконки- Returns:
- ИмейджИкон
-
getIconByPath
Получение иконки по пути. Путь можно указывать без .png|.gif, но рекомендуется полностью.- Parameters:
path
-nonNull
- если иконка не найдена - возвращать null или пустую иконку.- Returns:
-
getIcon
Получение любой иконки, из любой папки ("packageicon"), нужна была эта функция, чтобы из плагина иконки тягать, а не только из /img/. Иконки тягаются по именам, кешируются по пакет+имя. Иконки - gif или png. Если не найдено - в зависимости от nonNull вернётся нулевая или пустая иконка.- Parameters:
packageicon
- пакаге (или папка) иконки, может быть как в виде abc/de/fghi, так и abc.de.fghiname
- имя иконкиnonNull
- если иконка не найдена - вернуть пустой объект или null- Returns:
- ИмейджИкон
-
getRBName
-
getRBName
-
getRowId
-
getRowId
-
buildList
-
buildList
-
buildList
public static void buildList(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node) -
buildList
-
buildList
-
buildList
-
buildList
public static void buildList(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node, String defaultValue) -
buildMultiList
public static void buildMultiList(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node, List<String> defaultValues) -
buildList
Собирает обычный java.util.Listиз атрибутов title. - Parameters:
node
-
-
buildList
-
setListSelection
-
setListSelection
-
setListSelection
-
buildComboBox
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBox(Node node, String selected, String idName, String titleName) -
buildComboBox
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBox(org.json.JSONArray array, int selected, String idName, String titleName) -
buildComboBox
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBox(Node node, String selected) -
buildComboBox
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBox(org.json.JSONArray array, int selected) -
buildComboBoxWithDefault
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBoxWithDefault(Node node, String selected) -
buildComboBoxWithDefault
public static DefaultComboBoxModel<bitel.billing.module.common.ComboBoxItem> buildComboBoxWithDefault(Node node, String selected, String defaultName) -
buildComboBox
-
buildComboBox
-
setComboBoxSelection
public static boolean setComboBoxSelection(JComboBox<bitel.billing.module.common.ComboBoxItem> combo, int selectedId) -
setComboBoxSelection
-
setComboBoxSelection
public static void setComboBoxSelection(ru.bitel.common.client.BGUComboBox<? extends IdTitle> comboBox, int selectedObj) -
getIdFromComboBox
-
getRowIdList
public static String getRowIdList(bitel.billing.module.common.table.BGTable table, String col, String msg) Список айдишников (через запятую) выделенных строк в таблице.- Parameters:
table
- таблицаcol
- имя столбца нужного (например, "id")msg
- сообщение, если ни одного нет выбранного.- Returns:
- строка с айдишниками через запятую.
-
linesToString
-
saveHtmlFile
Сохраняет текст с содержимым html в файл. Сохраняет в utf-8. Вдобавок заменяет meta с чарсетом на utf-8 тоже (если есть мета вообще). Т.е. это в отличие от сохранения текстового.- Throws:
Exception
-
saveTextFile
Сохраняет текст в файл с расширением. Использует кодировку UTF-8.- Parameters:
text
- текст. байты возьмутся из него в кодировке UTF-8.file
- файл куда записатьext
- расширение обязательное у файла. если нет такого то оно прибавится.- Throws:
IOException
-
saveBinaryFile
Сохраняет байты в файл с расширением. Для скачки с сервера чаще используется.- Parameters:
bytes
- байтыfile
- файл куда записатьext
- расширение обязательное у файла. если нет такого то оно прибавится.- Throws:
IOException
-
saveBinaryFile
То же самое чтоsaveBinaryFile(byte[], File, String)
но с InputStream, для длинных файлов.- Throws:
IOException
-
getCacheDocument
-
expandTree
Разворачивание всего дерева начиная с указанного узла.- Parameters:
tree
- дерево JTreestart
- верхний узел с которого всё развернуть
-
getExpandedTreeNodeList
Список развёрнутых узлов в дереве в виде path-ов, для сохранения перед обновлением и последущего восстановления.- Parameters:
tree
- дерево JTree.pathdelim
- разделитель, которым разделяются каждый компонент из path узлов.- Returns:
- лист сериализованных развёрнутых path.
- See Also:
-
setExpandedTreeNodeList
public static void setExpandedTreeNodeList(JTree tree, List<String> expandedNodes, String pathdelim) Восстановление развёрнутости узлов-path, сохранённых функцией getExpandedTreeNodeList.- Parameters:
tree
- дерево JTree.expandedNodes
- список path.pathdelim
- список по которым бьются каждый компонент из path узлов (regexp, т.е. "."=>"\\.")- See Also:
-
addShowCodeListener
public static final void addShowCodeListener(bitel.billing.module.common.table.BGTable table) -
openBrowser
Открыть в дефолтном браузере системном.- Parameters:
uri
- ури- Throws:
ru.bitel.bgbilling.common.BGException
- если какая ошибка или неподдерживаемость
-
exec
- Throws:
ru.bitel.bgbilling.common.BGException
-
openTelnet
- Throws:
ru.bitel.bgbilling.common.BGException
-
openTerminal
- Throws:
ru.bitel.bgbilling.common.BGException
-
openFile
Открыть файл в дефолтном приложении системном.- Parameters:
file
- файл- Throws:
ru.bitel.bgbilling.common.BGException
- если какая ошибка или неподдерживаемость
-
getIdFromTable
-
getIdFromList
-
removeFromComboBox
-
addShowCodeListener
Вешает на Ctrl+i показывалку ид сущности. сюда реально передают либо ListItem( причем именно bitel.billing.module.common.ListItem) либо IdTitle - у них нет общего предка.- Parameters:
list
-
-
checkValues
Делает некоторые действия с текстом в поле. 1) преобразует цифры в последовательности (?) было: 0,1,2,3,6,7,18,19,20,23 стало: 0-3,6-7,18-20,23 2) проверяет на мин/макс. 3) ...- Parameters:
tf
- текстфилдminValue
-maxValue
-
-
getListSelectedItemtoString
-
addOnlyOneShownListener
-
addShowCodeListener
public static final void addShowCodeListener(ru.bitel.bgbilling.client.common.table.tree.JTreeTable dataTree, ru.bitel.bgbilling.client.common.table.tree.DefaultTreeTableModel<?> model) -
addOpenAction
Добавляет на компонент слушатель 1) даблклика и 2) нажатия Enter. Т.е. для быстрого добавления действия "перейти к объекту".- Parameters:
comp
- компонентeventListener
- листенер (AWTEventListener), куда передастся действие произошедшее - MouseEvent или KeyEvent.
-
addEnterDoClickDelegate
Назначение делегации клика кнопки от любой компоненты при нажатии на него ENTER. Т.е. при нажатии Enter в текстовом поле, например, срабатывает кнопка "поиск" итпJTextField value_TF = new JTextField(); JButton okButton = new JButton( ">>>" ); // добавляем поиск по ентеру в поле ClientUtils.addEnterDoClickDelegate( value_TF, okButton );
- Parameters:
comp
- компонента, которая слушает enterbutton
- кнопка, которая программно кликнется
-
getModuleDoc
-
getModuleDoc
-
getList
Специальный метод для наполнения новых контролов через старые акшены. Использовать там, где раньше использовались buildList и т.п.- Returns:
- список итемов
-
isCtrlI
-
getValueFromResourceBundle
-
getValueFromResourceBundle
-
showWaitWindow
Создаётся окошечко с сообщением и крутилкой. В конце надо сделать ему dispose. Вариант использования:Window waitwindow = null; try { waitwindow = ClientUtils.showWaitWindow("wait..."); ... } finally { waitwindow.dispose(); }
- Parameters:
message
- сообщение- Returns:
- указатель на окно, которое надо будет закрыть.
-
getComponentKey
Получает из указанного компонента его ключ текстовый, чтобы сохранить в конфиге юзера, например, какие-то данные о нём.- Parameters:
c
- компонентsuffix
- строка-окончание, если null, то возвращается только префикс без этого суффикса- Returns:
- строка-ключ
-
getLocalSettingFolder
-
addComponentToPanel
-