У меня возникла проблема с дизайном. Если у меня есть (например) на левом стыковочном представлении представление списка, содержащее некоторые элементы pojo, как я могу уведомить центр, прикрепленный к нему, который выбран? Я пытаюсь реализовать какой-то Master-Detail-View, в котором пользователь выбирает один элемент, а затем может настраивать его в центральной области и в правой области. Заранее спасибоКак передавать информацию с одного вида (присоединенного) на другой?
ответ
Это зависит от того, как вы хотите проектировать свое приложение.
Если вы хотите создать отдельный редактор для каждого pojo, вы можете посмотреть на LeftTestPane, предоставленную drombler fx archetype для образца.
@FXML
private void onNewSampleAction(ActionEvent event) {
sampleCounter++;
Sample sample = new Sample("Sample " + sampleCounter);
SampleEditorPane sampleEditorPane = new SampleEditorPane(sample);
Dockables.inject(sampleEditorPane);
Dockables.open(sampleEditorPane);
}
Там в настоящее время нет API для выбора уже открыт редактор, но, пожалуйста, обратите внимание, что редакторы в настоящее время совершенствуется с работы, проделанной за выпуск #111.
Если вы хотите получить один подробный вид, вы можете использовать Context Framework, который позволяет связываться с такими компонентами, как Dockables и Actions, в связном режиме.
ListView должен реализовать LocalContextProvider и сохранить выбранное pojo в своем локальном Context.
@ViewDocking(...)
public class ListView extends SomeNode implements LocalContextProvider {
private final SimpleContextContent contextContent = new SimpleContextContent();
private final SimpleContext context = new SimpleContext(contextContent);
private MyPojo currentSelection;
...
@Override
public Context getLocalContext() {
return context;
}
...
if (currentSelection != null){
contextContent.remove(currentSelection);
}
currentSelection = <current selection>
if (currentSelection != null){
contextContent.add(currentSelection);
}
...
}
В этом случае DetailsView должен быть зарегистрирован как вид (Singleton), тоже, и реализовать LocalContextProvider, а также ActiveContextSensitive:
@ViewDocking(...)
public class DetailsPane extends SomeNode implements ActiveContextSensitive, LocalContextProvider {
private final SimpleContextContent contextContent = new SimpleContextContent();
private final SimpleContext context = new SimpleContext(contextContent);
private Context activeContext;
private MyPojo myPojo;
...
@Override
public Context getLocalContext() {
return context;
}
@Override
public void setActiveContext(Context activeContext) {
this.activeContext = activeContext;
this.activeContext.addContextListener(MyPojo.class, (ContextEvent event) -> contextChanged());
contextChanged();
}
private void contextChanged() {
MyPojo newMyPojo = activeContext.find(MyPojo.class);
if ((myPojo == null && newMyPojo != null) || (myPojo null && !sample.equals(newMyPojo))) {
if (myPojo != null) {
unregister();
}
myPojo = newMyPojo;
if (myPojo != null) {
register();
}
}
}
private void unregister() {
contextContent.remove(myPojo);
//reset DetailsView
}
private void register() {
// configure DetailsView
contextContent.add(myPojo);
}
...
}
Посмотрите на RightTestPane представленную drombler fx archetype для образца.
- 1. Как передавать записи с одного вида на другой?
- 2. Как передавать данные с одного вида на другой?
- 3. Как передавать данные с одного контроллера вида на другой?
- 4. передавать данные с одного контроллера вида на другой контроллер представления
- 5. Django - как отправить информацию «POST» с одного вида на другой
- 6. передавать защищенную информацию с одного сервера на другой
- 7. Как передавать значения из одного вида в другой через контроллер?
- 8. Как переключиться с одного вида на другой?
- 9. передавать значения с одного экрана на другой?
- 10. передавать данные из одного вида-модели к другой в Aurelia
- 11. Ввод текста с одного вида на другой
- 12. Как передавать информацию с одной php-страницы на другой сервер?
- 13. Переадресация с одного контроллера вида на другой
- 14. Как передавать данные с одного вида на другой с помощью Angular
- 15. Нажмите с одного контроллера вида на другой
- 16. ReactJS: Как передавать информацию или общаться с одного компонента на другой или как продолжить дальше
- 17. Как я могу передавать данные с одного вида на другой в Android?
- 18. Как передавать данные с одного частичного вида на другой частичный вид?
- 19. Как я могу передавать данные с одного вида на другой, используя только клиентскую сторону?
- 20. Передача данных с одного вида на другой в монофоническом режиме
- 21. Как передавать данные с одного контроллера на другой в laravel
- 22. как передавать данные с одного сервера на другой динамически ..?
- 23. Как передавать отчеты с одного сервера на другой? SSRS
- 24. iphone: как передавать аудио с одного iphone на другой
- 25. Как передавать информацию с одного контроллера на другой через рельсы представления
- 26. Как передать переменную с одного контроллера вида на другой?
- 27. как я передавать данные от одного вида деятельности на другой вид деятельности
- 28. Как передать изображение с одного вида деятельности на другой
- 29. Как передать данные с одного контроллера вида на другой SWIFT
- 30. Как передать значение с одного контроллера вида на другой быстро?
Это немного шире. См. http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml/14190310#14190310 или http://stackoverflow.com/questions/32342864/applying-mvc-with-javafx для методов совместного использования данных между несколькими контроллеры/ –
Проблема в том, что это довольно непросто с каркасом dromblerfx. – SirWindfield