Toyota DB Editor

1. По нажатию 'Close' программа сейчас прячется в трэй. Для выход из программы нужно зайти в систеиное меню (правый клик по иконке слева).

2. Эта база - "на выброс" (только для теста), можно писать в нее все, что угодно, я с ней уже "игрался" пока отлаживал программу и попортил. Для работы я заново сгенерирую "чистую".

3. Желательно "погонять" всерьез, чтобы выявить возможные ошибки и дать замечания по интерфейсу - что не так, чего не хватает (про поиск - помню).

В принципе, это уже рабочий вариант (пока без поиска и "утрамбовки" базы), но я хочу какого-то реального тестирования (у меня глаз уже "замылился") + возможно, по результатам тестирования, удастся выкинуть еще какие-то поля из записей, для уменьшения общего размера.



Цель: билингва (синхронный двуязычный текст).

Решение:

Редактор со встроенной базой данных, удерживающей набор записей и связи между ними.

Идеология редактора:

Записи сцеплены между собой 'жесткими' и 'мягкими' связями.

'Жесткие' связи НЕ редактируются и не изменяются. Они обеспечивают соответствие между базой и исходной программой ("прибито гвоздями").

'Мягкие' связи редактируются пользователем для комфортного просмотра содержимого ("пружинки").

Проблемы:

1. Большое число дубликатов записей. Например, строка 'Cancel'повторяется 455 раз.

Решение:

"Сжать" базу для удаления всех дубликатов (с возможностью обратного восстановления).

2. Рассинхронизация записей.

Решение:

За счет редактирования 'мягких' связей создать виртуальное синхронизированное представление базы, не меняя реального физического расположения записей и 'жестких' связей.

Реализация:

Доступны два режима работы с базой:

1. Редактирование ("старый" режим).

2. Синхронизация ("новый" режим)

Синхронизация базы аналогична игре "пятнашки": записи можно виртуально перемещать в пределах базы (диалог Twins), синхронизируя между собой английские и русские тексты.

Управление синхронизацией:

Диалог Twins представлен двумя панелями - левой (английской) и правой (русской).

На левой панели ничего НЕ редактируется и НЕ изменяется.

При левом клике мышкой по строке в списке на левой панели, радактор пытается выполнить синхронизацию номеров строк левой и правой панели, устанавливая соответствующий правый элемент как верхний элемент списка на правой панели.

При правом клике мышкой в самой левой позиции строки в списке на левой панели, эта строка отмечается как выбранная для синхронизации (слева от нее отрисовавается стрелка).

Взамен правого клика мышкой в самой левой позиции строки, можно просто кликнуть по строке, чтобы сделать ее текущей (подсвеченной) и нажать клавишу пробел.

Повторный клик (нажатие) отменяют выбор и строка становится невыбранной.

Важно понимать, что выбор не связан с тем является строка текущей (подсвеченной) или нет, это разные состояния.

То же самое относится к правой панели.

Если одновременно выбраны ДВЕ строки, на левой и правой панели (английская и русская), то становится доступной кнопка Sync (синхронизация).

При нажатии на кнопку Sync появляется предупреждение о синхронизации.

Если ответить YES, правая (русская) запись будет синхронизирована с левой (английской).

Таким образом, английской записи можно поставить в соответствие подходящую русскую.

Важно понимать, что в режиме синхронизации никакая информация НЕ удаляется, а просто записи меняются местами ("пятнашки").

Этот вариант синхронизации удобен, если велик "разбег" номеров английской и русской записей.

Если же "разбег" невелик (сдвиг всего на несколько позиций), может оказаться, что проще "поднять" (или "опустить") нужную русскую запись до совпадения номеров строк.

Для этого необходимо кликнуть по нужной русской строке, чтобы сделать ее текущей (подсвеченной) и нажать на стрелку вверх или вниз.

Одно нажатие стрелки перемещает запись на одну позицию. Повторное нажатие стрелки вызывает повторное перемещение.