package mediator;
public class FontDialogDirector extends DialogDirector {
private Button ok, cancel;
/* 2 стандартные кнопки */ private ListBox fontList;
private EntryField fontName;
public FontDialogDirector() {
super();
// TODO Auto-generated constructor stub
}
/**
* FontDialogDirector отслеживает все виджеты,
* которые ранее поместил в диалоговое окно.
* Переопределенная в нем операция CreateWidgets
* создает виджеты и инициализирует ссылки на них.
* @see mediator.DialogDirector#CreateWigets()
*/
public void CreateWigets() {
ok.setText("OK");
ok.setDisabled(true); /* Пока недоступна */
cancel.setText("Cancel");
fontList = new ListBox(this);
fontName = new EntryField(this);
/* Добавление в список названия шрифтов,
* размещение всех виджетов в диалоговом окне и т.д.
* ....
* */
}
public void ShowDialog() {
/* Создание окна диалога... */
}
/**
* Операция WidgetChanged обеспечивает правильную
* совместную работу виджетов
* @param w - измененный виджет (нажатая кнопка,
* выбранный элемент в списке и т.д.)
*/
public void WidgetChanged(Widget w) {
/* Если выбрали шрифт в списке - устанавливаем
* его название в поле
*/
if (w.equals(fontList)) {
fontName.setText(fontList.GetSelected());
} else
/* Если устанавливается название шрифта
* - делалаем кнопу "ок" доступной
*/
if (w.equals(fontName)) {
ok.setDisabled(false);
} else if (w.equals(ok)) {
/* Сменить шрифт, закрыть окно...
*/
} else if (w.equals(cancel)) {
/* Просто закрыть окно...
*/
}
}
}