Проектирование работы с несколькими окнами
От: higohertz  
Дата: 26.05.12 03:43
Оценка:
Добрый день!

Допустим есть окно с несколькими табами.
В каждом табе может быть произвольное число элементов управления.
В зависимости от логики работы таба, он выполняет некоторые действия и переключается на другой таб.
Вопрос общего характера — как правильно организовать логику работы программы.

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

Поэтому приходит на ум второй вариант.
2. Менеджер.
Т.е. есть некий менеджер табов.
Каждый таб, выполнив свою работу, посылает сообщение (сигнал) менеджеру о завершении.
Менеджер получает этот сигнал и в зависимости от текущего состояния и того, что вернул таб, переключает контекст на другой таб.
Плохо то, что эти состояния организуются в дерево. И возникает проблема их хранения и использования.

Наверняка уже придуман какой то шаблон, ведь задача общая. Подскажите, пожалуйста.

PS/ Табы можно заменить на окна, тогда каждому окну будет довольно сложно узнать о наличии других окон, куда оно может переключится и, соответственно, идея менеджера сама всплывает.

Заранее спасибо.

03.06.12 05:43: Перенесено из 'Пользовательский интерфейс: проектирование, usability'
Re: Проектирование работы с несколькими окнами
От: higohertz  
Дата: 26.05.12 10:24
Оценка:
Почитал немного, наверное, шаблон meditator тут будет к месту. Кто что думает?
Re: Проектирование работы с несколькими окнами
От: matumba  
Дата: 28.05.12 10:42
Оценка:
Здравствуйте, higohertz, Вы писали:

H>Наверняка уже придуман какой то шаблон, ведь задача общая.


Очень напоминает Wizard. Не подходит?
Re: Проектирование работы с несколькими окнами
От: tsvet  
Дата: 02.06.12 23:36
Оценка: 1 (1)
Здравствуйте, higohertz, Вы писали:

Если я правильно поняла ситуацию (трудно без описания контекста и задач пользователя)...
Такое взаимодействие лучше организовывать в виде визарда. Взаимозависимые вкладки — это выбор неправильный. Представьте, что в вашем ежедневнике бумажном, страницы начнут перелистываться сами собой после того, как вы написали что-то на одной странице. Вкладки — это метафора, пришедшая из реального мира. И пользователь ожидает, что поведение вкладок будет подобно тому, как они ведут себя в реальности. В визард же вы можете "упаковать" любую сложную логику. Если пользователь может начать в текущем варианте работу "с любой вкладки", то надо понять, какие он решает задачи в каждом из "начал" и обеспечить ему соответствующие задачам входы в виде отдельные визарды-процессы.

Светлана Цикоза

H>Добрый день!


H>Допустим есть окно с несколькими табами.

H>В каждом табе может быть произвольное число элементов управления.
H>В зависимости от логики работы таба, он выполняет некоторые действия и переключается на другой таб.
H>Вопрос общего характера — как правильно организовать логику работы программы.

H>На ум приходит пока два варианта.

H>1. Пряиой.
H>Т.е. каждый таб в зависимости от своего предназначения выполняет некоторую работу, затем сам переключает контекст на другой таб.
H>Плохо то, что в этом случае каждый таб должен знать о наличие других табов и сам переключаться на другой контекст. И логика работы всей программы размазана по всей программе.
H>Иными словами, кажется, что лучше, что бы каждый таб выполнял свою часть работы, не зная о существовании других табов.

H>Поэтому приходит на ум второй вариант.

H>2. Менеджер.
H>Т.е. есть некий менеджер табов.
H>Каждый таб, выполнив свою работу, посылает сообщение (сигнал) менеджеру о завершении.
H>Менеджер получает этот сигнал и в зависимости от текущего состояния и того, что вернул таб, переключает контекст на другой таб.
H>Плохо то, что эти состояния организуются в дерево. И возникает проблема их хранения и использования.

H>Наверняка уже придуман какой то шаблон, ведь задача общая. Подскажите, пожалуйста.


H>PS/ Табы можно заменить на окна, тогда каждому окну будет довольно сложно узнать о наличии других окон, куда оно может переключится и, соответственно, идея менеджера сама всплывает.


H>Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.