package open.dolphin.stampbox; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.Insets; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import open.dolphin.client.GUIFactory; import open.dolphin.infomodel.IInfoModel; import open.dolphin.infomodel.ModuleInfoBean; /** * StampTreePanel * * @author Kazushi Minagawa */ public class StampTreePanel extends JPanel implements TreeSelectionListener { protected StampTree stampTree; protected JTextArea infoArea; /** Creates a new instance of StampTreePanel * @param tree */ public StampTreePanel(StampTree tree) { this.stampTree = tree; JScrollPane scroller = new JScrollPane(stampTree); this.setLayout(new BorderLayout()); this.add(scroller, BorderLayout.CENTER); String treeEntity = stampTree.getEntity(); if (treeEntity != null && (!treeEntity.equals(IInfoModel.ENTITY_TEXT))) { infoArea = new JTextArea(); infoArea.setMargin(new Insets(3, 2, 3, 2)); infoArea.setLineWrap(true); infoArea.setPreferredSize(new Dimension(250, 40)); Font font = GUIFactory.createSmallFont(); infoArea.setFont(font); this.add(infoArea, BorderLayout.SOUTH); tree.addTreeSelectionListener(StampTreePanel.this); } } /** * このパネルのStampTreeを返す。 * @return StampTree */ public StampTree getTree() { return stampTree; } /** * スタンプツリーで選択されたスタンプの情報を表示する。 */ @Override public void valueChanged(TreeSelectionEvent e) { StampTree tree = (StampTree) e.getSource(); StampTreeNode node = (StampTreeNode) tree.getLastSelectedPathComponent(); if (node != null) { if (node.getUserObject() instanceof ModuleInfoBean) { ModuleInfoBean info = (ModuleInfoBean) node.getUserObject(); infoArea.setText(info.getStampMemo()); } else { infoArea.setText(""); } } else { infoArea.setText(""); } } }