Мастер Eclipse Wizard вычисляет размер своего окна в зависимости от размера самой большой страницы мастера. Вот почему я испытываю трудности с тем, чтобы Label обернуть текст в WizardPage. Я использую следующий фрагмент кода, чтобы создать обернутый ярлык:Обтекание текста в Eclipse Wizard
@Override
public void createControl(Composite parent)
{
initializeDialogUnits(parent);
Composite composite = new Composite(parent, SWT.NONE);
composite.setFont(parent.getFont());
composite.setLayout(initGridLayout(new GridLayout(3, false), true));
composite.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
Label l = new Label(composite, SWT.WRAP);
l.setText("Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut"
+ "labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo"
+ "duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum"
+ "dolor sit amet.");
l.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 3, 1));
// create other components
setControl(composite);
}
Как мастер показывает вверх, он пытается поставить весь текст в одной строке, и его окно занимает столько же места, сколько ему нужно. Я думаю, вы можете себе представить, как это выглядит. Я получаю желаемый результат, если вручную изменю размер окна до его первоначального размера, то есть размер, который будет иметь, если не будет метки. Есть ли хорошая практика для достижения этого?
Чтобы установить правильное разрешение независимо 'widthHint', мне нужно знать ширину окна мастера, которая может быть определена только после создания окна. Поэтому я предполагаю, что мне придется поймать 'SWT.MeasureItem' или переопределить' setVisible', чтобы получить размер окна и установить соответствующий 'widthHint'. Правильно? –
Событие SWT.MeasureItem не работает для меня. Единственный способ - переопределить метод 'setVisible'' DialogPage'. См. Мой обновленный ответ. – DirkNM
Кажется хорошо работать. Тем не менее, существует постоянная разница между композицией и границей окна, которую мне пришлось установить для 22 для реального текста. Но я думаю, что я должен выдержать это, так как я понятия не имею, как его определить. –