Я был брошен в проект настольных приложений, который отстает от графика в надежде, что я смогу возобновить проект, но, увы, у меня очень мало опыта разработки настольных приложений.
Мой предшественник, казалось, знал, что он делал, вроде как, но так и не смог что-то закончить, поэтому я остался, пытаясь навести порядок и вытащить проект за дверь.
Приложение использует Griffon в качестве фреймворка, а MigLayout в качестве менеджера компоновки, и я думаю, что у меня большая часть этого, но я не могу понять, как получить поведение при росте, требуемое спецификациями.
Вот мнение, с которым я работаю:
application(title: 'MyApp',
preferredSize: [320, 240],
pack: true,
locationByPlatform: true,
iconImage: imageIcon('/griffon-icon-48x48.png').image,
iconImages: [imageIcon('/griffon-icon-48x48.png').image,
imageIcon('/griffon-icon-32x32.png').image,
imageIcon('/griffon-icon-16x16.png').image]) {
panel(layout: new MigLayout()) {
label 'Root Directory:', constraints: 'split, span'
textField text: 'Put RootDir here', constraints: 'growx'
button 'Dialog', constraints: 'wrap'
label 'To be Processed:'
button 'Go button', constraints: 'spany 3'
label 'Processed:', constraints: 'wrap'
scrollPane(constraints: 'center, grow') {
list listData: (1..20).collect { "Very Long Line $it" }
}
scrollPane(constraints: 'center, grow, wrap') {
list listData: (1..5).collect { "Line $it" }
}
label 'info about files'
label 'info about files', constraints: 'wrap'
progressBar constraints: 'span, growx, wrap'
progressBar constraints: 'span, growx'
}
}
Когда я перетаскиваю окно больше, текстовое поле вверху и два индикатора выполнения внизу должны растягиваться, чтобы заполнить пространство по горизонтали, а два списка должны растягиваться в обоих направлениях. Размеры остальных элементов должны оставаться такими же.
Независимо от того, что я пытаюсь, я могу заставить верхнее текстовое поле растягиваться только в том случае, если я установил его columns
свойство очень большим, и даже тогда оно будет только отображать столько столбцов, но не больше.
Списки также не будут расти по вертикали вообще, и лучшее, что я смог получить, - это увеличить нужный список до некоторого неизвестного размера, а затем увеличится левый список.
Индикаторы выполнения вырастут до размеров, в которых находится содержащая панель, и это хорошо, если я смогу заставить содержащую панель заполнить полное окно.
Итак, какой ключевой элемент мне не хватает? Я уверен, что это какой-то маленький элемент, но как бы я ни старался, я не могу заставить вещи расти правильно. Любая помощь очень приветствуется.