В этом разделе приведена информация о переносе кода из VisualAge for Java.
При внесении изменений в компонент Java с помощью визуального редактора исходный код обновляется автоматически. Изменения в исходном коде касаются set-методов, задающих значения свойств. Информация, требуемая только во время проектирования, в свойствах компонентов не сохраняется. Например, это положение JavaBean в окне.
Эта информация записывается в комментарии на строке с объявлением JavaBean. В приведенном коде сохранено положение компонента JFrame (16,17):
private javax.swing.JFrame ivjJFrame = null; // @jve:visual-info decl-index=0 visual-constraint="16,17"
Если такой комментарий отсутствует, то компонент размещается в положении по умолчанию. Это касается только объектов JavaBean верхнего уровня. Расположение компонентов в контейнерах определяется администраторами макетов и свойствами самих компонентов, связанными с расположением.
VisualAge for Java не сохраняет положение JavaBean верхнего уровня в исходном коде. При переносе файлов из VisualAge for Java используется положение по умолчанию. Для переноса параметров положения компонентов можно использовать Инструмент миграции. Он загружается в VisualAge for Java и добавляет в классы комментарии с необходимой информацией. Инструмент миграции входит в состав программы Conversion tool for VisualAge for Java Visual Composition Editor applications, которую можно загрузить с www.ibm.com/support/us/
Для установки инструмента воспользуйтесь FixManager (Workspace > Tools > FixManager в VisualAge for Java). Инструмент миграции преобразовывает и экспортирует классы, созданные в VCE, в формат, подходящий для визуального редактора. После его установки вызовите пункт VCE Code Generation/Export... из контекстного меню проектов, пакетов или классов. Это приведет к запуску мастера, который повторно сгенерирует классы, созданные в VCE, добавляя комментарии с параметрами расположения компонентов верхнего уровня в формате визуального редактора.
Если вы используете связи, то перед запуском инструмента миграции сначала можно сгенерировать код заново в VCE со включенной опцией Use an inner class for each event. Однако, из-за ошибки в VisualAge for Java, для некоторых классов это невозможно. В этом случае при генерации кода в VCE следует использовать опцию Use one inner class for all events. После генерации мастер предлагает экспортировать классы в указанный каталог. Код, сгенерированный в VCE с опцией Do not use any inner classes, визуальным редактором не поддерживается.
VCE хранит рабочую модель JavaBean отдельно в собственном формате и исходный код каждый раз генерируется заново. Поэтому при его использовании возможности ручного изменения кода ограничены предварительно определенными местами, выделяемыми комментариями //user code begin {1} и //user code end. Для того чтобы показать, что методы JavaBean каждый раз генерируются заново, в них добавляется комментарий /* WARNING: THIS METHOD WILL BE REGENERATED. */. Инструмент миграции позволяет удалять эти комментарии при экспорте кода (оставляя их в оригинальном коде для VisualAge for Java). После этого части экспортированного кода, изменяемые вручную, использовать в VisualAge for Java будет невозможно т.к. без служебных комментариев, удаленных при экспорте, эти части будут потеряны при следующей генерации кода.
В отличие от VCE, визуальный редактор для Java работает с исходным кодом непосредственно, сохраняя в нем все служебные данные. Поэтому при его использовании в исходный код всегда можно вносить изменения вручную, в любой его части. Если внесенные вами изменения нарушают структуру кода и делают невозможным его анализ визуальным редактором, эти изменения не будут отражены в панели Эскиз и панели объектов Java. При этом визуальный редактор не будет пытаться восстановить код для анализа и все ваши изменения будут сохранены.