1 package jp.sourceforge.stigmata.ui.swing.mds;
7 import java.awt.event.ActionEvent;
9 import javax.swing.AbstractAction;
10 import javax.swing.Icon;
11 import javax.swing.JOptionPane;
12 import javax.swing.JScrollPane;
13 import javax.swing.JTable;
14 import javax.swing.table.DefaultTableModel;
16 import jp.sourceforge.talisman.i18n.MessageManager;
17 import jp.sourceforge.talisman.mds.Item;
18 import jp.sourceforge.talisman.mds.ui.swing.ItemsOpenEvent;
19 import jp.sourceforge.talisman.mds.ui.swing.ItemsOpenListener;
20 import jp.sourceforge.talisman.mds.ui.swing.ItemsSelectionEvent;
21 import jp.sourceforge.talisman.mds.ui.swing.ItemsSelectionListener;
22 import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
26 * @author Haruaki Tamada
29 public class OpenItemsAction extends AbstractAction{
30 private static final long serialVersionUID = 5956900396146338537L;
32 private MdsPane mdsPane;
33 private MessageManager mm;
34 private boolean selectedItemFlag = false;
36 public OpenItemsAction(MdsPane initMdsPane, MessageManager initMm){
37 super(initMm.getMessages().get("openallitems.label"));
39 this.mdsPane = initMdsPane;
41 if(initMm.getMessages().hasValue("openitems.icon")){
42 Icon icon = initMm.getMessages().getIcon("openitems.icon");
43 putValue(SMALL_ICON, icon);
45 initMdsPane.addItemsSelectionListener(new ItemsSelectionListener(){
46 public void valueChanged(ItemsSelectionEvent e){
47 Item[] items = mdsPane.getSelectedItems();
48 selectedItemFlag = items.length != 0;
50 putValue(AbstractAction.NAME, mm.getMessages().get("openitems.label"));
53 putValue(AbstractAction.NAME, mm.getMessages().get("openallitems.label"));
57 initMdsPane.addItemsOpenListener(new ItemsOpenListener(){
58 public void itemOpened(ItemsOpenEvent e){
59 showItems(e.getItems());
64 public void actionPerformed(ActionEvent e){
67 items = mdsPane.getSelectedItems();
70 items = mdsPane.getItems();
77 private void showItems(Item[] items){
78 DefaultTableModel model = new DefaultTableModel();
79 model.addColumn(mm.getMessages().get("openitems.namelabel"));
80 model.addColumn(mm.getMessages().get("openitems.xlabel"));
81 model.addColumn(mm.getMessages().get("openitems.ylabel"));
83 for(Item item : items){
84 Object[] values = new Object[3];
85 values[0] = item.getName();
86 values[1] = item.get(0);
87 values[2] = item.get(1);
90 JTable table = new JTable(model);
91 JScrollPane scroll = new JScrollPane(
92 table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
93 JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS
96 JOptionPane.showMessageDialog(
97 mdsPane, scroll, mm.getMessages().get("selected.items.title"),
98 JOptionPane.INFORMATION_MESSAGE