private JPanel createInputPanel() {
        JPanel inputPanel = new SpacedPanel(new Dimension(5, 5));
        inputPanel.setLayout(new BoxLayout(inputPanel, BoxLayout.Y_AXIS));
        
        // Retrieve information for top of model
        Event e = model.peek();
        String name = e == null ? "Enter event name..." : e.getName();
        String loc = e == null ? 
                "Enter event location..." : e.getLocation();
        String desc = (e == null ? "Enter event description..." : 
                                   e.getDescription());
        
        // Calculate largest string to have equal-sized text fields.
        String largest = name.length() > loc.length() ? name : loc;
        largest = largest.length() > desc.length() ? largest : desc;
        
        nameField = new JEventField(name, largest.length());
        locField = new JEventField(loc, largest.length());
        
        descArea = new JTextArea(desc, 4, largest.length());
        descArea.setBorder(BorderFactory.
                createLineBorder(Color.BLACK, 1));
        
        startDateField = new JEventField("Enter event start date...",
                                         largest.length());
        endDateField = new JEventField("Enter event end date...",
                                       largest.length());
        
        // Add text fields to map
        textMap.put(nameField, "Enter event name...");
        textMap.put(locField, "Enter event location...");
        textMap.put(descArea, "Enter event description...");
        
        FocusListener focusListener = new FocusListener() {
            public void focusGained(FocusEvent e) {
                JTextComponent source = (JTextComponent) e.getSource();
                if (textMap.get(source).equals(source.getText())) {
                    source.setText(null);
                }
            }
            
            public void focusLost(FocusEvent e) {
                JTextComponent source = (JTextComponent) e.getSource();
                if (source.getText().equals(""))
                    source.setText(textMap.get(source));
            }
        };
        
        nameField.addFocusListener(focusListener);
        locField.addFocusListener(focusListener);
        descArea.addFocusListener(focusListener);

        inputPanel.add(nameField);
        inputPanel.add(createDatePanel(startDateField, startDateDialog));
        inputPanel.add(createDatePanel(endDateField, endDateDialog));
        inputPanel.add(locField);
        inputPanel.add(descArea);
        
        inputPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10,
                                                             10));
        return inputPanel;
    }