// ReminderAlarmDialog
package org.javamoney.examples.ez.money.gui.dialog;
import static org.javamoney.examples.ez.money.ApplicationThread.getFrame;
import static org.javamoney.examples.ez.money.IconKeys.DIALOG_REMINDER_ALARM;
import static org.javamoney.examples.ez.money.model.DataManager.getReminders;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.javamoney.examples.ez.money.gui.GUIConstants;
import org.javamoney.examples.ez.money.gui.table.ReminderTable;
import org.javamoney.examples.ez.money.gui.view.HomeView;
import org.javamoney.examples.ez.money.gui.view.ViewKeys;
import org.javamoney.examples.ez.money.model.DataElement;
import org.javamoney.examples.ez.money.model.persisted.reminder.Reminder;
import org.javamoney.examples.ez.common.gui.DialogHeader;
import org.javamoney.examples.ez.common.gui.Panel;
import org.javamoney.examples.ez.common.gui.ScrollPane;
import org.javamoney.examples.ez.common.utility.I18NHelper;
/**
* This class facilitates informing the user of reminders that are about to
* become overdue.
*/
public
final
class
ReminderAlarmDialog
extends ApplicationDialog
{
/**
* Constructs a new dialog for reminders that are about to become overdue.
*/
public
ReminderAlarmDialog()
{
super(565, 325);
setTable(new ReminderTable());
buildPanel();
}
/**
* This method shows a dialog for reminders that are about to become overdue.
*/
public
void
showDialog()
{
addReminders();
if(getTable().getList().size() != 0)
{
getTable().display();
runDialog();
// Update the reminders view on the home page incase a reminder was
// modified.
((HomeView)getFrame().getViews().getView(ViewKeys.HOME)).updateRemindersView();
}
}
//////////////////////////////////////////////////////////////////////////////
// Start of private methods.
//////////////////////////////////////////////////////////////////////////////
private
void
addReminders()
{
for(DataElement element : getReminders().getCollection())
{
Reminder reminder = (Reminder)element;
if(reminder.canAlarm() == true)
{
getTable().add(reminder);
}
}
}
private
void
buildPanel()
{
Panel panel = getContentPane();
// Build panel.
panel.setFill(GridBagConstraints.BOTH);
panel.add(createDialogHeader(), 0, 0, 1, 1, 0, 0);
panel.add(createReminderTablePanel(), 0, 1, 1, 1, 100, 100);
panel.add(createOKButtonPanel(new ActionHandler()), 0, 2, 1, 1, 0, 0);
}
private
static
DialogHeader
createDialogHeader()
{
String description = getProperty("header.description");
String title = getProperty("header.title");
return new DialogHeader(title, description, DIALOG_REMINDER_ALARM.getIcon());
}
private
Panel
createReminderTablePanel()
{
Panel panel = new Panel();
ScrollPane scrollPane = new ScrollPane(getTable());
// Build scroll pane.
scrollPane.setBackground(GUIConstants.COLOR_BACKGROUND_FILL);
// Build panel.
panel.setFill(GridBagConstraints.BOTH);
panel.add(scrollPane, 0, 0, 1, 1, 100, 100);
panel.setInsets(new Insets(10, 10, 10, 10));
return panel;
}
private
static
String
getProperty(String key)
{
return I18NHelper.getProperty("ReminderAlarmDialog." + key);
}
private
ReminderTable
getTable()
{
return itsTable;
}
private
void
setTable(ReminderTable table)
{
itsTable = table;
}
//////////////////////////////////////////////////////////////////////////////
// Start of inner classes.
//////////////////////////////////////////////////////////////////////////////
private
class
ActionHandler
implements ActionListener
{
public
void
actionPerformed(ActionEvent event)
{
dispose();
}
}
//////////////////////////////////////////////////////////////////////////////
// Start of class members.
//////////////////////////////////////////////////////////////////////////////
private ReminderTable itsTable;
}