Перейти к содержимому

Фотография

Working with the JTabel via XDE Tester


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 bolshik

bolshik

    Новый участник

  • Members
  • Pip
  • 44 сообщений
  • Город:Санкт-Петербург

Отправлено 28 июня 2005 - 10:56

ситуация -- есть JTable, в котором хранятся, к примеру, JComboBox'ы. XDE Tester может промапить как GuiSubitemTestObject'ы собственно таблицу и заголовок. При попытке взять из модели значение, оказывается, что данные содержатся в виде String.
вопрос -- знает ли кто-нибудь способ достучаться именно до объекта Object, хранящегося в таблице? Пока есть только подозрение, плавно переходящее в уверенность, что в XDE не предусмотрена поддержка каких бы то ни было объектов в TableModel кроме String.
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 28 июня 2005 - 11:47

Это не XDE Tester виноват, это так Swing устроен. XDE Tester работает с моделью, там действительно строки. А комбобокс -- это редактор (Controller). К нему доступа из модели нет. Я не знаю, умеет ли XDE Tester как-то находить визуальные элементы, находящиеся внутри JTable, но вручную запрограммировать доступ к этим объектам -- задачка не из самых простых.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 bolshik

bolshik

    Новый участник

  • Members
  • Pip
  • 44 сообщений
  • Город:Санкт-Петербург

Отправлено 28 июня 2005 - 11:54

стоп-стоп-стоп

JFrame frame = new JFrame("test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(640, 480);
        JPanel panel = new JPanel();
        JTable table = new JTable(2, 1);
        table.setValueAt(new JComboBox(new Object[] {"one", "two"}), 0, 0);
        table.setValueAt(new JComboBox(new Object[] {"three", "four"}), 1, 0);

        JComboBox box = (JComboBox) table.getModel().getValueAt(0, 0);
        panel.add(box);
        frame.getContentPane().add(panel);
        frame.show();
Прекрасно достается все и приводится из модели.
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 28 июня 2005 - 12:02

Ах, вот вы как делате. Гм-гм. Неклассический способ. Обычно определяют вьюер и редактор отдельно, а модель отдельно. Впрочем, и так допустимо. Однако, менять значения в такой таблице программным способом крайне трудно. Ну, дело ваше. Тогда, видимо, дело действительно в маппинге XDE Tester'а, здесь уже Swing не виноват, прошу прощения за невольную дезинформацию.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 bolshik

bolshik

    Новый участник

  • Members
  • Pip
  • 44 сообщений
  • Город:Санкт-Петербург

Отправлено 28 июня 2005 - 12:29

на самом деле, мой пример был самописка на коленке :(
Сейчас путем обходных умозаключений выяснилось, что XDE действительно берет CellRenderer при взятии данных из tablemodel с нестандартным cellrenderer. Сейчас попытаюсь взять-таки celleditor, который и есмь искомый комбобокс.
  • 0

#6 bolshik

bolshik

    Новый участник

  • Members
  • Pip
  • 44 сообщений
  • Город:Санкт-Петербург

Отправлено 28 июня 2005 - 13:29

похоже, что максимум, что дозволено взять из ColumnModel -- названия и порядок столбцов. Мда-а-а-а-а
  • 0

#7 bolshik

bolshik

    Новый участник

  • Members
  • Pip
  • 44 сообщений
  • Город:Санкт-Петербург

Отправлено 29 июня 2005 - 12:37

в общем, кому интересно, проблема была решена через method invocation на тестируемых объектах.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных