1 package jp.sourceforge.stigmata.ui.swing.mds;
3 import java.awt.event.ActionEvent;
5 import javax.swing.AbstractAction;
6 import javax.swing.Icon;
7 import javax.swing.JOptionPane;
8 import javax.swing.JScrollPane;
9 import javax.swing.JTable;
10 import javax.swing.table.DefaultTableModel;
12 import jp.sourceforge.talisman.i18n.MessageManager;
13 import jp.sourceforge.talisman.mds.Item;
14 import jp.sourceforge.talisman.mds.ui.swing.ItemsOpenEvent;
15 import jp.sourceforge.talisman.mds.ui.swing.ItemsOpenListener;
16 import jp.sourceforge.talisman.mds.ui.swing.ItemsSelectionEvent;
17 import jp.sourceforge.talisman.mds.ui.swing.ItemsSelectionListener;
18 import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
22 * @author Haruaki Tamada
24 public class OpenItemsAction extends AbstractAction{
25 private static final long serialVersionUID = 5956900396146338537L;
27 private MdsPane mdsPane;
28 private MessageManager mm;
29 private boolean selectedItemFlag = false;
31 public OpenItemsAction(MdsPane initMdsPane, MessageManager initMm){
32 super(initMm.getMessages().get("openallitems.label"));
34 this.mdsPane = initMdsPane;
36 if(initMm.getMessages().hasValue("openitems.icon")){
37 Icon icon = initMm.getMessages().getIcon("openitems.icon");
38 putValue(SMALL_ICON, icon);
40 initMdsPane.addItemsSelectionListener(new ItemsSelectionListener(){
42 public void valueChanged(ItemsSelectionEvent e){
43 Item[] items = mdsPane.getSelectedItems();
44 selectedItemFlag = items.length != 0;
46 putValue(AbstractAction.NAME, mm.getMessages().get("openitems.label"));
49 putValue(AbstractAction.NAME, mm.getMessages().get("openallitems.label"));
53 initMdsPane.addItemsOpenListener(new ItemsOpenListener(){
55 public void itemOpened(ItemsOpenEvent e){
56 showItems(e.getItems());
62 public void actionPerformed(ActionEvent e){
65 items = mdsPane.getSelectedItems();
68 items = mdsPane.getItems();
75 private void showItems(Item[] items){
76 DefaultTableModel model = new DefaultTableModel();
77 model.addColumn(mm.getMessages().get("openitems.namelabel"));
78 model.addColumn(mm.getMessages().get("openitems.xlabel"));
79 model.addColumn(mm.getMessages().get("openitems.ylabel"));
81 for(Item item : items){
82 Object[] values = new Object[3];
83 values[0] = item.getName();
84 values[1] = item.get(0);
85 values[2] = item.get(1);
88 JTable table = new JTable(model);
89 JScrollPane scroll = new JScrollPane(
90 table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
91 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
94 JOptionPane.showMessageDialog(
95 mdsPane, scroll, mm.getMessages().get("selected.items.title"),
96 JOptionPane.INFORMATION_MESSAGE