Class ClientUtils

java.lang.Object
ru.bitel.bgbilling.client.util.ClientUtils

public class ClientUtils extends Object
Клиентский утилс. Работа с GUI, взаимодействие с сервером.
  • Field Details

    • nullIcon

      public static final ImageIcon nullIcon
  • Constructor Details

    • ClientUtils

      public ClientUtils()
  • Method Details

    • confirm

      public static boolean confirm(String message, String title)
    • confirmDelete

      public static boolean confirmDelete(Object what)
    • confirmDelete

      public static boolean confirmDelete(Object what, boolean useQuotes)
    • showDialog

      public static void showDialog(Object message, String title, int messageType)
    • showScrollMessageDialog

      public static void showScrollMessageDialog(String message, String title)
    • showMessageDialog

      public static void showMessageDialog(Object message, String title)
    • showMessageDialog

      public static void showMessageDialog(Object message)
    • warning

      public static void warning(String message, String title)
    • showErrorMessageDialog

      public static void showErrorMessageDialog(String message, String title)
    • showErrorMessageDialog

      public static void showErrorMessageDialog(String message)
    • showErrorMessageDialog

      public static void showErrorMessageDialog(Throwable e)
    • checkStatus

      public static boolean checkStatus(Document doc)
    • getStatus

      public static boolean getStatus(Component component, Document doc)
    • getIcon

      public static ImageIcon getIcon(String name)
      Получение стандартной иконки, из стандартной папки (в наших терминах - "пакаге") /img/. Раньше была только она, теперь она так же называется для обратной совместимости.
      Parameters:
      name - имя иконки
      Returns:
      ИмейджИкон
    • getIconByPath

      public static ImageIcon getIconByPath(String path, boolean nonNull)
      Получение иконки по пути. Путь можно указывать без .png|.gif, но рекомендуется полностью.
      Parameters:
      path -
      nonNull - если иконка не найдена - возвращать null или пустую иконку.
      Returns:
    • getIcon

      public static ImageIcon getIcon(String packageicon, String name, boolean nonNull)
      Получение любой иконки, из любой папки ("packageicon"), нужна была эта функция, чтобы из плагина иконки тягать, а не только из /img/. Иконки тягаются по именам, кешируются по пакет+имя. Иконки - gif или png. Если не найдено - в зависимости от nonNull вернётся нулевая или пустая иконка.
      Parameters:
      packageicon - пакаге (или папка) иконки, может быть как в виде abc/de/fghi, так и abc.de.fghi
      name - имя иконки
      nonNull - если иконка не найдена - вернуть пустой объект или null
      Returns:
      ИмейджИкон
    • getRBName

      public static String getRBName(Object obj)
    • getRBName

      public static String getRBName(Class<?> clazz)
    • getRowId

      public static String getRowId(bitel.billing.module.common.table.BGTable table)
    • getRowId

      public static String getRowId(bitel.billing.module.common.table.BGTable table, String msg, String col)
    • buildList

      public static void buildList(JList<bitel.billing.module.common.ListItem> jList, Node node)
    • buildList

      public static void buildList(bitel.billing.module.common.BGControlPanelListSelect list, Node node)
    • buildList

      public static void buildList(JList<bitel.billing.module.common.ListItem> jList, DefaultListModel<bitel.billing.module.common.ListItem> model, Node node)
    • buildList

      public static void buildList(ru.bitel.common.client.list.BGUList<ru.bitel.bgbilling.common.model.BGUListItem> list, Iterable<Element> iterable)
    • buildList

      public static void buildList(bitel.billing.module.common.BGControlPanelListSelect list, Node node, String defaultValue)
    • buildList

      public static void buildList(JList<bitel.billing.module.common.ListItem> jList, Node node, String defaultValue)
    • 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

      public static List<String> buildList(Node node)
      Собирает обычный java.util.List из атрибутов title.
      Parameters:
      node -
    • buildList

      public static void buildList(JList<bitel.billing.module.common.ListItem> jList, List<? extends ListItem> list)
    • setListSelection

      public static void setListSelection(JList<bitel.billing.module.common.ListItem> list, String selected_id)
    • setListSelection

      public static void setListSelection(JList<bitel.billing.module.common.ListItem> list, List<Integer> selectedIds)
    • setListSelection

      public static void setListSelection(JList<? extends IdTitle> list, int selectedId)
    • 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

      public static void buildComboBox(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, Node node, String selected)
    • buildComboBox

      public static void buildComboBox(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, Node node, String selected, String idName, String titleName)
    • setComboBoxSelection

      public static boolean setComboBoxSelection(JComboBox<bitel.billing.module.common.ComboBoxItem> combo, int selectedId)
    • setComboBoxSelection

      public static boolean setComboBoxSelection(JComboBox<bitel.billing.module.common.ComboBoxItem> combo, Object selectedId)
    • setComboBoxSelection

      public static void setComboBoxSelection(ru.bitel.common.client.BGUComboBox<? extends IdTitle> comboBox, int selectedObj)
    • getIdFromComboBox

      public static String getIdFromComboBox(JComboBox<bitel.billing.module.common.ComboBoxItem> combo)
    • getRowIdList

      public static String getRowIdList(bitel.billing.module.common.table.BGTable table, String col, String msg)
      Список айдишников (через запятую) выделенных строк в таблице.
      Parameters:
      table - таблица
      col - имя столбца нужного (например, "id")
      msg - сообщение, если ни одного нет выбранного.
      Returns:
      строка с айдишниками через запятую.
    • linesToString

      public static String linesToString(Element node)
    • saveHtmlFile

      public static final void saveHtmlFile(String text, File file) throws Exception
      Сохраняет текст с содержимым html в файл. Сохраняет в utf-8. Вдобавок заменяет meta с чарсетом на utf-8 тоже (если есть мета вообще). Т.е. это в отличие от сохранения текстового.
      Throws:
      Exception
    • saveTextFile

      public static final void saveTextFile(String text, File file, String ext) throws IOException
      Сохраняет текст в файл с расширением. Использует кодировку UTF-8.
      Parameters:
      text - текст. байты возьмутся из него в кодировке UTF-8.
      file - файл куда записать
      ext - расширение обязательное у файла. если нет такого то оно прибавится.
      Throws:
      IOException
    • saveBinaryFile

      public static void saveBinaryFile(byte[] bytes, File file, String ext) throws IOException
      Сохраняет байты в файл с расширением. Для скачки с сервера чаще используется.
      Parameters:
      bytes - байты
      file - файл куда записать
      ext - расширение обязательное у файла. если нет такого то оно прибавится.
      Throws:
      IOException
    • saveBinaryFile

      public static void saveBinaryFile(InputStream is, File file, String ext) throws IOException
      То же самое что saveBinaryFile(byte[], File, String) но с InputStream, для длинных файлов.
      Throws:
      IOException
    • getCacheDocument

      public static Document getCacheDocument(Document doc, String key)
    • expandTree

      public static void expandTree(JTree tree, DefaultMutableTreeNode start)
      Разворачивание всего дерева начиная с указанного узла.
      Parameters:
      tree - дерево JTree
      start - верхний узел с которого всё развернуть
    • getExpandedTreeNodeList

      public static List<String> getExpandedTreeNodeList(JTree tree, String pathdelim)
      Список развёрнутых узлов в дереве в виде 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

      public static void openBrowser(URI uri) throws ru.bitel.bgbilling.common.BGException
      Открыть в дефолтном браузере системном.
      Parameters:
      uri - ури
      Throws:
      ru.bitel.bgbilling.common.BGException - если какая ошибка или неподдерживаемость
    • exec

      public static void exec(String command) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • openTelnet

      public static void openTelnet(String host, int port) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • openTerminal

      public static void openTerminal(String cmd) throws ru.bitel.bgbilling.common.BGException
      Throws:
      ru.bitel.bgbilling.common.BGException
    • openFile

      public static void openFile(File file) throws ru.bitel.bgbilling.common.BGException
      Открыть файл в дефолтном приложении системном.
      Parameters:
      file - файл
      Throws:
      ru.bitel.bgbilling.common.BGException - если какая ошибка или неподдерживаемость
    • getIdFromTable

      public static String getIdFromTable(bitel.billing.module.common.table.BGTable table, int column)
    • getIdFromList

      public static String getIdFromList(JList<bitel.billing.module.common.ListItem> list)
    • removeFromComboBox

      public static void removeFromComboBox(JComboBox<bitel.billing.module.common.ComboBoxItem> comboBox, String value)
    • addShowCodeListener

      public static final void addShowCodeListener(JList<?> list)
      Вешает на Ctrl+i показывалку ид сущности. сюда реально передают либо ListItem( причем именно bitel.billing.module.common.ListItem) либо IdTitle - у них нет общего предка.
      Parameters:
      list -
    • checkValues

      public static void checkValues(JTextField tf, int minValue, int maxValue)
      Делает некоторые действия с текстом в поле. 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

      public static String getListSelectedItemtoString(JList<bitel.billing.module.common.ListItem> list)
    • addOnlyOneShownListener

      public static final void addOnlyOneShownListener(Component... comp)
    • 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

      public static final void addOpenAction(Component comp, AWTEventListener eventListener)
      Добавляет на компонент слушатель 1) даблклика и 2) нажатия Enter. Т.е. для быстрого добавления действия "перейти к объекту".
      Parameters:
      comp - компонент
      eventListener - листенер (AWTEventListener), куда передастся действие произошедшее - MouseEvent или KeyEvent.
    • addEnterDoClickDelegate

      public static void addEnterDoClickDelegate(Component comp, AbstractButton button)
      Назначение делегации клика кнопки от любой компоненты при нажатии на него ENTER. Т.е. при нажатии Enter в текстовом поле, например, срабатывает кнопка "поиск" итп
       JTextField value_TF = new JTextField();
       JButton okButton = new JButton( ">>>" );
       // добавляем поиск по ентеру в поле
       ClientUtils.addEnterDoClickDelegate( value_TF, okButton );
       
      Parameters:
      comp - компонента, которая слушает enter
      button - кнопка, которая программно кликнется
    • getModuleDoc

      public static Document getModuleDoc(Class<?> clazz)
    • getModuleDoc

      public static Document getModuleDoc(String rb_name)
    • getList

      public static List<IdTitle> getList(Node node)
      Специальный метод для наполнения новых контролов через старые акшены. Использовать там, где раньше использовались buildList и т.п.
      Returns:
      список итемов
    • isCtrlI

      public static final boolean isCtrlI(KeyEvent e)
    • getValueFromResourceBundle

      public static String getValueFromResourceBundle(String resourceBundleName, String key)
    • getValueFromResourceBundle

      public static String getValueFromResourceBundle(String resourceBundleName, String key, String defaultValue)
    • showWaitWindow

      public static Window showWaitWindow(String message)
      Создаётся окошечко с сообщением и крутилкой. В конце надо сделать ему dispose. Вариант использования:
       Window waitwindow = null;
       try
       {
           waitwindow = ClientUtils.showWaitWindow("wait...");
           ...
       }
       finally
       {
           waitwindow.dispose();
       }
       
      Parameters:
      message - сообщение
      Returns:
      указатель на окно, которое надо будет закрыть.
    • getComponentKey

      public static String getComponentKey(Component c, String suffix)
      Получает из указанного компонента его ключ текстовый, чтобы сохранить в конфиге юзера, например, какие-то данные о нём.
      Parameters:
      c - компонент
      suffix - строка-окончание, если null, то возвращается только префикс без этого суффикса
      Returns:
      строка-ключ
    • getLocalSettingFolder

      public static File getLocalSettingFolder()
    • addComponentToPanel

      public static int addComponentToPanel(JPanel panel, int gridy, Component[][] components, boolean addBottom)