package mapmaker; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class ItemDialog extends StandardDialog { JLabel mShortsLabel = new JLabel("Short Descriptions"); EditableList mShortsList = new EditableList(); JLabel mLongLabel = new JLabel("Long Description"); JTextArea mLongTextArea = new JTextArea(); Item mItem; public ItemDialog(JFrame aFrame) { super(aFrame, "Item"); JPanel shortsPanel = new JPanel(new BorderLayout(0, 5)); shortsPanel.add(mShortsLabel, BorderLayout.NORTH); JScrollPane shortsListScollPane = new JScrollPane(mShortsList); shortsListScollPane.setPreferredSize(new Dimension(150, 100)); shortsPanel.add(shortsListScollPane, BorderLayout.CENTER); JPanel longPanel = new JPanel(new BorderLayout(0, 5)); longPanel.add(mLongLabel, BorderLayout.NORTH); JScrollPane longTextScollPane = new JScrollPane(mLongTextArea); longTextScollPane.setPreferredSize(new Dimension(300, 100)); longPanel.add(longTextScollPane, BorderLayout.CENTER); JPanel mainPanel = new JPanel(new BorderLayout(12, 0)); mainPanel.add(shortsPanel, BorderLayout.WEST); mainPanel.add(longPanel, BorderLayout.CENTER); setMainPanel(mainPanel); mLongTextArea.setLineWrap(true); mLongTextArea.setWrapStyleWord(true); pack(); setLocationRelativeTo(aFrame); } class ItemOkayAction extends OkayAction { public void actionPerformed(ActionEvent e) { Vector shorts = mShortsList.getListItems(); if (shorts.size() < 1) { JOptionPane.showMessageDialog(ItemDialog.this, "Please enter at least one short descripion in the " + "short description list.\n", "Error", JOptionPane.ERROR_MESSAGE); return; } if (!Utils.isFilledIn(mLongTextArea)) { JOptionPane.showMessageDialog(ItemDialog.this, "Please enter the long description of this item in the " + "long description text area.\n", "Error", JOptionPane.ERROR_MESSAGE); return; } super.actionPerformed(e); } } public void setItem(Item aItem) { mItem = aItem; } public Item getItem() { Vector shorts = mShortsList.getListItems(); String description = mLongTextArea.getText(); shorts.removeElement(""); if (mItem == null) { mItem = new Item(shorts, description); } else { mItem.setShorts(shorts); mItem.setDescription(description); } return mItem; } public static Item showEditDialog(JFrame aFrame, Item aItem) { ItemDialog itemDialog = new ItemDialog(aFrame); itemDialog.setItem(aItem); if (aItem != null) { Vector shorts = aItem.getShorts(); shorts.removeElement(""); shorts.addElement(""); itemDialog.mShortsList.setListItems(shorts); itemDialog.mLongTextArea.setText(aItem.getDescription()); } itemDialog.setVisible(true); if (itemDialog.isOkay()) { return itemDialog.getItem(); } return null; } public static Item showNewDialog(JFrame aFrame) { ItemDialog itemDialog = new ItemDialog(aFrame); itemDialog.setVisible(true); if (itemDialog.isOkay()) { return itemDialog.getItem(); } return null; } }