2013-12-21 3 views
1

Я только начал использовать SWT в затмении. Прямо сейчас я использую Hibernate для подключения к базе данных и получения необходимой информации в составной. Представления включают одно окно приложения SWT и несколько композитов. Как разместить эти композиты на основе кнопки, на которую пользователь нажимает? Так как композит должен быть помещен в главное окно, должен ли я иметь ссылку на главное окно в каждом композите?Управление несколькими композитами с одним окном в SWT

Также главное окно полностью пустое. То, что пользователь щелкнул бы, будет одной из кнопок в одном из композитов. Должен ли я иметь только один контроллер? Но тогда у каждого из композитов есть кнопки, которым нужно открыть другие композиты в главном окне. Должен ли я иметь контроллеры для каждого из этих композитов? Я иду в неправильном направлении? Любая помощь будет большой.

Благодаря

EDIT: Пример того, что я пытаюсь сделать. У меня есть главное окно и 3 композита: A, B, C; Каждый из этих композитов имеет кнопки, которые могут переносить пользователя на другие 2 композита, заменяя текущий композит в главном окне.

Итак, должен ли я иметь контроллер для каждого композитного или только главного окна? Также, чтобы добавить композит в главное окно, нужно ли иметь ссылку на главное окно в каждом из этих композитов?

enter image description here

+0

Я считаю, что это трудно понять, что вы просите. Не могли бы вы создать образ макета, который показывает, что вы хотите? – Baz

+0

@Baz К счастью, мне нужно 10 очков репутации для отправки изображений. Могу ли я взять пример и объяснить, что я пытаюсь сделать? – amitabh

+0

Вы можете добавить ссылку на изображение, и мы можем добавить его для вас. Просто загрузите его на какой-либо хост изображения. – Baz

ответ

0

Что вы после технически очень похож на мастера пользовательского интерфейса. Идея состоит в том, чтобы добавить все ваши композиты в главное окно, но есть только один вид за раз. Это, вероятно, будет работать с FillLayout. Вам также, вероятно, необходимо будет позвонить layout() и redraw() в основное окно после изменения видимости компонентов.

+0

Я только что попробовал. Работает отлично! BTW Я хочу попытаться сохранить логику задней части из передней части, так как есть несколько других людей, работающих над ней. Так что я должен использовать отдельные контроллеры для каждого из композитов? – amitabh

+0

Я тоже думал об этой части вашего вопроса, но у меня нет ответа на один размер. Попробуйте более простой подход и посмотрите, есть ли у вас проблемы с ним. Кстати, если вы разговариваете непосредственно с БД, перед вами не происходит то, как дела обстоят сейчас - обычно у вас есть серверное Java-приложение между интерфейсом и БД. –

+0

Итак, я переведу свой код Hibernate на сервер и получаю доступ к нему через настольное приложение? – amitabh

0

Я бы использовал StackLayout для этих экранов.

Создайте основной композит с помощью StackLayout, настройте каждый экран в качестве дочернего элемента основного композита. Используйте пустой Composite в качестве первого экрана.

См StackLayout usage examples

Смежные вопросы